Parcourir la source

Merge remote-tracking branch 'origin/dataType' into dataType

onlyh il y a 3 ans
Parent
commit
c5fbfde9c5
29 fichiers modifiés avec 278 ajouts et 182 suppressions
  1. 5 0
      src/api/httputils.js
  2. 6 0
      src/api/scan/fetch.js
  3. 2 0
      src/api/scan/httpUtil.js
  4. 4 0
      src/components/business_space/business/handsontable.vue
  5. 2 2
      src/components/data_admin/buildTask/detail/assetsDetail.vue
  6. 2 2
      src/components/data_admin/buildTask/detail/deviceDetail.vue
  7. 1 1
      src/components/dialogs/list/systemType.vue
  8. 1 1
      src/components/ledger/details/detail/exhibitionEnergy.vue
  9. 1 1
      src/components/ledger/system/table/cenoteTable.vue
  10. 1 1
      src/components/ledger/system/table/deviceTable.vue
  11. 2 2
      src/components/ledger/system/table/spaceTable.vue
  12. 1 0
      src/components/relation/relationShip/Modal/addRelationShip.vue
  13. 1 1
      src/framework/layout/Main.vue
  14. 4 2
      src/framework/layout/layout-store.js
  15. 30 2
      src/framework/layout/project.js
  16. 20 1
      src/store/index.js
  17. 1 0
      src/utils/authutils.js
  18. 8 8
      src/views/data_admin/buildAssets/index.vue
  19. 5 2
      src/views/ledger/cenotelist/cenoteadd/index.vue
  20. 3 2
      src/views/ledger/facility/addfacility.vue
  21. 5 3
      src/views/ledger/facility/partsmanage/addparts/index.vue
  22. 5 2
      src/views/ledger/property/addproperty.vue
  23. 5 2
      src/views/ledger/rentlist/rentadd/index.vue
  24. 74 67
      src/views/ledger/report/index.vue
  25. 14 11
      src/views/ledger/spacelist/spaceadd/index.vue
  26. 4 1
      src/views/ledger/system/addsystem.vue
  27. 32 30
      src/views/model/report/deleted.vue
  28. 4 5
      src/views/model/report/index.vue
  29. 35 33
      src/views/model/report/supplement.vue

+ 5 - 0
src/api/httputils.js

