|
@@ -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)
|
|
|
})
|
|
|
},
|