|
@@ -302,12 +302,6 @@ export default {
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
- // 清空绘制业务空间
|
|
|
- clearZoneCanvas() {
|
|
|
- this.zoneList.map(t => {
|
|
|
- this.scene.removeItem(t);
|
|
|
- })
|
|
|
- },
|
|
|
// 获取当前分区下的业务空间
|
|
|
getBusinessSpace() {
|
|
|
this.canvasLoading = true
|
|
@@ -341,8 +335,7 @@ export default {
|
|
|
Color: colorArr[i % colorArr.length],
|
|
|
}
|
|
|
})
|
|
|
- this.clearZoneCanvas();
|
|
|
- this.scene.zoneList = [];
|
|
|
+ this.scene.removeAllZone();
|
|
|
this.scene.addZoneList(tempArr);
|
|
|
this.scene.click(this, this.canvasClick);
|
|
|
this.zoneList = this.scene.zoneList;
|
|
@@ -492,7 +485,7 @@ export default {
|
|
|
}
|
|
|
})
|
|
|
// 如果有划分,求交集
|
|
|
- if (this.scene.cutItem) {
|
|
|
+ if (this.scene.cutItem || this.scene.sceneMark) {
|
|
|
zoneObj.Outline = [];
|
|
|
let arr = this.scene.getIntersect();
|
|
|
arr.map(t => {
|
|
@@ -566,7 +559,7 @@ export default {
|
|
|
zoneObj.Outline.push(t.data);
|
|
|
})
|
|
|
// 如果有划分,求交集
|
|
|
- if (this.scene.cutItem) {
|
|
|
+ if (this.scene.cutItem || this.scene.sceneMark) {
|
|
|
zoneObj.Outline = [];
|
|
|
let spaceIntersect = this.scene.getIntersect();
|
|
|
spaceIntersect.map(t => {
|
|
@@ -644,6 +637,10 @@ export default {
|
|
|
},
|
|
|
// 批量创建
|
|
|
groupCreateBSP(spaces) {
|
|
|
+ spaces = spaces.map(t => {
|
|
|
+ t.BIMLocation = this.getAverageVal(t.Outline);
|
|
|
+ return t;
|
|
|
+ })
|
|
|
let pa = {
|
|
|
zone: this.tab.code,
|
|
|
data: {
|
|
@@ -664,6 +661,7 @@ export default {
|
|
|
},
|
|
|
// 单个创建
|
|
|
createSingleBSP(space, IspaceIdList) {
|
|
|
+ space.BIMLocation = space.Outline ? this.getAverageVal(space.Outline) : null;
|
|
|
let pa = {
|
|
|
zone: this.tab.code,
|
|
|
data: {
|
|
@@ -676,11 +674,12 @@ export default {
|
|
|
},
|
|
|
// 更新业务空间区域
|
|
|
updateBSPOutline(zoneObj, IspaceIdList) {
|
|
|
+ zoneObj.BIMLocation = zoneObj.Outline ? this.getAverageVal(zoneObj.Outline) : null;
|
|
|
let pa = {
|
|
|
zone: this.tab.code,
|
|
|
data: {
|
|
|
Content: [zoneObj],
|
|
|
- Projection: ['Outline']
|
|
|
+ Projection: ['Outline', 'BIMLocation']
|
|
|
},
|
|
|
}
|
|
|
updateZone(pa, res => {
|
|
@@ -699,6 +698,24 @@ export default {
|
|
|
this.num = res.Count;
|
|
|
})
|
|
|
},
|
|
|
+ // 计算平均值 作为业务空间BIMLocation
|
|
|
+ getAverageVal(Outline) {
|
|
|
+ let X = 0, Y = 0, Z = 0, len = 0;
|
|
|
+ Outline.map(t => {
|
|
|
+ if (t[0]) {
|
|
|
+ t[0].map(item => {
|
|
|
+ X += item.X;
|
|
|
+ Y += item.Y;
|
|
|
+ Z += item.Z;
|
|
|
+ })
|
|
|
+ len += t[0].length
|
|
|
+ }
|
|
|
+ })
|
|
|
+ X = (X / len).toFixed(2);
|
|
|
+ Y = (Y / len).toFixed(2);
|
|
|
+ Z = (Z / len).toFixed(2);
|
|
|
+ return `${X},${Y},${Z}`
|
|
|
+ },
|
|
|
// canvas 获取焦点
|
|
|
focus() {
|
|
|
document.getElementById(`floorCanvas`).focus()
|