|
@@ -10,9 +10,9 @@
|
|
|
<span class="condition-title">建筑楼层:</span>
|
|
|
<el-cascader :options="bfoptions" v-model="buildFloor" filterable size="small" @change="handleChangeBf" style="width:250px;"></el-cascader>
|
|
|
</el-row>
|
|
|
- <el-row style="margin-top:30px;" v-show="spaceShow">
|
|
|
+ <el-row style="margin-top:30px;" v-if="spaceShow">
|
|
|
<span class="condition-title">分区类型空间实例:</span>
|
|
|
- <el-cascader v-model="space" filterable clearable collapse-tags size="small" :options="spaceList" :props="props" @change="handleChangeSpace" style="width:250px;"></el-cascader>
|
|
|
+ <el-cascader v-model="space" filterable clearable collapse-tags size="small" :options="spaceList" :props="props" @change="handleChangeSpace" @active-item-change='handleChangeSpaceItem' style="width:250px;"></el-cascader>
|
|
|
</el-row>
|
|
|
<span slot="footer" class="dialog-footer">
|
|
|
<el-button @click="handleClickClose">取 消</el-button>
|
|
@@ -50,46 +50,7 @@ export default {
|
|
|
spaceShow: false,
|
|
|
props: {
|
|
|
multiple: true,
|
|
|
- lazy: true,
|
|
|
- lazyLoad (node, resolve) {
|
|
|
- if(node.value) {
|
|
|
- let zone = node.value,
|
|
|
- level = node.level,
|
|
|
- nodes = []
|
|
|
- function recursionGetData(pageNum, zone) {
|
|
|
- pageNum = pageNum ? pageNum : 1
|
|
|
- let params = {
|
|
|
- zone: node.value,
|
|
|
- data: {
|
|
|
- Orders: "CreateTime desc, RoomID asc",
|
|
|
- PageNumber: pageNum,
|
|
|
- PageSize: 1000,
|
|
|
- Projection: ["RoomID", "RoomName", "RoomLocalName", "CreateTime"]
|
|
|
- },
|
|
|
- }
|
|
|
- if(this.spaceShow) {
|
|
|
- if(this.buildFloor.length == 2 && this.buildFloor[1] != 'all') {
|
|
|
- params.data.Filters = `buildingId='${this.buildFloor[0]}';floorId='${this.buildFloor[1]}'`
|
|
|
- } else {
|
|
|
- params.data.Filters = `buildingId='${this.buildFloor[0]}'`
|
|
|
- }
|
|
|
- }
|
|
|
- queryZone(params, res => {
|
|
|
- nodes = nodes.concat(res.Content.map(item => ({
|
|
|
- value: item.RoomID,
|
|
|
- label: item.RoomLocalName?item.RoomLocalName:item.RoomName,
|
|
|
- leaf: level >= 1
|
|
|
- })))
|
|
|
- if (res.Total / (res.PageSize * res.PageNumber) > 1) {
|
|
|
- recursionGetData(res.PageNumber + 1, zone)
|
|
|
- } else {
|
|
|
- resolve(nodes);
|
|
|
- }
|
|
|
- })
|
|
|
- }
|
|
|
- recursionGetData(1, zone)
|
|
|
- }
|
|
|
- }
|
|
|
+ children: 'children'
|
|
|
}, //多选级联配置
|
|
|
|
|
|
};
|
|
@@ -186,7 +147,8 @@ export default {
|
|
|
this.spaceList = res.Content.map((item) => {
|
|
|
return {
|
|
|
label: item.Name,
|
|
|
- value: item.Code
|
|
|
+ value: item.Code,
|
|
|
+ children: []
|
|
|
}
|
|
|
})
|
|
|
})
|
|
@@ -198,15 +160,65 @@ export default {
|
|
|
// 修改建筑楼层
|
|
|
handleChangeBf(val) {
|
|
|
let lastVal = val.slice(-1)[0]
|
|
|
+ // 重置空间实例选择
|
|
|
+ this.space = []
|
|
|
+ this.spaceList.map(item => {
|
|
|
+ if (item.children)
|
|
|
+ item.children = []
|
|
|
+ })
|
|
|
if(!lastVal || lastVal == 'noKnow' || val[0] == 'all') {
|
|
|
this.spaceShow = false
|
|
|
} else {
|
|
|
- this.spaceShow = true
|
|
|
+ this.spaceShow = false
|
|
|
+ this.$nextTick(() => {
|
|
|
+ this.spaceShow = true
|
|
|
+ })
|
|
|
}
|
|
|
},
|
|
|
- // 修改空间实例
|
|
|
- handleChangeSpace() {
|
|
|
-
|
|
|
+ // 获取空间实例
|
|
|
+ handleChangeSpaceItem(val) {
|
|
|
+ let type = val[0]
|
|
|
+ if(val.length == 1) {
|
|
|
+ if(type) {
|
|
|
+ let zone = type,
|
|
|
+ nodes = []
|
|
|
+ let recursionGetData = (pageNum, zone) => {
|
|
|
+ pageNum = pageNum ? pageNum : 1
|
|
|
+ let params = {
|
|
|
+ zone: zone,
|
|
|
+ data: {
|
|
|
+ Orders: "CreateTime desc, RoomID asc",
|
|
|
+ PageNumber: pageNum,
|
|
|
+ PageSize: 1000,
|
|
|
+ Projection: ["RoomID", "RoomName", "RoomLocalName", "CreateTime"]
|
|
|
+ },
|
|
|
+ }
|
|
|
+ if(this.spaceShow) {
|
|
|
+ if(this.buildFloor.length == 2 && this.buildFloor[1] != 'all') {
|
|
|
+ params.data.Filters = `buildingId='${this.buildFloor[0]}';floorId='${this.buildFloor[1]}'`
|
|
|
+ } else {
|
|
|
+ params.data.Filters = `buildingId='${this.buildFloor[0]}'`
|
|
|
+ }
|
|
|
+ }
|
|
|
+ queryZone(params, res => {
|
|
|
+ nodes = nodes.concat(res.Content.map(item => ({
|
|
|
+ value: item.RoomID,
|
|
|
+ label: item.RoomLocalName?item.RoomLocalName:item.RoomName
|
|
|
+ })))
|
|
|
+ if (res.Total / (res.PageSize * res.PageNumber) > 1) {
|
|
|
+ recursionGetData(res.PageNumber + 1, zone)
|
|
|
+ } else {
|
|
|
+ this.spaceList.map(item => {
|
|
|
+ if(item.value == type) {
|
|
|
+ item.children = nodes
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ recursionGetData(1, zone)
|
|
|
+ }
|
|
|
+ }
|
|
|
},
|
|
|
// 点击取消关闭弹窗
|
|
|
handleClickClose() {
|
|
@@ -214,7 +226,20 @@ export default {
|
|
|
},
|
|
|
// 批量关联资产详情页
|
|
|
toLinkAssets() {
|
|
|
+ let query = {}
|
|
|
+ // 校验必填项
|
|
|
+ if(!this.deviceType) {
|
|
|
+ this.$messge.info('请选择设备类型!')
|
|
|
+ } else if (!this.buildFloor.length) {
|
|
|
+ this.$messge.info('请选择建筑楼层!')
|
|
|
+ }
|
|
|
+ if(this.spaceShow) {
|
|
|
|
|
|
+ } else {
|
|
|
+ query = {
|
|
|
+ deviceType: this.deviceType
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
},
|
|
|
watch: {
|