You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

index.vue 3.1KB

1 yıl önce
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <template>
  2. <a-drawer :width="500" title="搜索" placement="right" :open="openSearchModel" @close="onClose">
  3. <template #extra>
  4. <a-button style="margin-right: 8px" @click="clearSearch">清空搜索</a-button>
  5. <a-button type="primary" @click="getData">搜索</a-button>
  6. </template>
  7. <a-form :model="commomParams.search">
  8. <a-row :gutter="[10]">
  9. <a-col span="24">
  10. <a-form-item>
  11. <a-input addon-before="企业名称" v-model:value="commomParams.search.keyword" placeholder="请输入企业名称" @keyup.enter="getData"/>
  12. </a-form-item>
  13. </a-col>
  14. <a-col span="24">
  15. <a-form-item>
  16. <a-input addon-before="登录名称" v-model:value="commomParams.search.login_name" placeholder="请输入登录名称" @keyup.enter="getData"/>
  17. </a-form-item>
  18. </a-col>
  19. <a-col span="24">
  20. <a-form-item>
  21. <a-input addon-before="企业ID" v-model:value="commomParams.search.id" placeholder="请输入企业ID" @keyup.enter="getData"/>
  22. </a-form-item>
  23. </a-col>
  24. <a-col span="24">
  25. <a-form-item>
  26. <a-input addon-before="会员类型" v-model:value="commomParams.search.member_type" placeholder="请输入会员类型" @keyup.enter="getData"/>
  27. </a-form-item>
  28. </a-col>
  29. <a-col span="24">
  30. <a-form-item>
  31. <a-input addon-before="会员状态" v-model:value="commomParams.search.member_status" placeholder="请输入会员状态" @keyup.enter="getData"/>
  32. </a-form-item>
  33. </a-col>
  34. <a-col span="24">
  35. <a-form-item>
  36. <a-input addon-before="开通状态" v-model:value="commomParams.search.status" placeholder="请输入开通状态" @keyup.enter="getData"/>
  37. </a-form-item>
  38. </a-col>
  39. </a-row>
  40. </a-form>
  41. </a-drawer>
  42. </template>
  43. <script lang="ts" setup>
  44. import { ref, onMounted, watch, computed } from 'vue';
  45. import { useCommon } from '@/hooks/useCommon';
  46. let { store, commomParams, openSearchModel, hideSearch } = useCommon();
  47. let props = defineProps(['search_params']);
  48. const emit = defineEmits();
  49. openSearchModel = computed(() => {
  50. return store.state.openSearchModel;
  51. })
  52. interface listType {
  53. login_name ?: String
  54. id : Number | 0,
  55. member_type ?: String
  56. member_status : Number | 0,
  57. status : Number | 0,
  58. }
  59. commomParams.value.search = commomParams.value.search as listType;
  60. commomParams.value.search.login_name = '';
  61. commomParams.value.search.id = 0;
  62. commomParams.value.search.member_type = '';
  63. commomParams.value.search.member_status = 0;
  64. commomParams.value.search.status = 0;
  65. watch(() => props.search_params, (newVal) => {
  66. emit('searchData', commomParams.value.search)
  67. })
  68. const getData = () => {
  69. emit('searchData', commomParams.value.search);
  70. hideSearch()
  71. }
  72. // 清空搜索
  73. const clearSearch = () => {
  74. commomParams.value.search = {
  75. page: 1,
  76. pagesize: 10,
  77. sort: 'id',
  78. sortby: 'asc',
  79. keyword: ''
  80. }
  81. emit('clearData', commomParams.value.search);
  82. }
  83. const onClose = () => {
  84. clearSearch()
  85. hideSearch()
  86. }
  87. </script>
  88. <style>
  89. </style>