Bläddra i källkod

修改从未关联中创建业务空间 建筑楼层未修改问题

haojianlong 5 år sedan
förälder
incheckning
7a00d9f478

+ 63 - 49
src/components/business_space/newGraphy/graphy.vue

@@ -132,7 +132,8 @@ import {
   zoneCount,
   zoneCreate,
   zoneQuery,
-  zoneUpdate
+  zoneUpdate,
+  handleZoneUpdateBd
 } from "@/api/scan/request"
 
 export default {
@@ -635,66 +636,66 @@ export default {
     },
     // 根据图从未关联平面图的业务空间中选择--按钮返回关联信号
     createFromUnrelated(zoneObj) {
-      // zoneObj.Outline = [];
-      // zoneObj.Height = 0;
-      // let spaces = {}, IspaceIdList = [];
-      // if (this.scene.cutItem || this.scene.sceneMark) {
-      //   // 如果有划分,求交集
-      //   // 格式为Poly(先与业务空间求差集)
-      //   const obj = this.scene.getZoneDifference(true);
-      //   // 差集与楼层平面图或用户划分区域求交集
-      //   spaces = this.scene.getPloyIntersect(obj)
-      // } else {
-      //   // 格式为SPoint[]
-      //   spaces = this.scene.getZoneDifference();
-      // }
-      // for (let key in spaces) {
-      //   spaces[key].map(t => {
-      //     let temp = t.map(item => {
-      //       return {
-      //         X: 1 * item.x.toFixed(2),
-      //         Y: -item.y.toFixed(2),
-      //         Z: 0
-      //       }
-      //     })
-      //     zoneObj.Outline.push([temp]);
-      //   })
-      //   let curISP = this.sourceIdToISP[key];
-      // if(curISP){
-      //   curISP && IspaceIdList.push(curISP.RoomID);
-      //   zoneObj.Height = zoneObj.Height == 0 ? curISP.Height : zoneObj.Height > curISP.Height ? curISP.Height : zoneObj.Height;
-      // }
-      // }
-
-      // 改回之前逻辑
       zoneObj.Outline = [];
       zoneObj.Height = 0;
       let spaces = {}, IspaceIdList = [];
-      let selectSpaces = this.scene.getSelectedSpaces();
-      selectSpaces.map(t => {
-        zoneObj.Outline.push(t.data.OutLine);
-        let key = t.data.SourceId;
-        let curISP = this.sourceIdToISP[key];
-        if (curISP) {
-          curISP && IspaceIdList.push(curISP.RoomID);
-          zoneObj.Height = zoneObj.Height == 0 ? curISP.Height : zoneObj.Height > curISP.Height ? curISP.Height : zoneObj.Height;
-        }
-      })
-      // 如果有划分,求交集
       if (this.scene.cutItem || this.scene.sceneMark) {
-        zoneObj.Outline = [];
-        let arr = this.scene.getIntersect();
-        arr.map(t => {
+        // 如果有划分,求交集
+        // 格式为Poly(先与业务空间求差集)
+        const obj = this.scene.getZoneDifference(true);
+        // 差集与楼层平面图或用户划分区域求交集
+        spaces = this.scene.getPloyIntersect(obj)
+      } else {
+        // 格式为SPoint[]
+        spaces = this.scene.getZoneDifference();
+      }
+      for (let key in spaces) {
+        spaces[key].map(t => {
           let temp = t.map(item => {
             return {
-              X: 1 * item.x,
-              Y: -item.y,
+              X: 1 * item.x.toFixed(2),
+              Y: -item.y.toFixed(2),
               Z: 0
             }
           })
           zoneObj.Outline.push([temp]);
         })
+        let curISP = this.sourceIdToISP[key];
+        if (curISP) {
+          curISP && IspaceIdList.push(curISP.RoomID);
+          zoneObj.Height = zoneObj.Height == 0 ? curISP.Height : zoneObj.Height > curISP.Height ? curISP.Height : zoneObj.Height;
+        }
       }
+
+      // 改回之前逻辑
+      // zoneObj.Outline = [];
+      // zoneObj.Height = 0;
+      // let spaces = {}, IspaceIdList = [];
+      // let selectSpaces = this.scene.getSelectedSpaces();
+      // selectSpaces.map(t => {
+      //   zoneObj.Outline.push(t.data.OutLine);
+      //   let key = t.data.SourceId;
+      //   let curISP = this.sourceIdToISP[key];
+      //   if (curISP) {
+      //     curISP && IspaceIdList.push(curISP.RoomID);
+      //     zoneObj.Height = zoneObj.Height == 0 ? curISP.Height : zoneObj.Height > curISP.Height ? curISP.Height : zoneObj.Height;
+      //   }
+      // })
+      // // 如果有划分,求交集
+      // if (this.scene.cutItem || this.scene.sceneMark) {
+      //   zoneObj.Outline = [];
+      //   let arr = this.scene.getIntersect();
+      //   arr.map(t => {
+      //     let temp = t.map(item => {
+      //       return {
+      //         X: 1 * item.x,
+      //         Y: -item.y,
+      //         Z: 0
+      //       }
+      //     })
+      //     zoneObj.Outline.push([temp]);
+      //   })
+      // }
       if (!zoneObj.Outline.length) {
         zoneObj.Outline = null;
       }
@@ -1019,10 +1020,23 @@ export default {
       let ObjectType = this.tab.code == 'OtherZone' ? this.OtherValue : this.tab.code;
       zoneObj.BIMLocation = zoneObj.Outline ? this.getAverageVal(zoneObj.Outline) : null;
       zoneObj.ObjectType = ObjectType;
+      zoneObj.BuildingId = this.buildFloor[0];
+      zoneObj.FloorId = this.buildFloor[1];
       let pa = {
         Content: [zoneObj]
       }
       zoneUpdate(pa, res => {
+        this.updateZoneBF(zoneObj, IspaceIdList);
+      })
+    },
+    // 从未关联平面图的业务空间中选择时更新业务空间建筑楼层
+    updateZoneBF(zoneObj, IspaceIdList) {
+      let pa = [{
+        Type: zoneObj.ObjectType,
+        SpaceId: zoneObj.RoomID,
+        Id: zoneObj.FloorId,
+      }]
+      handleZoneUpdateBd(pa, res => {
         this.relationInBSPandISP(zoneObj.RoomID, IspaceIdList)
       })
     },

+ 1 - 1
src/views/ledger/spacelist/index.vue

@@ -217,7 +217,7 @@ export default {
 
           this.buildFloorSelectd = this.childBackParam.buildFloorSelectd;
           this.isMyTab = this.childBackParam.isMyTab;
-        } else {
+        } else if (this.activeName == '0') {
           this.activeName = 'GeneralZone';
         }
       })