Sfoglia il codice sorgente

fix: 地图数据处理

chenzhen2 2 anni fa
parent
commit
a5c50784f3

+ 22 - 3
src/views/envmonitor/components/Map/MapBox.vue

@@ -19,6 +19,7 @@
             area.canClick ? '' : 'click-disable',
             selectArea.id === area.id ? 'select' : '',
             isSetSpace ? 'use-select' : '',
+            area.disabled ? 'space-disable-box' : '',
           ]"
           @click.stop="checkSpace(area)"
           :style="{
@@ -156,6 +157,10 @@ export default defineComponent({
       type: String,
       default: () => "",
     },
+    spaceData: {
+      type: Array,
+      default: () => [],
+    },
     spaceInfo: {
       type: Object,
       default: () => {},
@@ -573,6 +578,7 @@ export default defineComponent({
        * 格式化地图数据
        */
       formateMapData() {
+        let spaceData: any = props.spaceData;
         let data: any = proxyData.mapData;
         if (data) {
           proxyData.setSpaceScale();
@@ -589,6 +595,16 @@ export default defineComponent({
             item.height = item.height * proxyData.comMapScale;
             item.top = item.top * proxyData.comMapScale;
             item.left = item.left * proxyData.comMapScale;
+            let flag: any = true;
+            for (let j = 0; j < spaceData.length; j++) {
+              if (item.spaceId === spaceData[j].spaceId) {
+                flag = false;
+                break;
+              }
+            }
+            if (flag) {
+              item.disabled = true;
+            }
             // item.canClick = !item.canClick
             proxyData.setSpaceIcon(item);
           }
@@ -1189,9 +1205,9 @@ export default defineComponent({
     );
     onMounted(() => {
       let item: any = props.spaceInfo;
-      console.log("props.spaceInfo===")
-      console.log(proxyData.selectArea)
-      console.log(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;
@@ -1220,6 +1236,9 @@ export default defineComponent({
     position: absolute;
     padding: 5px;
   }
+  .space-disable-box {
+    opacity: 0.4;
+  }
 
   .space {
     position: relative;

+ 1 - 0
src/views/envmonitor/components/Map/index.vue

@@ -2,6 +2,7 @@
   <div class="map-home">
     <map-box
       v-if="showMap && floorId"
+      :spaceData="spaceData"
       :projectId="projectId"
       :floorId="floorId"
       :spaceInfo="spaceInfo"