ソースを参照

fix: 地图处理

chenzhen2 2 年 前
コミット
cfa5bbff66

+ 34 - 20
src/views/envmonitor/components/Map/MapBox.vue

@@ -18,9 +18,7 @@
           :class="[
             area.canClick ? '' : 'click-disable',
             selectArea.id === area.id ? 'select' : '',
-            isSetSpace
-              ? 'use-select'
-              : '',
+            isSetSpace ? 'use-select' : '',
           ]"
           @click.stop="checkSpace(area)"
           :style="{
@@ -170,6 +168,10 @@ export default defineComponent({
       type: String,
       default: () => "",
     },
+    buildingId: {
+      type: String,
+      default: () => "",
+    },
   },
   components: {
     SpaceSearch,
@@ -197,7 +199,7 @@ export default defineComponent({
     let transformData: any = {};
     const proxyData = reactive({
       parseImgUrl: parseImgUrl,
-      isSetSpace: props.isSetSpace, // isSetSpace:true 代表常驻空间页面展示
+      isSetSpace: props.isSetSpace, // isSetSpace:true 代表为设置常驻空间页面展示
       widthMapScale: 1,
       tempScale: 0.8,
       comMapScale: comMapScale,
@@ -590,8 +592,8 @@ export default defineComponent({
             // item.canClick = !item.canClick
             proxyData.setSpaceIcon(item);
           }
-          console.log(" proxyData.mapData proxyData.mapData");
-          console.log(proxyData.mapData);
+          // console.log(" proxyData.mapData proxyData.mapData");
+          // console.log(proxyData.mapData);
           // 备份数据
           proxyData.copyMapDaata = JSON.parse(JSON.stringify(data));
         }
@@ -983,13 +985,12 @@ export default defineComponent({
       getMapInfo(flag: boolean = true, searchItem: any = null) {
         let params: any = {
           projectId: props.projectId,
-          floorId: props.floorId,
-          // floorId: proxyData.floorItem.id,
+          floorId: proxyData.floorItem.id,
         };
         getMapInfo(params)
           .then((res) => {
             let resData: any = res;
-            debugger;
+            // debugger;
             if (resData.result === "success") {
               proxyData.mapData = resData?.data ?? null;
               // 切换数据的时候清楚默认样式
@@ -1016,8 +1017,10 @@ export default defineComponent({
                 if (!proxyData.isSetSpace) {
                   proxyData.checkSpace(proxyData.selectArea);
                 }
-                proxyData.selectArea = proxyData.mapData.spaceList[0];
+                // proxyData.selectArea = proxyData.mapData.spaceList[0];
                 // 设置当前空间的位置
+                console.log(" proxyData.selectArea===");
+                console.log(proxyData.selectArea);
                 proxyData.setSelectSpacePosition(proxyData.selectArea);
               }
               // 接口返回后设置地图缩放和滚动
@@ -1088,6 +1091,7 @@ export default defineComponent({
       getFirstSelectSpace(item: any) {
         let area: any = null;
         let data: any = proxyData.mapData;
+        // debugger;
         if (data && item) {
           let spaceList = data?.spaceList ?? [];
           for (let i = 0; i < spaceList.length; i++) {
@@ -1098,7 +1102,7 @@ export default defineComponent({
                 localStorageSpaceId(
                   proxyData.buildingItem.buildingId,
                   proxyData.floorItem.id,
-                  proxyData.selectArea.spaceId
+                  item.spaceId
                 );
               }
               break;
@@ -1121,7 +1125,7 @@ export default defineComponent({
       },
       // 设备模块初始化地图
       init(item: any) {
-        proxyData.setDefaultSpace(item);
+        // proxyData.setDefaultSpace(item);
         /**
          *缓存建筑对应的楼层
          */
@@ -1170,16 +1174,26 @@ export default defineComponent({
         }
       },
     });
-    // watch(
-    //   props.spaceInfo, (newVal, oldValue) => {
-    //
-    //   }
-    // )
+    watch(
+      props,
+      (newProps: any) => {
+        proxyData.buildingItem.buildingId = newProps.buildingId;
+        proxyData.floorItem.id = newProps.floorId;
+        // proxyData.selectArea.spaceId = newProps.spaceInfo.spaceId;
+      },
+      {
+        deep: false,
+        immediate: true,
+      }
+    );
     onMounted(() => {
-      // proxyData.formateMapData()
-      // proxyData.setMapBoxStyle()
-      // debugger
       let item: any = props.spaceInfo;
+      console.log("props.spaceInfo===")
+      console.log(proxyData.selectArea)
+      console.log(props.spaceInfo)
+      proxyData.buildingItem.buildingId = props.buildingId;
+      proxyData.floorItem.id = props.floorId;
+      // proxyData.selectArea.spaceId = item.spaceId;
       proxyData.init(item);
     });
     return {

+ 10 - 2
src/views/envmonitor/components/Map/index.vue

@@ -4,6 +4,8 @@
       v-if="showMap && floorId"
       :projectId="projectId"
       :floorId="floorId"
+      :spaceInfo="spaceInfo"
+      :buildingId="buildingId"
     ></map-box>
     <space-box
       v-else
@@ -44,6 +46,10 @@ export default defineComponent({
       type: String,
       default: () => "",
     },
+    buildingId: {
+      type: String,
+      default: () => "",
+    },
     floorId: {
       type: String,
       default: () => "",
@@ -71,6 +77,7 @@ export default defineComponent({
         contex.emit("changeSpace", item, 1);
       },
       floorId: props.floorId,
+      spaceInfo: props.spaceInfo,
       /**
        * 获取地图信息
        */
@@ -105,8 +112,9 @@ export default defineComponent({
       (newProps: any) => {
         proxyData.spaceData = newProps.spaceData;
         proxyData.floorId = newProps.floorId;
-        console.log("proxyData.floorId===");
-        console.log(proxyData.floorId);
+        proxyData.spaceInfo = newProps.spaceInfo;
+        // console.log("proxyData.spaceInfo===")
+        // console.log(proxyData.spaceInfo)
         proxyData.getMapInfo();
       },
       {

+ 4 - 3
src/views/envmonitor/index.vue

@@ -187,9 +187,10 @@
     >
       <com-map
         :spaceData="spaceData"
-        :spaceId="spaceInfo.spaceId"
+        :spaceInfo="spaceInfo"
         :projectId="projectId"
         :floorId="floorId"
+        :buildingId="buildingId"
         @changeSpace="changeSpace"
       ></com-map>
     </van-popup>
@@ -1497,6 +1498,7 @@ export default defineComponent({
       // 平板当前空间
       spaceData: spaceData,
       floorId: "",
+      buildingId: "",
       queryWorkSpace() {
         let params: any = {
           criteria: {
@@ -1523,8 +1525,7 @@ export default defineComponent({
             if (item.isMajorSpace) {
               item.active = true;
               proxyData.floorId = item.floorId;
-              console.log("=====")
-              console.log(proxyData.floorId)
+              proxyData.buildingId = item.buildingId;
             } else {
               item.active = false;
             }