@@ -19,6 +19,11 @@ const axiosservice = axios.create({
 
 axiosservice.interceptors.request.use(
     config => {
+        config.cancelToken = new axios.CancelToken(cancel => {
+            if (config.url !== '/api/message-center/message/update-state' || config.url !== '/image-service/common/multipart_upload') {
+                store.commit('setAxiosArr', {cancel})
+            }
+        })
         config.withCredentials = true // 允许携带token ,这个是解决跨域产生的相关问题
         let token = store.getters['ssoToken']
         if (token) {

+ 6 - 0
src/api/scan/fetch.js

@@ -1,6 +1,7 @@
 import Vue from 'vue'
 import axios from 'axios'
 import vueAxios from 'vue-axios'
+import store from '@/store'
 import { Message } from 'element-ui';
 
 Vue.use(vueAxios, axios)
@@ -13,6 +14,11 @@ const service = axios.create({
 
 //request拦截
 service.interceptors.request.use(config => {
+    config.cancelToken = new axios.CancelToken(cancel => {
+        if (config.url !== '/api/message-center/message/update-state' || config.url !== '/image-service/common/multipart_upload') {
+            store.commit('setAxiosArr', {cancel})
+        }
+    })
   return config
 }, error => {
   console.log(error)

+ 2 - 0
src/api/scan/httpUtil.js

@@ -22,6 +22,8 @@ function successResponse(vm, response, success, failed) {
 
 function errorResponse(vm, response, err) {
   let json = JSON.parse(JSON.stringify(response))
+  if (json.message === '路由调整取消请求')
+  return 
   console.error(response)
   if (json.response) {
     Message.error({ message: `接口:${json.response.config.url}请求错误,错误状态为:${json.response.status}` })

+ 4 - 0
src/components/business_space/business/handsontable.vue

@@ -311,6 +311,10 @@ export default {
     initHot() {
       var container = document.getElementById(this.id);
       let winHeight = document.documentElement.clientHeight;
+      if (this.hot) {
+        this.hot.destroy();
+        this.hot = null;
+      }
       this.hot = new Handsontable(container, {
         data: this.main,
         colHeaders: this.delHeader(this.headers), //表头文案

+ 2 - 2
src/components/data_admin/buildTask/detail/assetsDetail.vue

@@ -143,7 +143,7 @@ export default {
             processTime && arr.push({
                 timestamp: processTime,
                 time: new Date(processTime).getTime(),
-                content: '开始执行任务',
+                content: '执行任务',
             })
             qrCodeTime && arr.push({
                 timestamp: qrCodeTime,
@@ -193,7 +193,7 @@ export default {
                 content: '确认信息',
                 title: '已确认的设备信息'
             })
-            return arr.map(i => ({ ...i })).sort((a, b) => b.time - a.time)
+            return arr.map(i => ({ ...i })).sort((a, b) => a.time - b.time)
         },
     },
     props: {

+ 2 - 2
src/components/data_admin/buildTask/detail/deviceDetail.vue

@@ -176,7 +176,7 @@ export default {
             processTime && arr.push({
                 timestamp: processTime,
                 time: new Date(processTime).getTime(),
-                content: '开始执行任务',
+                content: '执行任务',
             })
             qrCodeTime && arr.push({
                 timestamp: qrCodeTime,
@@ -226,7 +226,7 @@ export default {
                 content: '确认信息',
                 title: '已确认的设备信息'
             })
-            return arr.map(i => ({ ...i })).sort((a, b) => b.time - a.time)
+            return arr.map(i => ({ ...i })).sort((a, b) => a.time - b.time)
         },
     },
     props: {

+ 1 - 1
src/components/dialogs/list/systemType.vue

@@ -140,7 +140,7 @@ export default {
                         localName: "全部"
                     }, {
                         id: "noKnow",
-                        localName: "未明确建筑的设备"
+                        localName: "未明确建筑的系统"
                     })
                     this.options = data
                 } else {

+ 1 - 1
src/components/ledger/details/detail/exhibitionEnergy.vue

@@ -43,7 +43,7 @@
             if (str.length > 8) {
               return str.substr(0, 4) + "-" + str.substr(4, 2) + "-" + str.substr(6, 2) + " " + str.substr(8, 2) + ":" + str.substr(10, 2) + ":" + str.substr(12, 2)
             } else {
-              return str.substr(0, 4) + "-" + str.substr(4, 2) + "-" + str.substr(6, 2) + " " + str.substr(8, 2)
+                return str.substr(0, 4) + "-" + str.substr(4, 2) + "-" + str.substr(6, 2) + " " + str.substr(8, 2)
             }
           }
         } else {

+ 1 - 1
src/components/ledger/system/table/cenoteTable.vue

@@ -36,7 +36,7 @@
         <template slot="empty">
           <div style="height: 60%;transform: translateY(50%);">
             <i class="icon-wushuju iconfont"></i>
-            可前往“全部关系总览”中计算连通的其它竖井
+            可前往“全部关系总览”中,按系统内包含的设备与竖井关系计算
           </div>
         </template>
       </el-table>

+ 1 - 1
src/components/ledger/system/table/deviceTable.vue

@@ -34,7 +34,7 @@
         <template slot="empty">
           <div style="height: 60%;transform: translateY(50%);">
             <i class="icon-wushuju iconfont"></i>
-            可前往“全部关系总览”中计算竖井内设备
+            可前往“全部关系总览”中计算系统内设备
           </div>
         </template>
       </el-table>

+ 2 - 2
src/components/ledger/system/table/spaceTable.vue

@@ -5,7 +5,7 @@
       <el-tooltip
         class="item"
         effect="dark"
-        content="可前往“全部关系总览”中,按系统内包含的设备与空间关系计算"
+        content="可前往“全部关系总览”中,按系统内包含的设备与业务空间关系计算"
         placement="right"
       >
         <el-button>按系统内设备与业务空间关系计算</el-button>
@@ -64,7 +64,7 @@
         <template slot="empty">
           <div style="height: 60%; transform: translateY(50%)">
             <i class="icon-wushuju iconfont"></i>
-            可前往“全部关系总览”中按系统内包含的设备业务空间关系计算
+            可前往“全部关系总览”中按系统内包含的设备业务空间关系计算
           </div>
         </template>
       </el-table>

+ 1 - 0
src/components/relation/relationShip/Modal/addRelationShip.vue

@@ -62,6 +62,7 @@
             </p>
             <el-form-item
               v-for="(item,index) in ruleForm.codeList"
+              style="margin-bottom: 26px;"
               :key="index"
               :prop="`codeList.${index}.value`"
               :rules="rules.codeList"

+ 1 - 1
src/framework/layout/Main.vue

@@ -18,7 +18,7 @@
           <router-view v-if='$route.meta.keepAlive' class='page-content'></router-view>
         </keep-alive>
         <router-view v-if='!$route.meta.keepAlive' class='page-content'></router-view>
-        <div class="version">当前版本: V 4.0.1</div>
+        <div class="version">当前版本: V 3.9.10</div>
       </div>
     </div>
     <!-- <div class='page-footer'>

+ 4 - 2
src/framework/layout/layout-store.js

@@ -24,9 +24,9 @@ export default {
       "system:role:query": true,
       "system:role:setOpts": true
     },
-    projectId: 'Pj1101051029',
+    projectId: '',
     group_code: '',
-    projects: project["39"],
+    projects: project["14"],
     breadcrumb: [],
     uploaderList: [], //当前上传文件列表
     secret: "saga123456", //项目密码
@@ -57,6 +57,8 @@ export default {
         let pid = storage.get(KEY_PROJECT_SELECTED)
         if (pid) {
           state.projectId = pid
+        } else if (state.projects && state.projects.length) {
+            state.projectId = state.projects[0].id
         }
       }
       return state.projectId

+ 30 - 2
src/framework/layout/project.js

@@ -176,13 +176,41 @@ const project = {
       pwd: "saga123456",
       group_code: "XG"
     },
-
     {
       id: "Pj1101050013",
       name: "BIM测试项目_亚投行",
       pwd: "saga123456",
       group_code: "BT"
-
+    },
+    {
+      id: "Pj4403050002",
+      name: "深圳万象天地",
+      pwd: "saga123456",
+      group_code: "HR"
+    },
+    {
+      id: "Pj4501030002",
+      name: "南宁万象城",
+      pwd: "saga123456",
+      group_code: "HR"
+    },
+    {
+      id: "Pj3101150007",
+      name: "上海森兰花园城",
+      pwd: "saga123456",
+      group_code: "ZS"
+    },
+    {
+      id: "Pj3201130004",
+      name: "招商南京燕子矶花园城项目",
+      pwd: "saga123456",
+      group_code: "ZS"
+    },
+    {
+      id: "Pj4403050019",
+      name: "招商IOC广场",
+      pwd: "saga123456",
+      group_code: "ZS"
     },
     {
       id: "Pj1101080259",

+ 20 - 1
src/store/index.js

@@ -10,6 +10,7 @@ const KEY_LAST_ROUTE = 'last_route'
 export default new Vuex.Store({
   state: {
     flag: 'sagacloud-admin',
+    axiosArr: [],
     ssoToken: null,
     lastRoute: null
   },
@@ -31,9 +32,27 @@ export default new Vuex.Store({
     setLastRoute: (state, val) => {
       state.lastRoute = val
       storage.set(KEY_LAST_ROUTE, val)
+    },
+    setAxiosArr: ({axiosArr}, cancelAjax) => {
+        axiosArr.push(cancelAjax.cancel);
+    },
+    clearAxiosArr: ({axiosArr}) => {
+        axiosArr.forEach(item => {
+            let message = '路由调整取消请求';
+            item(message);
+        })
     }
   },
-  actions: {},
+  actions: {
+      setAxiosArr: ({ commit }, cancelAjax) => {
+        console.log("setAxiosArr");
+        commit('SET_AXIOS_ARR', cancelAjax);
+      },
+      clearAxiosArr: ({ commit }) => {
+          console.log("clearAxiosArr");
+          commit('CLEAR_AXIOS_ARR');
+      }
+  },
   modules: {
     layout,
     project,

+ 1 - 0
src/utils/authutils.js

@@ -40,6 +40,7 @@ export default {
    */
   routerBeforeEach: async function (to, from, next) {
     console.log('router before ', to)
+    store.commit('clearAxiosArr')
     if (to.path == '/auth' || to.path == '/nouser') {
       next()
     } else {

+ 8 - 8
src/views/data_admin/buildAssets/index.vue

@@ -106,7 +106,6 @@ export default {
   methods: {
     ...mapActions('layout', ['setErrorReport']),
     handleTime(val) {
-      console.log(val)
       let param = {
         filters: `createTime > '${val[0]}';createTime < '${val[1]}'`,
         pageNumber: 1,
@@ -198,18 +197,19 @@ export default {
         }
       })
     },
-    async init() {
-      await this.getAllFamily();
-      await this.getFloors();
-      await this.getBuilding()
-    }
+    // async init() {
+    //   await this.getAllFamily();
+    //   await this.getFloors();
+    //   await this.getBuilding()
+    // }
   },
   created() {
-    this.init()
+    // this.init()
   },
   watch: {
     projectId() {
-      this.init()
+        this.value = "";
+    //   this.init()
     }
   }
 }

+ 5 - 2
src/views/ledger/cenotelist/cenoteadd/index.vue

@@ -22,7 +22,7 @@
       </div>
     </div>
     <el-row class="center">
-      <el-button type="primary" size="medium" @click="handleCreateTableData">创建竖井</el-button>
+      <el-button type="primary" size="medium" @click="handleCreateTableData" :disabled="createDisable">创建竖井</el-button>
     </el-row>
   </div>
 </template>
@@ -64,7 +64,8 @@ export default {
       showType: this.$route.query.showType,
       tableHeader: [],
       tableData: session.get("cenoteAddData") ? session.get("cenoteAddData").length ? session.get("cenoteAddData") : [{}] : [{}],
-      copyTableData: []
+      copyTableData: [],
+      createDisable: false
     };
   },
   computed: {
@@ -126,7 +127,9 @@ export default {
         return
       }
       params.content = newData
+      this.createDisable = true
       await createCenoteTableData(params, (res) => {
+        this.createDisable = false
         this.$message.success("添加成功!")
         session.remove("cenoteAddData")
         this.$router.push({ name: 'cenotelist' })

+ 3 - 2
src/views/ledger/facility/addfacility.vue

@@ -22,7 +22,7 @@
       </div>
     </div>
     <el-row class="center">
-      <el-button type="primary" size="medium" @click.once="handleCreateTableData" class="create_button" :disabled="createDisable">创建设备</el-button>
+      <el-button type="primary" size="medium" @click="handleCreateTableData" class="create_button" :disabled="createDisable">创建设备</el-button>
     </el-row>
     <!-- 二维码弹窗 -->
     <qrcode :dialog="myDialog" :qrcodeUrl="qrcodeUrl" :addBody="true" ref="qrcode"></qrcode>
@@ -194,6 +194,7 @@ export default {
     },
     // 创建设备数据
     async handleCreateTableData() {
+        debugger
       let newData = this.tableData.filter(item => {
         let keys = Object.keys(item);
         keys.map(key => {
@@ -213,7 +214,7 @@ export default {
       }
       let flag = false;
       newData.map(item => {
-        if (item.checked && !item.localName) {
+        if (!item.localName) {
           flag = true;
         }
         // 处理建筑-楼层

+ 5 - 3
src/views/ledger/facility/partsmanage/addparts/index.vue

@@ -29,7 +29,7 @@
       </div>
     </div>
     <el-row class="center">
-      <el-button type="primary" size="medium" @click="handleCreateTableData" class="create_button">创建部件</el-button>
+      <el-button type="primary" size="medium" @click="handleCreateTableData" class="create_button" :disabled="createDisable">创建部件</el-button>
     </el-row>
     <!-- 二维码弹窗 -->
     <qrcode :dialog="myDialog" :qrcodeUrl="qrcodeUrl" :addBody="true" ref="qrcode"></qrcode>
@@ -140,7 +140,8 @@ export default {
       graphyId: null,
       id: 0,
       EquipmentList: [],
-      firmId: "" //品牌型号所需字段--族id三位编码(传设备类id或部件类id)
+      firmId: "", //品牌型号所需字段--族id三位编码(传设备类id或部件类id)
+      createDisable: false
     };
   },
   computed: {
@@ -226,7 +227,7 @@ export default {
           cascade: [],
           content: [newData[i]]
         }
-
+        this.createDisable = true
         await createPart(param, async res => {
           if (newData[i].Checked) {//同时创建资产
             param.content[0].equipmentId = res.entityList[0].id
@@ -235,6 +236,7 @@ export default {
             })
           }
           if (i == newData.length - 1) {
+            this.createDisable = false
             this.$message.success('创建成功')
             session.remove("partsAddData")
             this.$router.push({

+ 5 - 2
src/views/ledger/property/addproperty.vue

@@ -22,7 +22,7 @@
       </div>
     </div>
     <el-row class="center">
-      <el-button type="primary" size="medium" @click.prevent.once="handleCreateTableData" class="create_button">创建资产</el-button>
+      <el-button type="primary" size="medium" @click="handleCreateTableData" class="create_button" :disabled="createDisable">创建资产</el-button>
     </el-row>
     <upload-files-dialog :read="onlyRead ? true : false" ref="upload" @changeFile="fileChange" :keysArr="filesArr"
                          :dialog="myDialog"></upload-files-dialog>
@@ -101,7 +101,8 @@ export default {
       graphyId: null,
       id: 0,
       showType: this.$route.query.showType,
-      EquipmentList: []
+      EquipmentList: [],
+      createDisable: false
     };
   },
   computed: {
@@ -175,7 +176,9 @@ export default {
         return;
       }
       params.content = newData
+      this.createDisable = true;
       await createPropertyData(params, res => {
+        this.createDisable = false;
         this.$message.success("添加成功!")
         session.remove("propertyAddData")
         this.$router.push({

+ 5 - 2
src/views/ledger/rentlist/rentadd/index.vue

@@ -22,7 +22,7 @@
       </div>
     </div>
     <el-row class="center create_button">
-      <el-button type="primary" size="medium" @click="handleCreateTableData">创建租户</el-button>
+      <el-button type="primary" size="medium" @click="handleCreateTableData" :disabled="createDisable">创建租户</el-button>
     </el-row>
   </div>
 </template>
@@ -65,7 +65,8 @@ export default {
       showType: this.$route.query.showType,
       tableHeader: [],
       tableData: session.get("rentAddData") ? session.get("rentAddData").length ? session.get("rentAddData") : [{}] : [{}],
-      copyTableData: []
+      copyTableData: [],
+      createDisable: false
     };
   },
   computed: {
@@ -122,7 +123,9 @@ export default {
         return
       }
       params.Content = newData
+      this.createDisable = true
       await createRentTableData(params, (res) => {
+        this.createDisable = false
         this.$message.success("添加成功!")
         session.remove("rentAddData")
         this.$router.push({ name: 'rentlist' })

+ 74 - 67
src/views/ledger/report/index.vue

@@ -142,7 +142,7 @@ import {
   systemInfoPoint,
   gatherInfoPoint
 } from "@/api/scan/request";
-import { getDataDictionary } from "@/api/dict";
+import { getDataDictionary, queryPhysicsAllType } from "@/api/dict";
 import dataOrigin from "@/components/ledger/report/dataorigin";
 import datafan from "@/components/ledger/report/datafan";
 import dataExport from "@/components/ledger/report/dataexport";
@@ -162,71 +162,71 @@ export default {
       partsCount: null,// 部件总数
       zoneSpaceCount: null,// 业务空间总数
       zoneType: [// 分区类型
-        {
-          "code": "GeneralZone",
-          "name": "默认分区",
-          "Rel_type": "99"
-        },
-        {
-          "name": "供电分区",
-          "Rel_type": "1",
-          "code": "PowerSupplyZone"
-        },
-        {
-          "name": "照明分区",
-          "Rel_type": "2",
-          "code": "LightingZone"
-        },
-        {
-          "name": "网络分区",
-          "Rel_type": "3",
-          "code": "NetworkZone"
-        },
-        {
-          "code": "AirConditioningZone",
-          "name": "空调分区",
-          "Rel_type": "4"
-        },
-        {
-          "name": "采暖分区",
-          "Rel_type": "5",
-          "code": "HeatingZone"
-        },
-        {
-          "name": "洁净分区",
-          "Rel_type": "6",
-          "code": "CleanZone"
-        },
-        {
-          "name": "生活给水分区",
-          "Rel_type": "7",
-          "code": "DomesticWaterSupplyZone"
-        },
-        {
-          "code": "FireZone",
-          "name": "防火分区",
-          "Rel_type": "8"
-        },
-        {
-          "name": "安防分区",
-          "Rel_type": "9",
-          "code": "SecurityZone"
-        },
-        {
-          "name": "租户分区",
-          "Rel_type": "10",
-          "code": "TenantZone"
-        },
-        {
-          "name": '功能分区',
-          'Rel_type': '11',
-          "code": 'FunctionZone'
-        },
-        {
-          "name": '其他分区',
-          'Rel_type': '11',
-          "code": 'OtherZone'
-        }
+        // {
+        //   "code": "GeneralZone",
+        //   "name": "默认分区",
+        //   "Rel_type": "99"
+        // },
+        // {
+        //   "name": "供电分区",
+        //   "Rel_type": "1",
+        //   "code": "PowerSupplyZone"
+        // },
+        // {
+        //   "name": "照明分区",
+        //   "Rel_type": "2",
+        //   "code": "LightingZone"
+        // },
+        // {
+        //   "name": "网络分区",
+        //   "Rel_type": "3",
+        //   "code": "NetworkZone"
+        // },
+        // {
+        //   "code": "AirConditioningZone",
+        //   "name": "空调分区",
+        //   "Rel_type": "4"
+        // },
+        // {
+        //   "name": "采暖分区",
+        //   "Rel_type": "5",
+        //   "code": "HeatingZone"
+        // },
+        // {
+        //   "name": "洁净分区",
+        //   "Rel_type": "6",
+        //   "code": "CleanZone"
+        // },
+        // {
+        //   "name": "生活给水分区",
+        //   "Rel_type": "7",
+        //   "code": "DomesticWaterSupplyZone"
+        // },
+        // {
+        //   "code": "FireZone",
+        //   "name": "防火分区",
+        //   "Rel_type": "8"
+        // },
+        // {
+        //   "name": "安防分区",
+        //   "Rel_type": "9",
+        //   "code": "SecurityZone"
+        // },
+        // {
+        //   "name": "租户分区",
+        //   "Rel_type": "10",
+        //   "code": "TenantZone"
+        // },
+        // {
+        //   "name": '功能分区',
+        //   'Rel_type': '11',
+        //   "code": 'FunctionZone'
+        // },
+        // {
+        //   "name": '其他分区',
+        //   'Rel_type': '11',
+        //   "code": 'OtherZone'
+        // }
       ],
       partProtion: [],// 业务空间-各分区占比数据
       defaultPart: [],// 业务空间-默认分区功能类型占比数据
@@ -640,6 +640,7 @@ export default {
       })
     },
     getZoneSpaceCount() {// 获取业务空间数据
+        this.zoneType = [];
       // 获取业务空间总数
       queryZoneCount(this.params, res => {
         this.zoneSpaceCount = res.count;
@@ -654,12 +655,18 @@ export default {
           resolve(res)
         })
       })
-      Promise.all([promise1, promise2]).then(response => {
+      let promise3 = new Promise((resolve) => {
+        queryPhysicsAllType({type: 'space', projectId: this.projectId}, res => {
+          resolve(res)
+        })
+      })
+      Promise.all([promise1, promise2, promise3]).then(response => {
         this.business = [];
         this.partProtion = [];
         this.defaultPart = [];
         let res1 = response[0]
         let res2 = response[1]
+        this.zoneType = response[2].content
         if (res1.content.length) {
           res1.content.forEach(item => {
             this.zoneTypeConversion(item);

+ 14 - 11
src/views/ledger/spacelist/spaceadd/index.vue

@@ -28,7 +28,7 @@
     <!--二维码弹窗 -->
     <qrcode :dialog="myDialog" :qrcodeUrl="qrcodeUrl" :addBody="true" ref="qrcode"></qrcode>
     <!--上传图片-->
-    <upload-img-dialog :read="false" @changeFile="imgChange" :keysArr="imgsArr" :dialog="myDialog"/>
+    <upload-img-dialog :read="false" @changeFile="imgChange" :keysArr="imgsArr" :dialog="myDialog" />
     <!-- 不支持的输入方式 -->
     <el-dialog title="临时维护信息点" :visible.sync="myDialog.update" @close="handleCloseUpdate" width="670px">
       <el-row>
@@ -37,8 +37,7 @@
       </el-row>
       <el-row style="margin-top:20px;" v-show="updateInputShow">
-        <el-input type="textarea" :autosize="{ minRows: 4, maxRows: 8}" placeholder="请输入内容"
-                  v-model="updateInput"></el-input>
+        <el-input type="textarea" :autosize="{ minRows: 4, maxRows: 8}" placeholder="请输入内容" v-model="updateInput"></el-input>
       </el-row>
       <span slot="footer" class="dialog-footer">
         <el-button @click="myDialog.update = false">取 消</el-button>
@@ -75,9 +74,9 @@ export default {
       addNum: 1,
       onlyRead: false,
       showTypes: [
-          { value: "Visible", label: '只看采集信息' },
-          { value: "all", label: '全部' }
-    	],
+        { value: "Visible", label: '只看采集信息' },
+        { value: "all", label: '全部' }
+      ],
       tableHeader: [],
       tableData: session.get("spaceAddData")
         ? session.get("spaceAddData").length
@@ -119,7 +118,7 @@ export default {
         return ""
       } else if (buildFloorSelectd && buildFloorSelectd.length == 1) {
         let build = buildFloorSelectd[0]
-        if (build == 'all' && build == 'noKnow') {
+        if (build == 'all' || build == 'noKnow') {
           return ""
         } else {
           return build
@@ -161,7 +160,6 @@ export default {
     },
     // 创建业务空间数据
     async handleCreateTableData() {
-      this.createDisable = true;
       let newData = this.tableData.filter(item => {
         let keys = Object.keys(item);
         keys.map(key => {
@@ -187,9 +185,13 @@ export default {
         // 处理建筑-楼层
         if (item.flowBuild) {
           let bid = item.flowBuild.split("-");
-          item.buildingId = item.flowBuild.split("-")[0]
-          if (bid[1]) {
-            item.floorId = item.flowBuild.split("-")[1]
+          if (bid[0] && bid[0] != 'all' && bid[0] != 'noKnow') {
+            item.buildingId = item.flowBuild.split("-")[0]
+            if (bid[1]) {
+              if (bid[1] != 'noKnow' && bid[1] != 'all') {
+                item.floorId = item.flowBuild.split("-")[1]
+              }
+            }
           }
         }
         item.classCode = this.space.spaceType;
@@ -202,6 +204,7 @@ export default {
       let param = {
         content: newData
       }
+      this.createDisable = true;
       zoneCreate(param, res => {
         this.createDisable = false;
         this.$message.success('创建成功')

+ 4 - 1
src/views/ledger/system/addsystem.vue

@@ -22,7 +22,7 @@
       </div>
     </div>
     <el-row class="center">
-      <el-button type="primary" size="medium" @click.prevent.once="handleCreateTableData" class="create_button">创建系统</el-button>
+      <el-button type="primary" size="medium" @click="handleCreateTableData" class="create_button" :disabled="createDisable">创建系统</el-button>
     </el-row>
 
     <!-- 关联楼层 -->
@@ -99,6 +99,7 @@ export default {
       id: 0,
       showType: this.$route.query.showType,
       EquipmentList: [],
+      createDisable: false
     };
   },
   computed: {
@@ -181,7 +182,9 @@ export default {
         return;
       }
       params.content = newData
+      this.createDisable = true;
       createSystemBuildFloor(params, res => {
+        this.createDisable = false;
         this.$message.success('创建成功')
         session.remove("systemAddData")
         this.$router.push({

+ 32 - 30
src/views/model/report/deleted.vue

@@ -212,37 +212,39 @@ export default {
     getGraphy() {// 绘制空间位置图片
       console.log(this.i);
       let can = this.$refs.canvas;
-      let modelId = can[this.i].dataset.modelid
-      let that = this;
-      that.clearGraphy(this.i)
-      that.scene = new LocationPointScene();
-      this.canvasLoading = true;
-      that.scene.getFloorData('/modelapi/base-graph/query', { ModelId: modelId }).then(res => {
-        that.canvasLoading = false;
-        if (res == 'error') {
-          this.FloorMap = '';
-          console.log('数据解析异常');
-          return;
-        }
-        let EquipID = can[this.i].dataset.equipid;
-        let X = Number(can[this.i].dataset.x);
-        let Y = can[this.i].dataset.y * -1;
-        that.view.scene = that.scene;
-        this.scene.addMarker({
-          Id: EquipID,
-          X: X,
-          Y: Y
+      if (can && can.length) {
+        let modelId = can[this.i].dataset.modelid
+        let that = this;
+        that.clearGraphy(this.i)
+        that.scene = new LocationPointScene();
+        this.canvasLoading = true;
+        that.scene.getFloorData('/modelapi/base-graph/query', { ModelId: modelId }).then(res => {
+            that.canvasLoading = false;
+            if (res == 'error') {
+            this.FloorMap = '';
+            console.log('数据解析异常');
+            return;
+            }
+            let EquipID = can[this.i].dataset.equipid;
+            let X = Number(can[this.i].dataset.x);
+            let Y = can[this.i].dataset.y * -1;
+            that.view.scene = that.scene;
+            this.scene.addMarker({
+            Id: EquipID,
+            X: X,
+            Y: Y
+            })
+            that.view.fitSceneToView();
+            that.view.scalable = false;
+            this.scene.isSpaceSelectable = false;
+            this.i++;
+            if (this.i !== this.pageData.length) {
+            this.$nextTick(() => {
+                this.getGraphy();
+            })
+            }
         })
-        that.view.fitSceneToView();
-        that.view.scalable = false;
-        this.scene.isSpaceSelectable = false;
-        this.i++;
-        if (this.i !== this.pageData.length) {
-          this.$nextTick(() => {
-            this.getGraphy();
-          })
-        }
-      })
+      }
     },
     clearGraphy(i) {
       // if (this.view && this.view.scene) {

+ 4 - 5
src/views/model/report/index.vue

@@ -316,7 +316,7 @@ export default {
         let equipComDelList = [],
           toBeAdded = []
         this.equipComDelList = [];
-        this.equipComAddList = [];
+        this.equipComAddMap = {};
         this.LostFloorName.forEach(item => {
           if (item.CurrentModelId) {
             equipComDelList.push({
@@ -327,11 +327,11 @@ export default {
             item.flag = 'lost';
             item.FloorName = `${item.Note + item.FloorName}`
           }
-          if (item.Id) {
+          if (item.Id && item.CurrentModelId) {
             toBeAdded.push({
               modelId: item.Id
             })
-            this.equipComAddList.push(item.Id)
+            this.equipComAddMap[item.Id] = item.CurrentModelId;
           }
         })
         let params = {
@@ -400,8 +400,7 @@ export default {
         window.open(jumpRouter.href, '_blank')
       },
       supplement() {// 点击模型待补充的设备
-        let equipComAddList = encodeURIComponent(JSON.stringify(this.equipComAddList));
-        let jumpRouter = this.$router.resolve({ path: '/model/report/supplement', query: { equipComDelList: equipComAddList } })
+        let jumpRouter = this.$router.resolve({ path: '/model/report/supplement', query: this.equipComAddMap })
         window.open(jumpRouter.href, '_blank')
       },
       getExportReport() {// 导出模型问题报告

+ 35 - 33
src/views/model/report/supplement.vue

@@ -24,7 +24,7 @@
           <p>平面图上的位置:<span>{{ item.local | localTransformation }}</span></p>
           <div class="img-box">
             <canvas :id="'canvas'+index" :width="canvasWidth" :height="canvasHeight" ref="canvas" tabindex="0"
-                    :data-modelid="item.modelId"
+                    :data-modelid="equipComAddMap[item.modelId]"
                     :data-equipid='item.id' :data-x="item.local.X" :data-y="item.local.Y"></canvas>
           </div>
         </div>
@@ -63,7 +63,7 @@ export default {
   data() {
     return {
       pageData: [],
-      equipComDelList: null,
+      equipComAddMap: null,
       canvasWidth: 400,
       canvasHeight: 280,
       scene: '',
@@ -116,7 +116,7 @@ export default {
     })
   },
   created() {
-    this.equipComDelList = decodeURIComponent(this.$route.query.equipComDelList);
+    this.equipComAddMap = this.$route.query;
   },
   computed: {
     ...mapGetters('layout', ['projectId'])
@@ -151,7 +151,7 @@ export default {
     },
     getToBeSuppement() {
       let params = {
-        filters: `modelId in ${this.equipComDelList}`,
+        filters: `modelId in ${JSON.stringify(Object.keys(this.equipComAddMap))}`,
         pageNumber: this.page.pageNumber,
         pageSize: this.page.pageSize
       }
@@ -168,7 +168,6 @@ export default {
             this.getGraphy();
           })
         }
-        // this.pageData = res.Content;
         this.pageData.forEach(item => {
           if (item.bimLocation) {
             let local = {};
@@ -198,35 +197,38 @@ export default {
     getGraphy() {// 绘制空间位置图片
       let can = this.$refs.canvas;
       let that = this;
-      let modelId = can[this.i].dataset.modelid;
-      that.clearGraphy(this.i)
-      that.scene = new LocationPointScene();
-      this.canvasLoading = true;
-      that.scene.getFloorData('/modelapi/base-graph/query', { ModelId: modelId }).then(res => {
-        that.canvasLoading = false;
-        if (res == 'error') {
-          this.FloorMap = '';
-          console.log('数据解析异常');
-          return;
-        }
-        let equipId = can[this.i].dataset.equipid;
-        let X = Number(can[this.i].dataset.x);
-        let Y = can[this.i].dataset.y * -1;
-        that.view.scene = that.scene;
-        this.scene.addMarker({
-          Id: equipId,
-          X: X,
-          Y: Y
+      if (can && can.length) {
+        let modelId = can[this.i].dataset.modelid;
+        that.clearGraphy(this.i)
+        that.scene = new LocationPointScene();
+        this.canvasLoading = true;
+        that.scene.getFloorData('/modelapi/base-graph/query', { ModelId: modelId }).then(res => {
+            that.canvasLoading = false;
+            if (res == 'error') {
+            this.FloorMap = '';
+            console.log('数据解析异常');
+            return;
+            }
+            let equipId = can[this.i].dataset.equipid;
+            let X = Number(can[this.i].dataset.x);
+            let Y = can[this.i].dataset.y * -1;
+            that.view.scene = that.scene;
+            this.scene.addMarker({
+            Id: equipId,
+            X: X,
+            Y: Y
+            })
+            that.view.fitSceneToView();
+            that.view.scalable = false;
+            this.scene.isSpaceSelectable = false;
+            this.i++;
+            if (this.i !== this.pageData.length) {
+            this.$nextTick(() => {
+                this.getGraphy();
+            })
+            }
         })
-        that.view.fitSceneToView();
-        this.scene.isSpaceSelectable = false;
-        this.i++;
-        if (this.i !== this.pageData.length) {
-          this.$nextTick(() => {
-            this.getGraphy();
-          })
-        }
-      })
+      }
     },
     clearGraphy(i) {
       this.view = new FloorView(`canvas${i}`)