patrol-search.vue 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. <!-- 搜索表单 -->
  2. <template>
  3. <el-form
  4. label-width="100px"
  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="where.code" placeholder="请输入" />
  13. </el-form-item>
  14. <el-form-item label="规则名称:">
  15. <el-input clearable v-model="where.ruleName" placeholder="请输入" />
  16. </el-form-item>
  17. </el-col>
  18. <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
  19. <el-form-item label="计划配置名称:">
  20. <el-input clearable v-model="where.name" placeholder="请输入" />
  21. </el-form-item>
  22. <el-form-item label="状态:">
  23. <DictSelection dictName="规则状态" clearable v-model="where.status">
  24. </DictSelection>
  25. </el-form-item>
  26. </el-col>
  27. <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
  28. <el-form-item label="巡点检部门:">
  29. <deptSelect v-model="where.groupId" />
  30. </el-form-item>
  31. <el-form-item label="创建时间:">
  32. <el-date-picker
  33. v-model="time"
  34. type="daterange"
  35. range-separator="至"
  36. start-placeholder="开始日期"
  37. end-placeholder="结束日期"
  38. value-format="yyyy-MM-dd HH:mm:ss"
  39. :default-time="['00:00:00', '23:59:59']"
  40. >
  41. </el-date-picker>
  42. </el-form-item>
  43. </el-col>
  44. <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
  45. <el-form-item label="设备分类:">
  46. <equipmentSelect v-model="where.categoryLevelId" />
  47. </el-form-item>
  48. <div class="ele-form-actions">
  49. <el-button
  50. type="primary"
  51. icon="el-icon-search"
  52. class="ele-btn-icon"
  53. @click="search"
  54. size="small"
  55. >
  56. 查询
  57. </el-button>
  58. <el-button
  59. @click="reset"
  60. icon="el-icon-refresh-left"
  61. size="small"
  62. type="primary"
  63. >重置</el-button
  64. >
  65. </div>
  66. </el-col>
  67. </el-row>
  68. </el-form>
  69. </template>
  70. <script>
  71. import { login } from '@/api/login';
  72. // import { listOrganizations } from '@/api/system/organization';
  73. import equipmentSelect from '@/components/CommomSelect/equipment-select.vue';
  74. import deptSelect from '@/components/CommomSelect/dept-select.vue';
  75. export default {
  76. components: { equipmentSelect, deptSelect },
  77. data() {
  78. // 默认表单数据
  79. const defaultWhere = {
  80. name: '',
  81. code: '',
  82. groupId: '',
  83. status: '',
  84. ruleName: '',
  85. startTime: '',
  86. endTime: '',
  87. categoryLevelId: ''
  88. };
  89. return {
  90. // 表单数据
  91. where: { ...defaultWhere },
  92. // deptData:[], //部门树
  93. time: []
  94. };
  95. },
  96. computed: {
  97. // 是否开启响应式布局
  98. styleResponsive() {
  99. return this.$store.state.theme.styleResponsive;
  100. }
  101. },
  102. created() {
  103. // this.getDeptList()
  104. },
  105. methods: {
  106. /* 搜索 */
  107. search() {
  108. if (this.time != null && this.time.length) {
  109. this.where.startTime = this.time[0];
  110. this.where.endTime = this.time[1];
  111. }
  112. if (this.time == null) {
  113. this.where.startTime = '';
  114. this.where.endTime = '';
  115. }
  116. this.$emit('search', this.where);
  117. },
  118. /* 重置 */
  119. reset() {
  120. this.time = [];
  121. this.where = { ...this.defaultWhere };
  122. this.search();
  123. }
  124. // 获取部门列表数据
  125. // async getDeptList () {
  126. // try {
  127. // let list = await listOrganizations()
  128. // this.deptData = this.$util.toTreeData({
  129. // data: list,
  130. // idField: 'id',
  131. // parentIdField: 'parentId'
  132. // });
  133. // } catch (error) {}
  134. // },
  135. }
  136. };
  137. </script>
  138. <style lang="scss" scoped>
  139. .ele-form-actions {
  140. display: flex;
  141. align-items: center;
  142. justify-content: flex-end;
  143. }
  144. </style>