search.vue 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  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="24">
  10. <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 5 }">
  11. <el-form-item label="报修编码:">
  12. <el-input clearable v-model="where.code" placeholder="请输入" />
  13. </el-form-item>
  14. </el-col>
  15. <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 5 }">
  16. <el-form-item label="报修时间:">
  17. <el-date-picker
  18. style="width: 100%"
  19. v-model="where.time"
  20. type="daterange"
  21. @change="timeChange"
  22. range-separator="至"
  23. start-placeholder="开始日期"
  24. end-placeholder="结束日期"
  25. value-format="yyyy-MM-dd HH:mm:ss"
  26. :default-time="['00:00:00', '23:59:59']"
  27. ></el-date-picker>
  28. </el-form-item>
  29. </el-col>
  30. <el-col v-bind="styleResponsive ? { span: 12 } : { span: 4 }">
  31. <div>
  32. <el-button
  33. type="primary"
  34. icon="el-icon-search"
  35. class="ele-btn-icon"
  36. @click="search"
  37. size="small"
  38. >查询</el-button>
  39. <el-button @click="reset" icon="el-icon-refresh-left" size="small" type="primary">重置</el-button>
  40. </div>
  41. </el-col>
  42. </el-row>
  43. </el-form>
  44. </template>
  45. <script>
  46. export default {
  47. components: {},
  48. data() {
  49. // 默认表单数据
  50. const defaultWhere = {
  51. sourceCode: '',
  52. sourceType: '',
  53. code: '',
  54. requestUserId: '',
  55. status: '',
  56. time: []
  57. };
  58. return {
  59. // 表单数据
  60. where: { ...defaultWhere }
  61. };
  62. },
  63. computed: {
  64. // 是否开启响应式布局
  65. styleResponsive() {
  66. return this.$store.state.theme.styleResponsive;
  67. }
  68. },
  69. created() {},
  70. methods: {
  71. timeChange(value) {
  72. if (!value) {
  73. this.where.startTime = '';
  74. this.where.endTime = '';
  75. }
  76. },
  77. /* 搜索 */
  78. search() {
  79. const parmas = this.where;
  80. if (parmas.time?.length) {
  81. parmas.startTime = parmas.time[0];
  82. parmas.endTime = parmas.time[1];
  83. delete parmas.time;
  84. }
  85. if (parmas.status) {
  86. parmas.statusList = [parmas.status].join(',');
  87. } else {
  88. parmas.statusList = '';
  89. }
  90. delete parmas.status;
  91. this.$emit('search', parmas);
  92. },
  93. /* 重置 */
  94. reset() {
  95. this.where = { ...this.defaultWhere };
  96. this.search();
  97. }
  98. }
  99. };
  100. </script>
  101. <style lang="scss" scoped>
  102. </style>