Pārlūkot izejas kodu

二轮提测问题修改

zhangyu 3 gadi atpakaļ
vecāks
revīzija
81739b0113
30 mainītis faili ar 433 papildinājumiem un 126 dzēšanām
  1. 1 1
      config/index.js
  2. 6 0
      src/api/scan/request.js
  3. 9 2
      src/components/business_space/business/handsontable.vue
  4. 3 1
      src/components/dialogs/list/systemType.vue
  5. 1 1
      src/components/ledger/cenote/elevationMap.vue
  6. 3 1
      src/components/ledger/details/detail/exhibitionEnergy.vue
  7. 9 2
      src/components/ledger/handsontables/assets.vue
  8. 9 2
      src/components/ledger/handsontables/device.vue
  9. 9 2
      src/components/ledger/handsontables/system.vue
  10. 120 0
      src/components/ledger/lib/buildingDialog.vue
  11. 2 8
      src/components/ready/buildfloor/formItems.vue
  12. 1 0
      src/components/relation/overview/CardList.vue
  13. 1 1
      src/framework/layout/layout-store.js
  14. 32 1
      src/utils/handsontable/mainText.js
  15. 1 1
      src/utils/handsontable/notShow.js
  16. 6 10
      src/views/ledger/cenotelist/cenoteDetail/index.vue
  17. 46 21
      src/views/ledger/cenotelist/cenoteadd/index.vue
  18. 46 15
      src/views/ledger/cenotelist/index.vue
  19. 23 15
      src/views/ledger/facility/addfacility.vue
  20. 3 3
      src/views/ledger/facility/details/index.vue
  21. 1 0
      src/views/ledger/facility/parts/index.vue
  22. 14 5
      src/views/ledger/facility/partsmanage/addparts/index.vue
  23. 9 2
      src/views/ledger/facility/partsmanage/index.vue
  24. 14 5
      src/views/ledger/property/addproperty.vue
  25. 9 2
      src/views/ledger/rentlist/index.vue
  26. 14 5
      src/views/ledger/rentlist/rentadd/index.vue
  27. 14 5
      src/views/ledger/spacelist/spaceadd/index.vue
  28. 10 3
      src/views/ledger/system/addsystem.vue
  29. 16 11
      src/views/model/report/deleted.vue
  30. 1 1
      src/views/model/report/supplement.vue

+ 1 - 1
config/index.js

@@ -10,7 +10,7 @@ module.exports = {
     // Paths
     assetsSubDirectory: 'static',
     assetsPublicPath: '/',
-    proxyTable: proxyTable["14"],
+    proxyTable: proxyTable["18"],
 
     // Various Dev Server settings
     host: '0.0.0.0', // can be overwritten by process.env.HOST

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

@@ -2353,3 +2353,9 @@ export function problemQuery(param, success) {
   let url = `${baseUrl}${scan}/task/problems/query`
   http.postJson(url, param, success)
 }
+
+// 关系-竖井所在建筑
+export function shaftLinkBuild(param, success) {
+    let url = `${baseUrl}${rel}/sh-in-bd/link-bd`
+    http.postJson(url, param, success)
+}

+ 9 - 2
src/components/business_space/business/handsontable.vue

@@ -335,6 +335,7 @@ export default {
         observeChanges: false,
         language: "zh-CN",
         manualColumnResize: true,
+        fillHandle: 'vertical', //允许纵向填充
         manualColumnMove: true,
         dropdownMenu: [
           "filter_by_condition",
@@ -416,8 +417,14 @@ export default {
         }
       }
       if (!this.onlyRead && !inputData.editable) {
-        this.$message("该信息点的值为自动生成,不可人工维护!");
-        return false;
+        this.$confirm('该信息点的值为自动生成,不可人工维护!', '提示', {
+            confirmButtonText: '我知道了',
+            showCancelButton: false,
+            type: 'warning',
+            center: true
+        }).then(() => {
+            return false;
+        });
       }
       if (!this.onlyRead && showTools.inputModeArr.indexOf(inputData.dataType) == '-1') {
         this.updateInfoPoint = val;

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

@@ -187,7 +187,9 @@ export default {
                 }
             }
             //建筑id
-            if (this.buildId && this.buildId != "all" && this.buildId != "noKnow") {
+            if (this.buildId === "noKnow") {
+                param.buildingId = 1;
+            } else if (this.buildId && this.buildId != "all") {
                 param.buildingId = this.buildId;
             }
             //输入的查询条件

+ 1 - 1
src/components/ledger/cenote/elevationMap.vue

@@ -145,7 +145,7 @@
         }
       }
       shaftZoneLink(params, res =>{
-        this.$message.success("保存成功");
+        // this.$message.success("保存成功");
         this.init();
       })
     }

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

@@ -42,7 +42,9 @@
           } else {
             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 {
+            } else if (str === 'null') {
+                return '--'
+            }else {
                 return str.substr(0, 4) + "-" + str.substr(4, 2) + "-" + str.substr(6, 2) + " " + str.substr(8, 2)
             }
           }

+ 9 - 2
src/components/ledger/handsontables/assets.vue

