Browse Source

Merge branch 'dev' of http://39.106.8.246:3003/web/ibms into dev

shaun-sheep 5 years ago
parent
commit
96f73c7e11

+ 2 - 1
src/components/business_space/business/handsontable.vue

@@ -584,7 +584,8 @@ export default {
           }
         })
         let updateParam = {
-          Content: obj
+          Content: obj,
+          Projection: param.data.Projection
         };
         zoneUpdate(updateParam, res => {
           this.$message.success('更新成功')

+ 28 - 7
src/components/business_space/newGraphy/graphy.vue

@@ -582,7 +582,7 @@ export default {
         spaces = this.scene.getZoneDifference();
       }
       for (let key in spaces) {
-        spaces[key].map(t => {
+        spaces[key] = spaces[key].map(t => {
           let temp = t.map(item => {
             return {
               X: 1 * item.x.toFixed(2),
@@ -590,8 +590,10 @@ export default {
               Z: 0
             }
           })
-          zoneObj.Outline.push([temp]);
+          return temp;
         })
+        let newarr = this.makeMaxAreaFirst(spaces[key])
+        zoneObj.Outline.push(newarr);
         let curISP = this.sourceIdToISP[key];
         if (curISP) {
           curISP && IspaceIdList.push(curISP.RoomID);
@@ -650,7 +652,7 @@ export default {
         spaces = this.scene.getZoneDifference();
       }
       for (let key in spaces) {
-        spaces[key].map(t => {
+        spaces[key] = spaces[key].map(t => {
           let temp = t.map(item => {
             return {
               X: 1 * item.x.toFixed(2),
@@ -658,8 +660,10 @@ export default {
               Z: 0
             }
           })
-          zoneObj.Outline.push([temp]);
+          return temp;
         })
+        let newarr = this.makeMaxAreaFirst(spaces[key])
+        zoneObj.Outline.push(newarr);
         let curISP = this.sourceIdToISP[key];
         if (curISP) {
           curISP && IspaceIdList.push(curISP.RoomID);
@@ -820,7 +824,7 @@ export default {
       }
       for (let key in spaces) {
         let zoneObj = { Outline: [], Height: 0 }
-        spaces[key].map(t => {
+        spaces[key] = spaces[key].map(t => {
           let temp = t.map(item => {
             return {
               X: 1 * item.x.toFixed(2),
@@ -828,8 +832,10 @@ export default {
               Z: 0
             }
           })
-          zoneObj.Outline.push([temp]);
+          return temp;
         })
+        let newarr = this.makeMaxAreaFirst(spaces[key])
+        zoneObj.Outline.push(newarr);
         if (!zoneObj.Outline.length) {
           continue
         }
@@ -1023,7 +1029,8 @@ export default {
       zoneObj.BuildingId = this.buildFloor[0];
       zoneObj.FloorId = this.buildFloor[1];
       let pa = {
-        Content: [zoneObj]
+        Content: [zoneObj],
+        Projection: ['BIMLocation', 'ObjectType', 'Outline', 'Height', 'BuildingId', 'FloorId']
       }
       zoneUpdate(pa, res => {
         this.updateZoneBF(zoneObj, IspaceIdList);
@@ -1142,6 +1149,20 @@ export default {
       let scale = this.view.scale;
       this.view.scaleByPoint(val / scale, this.canvasWidth / 2, this.canvasHeight / 2);
     },
+    // 给定多个轮廓线的数据,计算得到面积最大值,并把它放置数组第一项
+    // list {XYZ}[][]
+    makeMaxAreaFirst(list) {
+      let arr = [], area = 0;
+      for (let i = 0; i < list.length; i++) {
+        let temp = this.getarea(list[i])
+        if (temp > area) {
+          arr.unshift(list[i])
+        } else {
+          arr.push(list[i])
+        }
+      }
+      return arr;
+    }
   },
   filters: {
     cutString: function (str, len) {