role-search.vue 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <script setup lang="ts">
  2. import { $t } from '@/locales';
  3. defineOptions({
  4. name: 'RoleSearch'
  5. });
  6. interface Emits {
  7. (e: 'search'): void;
  8. }
  9. const emit = defineEmits<Emits>();
  10. const model = defineModel<Api.SystemManage.RoleSearchParams>('model', { required: true });
  11. function resetModel() {
  12. model.value = {
  13. current: 1,
  14. size: 10,
  15. roleName: null,
  16. roleCode: null,
  17. status: null
  18. };
  19. console.log(model.value, 'asdasda');
  20. }
  21. function search() {
  22. emit('search');
  23. }
  24. </script>
  25. <template>
  26. <NCard :bordered="false" size="small" class="card-wrapper">
  27. <NCollapse :default-expanded-names="['role-search']">
  28. <NCollapseItem :title="$t('common.search')" name="role-search">
  29. <NForm :model="model" label-placement="left" :label-width="80">
  30. <NGrid responsive="screen" item-responsive>
  31. <NFormItemGi span="24 s:12 m:6" :label="$t('page.manage.role.roleName')" path="roleName" class="pr-24px">
  32. <NInput v-model:value="model.roleName" :placeholder="$t('page.manage.role.form.roleName')" />
  33. </NFormItemGi>
  34. <NFormItemGi span="24 s:12 m:6">
  35. <NSpace class="w-full" justify="end">
  36. <NButton @click="resetModel">
  37. <template #icon>
  38. <icon-ic-round-refresh class="text-icon" />
  39. </template>
  40. {{ $t('common.reset') }}
  41. </NButton>
  42. <NButton type="primary" ghost @click="search">
  43. <template #icon>
  44. <icon-ic-round-search class="text-icon" />
  45. </template>
  46. {{ $t('common.search') }}
  47. </NButton>
  48. </NSpace>
  49. </NFormItemGi>
  50. </NGrid>
  51. </NForm>
  52. </NCollapseItem>
  53. </NCollapse>
  54. </NCard>
  55. </template>
  56. <style scoped></style>