|
@@ -10,13 +10,15 @@
|
|
|
<el-button v-show="isEdit" size="small" @click="saveEdit" style="float:right">保存</el-button>
|
|
|
<el-button v-show="isEdit" size="small" @click="cancelEdit" style="float:right">取消</el-button>
|
|
|
</div>
|
|
|
- <addSpaceDialog :dialogVisible.sync="dialogVisible" ref="addSpaceDialog" @refresh="refresh" :params="cenoteObj" :spaceType="spaceType"
|
|
|
- :floorType="floorType"></addSpaceDialog>
|
|
|
+ <addSpaceDialog :dialogVisible.sync="dialogVisible" ref="addSpaceDialog" @refresh="refresh"
|
|
|
+ :params="cenoteObj" :spaceType="spaceType"
|
|
|
+ :floorType="floorType"></addSpaceDialog>
|
|
|
</div>
|
|
|
<el-badge :is-dot="showSpaceDot" style="margin-left:15px;">
|
|
|
<label style="line-height:32px;">业务空间类型:</label>
|
|
|
- <el-cascader v-model="space" placeholder="请选择业务空间" :props="{value:'Code',label:'Name',children:'ZoneType'}" :options="spaceList"
|
|
|
- @change="changeSpace" style="margin-left:15px;"></el-cascader>
|
|
|
+ <el-cascader v-model="space" placeholder="请选择业务空间" :props="{value:'Code',label:'Name',children:'ZoneType'}"
|
|
|
+ :options="spaceList"
|
|
|
+ @change="changeSpace" style="margin-left:15px;"></el-cascader>
|
|
|
</el-badge>
|
|
|
</div>
|
|
|
<div class="saga-build-tab">
|
|
@@ -29,21 +31,25 @@
|
|
|
<el-badge :is-dot="showBuildDot">
|
|
|
<label style="line-height:32px;padding: 0 10px;">所属建筑:</label>
|
|
|
<el-select v-model="building" placeholder="请选择建筑" @change="changeBuilding" v-loading="buildingLoading">
|
|
|
- <el-option v-for="item in buildingList" :key="item.value" :label="item.BuildLocalName?item.BuildLocalName:item.BuildName"
|
|
|
- :value="item.BuildID"></el-option>
|
|
|
+ <el-option v-for="item in buildingList" :key="item.value"
|
|
|
+ :label="item.BuildLocalName?item.BuildLocalName:item.BuildName"
|
|
|
+ :value="item.BuildID"></el-option>
|
|
|
</el-select>
|
|
|
</el-badge>
|
|
|
- <el-switch v-if="!cenoteObj.onlyRead" style="margin-left:15px;" v-model="isAI" @change="handleChangeAI" active-text="打开AI">
|
|
|
+ <el-switch v-if="!cenoteObj.onlyRead" style="margin-left:15px;" v-model="isAI" @change="handleChangeAI"
|
|
|
+ active-text="打开AI">
|
|
|
</el-switch>
|
|
|
<div style="height:calc(100% - 42px);margin:10px 0 0 0;width:100%;">
|
|
|
- <el-row style="height:100%;margin:0;width:55%;position:relative;display:inline-block;border:1px solid #e4e4e4;">
|
|
|
+ <el-row
|
|
|
+ style="height:100%;margin:0;width:55%;position:relative;display:inline-block;border:1px solid #e4e4e4;">
|
|
|
<el-col :span="4" style="height:100%;border-right:1px solid #e4e4e4;">
|
|
|
<el-scrollbar style="height:100%;">
|
|
|
<div class="floor" style="height:100%;text-align:center;">
|
|
|
<span class="floor-item" style="border-bottom:1px solid #e4e4e4;">楼 层</span>
|
|
|
<div v-if="building" v-loading="buildingLoading">
|
|
|
- <span class="floor-item" @click="changeFloor(item)" :class="{floorItemChoose:(item.FloorID == floor)}"
|
|
|
- v-for="item in buildingObj.Floor" :key="item.FloorID">{{ item.FloorLocalName }}</span>
|
|
|
+ <span class="floor-item" @click="changeFloor(item)"
|
|
|
+ :class="{floorItemChoose:(item.FloorID == floor)}"
|
|
|
+ v-for="item in buildingObj.Floor" :key="item.FloorID">{{ item.FloorLocalName }}</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
</el-scrollbar>
|
|
@@ -53,15 +59,18 @@
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<div class="elevation-box">
|
|
|
- <elevation-map ref="elevationMap" :onlyRead="cenoteObj.onlyRead" :isEdit="isEdit" :isAI="isAI" @elevationChecked="handleCheckedSpace"
|
|
|
- @elevationUncheck="handleUncheckSpace" :params="{BuildingId: building, ObjectType: ObjectType, ShaftId: $route.query.ShaftId}">
|
|
|
+ <elevation-map ref="elevationMap" :onlyRead="cenoteObj.onlyRead" :isEdit="isEdit" :isAI="isAI"
|
|
|
+ @elevationChecked="handleCheckedSpace"
|
|
|
+ @elevationUncheck="handleUncheckSpace"
|
|
|
+ :params="{BuildingId: building, ObjectType: ObjectType, ShaftId: $route.query.ShaftId}">
|
|
|
</elevation-map>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
<div v-show="isMyTab == 2" class="data-item">
|
|
|
- <related-spaceList :space="ObjectType" :buildingList="buildingList" :spaceType="spaceType" :floorType="floorType" ref="relatedSpacelist">
|
|
|
+ <related-spaceList :space="ObjectType" :buildingList="buildingList" :spaceType="spaceType"
|
|
|
+ :floorType="floorType" ref="relatedSpacelist">
|
|
|
</related-spaceList>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -83,6 +92,7 @@ import {
|
|
|
import cenoteGraphy from '@/components/ledger/lib/cenoteGraphy'
|
|
|
import { mapGetters } from 'vuex'
|
|
|
import { buildingQuery } from '@/api/object/build';
|
|
|
+
|
|
|
export default {
|
|
|
data() {
|
|
|
return {
|
|
@@ -117,9 +127,7 @@ export default {
|
|
|
},
|
|
|
...mapGetters("layout", ["projectId"])
|
|
|
},
|
|
|
- props: {
|
|
|
-
|
|
|
- },
|
|
|
+ props: {},
|
|
|
components: {
|
|
|
spaceSelect,
|
|
|
relatedSpaceList,
|
|
@@ -145,17 +153,17 @@ export default {
|
|
|
this.showDefaultSpace();
|
|
|
});
|
|
|
} else {
|
|
|
- let params1 = {Cascade: [{ Name: 'zoneType', Filters: `ProjectId='${this.projectId}'` }]},
|
|
|
- params2 = {shaftId: this.$route.query.ShaftId};
|
|
|
+ let params1 = { cascade: [{ name: 'zoneType', filters: `projectId='${this.projectId}'` }] },
|
|
|
+ params2 = { shaftId: this.$route.query.ShaftId };
|
|
|
let promise1 = new Promise((resolve, reject) => {
|
|
|
- queryAllZoneType(params1, res => {
|
|
|
- resolve(res)
|
|
|
- })
|
|
|
+ queryAllZoneType(params1, res => {
|
|
|
+ resolve(res)
|
|
|
+ })
|
|
|
})
|
|
|
let promise2 = new Promise((resolve, reject) => {
|
|
|
- shaftSpaceTypeQuery(params2, res => {
|
|
|
- resolve(res)
|
|
|
- })
|
|
|
+ shaftSpaceTypeQuery(params2, res => {
|
|
|
+ resolve(res)
|
|
|
+ })
|
|
|
})
|
|
|
Promise.all([promise1, promise2]).then(values => {
|
|
|
let val1 = values[0], val2 = values[1]
|
|
@@ -175,7 +183,9 @@ export default {
|
|
|
//默认显示默认分区,无默认分区显示第一个分区
|
|
|
showDefaultSpace() {
|
|
|
if (this.spaceList.length && this.cenoteObj.onlyRead) {
|
|
|
- this.space = this.spaceList.find((item) => { return item.Code == "GeneralZone" }) ? ["GeneralZone"] : [this.spaceList[0].Code];
|
|
|
+ this.space = this.spaceList.find((item) => {
|
|
|
+ return item.Code == "GeneralZone"
|
|
|
+ }) ? ["GeneralZone"] : [this.spaceList[0].Code];
|
|
|
this.ObjectType = this.space[0];
|
|
|
}
|
|
|
//处理空间类型
|
|
@@ -213,8 +223,7 @@ export default {
|
|
|
})
|
|
|
this.handleBuildingData();
|
|
|
});
|
|
|
- }
|
|
|
- else {
|
|
|
+ } else {
|
|
|
let param = {
|
|
|
cascade: [
|
|
|
{
|
|
@@ -281,7 +290,7 @@ export default {
|
|
|
this.floor = '';
|
|
|
this.buildingList = [];
|
|
|
this.building = '';
|
|
|
- this.changeFloor({FloorID: ''});
|
|
|
+ this.changeFloor({ FloorID: '' });
|
|
|
this.loadBuildingData();
|
|
|
this.calculateRelation();
|
|
|
},
|
|
@@ -303,9 +312,9 @@ export default {
|
|
|
//更换楼层
|
|
|
changeFloor(floorObj) {
|
|
|
debugger
|
|
|
- this.buildFloorName = `${this.buildingObj.BuildLocalName?this.buildingObj.BuildLocalName:
|
|
|
- this.buildingObj.BuildName?this.buildingObj.BuildName:""}-${floorObj.FloorLocalName?
|
|
|
- floorObj.FloorLocalName:floorObj.FloorName?floorObj.FloorName:""}`
|
|
|
+ this.buildFloorName = `${this.buildingObj.BuildLocalName ? this.buildingObj.BuildLocalName :
|
|
|
+ this.buildingObj.BuildName ? this.buildingObj.BuildName : ""}-${floorObj.FloorLocalName ?
|
|
|
+ floorObj.FloorLocalName : floorObj.FloorName ? floorObj.FloorName : ""}`
|
|
|
this.floor = floorObj.FloorID;
|
|
|
let buildfloor = [this.building, floorObj.FloorID]
|
|
|
this.$refs.cenotegraphy.getFloorMap(buildfloor, this.ObjectType)
|
|
@@ -386,28 +395,35 @@ export default {
|
|
|
flex-direction: column;
|
|
|
border: 1px solid #dfe6ec;
|
|
|
background: #fff;
|
|
|
+
|
|
|
.header {
|
|
|
padding-bottom: 10px;
|
|
|
border-bottom: 1px solid #e4e4e4;
|
|
|
+
|
|
|
span {
|
|
|
line-height: 33px;
|
|
|
margin-left: 15px;
|
|
|
}
|
|
|
+
|
|
|
/deep/ .buildFloor {
|
|
|
line-height: 32px;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
.spaceTypes {
|
|
|
.types {
|
|
|
float: left;
|
|
|
width: calc(100% - 200px);
|
|
|
+
|
|
|
/deep/ .el-tabs__item.is-top {
|
|
|
border-top: 2px solid transparent;
|
|
|
+
|
|
|
&.is-active {
|
|
|
border-top: 2px solid #409eff;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
.deleBtn {
|
|
|
float: left;
|
|
|
width: 200px;
|
|
@@ -417,10 +433,12 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
.saga-build-tab {
|
|
|
position: absolute;
|
|
|
left: 50%;
|
|
|
transform: translateX(-50%);
|
|
|
+
|
|
|
.tab-main {
|
|
|
float: left;
|
|
|
width: 120px;
|
|
@@ -433,6 +451,7 @@ export default {
|
|
|
text-align: center;
|
|
|
cursor: pointer;
|
|
|
overflow: hidden;
|
|
|
+
|
|
|
i {
|
|
|
font-size: 18px;
|
|
|
padding-right: 10px;
|
|
@@ -440,23 +459,28 @@ export default {
|
|
|
line-height: 30px;
|
|
|
margin-left: 10px;
|
|
|
}
|
|
|
+
|
|
|
span {
|
|
|
line-height: 30px;
|
|
|
float: left;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
.tab-active {
|
|
|
background-color: #409eff;
|
|
|
color: #fff;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
.data-item {
|
|
|
height: calc(100% - 44px);
|
|
|
padding: 10px 0px;
|
|
|
box-sizing: border-box;
|
|
|
+
|
|
|
/deep/ .is-horizontal {
|
|
|
display: none;
|
|
|
}
|
|
|
+
|
|
|
.elevation-box {
|
|
|
height: 100%;
|
|
|
width: calc(45% - 14px);
|
|
@@ -467,15 +491,18 @@ export default {
|
|
|
overflow: auto;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
.floor-item {
|
|
|
padding: 10px 10px;
|
|
|
display: block;
|
|
|
margin: 0px;
|
|
|
cursor: pointer;
|
|
|
}
|
|
|
+
|
|
|
.floorItemChoose {
|
|
|
background: #e4e4e4;
|
|
|
}
|
|
|
+
|
|
|
/deep/ .el-scrollbar__wrap {
|
|
|
overflow-x: hidden;
|
|
|
}
|