From 02400ed870dd0adb9d865a1b383bab152018e6c1 Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: 星期五, 20 十月 2023 15:48:07 +0800
Subject: [PATCH] 修改

---
 src/views/bigScreen/components/screen.vue |  186 ++++++++++++++++++++--------------------------
 1 files changed, 80 insertions(+), 106 deletions(-)

diff --git a/src/views/bigScreen/components/screen.vue b/src/views/bigScreen/components/screen.vue
index dde3c1a..b20993d 100644
--- a/src/views/bigScreen/components/screen.vue
+++ b/src/views/bigScreen/components/screen.vue
@@ -26,7 +26,7 @@
         </div>
       </div>
       <div class="main-content">
-        <div id="bigMap"></div>
+<!--        <div id="bigMap"></div>-->
         <div class="main-left">
           <div class="left-top withFilter">
             <div class="chart-head">
@@ -96,6 +96,15 @@
           </div>
         </div>
         <div class="main-middle">
+<!--          <div class="bigMap">-->
+<!--            <div id="bigMap"></div>-->
+<!--          </div>-->
+            <baidu-map class="bigMap" ak="Z4tYehNEVsdeMw3Mjspdn77pV50ffc8t" v="3.0" type="API" :scroll-wheel-zoom="true" :center="{lng: 85.057805, lat: 45.62550}" :zoom="16" @ready="initMap">
+              <bm-map-type :map-types="['BMAP_SATELLITE_MAP','BMAP_NORMAL_MAP' ]" anchor="BMAP_ANCHOR_TOP_LEFT"></bm-map-type>
+              <bm-navigation anchor="BMAP_ANCHOR_BOTTOM_RIGHT"></bm-navigation>
+              <bm-polygon :path="polygonPath" stroke-color="blue" fillColor="blue" :fillOpacity="0.4" :stroke-weight="1"/>
+            </baidu-map>
+<!--          </div>-->
           <div class="mid-bottom">
             <div class="chart-head">
               <div class="chart-tit">气象信息</div>
@@ -230,6 +239,8 @@
 import AMapLoader from '@amap/amap-jsapi-loader'
 import { shallowRef } from '@vue/reactivity'
 import { storeToRefs } from 'pinia';
+
+import {BaiduMap, BmMapType, BmNavigation, BmPolygon} from 'vue-baidu-map-3x'
 import { useUserInfo } from '/@/stores/userInfo';
 import {bigScreenApi} from "/@/api/bigScreen";
 // 定义接口来定义对象的类型
@@ -263,8 +274,12 @@
   yellowNum: null | number
   redNum: null | number
   weatherData: Array<any>
+  polygonPath: Array<location>
 }
-
+interface location{
+  lng: number | null
+  lat: number | null
+}
 interface gasType {
   name: string
   id: number | null
@@ -272,7 +287,7 @@
 
 export default defineComponent({
     name: 'bigScreen',
-    components: { },
+    components: {BaiduMap, BmMapType, BmNavigation, BmPolygon },
     props:{
       isFull: Boolean
     },
@@ -311,7 +326,8 @@
           warningGas: {},
           dialogWarning: false,
           countTime: 1,
-          weatherData: []
+          weatherData: [],
+          polygonPath: []
         });
         const router = useRouter();
         const gasN = ref("eChartgasN" + Date.now() + Math.random())
@@ -326,6 +342,9 @@
           second: '2-digit',
         };
 
+        const updatePolygonPath = (e) => {
+          state.polygonPath = e.target.getPath()
+        };
         // 页面加载时
         onMounted(() => {
           getGasData()
@@ -349,12 +368,21 @@
           setInterval(() => {
             getDateTime();
           }, 1000);
-          initMap()
+          // initMap()
         })
 
         onUnmounted(()=>{
           destroyedWs()
         })
+
+        const initMap=()=>{
+            state.polygonPath = [
+              { lng: 85.047805, lat: 45.62550 },
+              { lng: 85.047505, lat: 45.62350 },
+              { lng: 85.057205, lat: 45.62350 },
+              { lng: 85.057005, lat: 45.62750 }
+            ]
+        }
         const toNdPage = () =>{
           router.push('/gasData')
         }
@@ -896,84 +924,6 @@
         });
       }
 
