Sfoglia il codice sorgente

河道水库打点、视频通用接口

Hwf 2 mesi fa
parent
commit
b158da6e25

+ 1 - 1
src/api/routineCommandMap/riskMonitor.ts

@@ -11,7 +11,7 @@ export function getTownshipRain(durationTime: string) {
   });
 }
 
-// 森林火灾风险分析
+// 雨情分析
 export function getTownshipRainWarrning() {
   return request({
     url: '/api/risk_monitor/rain/township_rain_warrning',

+ 0 - 0
src/assets/images/dotIcon/河道监测.png → src/assets/images/dotIcon/62_river_monitor.png


+ 0 - 0
src/assets/images/dotIcon/河道监测-高亮.png → src/assets/images/dotIcon/62_river_monitor_hover.png


+ 0 - 0
src/assets/images/dotIcon/水库监测.png → src/assets/images/dotIcon/63_reservoir_monitor.png


+ 0 - 0
src/assets/images/dotIcon/预警信号-高亮.png → src/assets/images/dotIcon/63_reservoir_monitor_hover.png


+ 3 - 1
src/components/Map/data.ts

@@ -159,5 +159,7 @@ export const titleList = {
   '55': '中型水闸',
   '56': '防汛任务电站',
   '57': '雨窝点重点村',
-  '58': '重点易灾村'
+  '58': '重点易灾村',
+  '62': '河道监测',
+  '63': '水库监测'
 };

+ 4 - 3
src/store/modules/map.ts

@@ -92,14 +92,15 @@ export const useMapStore = defineStore('map', () => {
                 if (dictValue === data3[z].component) {
                   data3[z].checked = true;
                   selectItem = data3[z];
-                } else {
-                  data3[z].checked = false;
                 }
+                // else {
+                //   data3[z].checked = false;
+                // }
               }
               updateMenu.value = selectItem;
               let selecData = [];
               menuState.value.menuData.forEach((item) => {
-                if (!item.isVideo || (item.isVideo && selectItem.component === item.component)) {
+                if (!item.isVideo || (item.isVideo && selectItem.component !== item.component)) {
                   selecData.push(item);
                 }
               });

+ 1 - 1
src/utils/olMap/olMap.ts

@@ -934,7 +934,7 @@ export class olMap {
     if (!this.vectorLayer) return;
     this.vectorLayer.getSource().clear();
   }
-  clearMarker2(name) {
+  clearMarker2(name = 'point') {
     // 新增图层
     if (!this.plotLayers[name]) {
       this.plotLayers[name] = new VectorLayer({

+ 13 - 17
src/views/globalMap/RightMenu/CommonVideo.vue

@@ -3,7 +3,7 @@
     <div class="container">
       <div class="gradient-text title">{{ title }}</div>
       <div class="box-left">
-        <el-input v-model="queryParams.keyword" class="custom-input" placeholder="搜索" @input="initData">
+        <el-input v-model="queryParams.video_name" class="custom-input" placeholder="搜索" @input="initData">
           <template #prefix>
             <el-icon class="el-input__icon"><search /></el-icon>
           </template>
@@ -15,7 +15,7 @@
           <div class="td">
             <div style="width: 240px">
               <el-select
-                v-model="queryParams.area"
+                v-model="queryParams.area_code"
                 placeholder="所有区县"
                 size="large"
                 class="custom-select2"
@@ -24,7 +24,7 @@
                 @change="initData"
               >
                 <el-option label="所有区县" value="" />
-                <el-option v-for="item in district_type" :key="item.value" :label="item.label" :value="item.label" />
+                <el-option v-for="item in district_type2" :key="item.value" :label="item.label" :value="item.value" />
               </el-select>
             </div>
           </div>
@@ -32,7 +32,7 @@
         </div>
         <div class="table-content">
           <div v-for="(item, index) in listData" :key="index" class="tr" @click="handleShowDialog(item)">
-            <div class="td">{{ item.area }}</div>
+            <div class="td">{{ item.area_code }}</div>
             <div class="td">{{ item.name }}</div>
           </div>
         </div>
@@ -48,19 +48,20 @@
 
 <script lang="ts" setup name="CommonVideo">
 import { Search } from '@element-plus/icons-vue';
-import { getRescue } from '@/api/globalMap/mitigation';
 import { deepClone } from '@/utils';
+import { getVideoListNew } from '@/api/videoMonitor';
 
 const props = defineProps({
+  id: String,
   title: String
 });
 const { proxy } = getCurrentInstance() as ComponentInternalInstance;
-const { district_type } = toRefs<any>(proxy?.useDict('district_type'));
+const { district_type2 } = toRefs<any>(proxy?.useDict('district_type2'));
 const queryParams = reactive({
   current: 1,
   size: 10,
-  keyword: '',
-  area: ''
+  video_name: '',
+  area_code: ''
 });
 const total = ref(0);
 
@@ -77,19 +78,14 @@ const handleShowDialog = (row) => {
 };
 const initData = () => {
   let newQueryParams = deepClone(queryParams);
-  newQueryParams.query = {
-    area: queryParams.area,
-    keyword: queryParams.keyword
-  };
-  delete newQueryParams.area;
-  delete newQueryParams.keyword;
-  getRescue(newQueryParams).then((res) => {
-    listData.value = res.rows;
+  newQueryParams.video_tag = props.id;
+  getVideoListNew(newQueryParams).then((res) => {
+    listData.value = res.data;
     total.value = res.total;
   });
 };
 const handleCancel = () => {
-  queryParams.keyword = '';
+  queryParams.video_name = '';
   initData();
 };
 initData();

+ 2 - 2
src/views/globalMap/RightMenu/ReservoirMonitor.vue

@@ -184,8 +184,8 @@ const handleShowDialog = (row) => {
       chartOption1.value.xAxis.data = time;
       chartOption1.value.series[0].data = resultData;
       chartOption1.value.series[1].data = inFlowData2;
-      chartOption1.value.series[2].data = outFlowData;
-      chartOption1.value.series[0].markLine.data[0].yAxis = row.floodLimit;
+      // chartOption1.value.series[2].data = outFlowData;
+      // chartOption1.value.series[0].markLine.data[0].yAxis = row.floodLimit;
     });
     queryParams2.location = `POINT(${row.longitude} ${row.latitude})`;
     getVideoList();

+ 0 - 5
src/views/globalMap/RightMenu/RiverMonitor.vue

@@ -98,11 +98,6 @@ import { getRiverCourseLevel, getRiverList, getRiverWaterStatus } from '@/api/gl
 import { parseTime, validateNum } from '@/utils/ruoyi';
 import { getVideoInfo } from '@/api/globalMap';
 
-const handleClose = () => {
-  emits('update:show', false);
-};
-const emits = defineEmits(['update:show']);
-
 // 请求参数
 const queryParams = reactive({
   area: ''

+ 1 - 0
src/views/globalMap/RightMenu/index.vue

@@ -100,6 +100,7 @@
               )
             "
             :title="menuState.menuData[menuState.activeIndex]?.name"
+            :id="menuState.menuData[menuState.activeIndex]?.component"
           />
         </template>
       </div>

+ 10 - 0
src/views/globalMap/data/mapData.ts

@@ -282,6 +282,16 @@ export const iconList = {
     imageHover: getImageUrl('58_disaster_prone_village_hover.png'),
     size: [40, 44]
   },
+  '62': {
+    image: getImageUrl('62_river_monitor.png'),
+    imageHover: getImageUrl('62_river_monitor_hover.png'),
+    size: [40, 44]
+  },
+  '63': {
+    image: getImageUrl('63_reservoir_monitor.png'),
+    imageHover: getImageUrl('63_reservoir_monitor_hover.png'),
+    size: [40, 44]
+  },
   'video': {
     image: getImageUrl('31_lakes_video.png'),
     imageHover: getImageUrl('31_lakes_video_hover.png'),

+ 2 - 2
src/views/globalMap/index.vue

@@ -249,7 +249,7 @@ const clickMenu = (item, dataList) => {
       let checked = item.checked ? '1' : '2';
       // 打点信息
       addMarkers(item);
-      if (['易涝隐患点', '省政务无人机', '铁塔运行监测', '通讯保障', '救援队伍', '重点车辆'].includes(item.name) || item.isVideo) {
+      if (['易涝隐患点', '省政务无人机', '铁塔运行监测', '通讯保障', '救援队伍', '重点车辆', '河道监测', '水库监测'].includes(item.name) || item.isVideo) {
         rightMenuRef.value.updateMenu(checked, item);
       } else {
         let index = findChecked(dataList, item.name);
@@ -294,7 +294,7 @@ const findChecked = (dataList, name) => {
   let index = 0;
   dataList.forEach((item) => {
     if (
-      !['易涝隐患点', '省政务无人机', '铁塔运行监测', '通讯保障', '救援队伍', '重点车辆', '附近视频'].includes(item.name) &&
+      !['易涝隐患点', '省政务无人机', '铁塔运行监测', '通讯保障', '救援队伍', '重点车辆', '附近视频', '河道监测', '水库监测'].includes(item.name) &&
       item.name !== name &&
       !item.isVideo &&
       item.path === '2' &&