ConditionQuery.vue 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. <template>
  2. <div class="flex items-center query-head">
  3. <el-space alignment="center" :size="50">
  4. <div>
  5. <el-select v-model="queryType" placeholder="选择类型" class="type-select">
  6. <el-option
  7. v-for="item in queryTypeSelect"
  8. :key="item.value"
  9. :label="item.label"
  10. :value="item.value"
  11. />
  12. </el-select>
  13. <el-input
  14. :style="{ width: '180px' }"
  15. v-model="queryTypeContent"
  16. clearable
  17. placeholder="请输入查找内容"
  18. :disabled="!Boolean(queryType)"
  19. />
  20. </div>
  21. <div>
  22. <span>添加方式:</span>
  23. <el-select v-model="querySourceType" placeholder="请选择添加方式" class="protocal-select">
  24. <el-option
  25. v-for="item in cameraAddType"
  26. :key="item.value"
  27. :label="item.label"
  28. :value="AddType[item.value]"
  29. />
  30. </el-select>
  31. </div>
  32. <div>
  33. <span>场景:</span>
  34. <el-tree-select
  35. v-model="queryWorkSpace"
  36. :data="scenesTree"
  37. :render-after-expand="false"
  38. check-strictly
  39. placeholder="请选择场景"
  40. class="protocal-select"
  41. />
  42. </div>
  43. <div>
  44. <span>联网状态:</span>
  45. <el-select v-model="networkingState" placeholder="请选择添加方式" class="simple-select">
  46. <el-option :value="-1" label="全部" />
  47. <el-option :value="0" label="已联网" />
  48. <el-option :value="1" label="未联网" />
  49. </el-select>
  50. </div>
  51. <div>
  52. <span>进入平台:</span>
  53. <el-select v-model="integrationState" placeholder="请选择添加方式" class="simple-select">
  54. <el-option :value="-1" label="全部" />
  55. <el-option :value="0" label="是" />
  56. <el-option :value="1" label="否" />
  57. </el-select>
  58. </div>
  59. <div>
  60. <span>鹰眼追踪:</span>
  61. <el-select v-model="openEagle" placeholder="请选择添加方式" class="simple-select">
  62. <el-option :value="-1" label="全部" />
  63. <el-option :value="1" label="是" />
  64. <el-option :value="0" label="否" />
  65. </el-select>
  66. </div>
  67. </el-space>
  68. <div class="flex-1 flex justify-end">
  69. <el-button type="primary" @click="getCameraItems"> 查询 </el-button>
  70. <el-button @click="resetSearch"> 重置 </el-button>
  71. </div>
  72. </div>
  73. </template>
  74. <script setup lang="ts">
  75. import { onMounted } from 'vue';
  76. import { queryTypeSelect, cameraAddType, AddType } from '../../../../types/camera/constant';
  77. import useCameraOverview from '../stores/useCameraOverview';
  78. import useSceneInfos from '@/hooks/useSceneInfos';
  79. import { storeToRefs } from 'pinia';
  80. const sceneInfos = useSceneInfos();
  81. const { scenesTree, getScenesTree } = sceneInfos;
  82. const cameraOverview = useCameraOverview();
  83. const {
  84. queryType,
  85. queryTypeContent,
  86. querySourceType,
  87. queryWorkSpace,
  88. integrationState,
  89. networkingState,
  90. openEagle,
  91. } = storeToRefs(cameraOverview);
  92. const { getCameraItems } = cameraOverview;
  93. // 重置查询条件
  94. const resetSearch = () => {
  95. queryType.value = '';
  96. queryTypeContent.value = '';
  97. querySourceType.value = '';
  98. queryWorkSpace.value = '';
  99. integrationState.value = -1;
  100. networkingState.value = -1;
  101. openEagle.value = -1;
  102. };
  103. onMounted(() => {
  104. getScenesTree({ level: 3, valueKey: 'code', labelKey: 'name' });
  105. });
  106. </script>
  107. <style scoped>
  108. .type-select {
  109. width: 100px;
  110. }
  111. .protocal-select {
  112. width: 160px;
  113. }
  114. .simple-select {
  115. width: 80px;
  116. }
  117. .query-head {
  118. padding: 24px 57px 18px 21px;
  119. }
  120. </style>