|
@@ -4,19 +4,28 @@
|
|
<template>
|
|
<template>
|
|
<div id="businessSpace">
|
|
<div id="businessSpace">
|
|
<!------------------------ 头部弹窗,选择楼层信息 -------------->
|
|
<!------------------------ 头部弹窗,选择楼层信息 -------------->
|
|
- <no-model-dialog :param="param" title="选择要进行空间管理的楼层" :isShow="floor" @close="close"></no-model-dialog>
|
|
|
|
|
|
+ <!-- <no-model-dialog :param="param" title="选择要进行空间管理的楼层" :isShow="floor" @close="close"></no-model-dialog> -->
|
|
<influence-dialog ref="influence" :param="param" :tabsList="tabsList" title="受元空间变化影响的业务空间" :isShow="floor"></influence-dialog>
|
|
<influence-dialog ref="influence" :param="param" :tabsList="tabsList" title="受元空间变化影响的业务空间" :isShow="floor"></influence-dialog>
|
|
<details-dialog ref="details" @del="delSuccess" :param="param" :tabsList="tabsList" title="业务空间详情" :isShow="floor" :activeTabType="activeTabType"></details-dialog>
|
|
<details-dialog ref="details" @del="delSuccess" :param="param" :tabsList="tabsList" title="业务空间详情" :isShow="floor" :activeTabType="activeTabType"></details-dialog>
|
|
<not-related ref="notRelated" @createSuccess="createSuccess" :isShow="floor"></not-related>
|
|
<not-related ref="notRelated" @createSuccess="createSuccess" :isShow="floor"></not-related>
|
|
<facility-dialog ref="facility" :activeTabType="activeTabType" :isShow="floor"></facility-dialog>
|
|
<facility-dialog ref="facility" :activeTabType="activeTabType" :isShow="floor"></facility-dialog>
|
|
<!--------- 页面头部 -------------->
|
|
<!--------- 页面头部 -------------->
|
|
<div class="saga-title">
|
|
<div class="saga-title">
|
|
- <div class="saga-build-mess">
|
|
|
|
|
|
+ <!-- <div class="saga-build-mess">
|
|
<p>
|
|
<p>
|
|
<i class="iconfont icon-jianzhu"></i> {{buildMess.buildName}} - {{buildMess.name}}
|
|
<i class="iconfont icon-jianzhu"></i> {{buildMess.buildName}} - {{buildMess.name}}
|
|
</p>
|
|
</p>
|
|
<el-button class="saga-btn" type="text" @click="changeShow">切换楼层</el-button>
|
|
<el-button class="saga-btn" type="text" @click="changeShow">切换楼层</el-button>
|
|
- </div>
|
|
|
|
|
|
+ </div> -->
|
|
|
|
+ <div class="saga-build-mess">
|
|
|
|
+ 建筑楼层:
|
|
|
|
+ <el-cascader
|
|
|
|
+ :options="options"
|
|
|
|
+ v-model="buildMess.selectd"
|
|
|
|
+ :props="props"
|
|
|
|
+ @change="close">
|
|
|
|
+ </el-cascader>
|
|
|
|
+ </div>
|
|
<div class="saga-build-tab">
|
|
<div class="saga-build-tab">
|
|
<div class="tab-main" @click="tabList(1)" :class="isMyTab == 1 ? 'tab-active' : ''">
|
|
<div class="tab-main" @click="tabList(1)" :class="isMyTab == 1 ? 'tab-active' : ''">
|
|
<i class="iconfont icon-tupian"></i>
|
|
<i class="iconfont icon-tupian"></i>
|
|
@@ -31,28 +40,28 @@
|
|
<div v-show="isMyTab == 1" class="saga-business-sapce-main">
|
|
<div v-show="isMyTab == 1" class="saga-business-sapce-main">
|
|
<el-tabs v-model="activeName" @tab-click="tab1Click">
|
|
<el-tabs v-model="activeName" @tab-click="tab1Click">
|
|
<template v-for="(item,index) in tabsList">
|
|
<template v-for="(item,index) in tabsList">
|
|
- <el-tab-pane :name="item.code" :key="index" :disabled="item.code > 3">
|
|
|
|
- <span slot="label">{{item.name}}</span>
|
|
|
|
- <graphy
|
|
|
|
- @getSp="checkSpace"
|
|
|
|
- @dimension="checkSpace"
|
|
|
|
- @businessDetails="getBuinessDetails"
|
|
|
|
- :ref="'graphy' + item.code"
|
|
|
|
- :canvasId="item.code"
|
|
|
|
- ></graphy>
|
|
|
|
- </el-tab-pane>
|
|
|
|
- </template>
|
|
|
|
|
|
+ <el-tab-pane :name="item.code" :key="index" :disabled="item.code > 3">
|
|
|
|
+ <span slot="label">{{item.name}}</span>
|
|
|
|
+ <graphy
|
|
|
|
+ @getSp="checkSpace"
|
|
|
|
+ @dimension="checkSpace"
|
|
|
|
+ @businessDetails="getBuinessDetails"
|
|
|
|
+ :ref="'graphy' + item.code"
|
|
|
|
+ :canvasId="item.code"
|
|
|
|
+ ></graphy>
|
|
|
|
+ </el-tab-pane>
|
|
|
|
+</template>
|
|
</el-tabs>
|
|
</el-tabs>
|
|
<!-- <space-graphy @dimension="checkSpace" :tabsList="tabsList" ref="graphy" :param="param"></space-graphy> -->
|
|
<!-- <space-graphy @dimension="checkSpace" :tabsList="tabsList" ref="graphy" :param="param"></space-graphy> -->
|
|
</div>
|
|
</div>
|
|
<div v-show="isMyTab == 2" class="saga-business-sapce-main">
|
|
<div v-show="isMyTab == 2" class="saga-business-sapce-main">
|
|
<el-tabs v-model="activeName" @tab-click="handleClick">
|
|
<el-tabs v-model="activeName" @tab-click="handleClick">
|
|
- <template v-for="(item,index) in tabsList">
|
|
|
|
- <el-tab-pane :name="item.code" :key="index" :disabled="item.code > 3">
|
|
|
|
- <span slot="label">{{item.name}}</span>
|
|
|
|
- <handsontable-main @lookEqu="lookEqu" :ref="'handsontable' + item.code" :id="'handsontable' + item.code" :param="param"></handsontable-main>
|
|
|
|
- </el-tab-pane>
|
|
|
|
- </template>
|
|
|
|
|
|
+<template v-for="(item,index) in tabsList">
|
|
|
|
+ <el-tab-pane :name="item.code" :key="index" :disabled="item.code > 3">
|
|
|
|
+ <span slot="label">{{item.name}}</span>
|
|
|
|
+ <handsontable-main @lookEqu="lookEqu" :ref="'handsontable' + item.code" :id="'handsontable' + item.code" :param="param"></handsontable-main>
|
|
|
|
+ </el-tab-pane>
|
|
|
|
+</template>
|
|
</el-tabs>
|
|
</el-tabs>
|
|
<!-- <space-handsontable :tabsList="tabsList" ref="spaceTable" :param="param"></space-handsontable> -->
|
|
<!-- <space-handsontable :tabsList="tabsList" ref="spaceTable" :param="param"></space-handsontable> -->
|
|
</div>
|
|
</div>
|
|
@@ -71,8 +80,10 @@
|
|
import {
|
|
import {
|
|
getTableHeader,
|
|
getTableHeader,
|
|
getAllbusiness,
|
|
getAllbusiness,
|
|
- getBussTypes
|
|
|
|
|
|
+ getBussTypes,
|
|
|
|
+ getSpaceFloor
|
|
} from "@/api/scan/request";
|
|
} from "@/api/scan/request";
|
|
|
|
+ import tools from '@/utils/scan/tools'
|
|
import {
|
|
import {
|
|
mapGetters,
|
|
mapGetters,
|
|
mapActions
|
|
mapActions
|
|
@@ -98,7 +109,7 @@
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
floor: {
|
|
floor: {
|
|
- dialogVisible: true, //选择楼层弹窗
|
|
|
|
|
|
+ // dialogVisible: true, //选择楼层弹窗
|
|
influence: false, //受影响的业务空间弹窗
|
|
influence: false, //受影响的业务空间弹窗
|
|
details: false, //详情弹窗
|
|
details: false, //详情弹窗
|
|
notRelated: false,
|
|
notRelated: false,
|
|
@@ -111,11 +122,12 @@
|
|
},
|
|
},
|
|
buildMess: {
|
|
buildMess: {
|
|
name: "--",
|
|
name: "--",
|
|
- code: "Fl110108000327d8f006c39f49feb40e24a7ef223232",
|
|
|
|
|
|
+ code: "",
|
|
|
|
+ selectd: [],
|
|
map: "Fl110108000327d8f006c39f49feb40e24a7ef223232181009102258bim.json",
|
|
map: "Fl110108000327d8f006c39f49feb40e24a7ef223232181009102258bim.json",
|
|
isChild: true,
|
|
isChild: true,
|
|
buildName: "--",
|
|
buildName: "--",
|
|
- buildCode: "Bd11010800032251ebd43a3e430385cf679e90015385"
|
|
|
|
|
|
+ buildCode: ""
|
|
},
|
|
},
|
|
isMyTab: 1,
|
|
isMyTab: 1,
|
|
activeName: "GeneralZone",
|
|
activeName: "GeneralZone",
|
|
@@ -124,6 +136,12 @@
|
|
"code": "GeneralZone",
|
|
"code": "GeneralZone",
|
|
"name": "默认分区",
|
|
"name": "默认分区",
|
|
"rel_type": "99"
|
|
"rel_type": "99"
|
|
|
|
+ },
|
|
|
|
+ options: [],
|
|
|
|
+ props:{
|
|
|
|
+ value: "code",
|
|
|
|
+ label: "name",
|
|
|
|
+ children: "children"
|
|
}
|
|
}
|
|
};
|
|
};
|
|
},
|
|
},
|
|
@@ -131,10 +149,79 @@
|
|
this.param.ProjId = this.projectId
|
|
this.param.ProjId = this.projectId
|
|
this.param.UserId = this.userId
|
|
this.param.UserId = this.userId
|
|
this.param.secret = this.secret
|
|
this.param.secret = this.secret
|
|
|
|
+ this.getFloor()
|
|
this.getTypes()
|
|
this.getTypes()
|
|
},
|
|
},
|
|
mounted() {},
|
|
mounted() {},
|
|
methods: {
|
|
methods: {
|
|
|
|
+ //获取楼层
|
|
|
|
+ getFloor() {
|
|
|
|
+ let param = {
|
|
|
|
+ ProjId: this.projectId,
|
|
|
|
+ UserId: this.UserId,
|
|
|
|
+ secret: this.secret
|
|
|
|
+ };
|
|
|
|
+ getSpaceFloor(param).then(res => {
|
|
|
|
+ console.log(res, 'res')
|
|
|
|
+ if (res.data.Result == 'success') {
|
|
|
|
+ let data = this.changeArr(res.data.Content).map(item => {
|
|
|
|
+ if (item.children && item.children.length) {
|
|
|
|
+ item.children = tools.sortArr(item.children, "shunxu", false)
|
|
|
|
+ }
|
|
|
|
+ return item
|
|
|
|
+ })
|
|
|
|
+ console.log(data, 'res.data')
|
|
|
|
+ this.options = data
|
|
|
|
+ } else {
|
|
|
|
+ this.$message.error(res.data.ResultMsg)
|
|
|
|
+ }
|
|
|
|
+ }).catch(() => {
|
|
|
|
+ this.$message.error("请求出错")
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ //修改已有数组
|
|
|
|
+ changeArr(arr) {
|
|
|
|
+ return arr.map(item => {
|
|
|
|
+ console.log(item.floors)
|
|
|
|
+ if (item.floors && item.floors.length) {
|
|
|
|
+ return {
|
|
|
|
+ code: item.id,
|
|
|
|
+ name: item.infos.BuildLocalName,
|
|
|
|
+ children: item.floors.map(i => {
|
|
|
|
+ return {
|
|
|
|
+ code: i.id,
|
|
|
|
+ name: (i.infos.FloorLocalName || i.infos.FloorName || "未知") + this.myMess(i),
|
|
|
|
+ map: i.infos.FloorMap || null,
|
|
|
|
+ affected: i.affected,
|
|
|
|
+ isChilren: 2,
|
|
|
|
+ buildCode: item.id,
|
|
|
|
+ buildName: item.infos.BuildLocalName,
|
|
|
|
+ shunxu: i.infos.FloorSequenceID || 0
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ return {
|
|
|
|
+ code: item.id,
|
|
|
|
+ name: item.infos.BuildLocalName,
|
|
|
|
+ children: null,
|
|
|
|
+ isChilren: 1,
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ myMess(i) {
|
|
|
|
+ if (i.affected) {
|
|
|
|
+ return "(该业务空间受元空间变化影响)"
|
|
|
|
+ } else {
|
|
|
|
+ if (i.infos.FloorMap) {
|
|
|
|
+ return ''
|
|
|
|
+ } else {
|
|
|
|
+ return "(请初始化平面图)"
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ },
|
|
//获取tabs的列表
|
|
//获取tabs的列表
|
|
getTypes() {
|
|
getTypes() {
|
|
getBussTypes(res => {
|
|
getBussTypes(res => {
|
|
@@ -171,6 +258,7 @@
|
|
},
|
|
},
|
|
changeShow() {
|
|
changeShow() {
|
|
this.floor.dialogVisible = true;
|
|
this.floor.dialogVisible = true;
|
|
|
|
+ console.log(this.buildMess, 'buildMess')
|
|
},
|
|
},
|
|
//成功关联平面图
|
|
//成功关联平面图
|
|
createSuccess() {
|
|
createSuccess() {
|
|
@@ -184,8 +272,8 @@
|
|
this.$refs["graphy" + this.activeName][0].getHasSpace();
|
|
this.$refs["graphy" + this.activeName][0].getHasSpace();
|
|
this.$refs["graphy" + this.activeName][0].clearDimension();
|
|
this.$refs["graphy" + this.activeName][0].clearDimension();
|
|
},
|
|
},
|
|
- close(data) {
|
|
|
|
- this.buildMess = data;
|
|
|
|
|
|
+ close() {
|
|
|
|
+ this.buildMess = this.changeBuildMess(this.buildMess,this.options)
|
|
if (this.buildMess.affected) {
|
|
if (this.buildMess.affected) {
|
|
this.floor.influence = true;
|
|
this.floor.influence = true;
|
|
this.$nextTick(() => {
|
|
this.$nextTick(() => {
|
|
@@ -202,6 +290,21 @@
|
|
this.$refs["graphy" + this.activeName][0].getData(this.buildMess.map, this.buildMess, this.activeTabType);
|
|
this.$refs["graphy" + this.activeName][0].getData(this.buildMess.map, this.buildMess, this.activeTabType);
|
|
}
|
|
}
|
|
},
|
|
},
|
|
|
|
+
|
|
|
|
+ //通过code查询options中的其他参数
|
|
|
|
+ changeBuildMess(mess,options){
|
|
|
|
+ options.map(item => {
|
|
|
|
+ if(!!item.children && item.children.length){
|
|
|
|
+ item.children.map(child => {
|
|
|
|
+ if(child.code == mess.selectd[1]){
|
|
|
|
+ console.log(child,mess)
|
|
|
|
+ mess = Object.assign(mess,child)
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ return mess
|
|
|
|
+ },
|
|
//查看业务空间详情
|
|
//查看业务空间详情
|
|
getBuinessDetails(list) {
|
|
getBuinessDetails(list) {
|
|
this.floor.details = true;
|
|
this.floor.details = true;
|