-      const map = shallowRef(null)
-      const initMap=()=> {
-        let m = map.value
-        window._AMapSecurityConfig = {
-          securityJsCode: "456045075984862a9806587f0d7fee3c",
-        };
-        AMapLoader.load({
-          key: '5dbeedfa28e0d7fffb59684446569773', // 申请好的Web端开发者Key,首次调用 load 时必填
-          version: '2.0', // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
-          plugins: [] // 需要使用的的插件列表,如比例尺'AMap.Scale'等
-        })
-            .then(AMap => {
-              if (AMap && typeof AMap.Map === 'function') {
-                m = new AMap.Map('bigMap', {
-                  viewMode: '3D',
-                  mapStyle: 'amap://styles/normal',
-                  zoom: 18,
-                  center: [85.057805, 45.62550],
-                  layers:[
-                    // new AMap.TileLayer.RoadNet({}),
-                    // new AMap.TileLayer.Satellite()
-                  ],
-                  zooms:[2,20],
-                })
-
-                AMap.plugin(["AMap.DistrictSearch","AMap.ToolBar","AMap.ControlBar"],()=> {
-                  var district = new AMap.DistrictSearch({
-                    extensions: "all",
-                    subdistrict: 0,
-                    level: "district",
-                  });
-                  district.search("克拉玛依市", function (status, result) {
-                    //   // 外多边形坐标数组和内多边形坐标数组
-                    var outer = [
-                      new AMap.LngLat(-360, 90, true),
-                      new AMap.LngLat(-360, -90, true),
-                      new AMap.LngLat(360, -90, true),
-                      new AMap.LngLat(360, 90, true),
-                    ]; // 使得遮盖填充反向
-                    var holes = result.districtList[0].boundaries; // 得到该区域的边界坐标集合
-
-                    var pathArray = [outer];
-                    pathArray.push.apply(pathArray, holes);
-                    var polygon = new AMap.Polygon({
-                      pathL: pathArray,
-                      //线条颜色,使用16进制颜色代码赋值。默认值为#006600
-                      strokeColor: "#11feee",
-                      strokeWeight: 3,
-                      fillColor: "#051342",
-                      fillOpacity: 1,
-                      strokeStyle: "solid",
-                      strokeDasharray: [2, 2],
-                    });
-                    polygon.setPath(pathArray)
-                    m.add(polygon);
-                  })
-                  m.addControl(new AMap.ToolBar({
-                    position: {
-                      top: '20px',
-                      left: 'calc(25% + 5px)'
-                    }
-                  }))
-                  m.addControl(new AMap.ControlBar({
-                    position: {
-                      top: '20px',
-                      right: 'calc(25% + 5px)'
-                    }
-                  }))
-                })
-
-              } else {
-                console.error('AMap 或 AMap.Map 不可用');
-              }
-            })
-            .catch(e => {
-              console.log('加载高德地图时出错:', e)
-            })
-      }
       // 当前时间
       const getDateTime = () => {
         const curTime = new Date().toLocaleString('zh', timeForm).replace(/\//g, '-');
@@ -1019,7 +969,8 @@
           config,
           gasN,
           gasT,
-          map,
+          initMap,
+          updatePolygonPath,
           toNdPage,
           toTlPage,
           timeChange,
@@ -1150,7 +1101,7 @@
   display: flex;
   align-items: flex-end;
   justify-content: space-between;
-  position: relative;
+  //position: relative;
 
   &>div{
     height: 100%;
@@ -1529,24 +1480,6 @@
     }
   }
 
-  #bigMap{
-    position: absolute;
-    width: 100%;
-    height: 100%;
-    left: 0;
-    top: 0;
-
-    :deep(.amap-logo){
-      display: none!important;
-      visibility: hidden!important;
-    }
-
-    :deep(.amap-copyright) {
-      display: none!important;
-      visibility: hidden!important;
-    }
-  }
-
   .main-left{
     z-index: 9;
     width: calc(25% - 5px);
@@ -1563,14 +1496,55 @@
       background-size: 100% 100%;
     }
   }
+  //#bigMap{
+  //position: absolute;
+  //width: 100%;
+  //height: 100%;
+  //left: 0;
+  //top: 0;
+
+  //  :deep(.amap-logo){
+  //    display: none!important;
+  //    visibility: hidden!important;
+  //  }
+  //
+  //  :deep(.amap-copyright) {
+  //    display: none!important;
+  //    visibility: hidden!important;
+  //  }
+  //}
+  //.main-middle{
+  //  width: calc(50% - 10px);
+  //  height: calc((100%/3) - (20px/3));
+  //  z-index: 9;
+  //  .mid-bottom{
+  //    width: 100%;
+  //    height: 100%;
+  //    background: url("../../../assets/warningScreen/chart-bg4.png") no-repeat center;
+  //    background-size: 100% 100%;
+  //  }
+  //}
   .main-middle{
     width: calc(50% - 10px);
-    height: calc((100%/3) - (20px/3));
-    z-index: 9;
+    .bigMap{
+      width: 100%;
+      height: calc((200% - 40px)/3 + 10px);
+      padding: 15px;
+      background: url('../../../assets/warningScreen/map-bg.png') no-repeat center;
+      background-size: 100% 100%;
+      :deep(.BMap_cpyCtrl){
+        display: none!important;
+        visibility: hidden!important;
+      }
 
+      :deep(.anchorBL) {
+        display: none!important;
+        visibility: hidden!important;
+      }
+    }
     .mid-bottom{
       width: 100%;
-      height: 100%;
+      height: calc((100%/3) - (20px/3));
       background: url("../../../assets/warningScreen/chart-bg4.png") no-repeat center;
       background-size: 100% 100%;
     }

--
Gitblit v1.9.2