Browse Source

改回临时方案

haojianlong 5 years ago
parent
commit
8dc5bb68b9
1 changed files with 48 additions and 21 deletions
  1. 48 21
      src/components/business_space/newGraphy/graphy.vue

+ 48 - 21
src/components/business_space/newGraphy/graphy.vue

@@ -15,7 +15,8 @@
             width="180px" @select="handleSelect">
             <i class="el-icon-search el-input__icon" slot="suffix" @click="handleSelect"></i>
             <template slot-scope="{ item }">
-              <div class="name" style="position: relative;padding-right:40px;overflow: hidden;text-overflow:ellipsis;white-space: nowrap;" :title="item.data.RoomLocalName">
+              <div class="name" style="position: relative;padding-right:40px;overflow: hidden;text-overflow:ellipsis;white-space: nowrap;"
+                :title="item.data.RoomLocalName">
                 {{ item.data.RoomLocalName }}
                 <span class="addr" style="position: absolute;right:0;color:#409EFF;">定位</span>
               </div>
@@ -477,33 +478,59 @@ export default {
     },
     // 根据图创建新的业务空间-弹窗返回确认创建
     createRoom(val) {
-      const zoneObj = { Outline: [], Height: 0 }, IspaceIdList = [];
-      let spaces = {};
+      // 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;
+      })
+      // 如果有划分,求交集
       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 => {
+        zoneObj.Outline = [];
+        let arr = this.scene.getIntersect();
+        arr.map(t => {
           let temp = t.map(item => {
             return {
-              X: 1*item.x.toFixed(2),
-              Y: -item.y.toFixed(2),
+              X: 1 * item.x,
+              Y: -item.y,
               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;
       }
@@ -531,7 +558,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
             }
@@ -646,7 +673,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
             }