Browse Source

重要测站点

chc 1 năm trước cách đây
mục cha
commit
297adacfe9
4 tập tin đã thay đổi với 178 bổ sung10 xóa
  1. 11 0
      src/api/swHome/index.ts
  2. 25 0
      src/utils/TFMapUitl.ts
  3. 18 9
      src/views/header/Weather.vue
  4. 124 1
      src/views/map/Map.vue

+ 11 - 0
src/api/swHome/index.ts

@@ -27,6 +27,8 @@ enum API {
   RAIN_MAPFQ=`${BaseURL.url}/hydro_screen_api/topic_data_part_r`,
   // 修改高度
   CHANGE_HEIGHT=`${BaseURL.url}/hydro_screen_api/update_st_elev`,
+  // 重要测站点
+  IMPORTTANT_POINT=`${BaseURL.url}/hydro_screen_api/home_gis_import_point`,
 }
 // 阻止是否携带/api和yt
 const BaseData = {
@@ -195,6 +197,15 @@ export const gcSite = (params) => {
     BaseData
   );
 };
+// 获取重要测站点
+export const getImportPoint = (params) => {
+  return defHttp.get(
+    {
+      url: API.IMPORTTANT_POINT,
+    },
+    BaseData
+  );
+};
 // 修改高度 {"stcd":90610003,"high":2930.50} 
 export const changeHeight = (params) => {
   return defHttp.post(

+ 25 - 0
src/utils/TFMapUitl.ts

@@ -262,6 +262,8 @@ class TFMapUitl {
    * @param map定位使用的地图
    */
   clearPointLocation_list(map) {
+    window.impointFlag=true
+    window.getImportSites()
     this.active();
     map.viewer.entities.removeById(this.PointLocation_listId);
     map.removeOverlay(this.bwClass);
@@ -408,6 +410,27 @@ class TFMapUitl {
     }
     return str + str2 + str3
   }
+  impotPointDom(i) {
+    const data = JSON.stringify(i).replace(/\"/g, "'");
+    let str = `<div class="popup">
+    <div style="display:flex;align-items: center;">
+    <span style="font-family: Source Han Sans CN;
+    font-size: 16px;
+    font-weight: 500;
+    line-height: 36px;color: #FFFFFF;margin-right:10px;">${i.st_name}</span> 
+   
+    </div>
+    <ul style="background: transparent; overflow: auto;height:150px">`
+
+    let str2 = ''
+    let str3 = `</ul>
+    </div>`;
+    for (let j = 0; j < i.data_real?.length; j++) {
+      str2 += `<li><span> ${i.data_real[j].sensor_name} </span>  <br/>
+      <span style=" display: inline-block;"><span style="font-size:17px;color:#00A2FF; display: inline-block;margin-right:5px"> ${i.data_real[j].real_value}</span><span style="font-size:14px; display: inline-block;margin-right:10px"> ${ i.data_real[j].dchar}</span>     ${i.data_real[j].real_time?.slice(11, 16)}</span></li>`
+    }
+    return str + str2 + str3
+  }
   setWd(wds) {
     let wd = wds*1
     if (wd >= 348.76 || wd <= 11.25) {
@@ -716,6 +739,8 @@ class TFMapUitl {
  * 所有点位点击事件后的弹框
  */
   setSTMarkerPopup(e) {
+    window.clearImpoint()
+
     var i = e.graphic.overlay.info
     map.openInfoWindowHtml(this.gcdMarkerDom(i), { position: [i.lng, i.lat, i.high] }, () => this.clearPointLocation_list(map));
     map.popup.setOffset(-185, 50);

+ 18 - 9
src/views/header/Weather.vue

@@ -11,13 +11,22 @@
       <!-- <div class="date">
         <i class="time">{{ dateTime }}</i>
       </div> -->
-      <img
-        src="../../assets/images/flyto.png"
-        style="position: absolute; right: 240px; top: -12px; height: 22px; width: 24px"
-        @click="updateSTHeight"
-        alt=""
-        title="更新站点高程"
-      />
+      <a-popconfirm
+            title="你确定要修改更新数据库中的站点高程吗?"
+            ok-text="Yes"
+            cancel-text="No"
+            @confirm="updateSTHeight"
+           
+          >
+          <img
+                src="../../assets/images/flyto.png"
+                style="position: absolute; right: 240px; top: -12px; height: 22px; width: 24px"
+              
+                alt=""
+                title="更新站点高程"
+              />
+          </a-popconfirm>
+      
       <img
         src="../../assets/images/reloading.png"
         style="position: absolute; right: 200px; top: -12px; height: 22px; width: 24px"
@@ -92,7 +101,7 @@
 <script>
 import { defineComponent, onMounted, reactive, toRefs, ref } from 'vue';
 // import { Dropdown, Menu, MenuItem } from 'ant-design-vue';
-import { Dropdown, Menu, Popconfirm } from 'ant-design-vue';
+import { Dropdown, Menu, Popconfirm,notification, Button } from 'ant-design-vue';
 import { UserOutlined } from '@ant-design/icons-vue';
 import moment from 'moment';
 import { useUserStore } from '/@/store/modules/user';
@@ -139,7 +148,7 @@ export default defineComponent({
       }
     };
     const updateSTHeight=()=>{
-      eventBus.emit('updateSTHeight')
+      eventBus.emit('updateSTHeight')  
     }
 
     let startTyep = null;

+ 124 - 1
src/views/map/Map.vue

@@ -62,7 +62,7 @@ import changeMap from './changeMap.vue';
 import legendImg from './legend.vue';
 // 基础测站点
 import { useBasicStore } from '/@/store/modules/basicData';
-import { rainMap, rainMapfq, wdMap, gcSite, getStDetailInfo, changeHeight } from '/@/api/swHome/index';
+import { rainMap, rainMapfq, wdMap, gcSite, getStDetailInfo, changeHeight,getImportPoint } from '/@/api/swHome/index';
 import fenquData from './fenqu.json';
 import { useMessage } from '/@/hooks/web/useMessage';
 import  './range.js'
@@ -121,6 +121,7 @@ export default defineComponent({
       qixiangData.value = [...basicStore.getStDetailInfo.st_wea_general, ...basicStore.getStDetailInfo.st_wea_standard];
       // 关闭基础图层
       if (val.flag) {
+        window.clearImpoint()
         map.showOverlay('shuiwenzhan*', false);
         map.showOverlay('shuiweizhan*', false);
         map.showOverlay('yuliangzhan*', false);
@@ -226,6 +227,9 @@ export default defineComponent({
           });
         }
       } else {
+        // 获取重要测站点
+        window.impointFlag=true
+        window.getImportSites()
         map.showOverlay('shuiwenzhan*', true);
         map.showOverlay('shuiweizhan*', true);
         map.showOverlay('yuliangzhan*', true);
@@ -236,6 +240,7 @@ export default defineComponent({
         map.showOverlay('fqPolygon', true);
         map.showLayer2D('sx', true);
         // map.showLayer2D('yuliangfenqu', true);
+      
       }
     };
     const detailInfo = ref([]);
@@ -543,11 +548,14 @@ export default defineComponent({
   },
 
   mounted() {
+    window.impointFlag=true
     const geologicalStore = useGeologicalStore();
     const monitorDevicesStore = useMonitorDevicesStore();
     this.init(() => { });
 
     setTimeout(() => {
+      
+
       this.initWinWay();
       const basicStore = useBasicStore();
       // 测站信息
@@ -605,6 +613,30 @@ export default defineComponent({
   },
 
   methods: {
+    // 获取重要测站点
+    getImportSites(){
+      getImportPoint().then(res=>{
+        console.log(this.stDetailArrStore,366)
+        if(res.code==200&&res.data){
+          window.impoint=[]
+          res.data.forEach(i=>{
+            this.stDetailArrStore.forEach(j=>{
+              if(i.stcd==j.stcd){
+              let markerWindow=  new TFMap.HTMLElementOverLay(
+                { x:Number(i.dlon) , y: Number(i.dlat),z:Number(j.high)  },
+                TFMapUitl.impotPointDom(i)
+              ).init().setOff(-230, -130)
+              markerWindow.setId('imp&' + i.stcd);
+              markerWindow.setClassify('impoint_marker*')
+              window.impoint.push(markerWindow)
+              map.addOverlay(markerWindow)
+              console.log(markerWindow,7737)
+              }
+            })
+          })
+        }
+      })
+    },
     getMapConfig(geologicalStore) {
       geologicalStore
         .MapConfig({
@@ -728,6 +760,8 @@ export default defineComponent({
         });
         // 加载测站
         this.setSTMarker(this.stDetailArrStore);
+        // 获取重要测站点
+        window.getImportSites()
       });
     },
 
@@ -1625,6 +1659,7 @@ export default defineComponent({
               var i = e.graphic.overlay.info
               map.openInfoWindowHtml(TFMapUitl.gcdMarkerDom(i), { position: [i.lng, i.lat, i.high] }, () => TFMapUitl.clearPointLocation_list(map));
               map.popup.setOffset(-185, 60);
+              window.clearImpoint()
             });
             map.addOverlay(marker);
           }
@@ -1648,6 +1683,7 @@ export default defineComponent({
               var i = e.graphic.overlay.info
               map.openInfoWindowHtml(TFMapUitl.gcdMarkerDom(i), { position: [i.lng, i.lat, i.high] }, () => TFMapUitl.clearPointLocation_list(map));
               map.popup.setOffset(-185, 60);
+              window.clearImpoint()
             });
             map.addOverlay(marker);
           }
@@ -1696,6 +1732,7 @@ export default defineComponent({
               var i = e.graphic.overlay.info
               map.openInfoWindowHtml(TFMapUitl.gcdMarkerDom(i), { position: [i.lng, i.lat, i.high] }, () => TFMapUitl.clearPointLocation_list(map));
               map.popup.setOffset(-182, 64);
+              window.clearImpoint()
             });
             map.addOverlay(marker);
           }
@@ -1736,6 +1773,7 @@ export default defineComponent({
               var i = e.graphic.overlay.info
               map.openInfoWindowHtml(TFMapUitl.gcdMarkerDom(i), { position: [i.lng, i.lat, i.high] }, () => TFMapUitl.clearPointLocation_list(map));
               map.popup.setOffset(-185, 60);
+              window.clearImpoint()
             });
             map.addOverlay(marker);
           }
@@ -1758,6 +1796,7 @@ export default defineComponent({
               var i = e.graphic.overlay.info
               map.openInfoWindowHtml(TFMapUitl.gcdMarkerDom(i), { position: [i.lng, i.lat, i.high] }, () => TFMapUitl.clearPointLocation_list(map));
               map.popup.setOffset(-185, 58);
+              window.clearImpoint()
             });
             map.addOverlay(marker);
           }
@@ -1905,6 +1944,90 @@ export default defineComponent({
             });
         });
       }
+      // 获取重要测站点
+      window.getImportSites=function (){
+        window.impointInterval&&clearInterval(window.impointInterval)
+        if(window.impointFlag){
+
+          getImportPoint().then(res=>{
+                  if(res.code==200&&res.data){
+                    if(window.impoint&&window.impoint.length){
+                        window.impoint.forEach(j=>{
+                          map.removeOverlay(j);
+                        })
+                        window.impoint=[]
+                      }
+                      window.impoint=[]
+                    res.data.forEach(i=>{
+                      _this.stDetailArrStore.forEach(j=>{
+                        if(i.stcd==j.stcd){
+                        let markerWindow=  new TFMap.HTMLElementOverLay(
+                          { x:Number(i.dlon) , y: Number(i.dlat),z:Number(j.high)  },
+                          TFMapUitl.impotPointDom(i)
+                        ).init().setOff(-230, -130)
+                        markerWindow.setId('imp&' + i.stcd);
+                        markerWindow.setClassify('impoint_marker*')
+                        window.impoint.push(markerWindow)
+                        map.addOverlay(markerWindow)
+                        }
+                      })
+                    })
+                  }
+                })
+
+          window.impointInterval=
+            setInterval(
+                ()=>{
+                  if(window.impoint&&window.impoint.length){
+                        window.impoint.forEach(j=>{
+                          map.removeOverlay(j);
+                        })
+                        window.impoint=[]
+                      }
+                  if(window.impointFlag){
+                    getImportPoint().then(res=>{
+                  if(res.code==200&&res.data){
+                    
+                      window.impoint=[]
+                    res.data.forEach(i=>{
+                      _this.stDetailArrStore.forEach(j=>{
+                        if(i.stcd==j.stcd){
+                        let markerWindow=  new TFMap.HTMLElementOverLay(
+                          { x:Number(i.dlon) , y: Number(i.dlat),z:Number(j.high)  },
+                          TFMapUitl.impotPointDom(i)
+                        ).init().setOff(-230, -130)
+                        markerWindow.setId('imp&' + i.stcd);
+                        markerWindow.setClassify('impoint_marker*')
+                        window.impoint.push(markerWindow)
+                        map.addOverlay(markerWindow)
+                        }
+                      })
+                    })
+                  }
+                })
+                  }
+                
+              },5*60*1000
+            )  
+        }else{
+          if(window.impoint&&window.impoint.length){
+                        window.impoint.forEach(j=>{
+                          map.removeOverlay(j);
+                        })
+                        window.impoint=[]
+                      }
+        }
+      }
+      window.clearImpoint=function(){
+        window.impointFlag=false
+        if(window.impoint&&window.impoint.length){
+                window.impoint.forEach(j=>{
+                  map.removeOverlay(j);
+                })
+                window.impoint=[]
+              }
+      }
+      // 
       // 获取测站并更新测站高程
       window.updateStHeightInfo = async function () {
         const key = 'updatable';