瀏覽代碼

水利附近视频

Hwf 1 月之前
父節點
當前提交
e32eb35cda
共有 4 個文件被更改,包括 63 次插入57 次删除
  1. 9 9
      src/components/HKVideo/video-container2.vue
  2. 23 24
      src/components/Map/YztMap/index.vue
  3. 21 19
      src/components/Map/index.vue
  4. 10 5
      src/utils/olMap/olMap.ts

+ 9 - 9
src/components/HKVideo/video-container2.vue

@@ -4,7 +4,7 @@
       <div class="tag" :title="videoData[0].name">
         <div class="name">{{ videoData[0].name }}</div>
       </div>
-      <HKVideo :dot_data="videoData[0]" :height="1100" />
+      <HKVideo :dot_data="videoData[0]" :height="1100" autoplay />
     </div>
   </div>
   <div v-else-if="videoData.length >= 2 && videoData.length <= 4" class="video-container2">
@@ -12,7 +12,7 @@
       <div class="tag" :title="item.name">
         <div class="name">{{ item.name }}</div>
       </div>
-      <HKVideo :dot_data="item" :height="558" />
+      <HKVideo :dot_data="item" :height="558" autoplay />
     </div>
   </div>
   <div v-else-if="videoData.length >= 5 && videoData.length <= 6" class="video-container3">
@@ -21,7 +21,7 @@
         <div class="tag" :title="videoData[0].name">
           <div class="name">{{ videoData[0].name }}</div>
         </div>
-        <HKVideo :dot_data="videoData[0]" :height="730" />
+        <HKVideo :dot_data="videoData[0]" :height="730" autoplay />
       </div>
     </div>
     <div class="box2">
@@ -29,13 +29,13 @@
         <div class="tag" :title="videoData[1].name">
           <div class="name">{{ videoData[1].name }}</div>
         </div>
-        <HKVideo :dot_data="videoData[1]" :height="365" />
+        <HKVideo :dot_data="videoData[1]" :height="365" autoplay />
       </div>
       <div class="video-item3">
         <div class="tag" :title="videoData[2].name">
           <div class="name">{{ videoData[2].name }}</div>
         </div>
-        <HKVideo :dot_data="videoData[2]" :height="365" />
+        <HKVideo :dot_data="videoData[2]" :height="365" autoplay />
       </div>
     </div>
     <div class="box3">
@@ -43,19 +43,19 @@
         <div class="tag" :title="videoData[3].name">
           <div class="name">{{ videoData[3].name }}</div>
         </div>
-        <HKVideo :dot_data="videoData[3]" :height="365" />
+        <HKVideo :dot_data="videoData[3]" :height="365" autoplay />
       </div>
       <div class="video-item">
         <div class="tag" :title="videoData[4].name">
           <div class="name">{{ videoData[4].name }}</div>
         </div>
-        <HKVideo :dot_data="videoData[4]" :height="365" />
+        <HKVideo :dot_data="videoData[4]" :height="365" autoplay />
       </div>
       <div class="video-item">
         <div class="tag" :title="videoData[5].name">
           <div class="name">{{ videoData[5].name }}</div>
         </div>
-        <HKVideo :dot_data="videoData[5]" :height="365" />
+        <HKVideo :dot_data="videoData[5]" :height="365" autoplay />
       </div>
     </div>
   </div>
@@ -64,7 +64,7 @@
       <div class="tag" :title="item.name">
         <div class="name">{{ item.name }}</div>
       </div>
-      <HKVideo :dot_data="item" :height="258" />
+      <HKVideo :dot_data="item" :height="258" :autoplay="index < 9" />
     </div>
   </div>
   <div v-else class="tip">附近没有可用监控视频</div>

+ 23 - 24
src/components/Map/YztMap/index.vue

