Procházet zdrojové kódy

未关联平面图的业务空间关联建筑楼层

haojianlong před 5 roky
rodič
revize
ce546057cd

+ 47 - 23
src/components/business_space/newGraphy/graphy.vue

@@ -51,7 +51,7 @@
           </div>
         </div>
         <div style="position: absolute;right: 0;">
-          <el-button type="text" @click="lookUnrelatBSpace(false)">未关联平面图的业务空间 {{num}} 条</el-button>
+          <el-button type="text" @click="lookUnrelatBSpace(false)">未关联平面图的业务空间 {{BSPUnrelaISPList.length}} 条</el-button>
         </div>
       </el-row>
       <!-- 底部操作按钮 -->
@@ -92,7 +92,7 @@ import { FloorView } from "@saga-web/cad-engine/lib/FloorView";
 import unRelateBSP from "./unRelateBSP";
 import createBSP from "./createBSP";
 import {
-  countZone,
+  buildingQuery,
   queryZone,
   updateZone,
   createZone,
@@ -125,7 +125,6 @@ export default {
       canvasHeight: 600,
       type: 1, // 默认操作模式
       search: '',//搜索
-      num: 0, // 未关联空间的业务空间条数
       buildFloor: ['', ''],
       FloorObj: {}, //楼层对象
       FloorMap: '', //楼层底图
@@ -178,12 +177,12 @@ export default {
         // 业务空间
         this.getBusinessSpace();
       }
-      // 获取未关联平面图的业务空间统计
-      this.getUnrelateCount();
       // 获取当前楼层的元空间
       this.getFloorISpace();
       // 查询未关联业务空间的元空间
-      this.getISPSPUnrelaBSP()
+      this.getISPSPUnrelaBSP();
+      // 查询未关联平面图的业务空间
+      this.getBSPunrelaISP();
     },
     // 获取当前楼层的元空间
     getFloorISpace() {
@@ -239,18 +238,6 @@ export default {
       console.log(arguments)
       this.init(initType);
     },
-    // 获取未关联平面图的业务空间统计
-    getUnrelateCount() {
-      let pa = {
-        data: {
-          Filters: `BuildingId='${this.buildFloor[0]}';FloorId='${this.buildFloor[1]}';Outline isNull`
-        },
-        zone: this.tab.code
-      }
-      countZone(pa, res => {
-        this.num = res.Count
-      })
-    },
     // 获取未绑定业务空间的元空间
     getISPSPUnrelaBSP() {
       let pa = {
@@ -320,15 +307,11 @@ export default {
       queryZone(pa, res => {
         // 所有业务空间
         this.businessSpaceList = res.Content;
-        // 未关联元空间的业务空间
-        this.BSPUnrelaISPList = [];
         // 已关联元空间的业务空间
         this.BSPRelaISPList = [];
         res.Content.map(t => {
           if (t.Outline && t.Outline.length) {
             this.BSPRelaISPList.push(t)
-          } else {
-            this.BSPUnrelaISPList.push(t)
           }
         })
         // 绘制业务空间
@@ -393,7 +376,7 @@ export default {
       if (this.groupCreateType == 1) {
         this.groupCreateBSpace()
       } else if (this.groupCreateType == 2) {
-        
+
       }
     },
     // 批量创建业务空间
@@ -583,6 +566,47 @@ export default {
         this.init(2);
       })
     },
+    // 查询未关联平面图的业务空间(项目下+当前分区)
+    getBSPunrelaISP() {
+      let pa1 = {
+        Cascade: [{ name: 'floor', Orders: 'SequenceId desc' }],
+        Orders: "BuildLocalName asc",
+      }
+      let p1 = new Promise((resolve, reject) => {
+        buildingQuery(pa1, res => {
+          resolve(res);
+        })
+      })
+      let pa2 = {
+        zone: this.tab.code,
+        data: {
+          Filters: `Outline isNull`,
+          Orders: "createTime desc, RoomID asc",
+          PageSize: 1000
+        }
+      }
+      let p2 = new Promise((resolve, reject) => {
+        queryZone(pa2, res => {
+          resolve(res);
+        })
+      })
+      Promise.all([p1, p2]).then(val => {
+        let bfData = {}
+        val[0].Content.map(t => {
+          bfData[t.BuildID] = t.BuildLocalName || t.BuildName;
+          if (t.Floor) {
+            t.Floor.map(item => {
+              bfData[item.FloorID] = item.FloorLocalName || item.FloorName;
+            })
+          }
+        })
+        this.BSPUnrelaISPList = val[1].Content.map(t => {
+          t.BuildingName = bfData[t.BuildingId];
+          t.FloorName = bfData[t.FloorId];
+          return t;
+        });
+      })
+    },
     // canvas 获取焦点
     focus() {
       document.getElementById(`floorCanvas`).focus()

+ 3 - 1
src/components/business_space/newGraphy/unRelateBSP.vue

@@ -1,11 +1,13 @@
 <template>
-  <el-dialog :title="title" :visible.sync="dialogVisible" width="600px" id="lookUnrelatBSpace">
+  <el-dialog :title="title" :visible.sync="dialogVisible" width="900px" id="lookUnrelatBSpace">
     <el-input :placeholder="`请输入业务空间名称`" v-model="queryString" @keyup.enter.native="queryTableData">
       <i slot="suffix" class="el-input__icon el-icon-search" @click="queryTableData"></i>
     </el-input>
     <div style="margin-top:10px;height:300px;">
       <el-table :data="data" style="width: 100%" height="100%" v-loading="loading" :header-cell-style="headerStyle">
         <el-table-column prop="RoomLocalName" label="业务空间名称" show-overflow-tooltip min-width="200"></el-table-column>
+        <el-table-column prop="BuildingName" label="所属建筑" show-overflow-tooltip min-width="100"></el-table-column>
+        <el-table-column prop="FloorName" label="所属楼层" show-overflow-tooltip min-width="100"></el-table-column>
         <el-table-column prop="action" label="操作" min-width="100" v-if="isAction">
           <template slot-scope="scope">
             <el-button @click="createRelation(scope.row)">关联平面图</el-button>