@@ -644,6 +644,7 @@ export default {
         // colWidths: 200,
         autoColumnSize: true,
         language: "zh-CN",
+        fillHandle: 'vertical', //允许纵向填充
         manualColumnResize: true,
         manualColumnMove: true,
         dropdownMenu: [
@@ -918,8 +919,14 @@ export default {
           break;
       }
       if (!this.onlyRead && !inputData.editable) {
-        this.$message("该信息点的值为自动生成,不可人工维护!");
-        return false;
+        this.$confirm('该信息点的值为自动生成,不可人工维护!', '提示', {
+            confirmButtonText: '我知道了',
+            showCancelButton: false,
+            type: 'warning',
+            center: true
+        }).then(() => {
+            return false;
+        });
       }
       if (!this.onlyRead && showTools.inputModeArr.indexOf(inputData.dataType) == '-1') {
         this.updateInfoPoint = val;

+ 9 - 2
src/components/ledger/handsontables/device.vue

@@ -727,6 +727,7 @@ export default {
         // colWidths: 200,
         autoColumnSize: true,
         language: "zh-CN",
+        fillHandle: 'vertical', //允许纵向填充
         manualColumnResize: true,
         manualColumnMove: true,
         dropdownMenu: [
@@ -1215,8 +1216,14 @@ export default {
           break;
       }
       if (!this.onlyRead && !inputData.editable) {
-        this.$message("该信息点的值为自动生成,不可人工维护!");
-        return false;
+        this.$confirm('该信息点的值为自动生成,不可人工维护!', '提示', {
+            confirmButtonText: '我知道了',
+            showCancelButton: false,
+            type: 'warning',
+            center: true
+        }).then(() => {
+            return false;
+        });
       }
       if (
         !this.onlyRead &&

+ 9 - 2
src/components/ledger/handsontables/system.vue

@@ -407,6 +407,7 @@ export default {
         // colWidths: 200,
         autoColumnSize: true,
         language: "zh-CN",
+        fillHandle: 'vertical', //允许纵向填充
         manualColumnResize: true,
         manualColumnMove: true,
         dropdownMenu: [
@@ -579,8 +580,14 @@ export default {
           break;
       }
       if (!this.onlyRead && !inputData.editable) {
-        this.$message("该信息点的值为自动生成,不可人工维护!");
-        return false;
+        this.$confirm('该信息点的值为自动生成,不可人工维护!', '提示', {
+            confirmButtonText: '我知道了',
+            showCancelButton: false,
+            type: 'warning',
+            center: true
+        }).then(() => {
+            return false;
+        });
       }
       if (!this.onlyRead && showTools.inputModeArr.indexOf(inputData.dataType) == '-1') {
         this.updateInfoPoint = val;

+ 120 - 0
src/components/ledger/lib/buildingDialog.vue

@@ -0,0 +1,120 @@
+<!--
+    systemType 设备所属类型
+-->
+<template>
+    <el-dialog title="所属建筑" :visible.sync="dialog.building" width="750px">
+        <div style="height: 50px;">
+            <el-select v-model="valueList" :disabled="onlyRead" multiple clearable filterable placeholder="请选择" style="width: 100%;">
+                <el-option v-for="item in buildingData" :key="item.id" :label="item.localName" :value="item.id"> </el-option>
+            </el-select>
+        </div>
+        <span slot="footer" class="dialog-footer" v-if="!onlyRead">
+            <el-button type="primary" @click="getChange">确 定</el-button>
+        </span>
+    </el-dialog>
+</template>
+<script>
+import { buildingQuery, shaftLinkBuild } from "@/api/scan/request"
+import { mapGetters } from 'vuex'
+
+export default {
+    props: {
+        dialog: {
+            type: Object,
+            default: function () {
+                return {
+                    building: true
+                };
+            }
+        },
+        shaftId: {
+            type: String,
+            default: ""
+        },//设备id
+        onlyRead: {
+            type: Boolean,
+            default: false
+        },
+        buildingList: {
+            type: [Array]
+        }
+    },
+    data() {
+        return {
+            buildingData: [],
+            valueList: [] //选中的建筑
+        };
+    },
+    computed: {
+        ...mapGetters("layout", ["projectId"])
+    },
+    created() {
+        this.getBuildingData();
+    },
+    methods: {
+        getBuildingData() {
+            let param = {
+                orders: "localName asc",
+                pageNumber: 1,
+                pageSize: 1000
+            }
+            buildingQuery(param, res => {
+                if (res.result == 'success') {
+                    this.buildingData = res.content;
+                } else {
+                    this.$message.error(res.message)
+                }
+            })
+        },
+        getLinkBuildingData(){
+            this.valueList = this.buildingList.map(item => { return item.id })
+        },
+        getChange() {
+            if (this.shaftId) { //有竖井id
+                const params = {
+                    shaftId: this.shaftId,
+                    buildingIdList: this.valueList
+                }
+               shaftLinkBuild(params, res => {
+                   if (res.result === 'success') {
+                       this.$message.success("关联成功!");
+                       const linkBuild = this.buildingData.filter(item => {
+                            return this.valueList.find(id => {return item.id === id});
+                        })
+                        this.$emit("change", linkBuild);
+                        this.dialog.building = false;
+                        this.multipleSelection = [];
+                   } else {
+                       this.$message.error(this.message);
+                   }
+               })
+            } else {
+                const linkBuild = this.buildingData.filter(item => {
+                    return this.valueList.find(id => {return item.id === id});
+                })
+                this.$emit("change", linkBuild);
+                this.dialog.building = false;
+                this.multipleSelection = [];
+            }
+        }
+    },
+    watch: {
+        dialog: {
+            deep: true,
+            handler() {
+                if (this.dialog.building) {
+                    this.getLinkBuildingData()
+                }
+            }
+        },
+        projectId() {
+            this.buildingData = [];
+            this.valueList = [];
+            this.getBuildingData();
+        }
+    }
+};
+</script>
+
+<style lang="less">
+</style>

+ 2 - 8
src/components/ready/buildfloor/formItems.vue

@@ -119,6 +119,7 @@
           <el-input
             v-model.trim="form[item.path]"
             v-else
+            :disabled="!item.editable"
             :placeholder="item.dataType ? '' : '字典无输入类型'"
           ></el-input>
         </el-form-item>
@@ -202,14 +203,7 @@ export default {
               return item;
           }
         });
-        //手动删除掉数据字典中不存在的字段,等待后台同步
-        let newarr = [];
-        arr.forEach((t) => {
-          if ((t && t.code != "FloorQRCode") && (t && t.code != "qRCodePic") && t && t.code !="floorMap") {
-            newarr.push(t);
-          }
-        });
-        this.InforsList = newarr;
+        this.InforsList = arr;
       });
     },
     submitForm(call) {

+ 1 - 0
src/components/relation/overview/CardList.vue

@@ -58,6 +58,7 @@
                 </el-tooltip>
                 <p class="relation-title-icon reset-test fr">
                   <el-tooltip
+                    v-if="relation.note"
                     :content="relation.note"
                     placement="top"
                     style="z-index: 3;position:relative;"

+ 1 - 1
src/framework/layout/layout-store.js

@@ -26,7 +26,7 @@ export default {
     },
     projectId: '',
     group_code: '',
-    projects: project["14"],
+    projects: project["18"],
     breadcrumb: [],
     uploaderList: [], //当前上传文件列表
     secret: "saga123456", //项目密码

+ 32 - 1
src/utils/handsontable/mainText.js

@@ -35,7 +35,7 @@ const text = {
         td.style.cursor = "pointer";
         if (value instanceof Array && value.length > 0) {
             if (value.length == 1) {
-                td.innerHTML = !!value[0].infos ? (value[0].infos.localName || value[0].infos.name) : (value[0].localName || value[0].name)
+                td.innerHTML = (value[0].localName || value[0].name)? (value[0].localName || value[0].name) : (value[0].infos.localName || value[0].infos.name || "")
             } else {
                 let text = ""
                 for (let i = 0; i < value.length; i++) {
@@ -60,6 +60,37 @@ const text = {
         }
         return td;
     },
+    //建筑类型
+    buildingList: (instance, td, row, col, prop, value, cellProperties) => {
+        td.style.color = "#409EFF";
+        td.style.cursor = "pointer";
+        if (value instanceof Array && value.length > 0) {
+            if (value.length == 1) {
+                td.innerHTML = (value[0].localName || value[0].name)? (value[0].localName || value[0].name) : (value[0].infos.localName || value[0].infos.name || "")
+            } else {
+                let text = ""
+                for (let i = 0; i < value.length; i++) {
+                    if (!!value[i].localName || !!value[i].name) {
+                        if (i == value.length) {
+                            text += value[i].localName || value[i].name
+                        } else {
+                            text = value[i].localName || value[i].name + "、" + text
+                        }
+                    } else {
+                        if (i == value.length) {
+                            text += value[i].infos.localName || value[i].infos.name
+                        } else {
+                            text = value[i].infos.localName || value[i].infos.name + "、" + text
+                        }
+                    }
+                }
+                td.innerHTML = text.substring(0, 40) + "..."
+            }
+        } else {
+            td.innerHTML = "无所属建筑"
+        }
+        return td;
+    },
     //四大厂商
     idType: (instance, td, row, col, prop, value, cellProperties) => {
         let html = ''

+ 1 - 1
src/utils/handsontable/notShow.js

@@ -395,7 +395,7 @@ const showTools = {
             data: item.dataSource ? tools.formatDataSource(item.dataSource) : ""
           }
         };
-      } else if (item.dataType == dataTypeMap.DOUBLE || item.dataType == dataTypeMap.INTEGER) { // 数字输入
+      } else if (item.dataType == dataTypeMap.MENUM) { //多选输入
         return {
           data: item.path,
           renderer: tools.customDropdownRenderer,

+ 6 - 10
src/views/ledger/cenotelist/cenoteDetail/index.vue

@@ -153,6 +153,11 @@ export default {
           }
         }
         this.instance = obj;
+        this.pointData.forEach(item => {
+            if (this.instance.hasOwnProperty(item.path)) {
+                item.value = this.instance[item.path]
+            }
+        })
         this.handleRadios(1)
       })
     },
@@ -161,16 +166,7 @@ export default {
       if (val == 1) { //需采集信息
         arr = this.pointData.filter(i => i.visible)
       } else if (val == 2) { //有值信息点
-        let list = this.pointData
-        list.map(j => {
-          if (this.instance.hasOwnProperty(j.path)) {
-            return {
-              ...j,
-              value: this.instance[j.path]
-            }
-          }
-          arr = list.filter(k => k.value)
-        })
+        arr = this.pointData.filter(k => k.value)
       } else { //全部信息点
         arr = this.pointData
       }

+ 46 - 21
src/views/ledger/cenotelist/cenoteadd/index.vue

@@ -24,6 +24,10 @@
     <el-row class="center">
       <el-button type="primary" size="medium" @click="handleCreateTableData" :disabled="createDisable">创建竖井</el-button>
     </el-row>
+    <!-- 所属建筑 -->
+    <building-dialog :shaftId="shaftId" :dialog="myDialog" :onlyRead="onlyRead" @change="changeBuildingList"
+        :buildingList="buildingList">
+    </building-dialog>
   </div>
 </template>
 <script>
@@ -34,6 +38,7 @@ import text from "@/utils/handsontable/mainText"
 import session from "@/framework/utils/storage"
 
 import handsonTable from "@/components/common/handsontable"
+import buildingDialog from "@/components/ledger/lib/buildingDialog";
 import { createCenoteTableData } from "@/api/scan/request"
 import { getDataDictionary } from "@/api/dict";
 
@@ -41,7 +46,8 @@ import { mapGetters, mapActions } from "vuex";
 
 export default {
   components: {
-    handsonTable
+    handsonTable,
+    buildingDialog
   },
   data() {
     return {
@@ -50,17 +56,12 @@ export default {
       isTableRightShow: false,
       relationids: "",
       onlyRead: false,
+      myDialog: {
+        building: false,//所属建筑
+      },
       showTypes: [{ value: "Visible", label: '只看采集信息' }, { value: "all", label: '全部' }],
-      inputMap: {
-        flowBuild: {
-          editable: true,
-          code: "flowBuild",
-          name: "建筑楼层",
-          path: "flowBuild",
-          category: 'STATIC',
-          dataType: "ENUM"
-        }
-      }, //信息点和输入方式映射表
+      inputMap: {}, //信息点和输入方式映射表
+      buildingList: [],
       showType: this.$route.query.showType,
       tableHeader: [],
       tableData: session.get("cenoteAddData") ? session.get("cenoteAddData").length ? session.get("cenoteAddData") : [{}] : [{}],
@@ -136,9 +137,11 @@ export default {
       })
     },
     // 删除表格行
-    handleDeleteTableRow() {
-      this.$message.success("删除成功")
-      this.formaTableData()
+    handleDeleteTableRow(a,b,c,d) {
+        if (d && d === 'ContextMenu.removeRow') {
+            this.$message.success("删除成功");
+            this.formaTableData();
+        }
     },
     // 添加行
     handleAddTableRow() {
@@ -175,16 +178,21 @@ export default {
     formatHeaderData(list) {//格式化表头显示的数据
       let arr = tools.copyArr(list)
       let data = showTools.headerTextFilter(arr, "shaft", this.onlyRead, this.showType)
-      // data.unshift("关联的元空间");
+      if (this.showType == 'all') {
+        data.splice(3, 0, '所属建筑');
+      }
       return data;
     },
     formatHeaderType(list) {//格式化表头头映射的数据
       let arr = tools.copyArr(list);
       let data = showTools.headerTypeFilter(arr, "shaft", this.onlyRead, this.showType)
-      // data.unshift({
-      //   data: "SpaceCount",
-      //   readOnly: this.onlyRead
-      // })
+      if (this.showType == 'all') {
+        data.splice(3, 0, {
+            data: 'buildingList',
+            renderer: text.buildingList,
+            readOnly: this.onlyRead
+        })
+      }
       return data;
     },
     initTable() {//实例化表格
@@ -193,6 +201,7 @@ export default {
         colHeaders: this.formatHeaderData(this.tableHeader),
         columns: this.formatHeaderType(this.tableHeader),
         rowHeights: 30,
+        fillHandle: 'vertical', //允许纵向填充
         maxRows: this.tableData.length,
         contextMenu: this.onlyRead ? false : {
           items: {
@@ -219,15 +228,31 @@ export default {
       let inputData = this.inputMap[val];
       this.row = row.row //要操作的列号
       this.messKey = val //要操作的列类型
+      this.shaftId = infos.id //要操作的数据id
+      if (val === "buildingList") { //所属建筑
+        this.buildingList = infos[val]? infos[val]: [];
+        this.myDialog.building = true;
+        return false
+      }
       if (!this.onlyRead && !inputData.editable) {
-        this.$message("该信息点的值为自动生成,不可人工维护!");
-        return false;
+        this.$confirm('该信息点的值为自动生成,不可人工维护!', '提示', {
+            confirmButtonText: '我知道了',
+            showCancelButton: false,
+            type: 'warning',
+            center: true
+        }).then(() => {
+            return false;
+        });
       }
       //点击关联的元空间
       // if (val === "SpaceCount") {
       //   this.isTableRightShow = true;
       // }
     },
+    //所属建筑
+    changeBuildingList(data) {
+      tools.setDataForKey(this.tableData[this.row], "buildingList", data);
+    },
     //表格点击事件
     handleTdClick(el, rowArr) {
       //点击的是表头

+ 46 - 15
src/views/ledger/cenotelist/index.vue

@@ -33,6 +33,10 @@
                    layout="total, sizes, prev, pager, next, jumper"
                    :total="page.total">
     </el-pagination>
+    <!-- 所属建筑 -->
+    <building-dialog :shaftId="shaftId" :dialog="myDialog" :onlyRead="onlyRead"
+                 @change="changeBuildingList"
+                 :buildingList="buildingList"></building-dialog>
     <!-- 不支持的输入方式 -->
     <el-dialog title="临时维护信息点" :visible.sync="myDialog.update" @close="handleCloseUpdate" width="670px">
       <el-row>
@@ -52,10 +56,12 @@
   </div>
 </template>
 <script>
-import tools from "@/utils/scan/tools"
+import tools from "@/utils/scan/tools";
+import text from "@/utils/handsontable/mainText";
 import handsonUtils from "@/utils/hasontableUtils"
 import showTools from "@/utils/handsontable/notShow"
 import cenoteType from "@/components/ledger/lib/cenoteType";
+import buildingDialog from "@/components/ledger/lib/buildingDialog";
 import handsonTable from "@/components/common/handsontable";
 import {getDataDictionary} from "@/api/dict";
 import {
@@ -70,7 +76,8 @@ import {mapGetters} from "vuex";
 export default {
   components: {
     cenoteType,
-    handsonTable
+    handsonTable,
+    buildingDialog
   },
   data() {
     return {
@@ -96,20 +103,14 @@ export default {
       },
       tableData: [],
       copyTableData: [],
+      buildData: [],
       tableExample: null,
       myDialog: {
         update: false,//临时维护信息点
+        building: false,//所属建筑
       },
-      inputMap: {
-        flowBuild: {
-          editable: true,
-          code: "flowBuild",
-          name: "建筑楼层",
-          path: "flowBuild",
-          category: 'STATIC',
-          dataType: "ENUM"
-        }
-      }, //信息点和输入方式映射表
+      inputMap: {}, //信息点和输入方式映射表
+      buildingList: [], //当前选中竖井所属建筑
       updateInputShow: false, //是否显示临时维护输入框
       updateInfoPoint: '',//临时维护信息点
       updateInput: '', //临时维护信息点值
@@ -171,7 +172,7 @@ export default {
     },
     async getTableData() {//获取表格数据
       let params = {
-        cascade: [{ name: 'spaceList' }],
+        cascade: [{ name: 'spaceList' }, { name: 'buildingList' }],
         orders: "createTime desc, localName desc, localId desc, id asc",
         pageNumber: this.page.pageNumber,
         pageSize: this.page.pageSize
@@ -319,6 +320,9 @@ export default {
       let arr = tools.copyArr(list)
       let data = showTools.headerTextFilter(arr, "shaft", this.onlyRead, this.showType)
       data.unshift("关联的业务空间", "其他关系");
+      if (this.showType == 'all') {
+        data.splice(4, 0, '所属建筑');
+      }
       return data;
     },
     formatHeaderType(list) {//格式化表头头映射的数据
@@ -328,6 +332,7 @@ export default {
         data: "spaceList",
         renderer: (instance, td, row, col, prop, value, cellProperties) => {
           td.style.color = "#409EFF";
+          td.style.cursor = "pointer";
           td.innerHTML = `<span>${value ? value.length : 0}</span>`
           return td;
         },
@@ -342,6 +347,13 @@ export default {
         },
         readOnly: true
       })
+      if (this.showType == 'all') {
+        data.splice(4, 0, {
+            data: 'buildingList',
+            renderer: text.buildingList,
+            readOnly: this.onlyRead
+        })
+      }
       return data;
     },
     initTable() {//实例化表格
@@ -351,6 +363,7 @@ export default {
         colHeaders: this.formatHeaderData(this.tableHeader),
         columns: this.formatHeaderType(this.tableHeader),
         rowHeights: 30,
+        fillHandle: 'vertical', //允许纵向填充
         maxRows: this.tableData.length,
         contextMenu: this.onlyRead ? false : {
           items: {
@@ -376,6 +389,7 @@ export default {
       let val = this.tableExample.colToProp(row.col)
       let inputData = this.inputMap[val]
       let name = infos.localName ? infos.localName : infos.name
+      this.row = row.row;
       this.shaftId = infos.id //要操作的数据id
       //点击关联的业务空间
       if (val === "spaceList") {
@@ -393,10 +407,20 @@ export default {
           }
         })
         return false
+      } else if (val === "buildingList") { //所属建筑
+        this.buildingList = infos[val]? infos[val]: [];
+        this.myDialog.building = true;
+        return false
       }
       if (!this.onlyRead && !inputData.editable) {
-        this.$message("该信息点的值为自动生成,不可人工维护!");
-        return false;
+        this.$confirm('该信息点的值为自动生成,不可人工维护!', '提示', {
+            confirmButtonText: '我知道了',
+            showCancelButton: false,
+            type: 'warning',
+            center: true
+        }).then(() => {
+            return false;
+        });
       }
       if (!this.onlyRead && showTools.inputModeArr.indexOf(inputData.dataType) == '-1') {
         this.updateInfoPoint = val;
@@ -405,6 +429,13 @@ export default {
         return false;
       }
     },
+    //所属建筑
+    changeBuildingList(data) {
+        console.log(this.tableData[this.row]);
+        console.log("buildingList");
+        console.log(data);
+      tools.setDataForKey(this.tableData[this.row], "buildingList", data);
+    },
     //关闭临时维护弹窗回调
     handleCloseUpdate() {
       this.updateInputShow = false

+ 23 - 15
src/views/ledger/facility/addfacility.vue

@@ -194,7 +194,6 @@ export default {
     },
     // 创建设备数据
     async handleCreateTableData() {
-        debugger
       let newData = this.tableData.filter(item => {
         let keys = Object.keys(item);
         keys.map(key => {
@@ -286,9 +285,11 @@ export default {
       })
     },
     // 删除表格行
-    handleDeleteTableRow() {
-      this.$message.success("删除成功");
-      this.formaTableData();
+    handleDeleteTableRow(a,b,c,d) {
+			if (d && d === 'ContextMenu.removeRow') {
+				this.$message.success("删除成功");
+				this.formaTableData();
+			}
     },
     // 添加行
     handleAddTableRow() {
@@ -368,6 +369,7 @@ export default {
         colHeaders: this.formatHeaderData(this.tableHeader),
         columns: this.formatHeaderType(this.tableHeader),
         rowHeights: 30,
+				fillHandle: 'vertical', //允许纵向填充
         maxRows: this.tableData.length,
         contextMenu: this.onlyRead ? false : {
           items: {
@@ -468,7 +470,7 @@ export default {
         case 'caozuo':
           // window.open(`http://adm.sagacloud.cn:8058/spread?id=${infos.EquipID}&pid=${this.projectId}&secret=${this.secret}`,"_blank")
           this.$message("开发中...")
-          break;
+          return false;
         case "defaultQRCode":
           this.qrcodeUrl = this.tableData[row.row][val];
           if (this.qrcodeUrl) {
@@ -476,23 +478,23 @@ export default {
           } else {
             this.$message("此设备没有设备二维码");
           }
-          break;
+          return false;
         // 同时创建资产
         case 'checked':
-          return
+          return false;
         //关联系统
         case 'linkSystem':
           if (!this.onlyRead) {
             this.systemList = this.tableData[row.row].linkSystem || [];
             this.myDialog.systemType = true;
           }
-          break;
+          return false;
         //关联资产
         case 'linkEquipLocalName':
           if (this.linkNameFalg) {
             this.myDialog.changeRea = true;
           }
-          break;
+          return false;
         /**
          * 关联资产后才可维护的信息点
          */
@@ -537,20 +539,20 @@ export default {
           let IPSdata = tools.dataForKey(this.tableData[row.row], val);
           this.filesArr = IPSdata ? IPSdata : [];
           this.myDialog.uploadFiles = true;
-          break;
+          return false;
         //安装照片--设备铭牌照片
         case 'infos.installPic':
         case 'infos.nameplate':
           let SSPPdata = tools.dataForKey(this.tableData[row.row], val);
           this.imgsArr = SSPPdata ? SSPPdata : [];
           this.myDialog.uploadImgs = true;
-          break;
+          return false;
         //设备照片
         case 'infos.pic':
           let Pdata = tools.dataForKey(this.tableData[row.row], val);
           this.picsArr = Pdata ? Pdata : [];
           this.myDialog.pic = true;
-          break;
+          return false;
         //包含的部件字段
         case 'count':
           if (this.onlyRead) {
@@ -561,13 +563,19 @@ export default {
               query: { deviceId: infos.EquipID, typeId: this.mess.deviceId }
             });
           }
-          break;
+          return false;
         default:
           break;
       }
       if (!this.onlyRead && !inputData.editable) {
-        this.$message("该信息点的值为自动生成,不可人工维护!");
-        return false;
+				this.$confirm('该信息点的值为自动生成,不可人工维护!', '提示', {
+					confirmButtonText: '我知道了',
+					showCancelButton: false,
+					type: 'warning',
+					center: true
+				}).then(() => {
+						return false;
+				});
       }
     },
     utilToKey(key, name, data, messName) {

+ 3 - 3
src/views/ledger/facility/details/index.vue

@@ -227,9 +227,9 @@ export default {
               })
             }
           }
-					if (this.instance.hasOwnProperty(item.path)) {
-						item.value = this.instance[item.path]
-					}
+            if (this.instance.hasOwnProperty(item.path)) {
+                item.value = this.instance[item.path]
+            }
         })
         let params = { //获取动态参数
           groupCode: this.group_code,

+ 1 - 0
src/views/ledger/facility/parts/index.vue

@@ -224,6 +224,7 @@ export default {
         colHeaders: this.formatHeaderData(this.tableHeader),
         columns: this.formatHeaderType(this.tableHeader),
         rowHeights: 30,
+        fillHandle: 'vertical', //允许纵向填充
         maxRows: this.tableData.length,
         contextMenu: this.onlyRead ? false : {
           items: {

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

@@ -253,9 +253,11 @@ export default {
       }
     },
     // 删除表格行
-    handleDeleteTableRow() {
-      this.$message.success("删除成功");
-      this.formaTableData();
+    handleDeleteTableRow(a,b,c,d) {
+        if (d && d === 'ContextMenu.removeRow') {
+            this.$message.success("删除成功");
+            this.formaTableData();
+        }
     },
     // 添加行
     handleAddTableRow() {
@@ -317,6 +319,7 @@ export default {
         colHeaders: this.formatHeaderData(this.tableHeader),
         columns: this.formatHeaderType(this.tableHeader),
         rowHeights: 30,
+        fillHandle: 'vertical', //允许纵向填充
         maxRows: this.tableData.length,
         contextMenu: this.onlyRead ? false : {
           items: {
@@ -473,8 +476,14 @@ export default {
         this.myDialog.pic = true;
       }
       if (!this.onlyRead && !inputData.editable) {
-        this.$message("该信息点的值为自动生成,不可人工维护!");
-        return false;
+        this.$confirm('该信息点的值为自动生成,不可人工维护!', '提示', {
+            confirmButtonText: '我知道了',
+            showCancelButton: false,
+            type: 'warning',
+            center: true
+        }).then(() => {
+            return false;
+        });
       }
       if (!this.onlyRead && showTools.inputModeArr.indexOf(inputData.dataType) == '-1') {
         this.updateInfoPoint = val;

+ 9 - 2
src/views/ledger/facility/partsmanage/index.vue

@@ -429,6 +429,7 @@ export default {
         colHeaders: this.formatHeaderData(this.tableHeader),
         columns: this.formatHeaderType(this.tableHeader),
         rowHeights: 30,
+        fillHandle: 'vertical', //允许纵向填充
         maxRows: this.tableData.length,
         contextMenu: this.onlyRead ? false : {
           items: {
@@ -622,8 +623,14 @@ export default {
           break;
       }
       if (!this.onlyRead && !inputData.editable) {
-        this.$message("该信息点的值为自动生成,不可人工维护!");
-        return false;
+        this.$confirm('该信息点的值为自动生成,不可人工维护!', '提示', {
+            confirmButtonText: '我知道了',
+            showCancelButton: false,
+            type: 'warning',
+            center: true
+        }).then(() => {
+            return false;
+        });
       }
       if (!this.onlyRead && showTools.inputModeArr.indexOf(inputData.dataType) == '-1') {
         this.updateInfoPoint = val;

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

@@ -188,9 +188,11 @@ export default {
       })
     },
     // 删除表格行
-    handleDeleteTableRow() {
-      this.$message.success("删除成功")
-      this.formaTableData()
+    handleDeleteTableRow(a,b,c,d) {
+        if (d && d === 'ContextMenu.removeRow') {
+            this.$message.success("删除成功");
+            this.formaTableData();
+        }
     },
     // 添加行
     handleAddTableRow() {
@@ -251,6 +253,7 @@ export default {
         colHeaders: this.formatHeaderData(this.tableHeader),
         columns: this.formatHeaderType(this.tableHeader),
         rowHeights: 30,
+        fillHandle: 'vertical', //允许纵向填充
         maxRows: this.tableData.length,
         contextMenu: this.onlyRead ? false : {
           items: {
@@ -379,8 +382,14 @@ export default {
           break;
       }
       if (!this.onlyRead && !inputData.editable) {
-        this.$message("该信息点的值为自动生成,不可人工维护!");
-        return false;
+        this.$confirm('该信息点的值为自动生成,不可人工维护!', '提示', {
+            confirmButtonText: '我知道了',
+            showCancelButton: false,
+            type: 'warning',
+            center: true
+        }).then(() => {
+            return false;
+        });
       }
     },
     utilToKey(key, name, data, messName) {

+ 9 - 2
src/views/ledger/rentlist/index.vue

@@ -385,6 +385,7 @@ export default {
         colHeaders: this.formatHeaderData(this.tableHeader),
         columns: this.formatHeaderType(this.tableHeader),
         rowHeights: 30,
+        fillHandle: 'vertical', //允许纵向填充
         maxRows: this.tableData.length,
         contextMenu: this.onlyRead ? false : {
           items: {
@@ -430,8 +431,14 @@ export default {
         return false
       }
       if (!this.onlyRead && !inputData.editable) {
-        this.$message("该信息点的值为自动生成,不可人工维护!");
-        return false;
+        this.$confirm('该信息点的值为自动生成,不可人工维护!', '提示', {
+            confirmButtonText: '我知道了',
+            showCancelButton: false,
+            type: 'warning',
+            center: true
+        }).then(() => {
+            return false;
+        });
       }
       if (!this.onlyRead && showTools.inputModeArr.indexOf(inputData.dataType) == '-1') {
         this.updateInfoPoint = val

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

@@ -132,9 +132,11 @@ export default {
       })
     },
     // 删除表格行
-    handleDeleteTableRow() {
-      this.$message.success("删除成功")
-      this.formaTableData()
+    handleDeleteTableRow(a,b,c,d) {
+        if (d && d === 'ContextMenu.removeRow') {
+            this.$message.success("删除成功");
+            this.formaTableData();
+        }
     },
     // 添加行
     handleAddTableRow() {
@@ -189,6 +191,7 @@ export default {
         colHeaders: this.formatHeaderData(this.tableHeader),
         columns: this.formatHeaderType(this.tableHeader),
         rowHeights: 30,
+        fillHandle: 'vertical', //允许纵向填充
         maxRows: this.tableData.length,
         contextMenu: this.onlyRead ? false : {
           items: {
@@ -216,8 +219,14 @@ export default {
       this.messKey = val //要操作的列类型
       let inputData = this.inputMap[val];
       if (!this.onlyRead && !inputData.editable) {
-        this.$message("该信息点的值为自动生成,不可人工维护!");
-        return false;
+        this.$confirm('该信息点的值为自动生成,不可人工维护!', '提示', {
+            confirmButtonText: '我知道了',
+            showCancelButton: false,
+            type: 'warning',
+            center: true
+        }).then(() => {
+            return false;
+        });
       }
       //点击关联的元空间
       // if (val === "SpaceCount") {

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

@@ -221,9 +221,11 @@ export default {
       })
     },
     // 删除表格行
-    handleDeleteTableRow() {
-      this.$message.success("删除成功");
-      this.formaTableData();
+    handleDeleteTableRow(a,b,c,d) {
+        if (d && d === 'ContextMenu.removeRow') {
+            this.$message.success("删除成功");
+            this.formaTableData();
+        }
     },
     // 添加行
     handleAddTableRow() {
@@ -284,6 +286,7 @@ export default {
         colHeaders: this.formatHeaderData(this.tableHeader),
         columns: this.formatHeaderType(this.tableHeader),
         rowHeights: 30,
+        fillHandle: 'vertical', //允许纵向填充
         maxRows: this.tableData.length,
         contextMenu: this.onlyRead ? false : {
           items: {
@@ -382,8 +385,14 @@ export default {
           break;
       }
       if (!this.onlyRead && !inputData.editable) {
-        this.$message("该信息点的值为自动生成,不可人工维护!");
-        return false;
+        this.$confirm('该信息点的值为自动生成,不可人工维护!', '提示', {
+            confirmButtonText: '我知道了',
+            showCancelButton: false,
+            type: 'warning',
+            center: true
+        }).then(() => {
+            return false;
+        });
       }
       if (!this.onlyRead && showTools.inputModeArr.indexOf(inputData.dataType) == '-1') {
         this.updateInfoPoint = val;

+ 10 - 3
src/views/ledger/system/addsystem.vue

@@ -197,7 +197,7 @@ export default {
     handleDeleteTableRow(a,b,c,d) {
       if (d && d === 'ContextMenu.removeRow') {
 				this.$message.success("删除成功");
-      	this.formaTableData();
+    		this.formaTableData();
 			}
     },
     // 添加行
@@ -253,6 +253,7 @@ export default {
         colHeaders: this.formatHeaderData(this.tableHeader),
         columns: this.formatHeaderType(this.tableHeader),
         rowHeights: 30,
+        fillHandle: 'vertical', //允许纵向填充
         maxRows: this.tableData.length,
         contextMenu: this.onlyRead ? false : {
           items: {
@@ -368,8 +369,14 @@ export default {
           break;
       }
       if (!this.onlyRead && !inputData.editable) {
-        this.$message("该信息点的值为自动生成,不可人工维护!");
-        return false;
+        this.$confirm('该信息点的值为自动生成,不可人工维护!', '提示', {
+            confirmButtonText: '我知道了',
+            showCancelButton: false,
+            type: 'warning',
+            center: true
+        }).then(() => {
+            return false;
+        });
       }
     },
     //建筑楼层

+ 16 - 11
src/views/model/report/deleted.vue

@@ -7,19 +7,19 @@
           <h4>{{index | numTransformation(4)}}<el-badge value="待删除" class="item"></el-badge>
           </h4>
           <h4>{{`${item.buildingName || '**'}`}}-{{`${item.floorName || '**'}`}}-{{`${item.localName?item.localName:item.name}`}}</h4>
-          <b>BIM ID:<span @dblclick="copyContent"
+          <b>BIM ID<span @dblclick="copyContent"
               id="copy">{{item.bimId | bimIdTransformation}}</span></b><span class="copy"
             @click="clickCopy">点击复制</span>
           <input id="copyContent" type="text" @dblclick="copyContent" style="border:none;opacity:0;position:absolute;top:0;left:0;">
           <!-- <p style="margin-top:30px;">Revit族:{{item.BIMFamilyName}}</p> -->
-          <p>设计图纸中编码:{{item.cadId || '--'}}</p>
-          <p><span>设备类型:{{item.codeName || '--'}}</span></p>
-          <p>设备ID:{{item.id}}</p>
+          <p>设计图纸中编码{{item.cadId || '--'}}</p>
+          <p><span>设备类型{{item.codeName || '--'}}</span></p>
+          <p>设备ID{{item.id}}</p>
           <!-- <p><span v-if="item.Property && item.Property.FamilyName">资产族:{{item.Property.FamilyName.Name}}</span><span
               v-if="item.PropertyId">关联的资产ID:{{item.PropertyId}}</span></p> -->
-          <p>现场任务ID:{{item.scanTaskBase && item.scanTaskBase[0]?item.scanTaskBase[0].TaskId:""}}</p>
+          <p>现场任务ID:{{item.scanTaskBase && item.scanTaskBase[0]?item.scanTaskBase[0].id:"--"}}</p>
           <p>
-            <span>执行人:{{item.scanTaskBase && item.scanTaskBase[0]?item.scanTaskBase[0].WorkerName:''}}</span><span>确认人:{{item.scanTaskBase && item.scanTaskBase[0]?item.scanTaskBase[0].ConfirmingPersonName:''}}</span>
+            <span>执行人:{{item.scanTaskBase && item.scanTaskBase[0]?item.scanTaskBase[0].workerName:'--'}}</span><span>确认人:{{item.scanTaskBase && item.scanTaskBase[0]?item.scanTaskBase[0].confirmingPersonName:'--'}}</span>
           </p>
         </div>
         <div class="plan">
@@ -31,21 +31,25 @@
         </div>
       </div>
       <div class="content-bottom">
-        <div class="explain" v-if="item.scanTaskBase && item.scanTaskBase[0] && item.scanTaskBase[0].Note">
+        <div class="explain" v-if="item.scanTaskBase && item.scanTaskBase[0] && item.scanTaskBase[0].note">
           <p>现场问题说明:</p>
           <el-scrollbar>
             <p class="explain-content">
               <el-scrollbar>
-                {{item.scanTaskBase?item.scanTaskBase[0].Note:""}}
+                {{item.scanTaskBase?item.scanTaskBase[0].note:""}}
               </el-scrollbar>
             </p>
           </el-scrollbar>
         </div>
-        <div class="photo" v-for="(it,ind) in item.scanTaskBase[0].TaskPicList" :key='ind' v-else-if="item.scanTaskBase && item.scanTaskBase[0]">
+        <div class="photo" v-for="it in item.scanTaskBase[0].taskPicList" :key='it.key' v-show="item.scanTaskBase && item.scanTaskBase[0] && item.scanTaskBase[0].taskPicList">
           <div class="img-box">
-            <p>{{it.Name}}<span>拍摄时间:{{it.CreateTime | timeTransformation}}</span></p>
+            <p>{{it.name}}<span>拍摄时间:{{it.createTime | timeTransformation}}</span></p>
             <div class="img-content">
-              <img :src="`/image-service/common/image_get?systemId=dataPlatform&key=${it.Key}`" alt="现场拍摄照片">
+              <img v-if="it.type === 'image'" :src="`/image-service/common/image_get?systemId=dataPlatform&key=${it.key}`" :alt="it.name">
+              <video v-else-if="it.type === 'video'" style="width: 100%;height: 100%;" controls>
+								<source :src="`/image-service/common/file_get?systemId=dataPlatform&key=${it.key}`" type="video/mp4" />
+								您的浏览器不支持 HTML5 video ,暂无法播放。
+              </video>
             </div>
           </div>
         </div>
@@ -162,6 +166,7 @@ export default {
       let params = {
         orders: "createTime desc ,id asc",
         filters: `modelId in ${this.equipComDelList}`,
+        cascade: [{ name: "scanTaskBase" }],
         pageNumber: this.page.pageNumber,
         pageSize: this.page.pageSize
       }

+ 1 - 1
src/views/model/report/supplement.vue

@@ -93,7 +93,7 @@ export default {
       return str;
     },
     timeTransformation(time) {// 时间转换
-      return time ? time.substring(0, 16) : '--'
+      return time ? time : '--'
     }
   },
   mounted() {