matter-search.vue 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. <!-- 搜索表单 -->
  2. <template>
  3. <el-form
  4. label-width="80px"
  5. class="ele-form-search"
  6. @keyup.enter.native="search"
  7. @submit.native.prevent
  8. >
  9. <el-row :gutter="15">
  10. <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
  11. <el-form-item label="规则名称:">
  12. <el-input clearable v-model.trim="where.name" placeholder="请输入" />
  13. </el-form-item>
  14. <!-- <el-form-item label="规则状态:">
  15. <DictSelection
  16. dictName="规则状态"
  17. clearable
  18. v-model.trim="where.status"
  19. >
  20. </DictSelection>
  21. </el-form-item> -->
  22. <el-form-item label="创建时间:">
  23. <el-date-picker
  24. style="width: 100%"
  25. v-model="time"
  26. type="daterange"
  27. range-separator="至"
  28. start-placeholder="开始日期"
  29. end-placeholder="结束日期"
  30. value-format="yyyy-MM-dd HH:mm:ss"
  31. :default-time="['00:00:00', '23:59:59']"
  32. >
  33. </el-date-picker>
  34. </el-form-item>
  35. </el-col>
  36. <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
  37. <el-form-item label="规则编码:">
  38. <el-input clearable v-model.trim="where.code" placeholder="请输入" />
  39. </el-form-item>
  40. </el-col>
  41. <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
  42. <el-form-item label="规则类型:">
  43. <DictSelection
  44. dictName="规则类型"
  45. clearable
  46. v-model.trim="where.type"
  47. :listFormatte="listFormatte"
  48. >
  49. </DictSelection>
  50. </el-form-item>
  51. <!-- <el-form-item label="组织机构:">
  52. <auth-selection v-model.trim="where.deptIds" style="width: 100%"></auth-selection>
  53. </el-form-item> -->
  54. </el-col>
  55. <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
  56. <!-- <el-form-item label="创建人:">
  57. <el-input
  58. clearable
  59. v-model.trim="where.userName"
  60. placeholder="请输入"
  61. />
  62. </el-form-item> -->
  63. <div class="ele-form-actions">
  64. <el-button
  65. type="primary"
  66. icon="el-icon-search"
  67. class="ele-btn-icon"
  68. @click="search"
  69. size="small"
  70. >
  71. 查询
  72. </el-button>
  73. <el-button
  74. @click="reset"
  75. icon="el-icon-refresh-left"
  76. size="small"
  77. type="primary"
  78. >重置</el-button
  79. >
  80. </div>
  81. </el-col>
  82. </el-row>
  83. </el-form>
  84. </template>
  85. <script>
  86. export default {
  87. props: {
  88. filterType: {
  89. type: Array,
  90. default: () => {
  91. return [];
  92. }
  93. }
  94. },
  95. data() {
  96. // 默认表单数据
  97. const defaultWhere = {
  98. name: '',
  99. code: '',
  100. userName: '',
  101. type: '',
  102. status: 1,
  103. startTime: '',
  104. endTime: ''
  105. };
  106. return {
  107. // 表单数据
  108. where: { ...defaultWhere },
  109. treeData: [],
  110. time: []
  111. };
  112. },
  113. computed: {
  114. // 是否开启响应式布局
  115. styleResponsive() {
  116. return this.$store.state.theme.styleResponsive;
  117. }
  118. },
  119. created() {},
  120. methods: {
  121. listFormatte(list, valueName) {
  122. return list.filter((i) => ['1', '2', '5'].includes(i[valueName]));
  123. },
  124. /* 搜索 */
  125. search() {
  126. const [startTime = '', endTime = ''] = this.time || [];
  127. this.$emit('search', {
  128. ...this.where,
  129. startTime,
  130. endTime
  131. });
  132. },
  133. /* 重置 */
  134. reset() {
  135. this.time = [];
  136. this.where = { ...this.defaultWhere };
  137. this.search();
  138. }
  139. }
  140. };
  141. </script>
  142. <style lang="scss" scoped>
  143. .ele-form-actions {
  144. display: flex;
  145. align-items: center;
  146. justify-content: flex-end;
  147. }
  148. </style>