Browse Source

修改创建业务空间 数据太多无法创建问题

haojianlong 5 years ago
parent
commit
b1a0e50aea
2 changed files with 21 additions and 48 deletions
  1. 1 1
      package.json
  2. 20 47
      src/components/business_space/newGraphy/graphy.vue

+ 1 - 1
package.json

@@ -36,7 +36,7 @@
     "@saga-web/base": "2.1.9",
     "@saga-web/draw": "2.1.61",
     "@saga-web/graphy": "2.1.34",
-    "@saga-web/cad-engine": "2.0.458"
+    "@saga-web/cad-engine": "2.0.461"
   },
   "devDependencies": {
     "ajv": "^6.9.1",

+ 20 - 47
src/components/business_space/newGraphy/graphy.vue

@@ -477,60 +477,33 @@ export default {
     },
     // 根据图创建新的业务空间-弹窗返回确认创建
     createRoom(val) {
-      // const zoneObj = { Outline: [], Height: 0 }, IspaceIdList = [];
-      // let spaces = {};
-      // 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];
-      //   curISP && IspaceIdList.push(curISP.RoomID);
-      //   zoneObj.Height = zoneObj.Height == 0 ? curISP.Height : zoneObj.Height > curISP.Height ? curISP.Height : zoneObj.Height;
-      // }
-
-      // 数据计算导致浏览器奔溃,临时注释
-      let zoneObj = { Outline: [], Height: 0 }, 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];
-        curISP && IspaceIdList.push(curISP.RoomID);
-        zoneObj.Height = zoneObj.Height == 0 ? curISP.Height : zoneObj.Height > curISP.Height ? curISP.Height : zoneObj.Height;
-      })
-      // 如果有划分,求交集
+      const zoneObj = { Outline: [], Height: 0 }, IspaceIdList = [];
+      let spaces = {};
       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: 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];
+        curISP && IspaceIdList.push(curISP.RoomID);
+        zoneObj.Height = zoneObj.Height == 0 ? curISP.Height : zoneObj.Height > curISP.Height ? curISP.Height : zoneObj.Height;
       }
-      // 至此
       if (!zoneObj.Outline.length) {
         zoneObj.Outline = null;
       }
@@ -558,7 +531,7 @@ export default {
         spaces[key].map(t => {
           let temp = t.map(item => {
             return {
-              X: 1 * item.x.toFixed(2),
+              X: 1*item.x.toFixed(2),
               Y: -item.y.toFixed(2),
               Z: 0
             }
@@ -673,7 +646,7 @@ export default {
         spaces[key].map(t => {
           let temp = t.map(item => {
             return {
-              X: 1 * item.x.toFixed(2),
+              X: 1*item.x.toFixed(2),
               Y: -item.y.toFixed(2),
               Z: 0
             }