zhangyu 5 jaren geleden
bovenliggende
commit
fbcd12225e
1 gewijzigde bestanden met toevoegingen van 72 en 47 verwijderingen
  1. 72 47
      src/components/ledger/lib/linkassets.vue

+ 72 - 47
src/components/ledger/lib/linkassets.vue

@@ -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: {