|
@@ -10,7 +10,7 @@
|
|
|
<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;">
|
|
|
+ <el-row style="margin-top:30px;" v-show="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-row>
|
|
@@ -22,7 +22,7 @@
|
|
|
</template>
|
|
|
<script>
|
|
|
|
|
|
-import { floorQuery, buildingQuery } from '@/api/scan/request'
|
|
|
+import { floorQuery, buildingQuery, queryDictionaryHead, queryZone } from '@/api/scan/request'
|
|
|
|
|
|
import { mapGetters } from "vuex"
|
|
|
export default {
|
|
@@ -47,17 +47,61 @@ export default {
|
|
|
deviceType: '', //选择的设备类型
|
|
|
spaceList: [], //空间实例列表
|
|
|
space: [], //选择的空间实例
|
|
|
- props: { multiple: true }, //多选级联配置
|
|
|
+ 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)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }, //多选级联配置
|
|
|
|
|
|
};
|
|
|
},
|
|
|
created() {
|
|
|
- this.getData() //获取建筑楼层数据
|
|
|
+ this.getBuildFloorData() //获取建筑楼层数据
|
|
|
+ this.getSpaceData() //获取分区类型数据
|
|
|
},
|
|
|
mounted() { },
|
|
|
methods: {
|
|
|
//获取建筑楼层数据
|
|
|
- getData() {
|
|
|
+ getBuildFloorData() {
|
|
|
let data, buildParams = {
|
|
|
PageNumber: 1,
|
|
|
PageSize: 1000,
|
|
@@ -130,13 +174,35 @@ export default {
|
|
|
this.bfoptions = data
|
|
|
})
|
|
|
},
|
|
|
+ //获取空间分区数据
|
|
|
+ getSpaceData(){
|
|
|
+ let params = {
|
|
|
+ Filters: "parentId = 'Space'",
|
|
|
+ PageNumber: 1,
|
|
|
+ PageSize: 1000,
|
|
|
+ Projection: [ "Code", "Name" ]
|
|
|
+ }
|
|
|
+ queryDictionaryHead(params, res => {
|
|
|
+ this.spaceList = res.Content.map((item) => {
|
|
|
+ return {
|
|
|
+ label: item.Name,
|
|
|
+ value: item.Code
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
// 修改设备类型
|
|
|
handleChangeDevice() {
|
|
|
|
|
|
},
|
|
|
// 修改建筑楼层
|
|
|
- handleChangeBf() {
|
|
|
-
|
|
|
+ handleChangeBf(val) {
|
|
|
+ let lastVal = val.slice(-1)[0]
|
|
|
+ if(!lastVal || lastVal == 'noKnow' || val[0] == 'all') {
|
|
|
+ this.spaceShow = false
|
|
|
+ } else {
|
|
|
+ this.spaceShow = true
|
|
|
+ }
|
|
|
},
|
|
|
// 修改空间实例
|
|
|
handleChangeSpace() {
|