@@ -185,36 +185,35 @@ const handlePointDetails = (data) => {
       titleDom.className = 'title-box';
       titleDom.innerHTML = '<div class="gradient-text">' + title + '</div></div>';
       div.appendChild(titleDom);
-      if (data.dataType === 2) {
-        let btnBox = document.createElement('div');
-        let btn = document.createElement('div');
-        btnBox.className = 'flex';
-        btn.className = 'btn';
-        btn.innerHTML = '<div class="video-icon"></div><div>物资详情</div>';
-        btn.onclick = () => {
-          emits('handleShowWarehouse', data);
-        };
-        btnBox.appendChild(btn);
-        div.appendChild(btnBox);
-      } else if (data.dataType === 4) {
-        let btnBox = document.createElement('div');
-        let btn = document.createElement('div');
-        btnBox.className = 'flex';
-        btn.className = 'btn';
-        btn.innerHTML = '<div class="video-icon"></div><div>附近视频</div>';
-        btn.onclick = () => {
-          emits('handleShowVideo', data);
+      const objs = {
+        '2': {
+          title: '物资详情',
+          method: 'handleShowWarehouse'
+        },
+        '41': {
+          title: '人员列表',
+          method: 'handleShowPeople'
+        },
+        '43': {
+          title: '历史轨迹',
+          method: 'handleShowTrack'
+        }
+      };
+      let obj = objs[data.dataType];
+      if ([4, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58].includes(data.dataType)) {
+        obj = {
+          title: '附近视频',
+          method: 'handleShowVideo'
         };
-        btnBox.appendChild(btn);
-        div.appendChild(btnBox);
-      } else if (data.dataType === 41) {
+      }
+      if (!!obj) {
         let btnBox = document.createElement('div');
         let btn = document.createElement('div');
         btnBox.className = 'flex';
         btn.className = 'btn';
-        btn.innerHTML = '<div class="video-icon"></div><div>人员列表</div>';
+        btn.innerHTML = '<div class="video-icon"></div>' + obj.title + '<div></div>';
         btn.onclick = () => {
-          emits('handleShowPeople', data);
+          emits(obj.method, data);
         };
         btnBox.appendChild(btn);
         div.appendChild(btnBox);

+ 21 - 19
src/components/Map/index.vue

@@ -142,26 +142,28 @@ const handlePointDetails = (data) => {
       titleDom.className = 'title-box';
       titleDom.innerHTML = '<div class="gradient-text">' + title + '</div></div>';
       div.appendChild(titleDom);
-      if ([2, 4, 41, 43].includes(data.dataType)) {
-        const objs = {
-          '2': {
-            title: '物资详情',
-            method: 'handleShowWarehouse'
-          },
-          '4': {
-            title: '附近视频',
-            method: 'handleShowVideo'
-          },
-          '41': {
-            title: '人员列表',
-            method: 'handleShowPeople'
-          },
-          '43': {
-            title: '历史轨迹',
-            method: 'handleShowTrack'
-          }
+      const objs = {
+        '2': {
+          title: '物资详情',
+          method: 'handleShowWarehouse'
+        },
+        '41': {
+          title: '人员列表',
+          method: 'handleShowPeople'
+        },
+        '43': {
+          title: '历史轨迹',
+          method: 'handleShowTrack'
+        }
+      };
+      let obj = objs[data.dataType];
+      if ([4, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58].includes(data.dataType)) {
+        obj = {
+          title: '附近视频',
+          method: 'handleShowVideo'
         };
-        const obj = objs[data.dataType];
+      }
+      if (!!obj) {
         let btnBox = document.createElement('div');
         let btn = document.createElement('div');
         btnBox.className = 'flex';

+ 10 - 5
src/utils/olMap/olMap.ts

@@ -374,7 +374,8 @@ export class olMap {
       }),
       zIndex: options.zIndex ? options.zIndex : -99
     });
-
+    vectorLayer.set('layerName', options.layer);
+    vectorLayer.set('id', options.code);
     this.map.addLayer(vectorLayer);
   }
   // 加载json图层
@@ -395,6 +396,8 @@ export class olMap {
         }),
         zIndex: layer.zIndex ? layer.zIndex : -99
       });
+      jsonLayer.set('layerName', layer.layer);
+      jsonLayer.set('id', layer.code);
       this.map.addLayer(jsonLayer);
       resolve({});
     });
@@ -669,17 +672,19 @@ export class olMap {
     const layers = this.map.getLayers();
     const layerArray = layers.getArray().slice();
     layerArray.forEach((layer) => {
-      // 标注现在都是用同一个暂不移除'annotation'
-      if (!!layer && ['map'].includes(layer.get('layerName'))) {
+      if (!!layer && ['map', 'annotation'].includes(layer.get('layerName'))) {
         layer.getSource().clear();
         layer.dispose();
         this.map.removeLayer(layer);
       }
     });
-
     if (Array.isArray(newLayers)) {
       for (const layer of newLayers) {
-        await this.formatXml(layer);
+        if (layer.layerType === 'JSON') {
+          await this.createJsonLayer(layer);
+        } else {
+          await this.formatXml(layer);
+        }
       }
     } else if (newLayers.id === 'tianditu') {
       await this.formatXml2();