patrol-search.vue 3.6 KB

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