瀏覽代碼

merge master

haojianlong 5 年之前
父節點
當前提交
9389fda6c7
共有 42 個文件被更改,包括 2561 次插入1836 次删除
  1. 1 1
      config/prod.env.js
  2. 58 0
      src/api/scan/request.js
  3. 1 1
      src/assets/scss/point/point_config/common.scss
  4. 2 2
      src/components/business_space/dialogs/changeRea.vue
  5. 49 17
      src/components/config_point/cut_string.vue
  6. 1 1
      src/components/config_point/find_keyword.vue
  7. 1 1
      src/components/config_point/step3_edit/auto_handle.vue
  8. 1 1
      src/components/config_point/step3_edit/enum_handle.vue
  9. 1 1
      src/components/config_point/step3_edit/formula_handle.vue
  10. 49 11
      src/components/config_point/step3_edit/index.vue
  11. 1 1
      src/components/config_point/step3_edit/no_handle.vue
  12. 5 5
      src/components/config_point/step3_edit/split_handle.vue
  13. 31 13
      src/components/config_point/step3_point/3_temps.vue
  14. 35 30
      src/components/config_point/step3_point/steps3_main.vue
  15. 2 2
      src/components/data_admin/buildData/findId.js
  16. 1 1
      src/components/dialogs/addDialog/dialogDevice.vue
  17. 2 2
      src/components/dialogs/changeRea.vue
  18. 7 3
      src/components/dialogs/list/supplyDialog.vue
  19. 19 5
      src/components/ledger/handsontables/assets.vue
  20. 23 22
      src/components/ledger/handsontables/device.vue
  21. 1 1
      src/components/ledger/handsontables/system.vue
  22. 0 1
      src/components/ledger/lib/cenoteType.vue
  23. 6 7
      src/components/ledger/lib/floorCascader.vue
  24. 3 1
      src/components/ledger/lib/qrcode.vue
  25. 14 12
      src/data/menus.js
  26. 2 2
      src/utils/handsontable/mainText.js
  27. 264 68
      src/utils/handsontable/notShow.js
  28. 1 1
      src/utils/point_edit/handson_header.js
  29. 64 7
      src/utils/scan/tools.js
  30. 9 3
      src/views/data_admin/buildData/index.vue
  31. 3 1
      src/views/data_admin/buildGraphy/index.vue
  32. 8 13
      src/views/ledger/cenotelist/cenoteadd/index.vue
  33. 21 22
      src/views/ledger/cenotelist/index.vue
  34. 466 453
      src/views/ledger/facility/parts/index.vue
  35. 551 552
      src/views/ledger/facility/partsmanage/addparts/index.vue
  36. 727 502
      src/views/ledger/facility/partsmanage/index.vue
  37. 1 1
      src/views/point/config_point/index.vue
  38. 71 11
      src/views/point/config_point/steps/step1.vue
  39. 27 12
      src/views/point/config_point/steps/step2.vue
  40. 5 13
      src/views/point/config_point/steps/step3.vue
  41. 17 20
      src/views/rent/rentlist/index.vue
  42. 10 13
      src/views/rent/rentlist/rentadd/index.vue

+ 1 - 1
config/prod.env.js

@@ -1,8 +1,8 @@
 'use strict'
 module.exports = {
     NODE_ENV: '"production"',
-    // BASE_URL: '"http://mbi.sagacloud.cn"', //线上iframe地址
     BASE_URL: '"http://172.16.0.239"', //测试iframe地址
     SSO_SERVER: '"http://192.168.20.101:8004"' //测试环境
+    // BASE_URL: '"http://mbi.sagacloud.cn"', //线上iframe地址
     // SSO_SERVER: '"http://sso.sagacloud.cn"'  //正式环境
 }

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

@@ -167,6 +167,8 @@ export function getPT(param) {
     }
     if (data.FloorId == 'all') {
         delete data.FloorId
+    } else if (data.FloorId == "noKnow") {
+        data.FloorId = ""
     }
     return fetch({ method: 'POST', url: `${api}/service/fm/point_group`, data })
 }
@@ -211,6 +213,8 @@ export function getTabFamily(param) {
     }
     if (data.FloorId == 'all') {
         delete data.FloorId
+    } else if (data.FloorId == "noKnow") {
+        data.FloorId = ""
     }
     return fetch({ method: 'POST', url: `${api}/service/fm/family_list`, data })
 }
@@ -851,4 +855,58 @@ export function getBasicMatch(param) {
     console.log(param, "param")
     let data = param
     return fetch({ method: 'POST', url: `${venders}/basic/autoFillId`, data })
+}
+
+//设备清单-查询设备内容
+export function getEquipTableCon(param) {
+    let data = param;
+    return fetch({ method: 'POST', url: `${baseUrl}/equip-component/equip-query/equip-components`, data })
+}
+
+//设备清单-查询当前设备下的部件分类
+export function getEquipPartsType(param) {
+    let data = param;
+    return fetch({ method: 'POST', url: `${baseUrl}/equip-component/equip-query/components-count`, data })
+}
+
+//设备清单-查询当前设备类下的部件分类
+export function getPartsAllType(param) {
+    let data = param;
+    return fetch({ method: 'GET', url: `${baseUrl}/equip-component/equip-query/equip-compon?category=${data.category}&id=${data.id}` })
+}
+
+//all - 查询数据字典 --列表表头
+export function getDataDictionary(param) {
+    let data = param;
+    return fetch({ method: 'POST', url: `${baseUrl}/datacenter/data-dictionary/query`, data })
+}
+
+//设备清单 - 根据分类查询部件列表内容
+export function getEquipPartsCon(param) {
+    let data = param;
+    return fetch({ method: 'POST', url: `${baseUrl}/equip-component/equip-query/components-property`, data })
+}
+
+//设备清单 - 新增部件
+export function createPart(param) {
+    let data = param.data;
+    return fetch({ method: 'POST', url: `${baseUrl}/datacenter/component/create?projectId=${param.projectId}`, data })
+}
+
+//设备清单 - 删除部件
+export function deleteParts(param) {
+    let data = param.data;
+    return fetch({ method: 'POST', url: `${baseUrl}/datacenter/component/delete?projectId=${param.projectId}`, data })
+}
+
+//设备清单 - 更新部件
+export function updateParts(param) {
+    let data = param.data;
+    return fetch({ method: 'POST', url: `${baseUrl}/datacenter/component/update?projectId=${param.projectId}`, data })
+}
+
+//创建资产
+export function createPropertyData(param) {
+    let data = param.data;
+    return fetch({ method: 'POST', url: `${baseUrl}/datacenter/property/create?projectId=${param.projectId}`, data })
 }

+ 1 - 1
src/assets/scss/point/point_config/common.scss

@@ -48,7 +48,7 @@ body .htFiltersConditionsMenu:not(.htGhostTable) {
 }
 
 .margin5 {
-    margin: 18px 18px 18px 10px;
+    margin: 10px 18px 18px 10px;
 }
 
 .dcenter {

+ 2 - 2
src/components/business_space/dialogs/changeRea.vue

@@ -273,8 +273,8 @@ export default {
             type: ""
           }
         },
-        secret: this.$route.query.secret,
-        ProjId: this.$route.query.projId
+        secret: this.secret,
+        ProjId: this.projectId
       }
       if (this.mess.buildId == "all") {
         param.data.criteria.id = this.mess.ProjId

+ 49 - 17
src/components/config_point/cut_string.vue

@@ -6,11 +6,11 @@
             @click="checkItem(item,index)"
             ref="span"
             :class="{
-                'saga-warning': isWarning(item)
+                'saga-warning': isWarning(index)
             } "
             class="cut-string saga-border pointer border-hover"
           >{{item}}</span>
-</template>
+        </template>
   </div>
 </template>
 <script>
@@ -27,22 +27,49 @@
         },
         data() {
             return {
-                stringArr: this.string.split(""),
+                // stringArr: this.string.split(""),
                 obj: {},
-                arr: []
+                arr: [],
+                keywordIndexArr: []
+            }
+        },
+        computed: {
+            stringArr(){
+                return this.string.split("")
             }
         },
-        created() {},
+        created() {this.recursiveGetIndex(0)},
         mounted() {},
         methods: {
             //是否在危险状态
             isWarning(val){
-                if(this.closedStr.indexOf(val) > -1){
+                if(this.keywordIndexArr.indexOf(val) > -1){
                     return true
                 }else{
                     return false
                 }
             },
+            recursiveGetIndex(start){ //递归获取满足关键字的索引值
+                if (this.closedStr) {
+                    let index = this.string.indexOf(this.closedStr,start)
+                    if(index != -1){
+                        for(let i = 0; i < this.closedStr.length; i++){
+                            this.keywordIndexArr.push(index + i)
+                        }
+                        this.recursiveGetIndex(index + this.closedStr.length)
+                    }
+                } 
+            },
+            aiGetIndex(str){ //递归获取满足ai关键字的索引值
+                let index = this.string.indexOf(str),
+                    arr = []
+                if(index != -1){
+                    for(let i = 0; i < str.length; i++){
+                        arr.push(index + i)
+                    }
+                }
+                return arr
+            },
             checkItem(item, index) {
                 if(this.obj.hasOwnProperty(index)){
                     delete this.obj[index]
@@ -59,25 +86,28 @@
             },
             clear(str) {
                 this.obj = {}
-                this.stringArr = this.string.split("")
+                // this.stringArr = this.string.split("")
                 for(let i = 0; i < this.stringArr.length; i++){
-                    let classList = this.$refs.span[i].getAttribute('class')
-                    if(classList.indexOf('bg') > -1){
-                        classList = classList.split('bg')
+                    if (this.$refs.span && this.$refs.span[i]) {
+                        let classList = this.$refs.span[i].getAttribute('class')
+                        if(classList.indexOf('bg') > -1){
+                            classList = classList.split('bg')
+                        }
+                        this.$refs.span[i].setAttribute('class',classList)
                     }
-                    this.$refs.span[i].setAttribute('class',classList)
                 }
                 if(!!str){
-                    let strsArr = str.split("")
-                    strsArr.map((item,index) => {
-                        for(let j = 0; j < stringArr.length;j++){
-                            if(item == stringArr[j]){
-                                this.obj[j] = item
+                    let aiIndexArr = this.aiGetIndex(str)
+                    // let strsArr = str.split("")
+                    // strsArr.map((item,index) => {
+                        for(let j = 0; j < this.stringArr.length;j++){
+                            if(aiIndexArr.indexOf(j) > -1){
+                                this.obj[j] = this.stringArr[j]
                                 let classList = this.$refs.span[j].getAttribute('class') + ' bg'
                                 this.$refs.span[j].setAttribute('class',classList)
                             }
                         }
-                    })
+                    // })
                 }
             },
             getData() {
@@ -90,6 +120,8 @@
         },
         watch: {
             string: function() {
+                this.keywordIndexArr = []
+                this.recursiveGetIndex(0)
                 this.clear()
             }
         }

+ 1 - 1
src/components/config_point/find_keyword.vue

@@ -102,7 +102,7 @@
                 aiStr: "",//ai推荐
                 Id: "",
                 dataName: "",
-                isSwitch: false,//是否开启开关
+                isSwitch: true,//是否开启开关
                 closedStr: "",//已被选择的数据
             }
         },

+ 1 - 1
src/components/config_point/step3_edit/auto_handle.vue

@@ -114,7 +114,7 @@ export default {
             immediate: true,
             handler(val) {
                 if(val){
-                    this.form = val;
+                    this.form = JSON.parse(JSON.stringify(val))
                 }
             }
         }

+ 1 - 1
src/components/config_point/step3_edit/enum_handle.vue

@@ -84,7 +84,7 @@ export default {
             immediate: true,
             handler(val) {
                 if(val) {
-                    this.form = val
+                    this.form = JSON.parse(JSON.stringify(val))
                 }
                 
             }

+ 1 - 1
src/components/config_point/step3_edit/formula_handle.vue

@@ -129,7 +129,7 @@ export default {
             immediate: true,
             handler(val) {
                 if (val) {
-                    this.form = val
+                    this.form = JSON.parse(JSON.stringify(val))
                     if (this.form.cut) {
                         this.subStrVal = true
                         this.from = this.form.cut.from

+ 49 - 11
src/components/config_point/step3_edit/index.vue

@@ -111,7 +111,7 @@ import splitHandle from './split_handle'
 import { mapGetters, mapActions } from 'vuex'
 //api
 import { getEquipmentAll, getQueryProperty } from '@/fetch/data_plat'
-import { batchCreate } from '@/fetch/point_http'
+import { updatePoint, batchCreate } from '@/fetch/point_http'
 export default {
     name: 'point_config_step3_edit',
     computed: {
@@ -161,11 +161,11 @@ export default {
                 }
             ],
             /**值回显******* */
-            noHandleShow: null,
-            autoHandleShow: null,
-            enumHandleShow: null,
-            formulaHandleShow: null,
-            splitHandleShow: null
+            noHandleShow: {},
+            autoHandleShow: {},
+            enumHandleShow: {},
+            formulaHandleShow: {},
+            splitHandleShow: {}
         }
     },
     props: {
@@ -262,12 +262,19 @@ export default {
                 DataSourceId: this.datasourceId,
                 PointId: this.editData.Point.Id //点位ID
             }
+            let updateParams = {
+                data: {
+                    Content:[{ Id: this.editData.Point.Id }]
+                },
+                type: this.protocolType
+            }
             let otherParams = {}
             switch (type) {
                 case '无需处理,直接使用':
                     otherParams = {
                         EquipmentMark: other.EquipmentMark
                     }
+                    updateParams.data.Content[0].EquipmentMark = other.EquipmentMark
                     break
                 case '需自动单位转换':
                     let DataRuleContent1 = JSON.stringify([
@@ -286,6 +293,7 @@ export default {
                         DataRuleContent: DataRuleContent1,
                         EquipmentMark: other.EquipmentMark
                     }
+                    updateParams.data.Content[0].EquipmentMark = other.EquipmentMark
                     break
                 case '需按设置枚举转换':
                     let DataRuleContent2 = other.pointArr.length
@@ -295,6 +303,7 @@ export default {
                         EquipmentMark: other.EquipmentMark,
                         DataRuleContent: DataRuleContent2
                     }
+                    updateParams.data.Content[0].EquipmentMark = other.EquipmentMark
                     break
                 case '需按公式转换':
                     let subRule = other.from
@@ -346,6 +355,7 @@ export default {
                         EquipmentMark: other.EquipmentMark,
                         DataRuleContent: DataRuleContent3
                     }
+                    updateParams.data.Content[0].EquipmentMark = other.EquipmentMark
                     break
                 case '需拆分处理':
                     let SplitPoints = other.devArr.length ? other.devArr : undefined
@@ -372,10 +382,11 @@ export default {
                     otherParams = {
                         SplitPoints: SplitPoints
                     }
+                    updateParams.data.Content[0].EquipmentMark = other.eqMark
                     break
             }
             let params = [Object.assign(basicParams, otherParams)]
-            this.create(params)
+            updatePoint(updateParams, res => { this.create(params) })
         },
         create(params) {
             batchCreate(params, res => {
@@ -503,14 +514,14 @@ export default {
                     switch (flag) {
                         case '无需处理,直接使用':
                             this.noHandleShow = {
-                                EquipmentMark: data.EquipmentMark
+                                EquipmentMark: eqMark
                             }
                             break
                         case '需自动单位转换':
                             dataRules = JSON.parse(data.DataRuleContent)
                             let auto = dataRules[0].content[0].from.split('-')
                             this.autoHandleShow = {
-                                EquipmentMark: data.EquipmentMark,
+                                EquipmentMark: eqMark,
                                 unit: auto
                             }
                             break
@@ -518,7 +529,7 @@ export default {
                             dataRules = JSON.parse(data.DataRuleContent)
                             let pointArr = dataRules[0].content
                             this.enumHandleShow = {
-                                EquipmentMark: data.EquipmentMark,
+                                EquipmentMark: eqMark,
                                 pointArr: pointArr
                             }
                             break
@@ -533,12 +544,30 @@ export default {
                                 count = dataRules[2].content[0]
                             }
                             this.formulaHandleShow = {
-                                EquipmentMark: data.EquipmentMark,
+                                EquipmentMark: eqMark,
                                 cut: cut,
                                 count: count,
                                 extractArr: extractArr
                             }
                             break
+                        case '需拆分处理':
+                            let dataRules = JSON.parse(data.DataRuleContent)
+                            let devArr = val.RelationList.map(ele => {
+                                let arr = JSON.parse(ele.DataRuleContent)
+                                return {
+                                    EquipmentMark: ele.EquipmentMark,
+                                    SplitStart: arr[0].content[0].from,
+                                    SplitEnd: arr[0].content[0].to
+                                }
+                            })
+                            var pointArr = dataRules[1].content
+                            this.splitHandleShow = {
+                                eqMark: eqMark,
+                                EquipmentMark: data.EquipmentMark,
+                                pointArr: pointArr,
+                                devArr: devArr
+                            }
+                            break
                     }
                 } else {
                     let dataRules = JSON.parse(data.DataRuleContent)
@@ -553,6 +582,7 @@ export default {
                     })
                     let pointArr = dataRules[1].content
                     this.splitHandleShow = {
+                        eqMark: eqMark,
                         EquipmentMark: data.EquipmentMark,
                         pointArr: pointArr,
                         devArr: devArr
@@ -563,6 +593,14 @@ export default {
                     EquipmentMark: eqMark
                 }
             }
+            this.noHandleShow.EquipmentMark = eqMark
+            this.autoHandleShow.EquipmentMark = eqMark
+            this.enumHandleShow.EquipmentMark = eqMark
+            this.enumHandleShow.pointArr = this.enumHandleShow.pointArr?this.enumHandleShow.pointArr:[{from: '',to: ''}]
+            this.formulaHandleShow.EquipmentMark = eqMark
+            this.splitHandleShow.eqMark = eqMark
+            this.splitHandleShow.devArr = this.splitHandleShow.devArr?this.splitHandleShow.devArr:[{EquipmentMark: '',SplitStart: 1,SplitEnd: 1}]
+            this.splitHandleShow.pointArr = this.splitHandleShow.pointArr?this.splitHandleShow.pointArr:[{from: '',to: ''}]
         }
     },
     mounted() {

+ 1 - 1
src/components/config_point/step3_edit/no_handle.vue

@@ -43,7 +43,7 @@ export default {
             immediate: true,
             handler(val) {
                 if(val) {
-                    this.form = val
+                    this.form = JSON.parse(JSON.stringify(val))
                 }
                 
             }

+ 5 - 5
src/components/config_point/step3_edit/split_handle.vue

@@ -1,15 +1,15 @@
 <template>
     <div class='edit-box'>
         <el-form v-if='form.devArr.length' class='form' ref='form' :model='form' label-width='140px'>
+            <el-form-item v-if='devFlag' label='原设备标识' prop="eqMark">
+                <el-input v-model='form.eqMark' :disabled="true"></el-input>
+            </el-form-item>
             <div class='dev-know' v-for='(item,index) in form.devArr' :key='index'>
                 <el-form-item
                     v-if='devFlag'
                     label='设备标识'
                     :prop='"devArr." + index + ".EquipmentMark"'
-                    :rules='{
-          required: true, message: "设备标识不能为空", trigger: "blur"
-        }'
-                >
+                    :rules='{required: true, message: "设备标识不能为空", trigger: "blur"}'>
                     <el-input v-model='item.EquipmentMark'></el-input>
                 </el-form-item>
                 <p class='strsub'>
@@ -141,7 +141,7 @@ export default {
             deep: true,
             handler(val) {
                 if (val) {
-                    this.form = val
+                    this.form = JSON.parse(JSON.stringify(val))
                     // console.log(this.form)
                 } else {
                     this.init()

+ 31 - 13
src/components/config_point/step3_point/3_temps.vue

@@ -55,12 +55,15 @@
             </div>
         </div>
         <div class="collapse-item" v-if="activeName == 2">
-            <div style="height:258px;">
+            <div v-if="renderData.length" style="height:258px;">
                 <handsontable-component ref="handsontable"></handsontable-component>
             </div>
+            <div v-if="!renderData.length" class="center" style="padding: 50px 0;box-sizing:border-box;">
+                <i class="iconwushuju iconfont"></i> 暂无数据
+            </div>
             <div class="center">
                 <el-button @click="undo">上一步</el-button>
-                <el-button @click="save">保存</el-button>
+                <el-button v-show="renderData.length" @click="save">保存</el-button>
             </div>
         </div>
     </div>
@@ -82,6 +85,7 @@
         getQueryProperty
     } from '@/fetch/data_plat'
     import {
+        updatePoint,
         batchCreate,
         queryDescription
     } from '@/fetch/point_http'
@@ -220,24 +224,36 @@
                         }
                     })
                 })
-                if (magFalg) {
-                    this.confirm("点位中存在空的设备标识", params)
-                } else if (sameFalg) {
-                    this.confirm("点位中存在设备标识相同的点位", params)
+                if (sameFalg) {
+                    this.confirm("点位中存在设备标识相同的点位,确认保存吗?", params)
                 } else {
                     this.createParam(params)
                 }
                 console.log(params)
             },
             confirm(assage, params) {
-                this.$confirm(assage).then(_ => {
+                this.$confirm(assage,{type: 'warning'}).then(_ => {
                     this.createParam(params)
                 }).catch(_ => {})
             },
             createParam(params) {
-                batchCreate(params, res => {
-                    this.$message.success("处理成功")
-                    this.$emit("changed")
+                let updateParams = {
+                    data: {
+                        Content:[]
+                    },
+                    type: this.protocolType
+                }
+                params.map((item) =>{
+                    updateParams.data.Content.push({
+                        Id: item.PointId,
+                        EquipmentMark: item.EquipmentMark
+                    })
+                })
+                updatePoint(updateParams, data => {
+                    batchCreate(params, res => {
+                        this.$message.success("处理成功")
+                        this.$emit("changed")
+                    })
                 })
             },
             undo() {
@@ -346,9 +362,11 @@
                                         }
                                     ]
                                 }
-                                this.$nextTick(_ => {
-                                    this.hot = this.$refs.handsontable.init(setting)
-                                })
+                                if (this.renderData.length) {
+                                    this.$nextTick(_ => {
+                                        this.hot = this.$refs.handsontable.init(setting)
+                                    })
+                                }
                             }
 
                         } else {

+ 35 - 30
src/components/config_point/step3_point/steps3_main.vue

@@ -123,42 +123,47 @@
                 } else {
                     //不是空的情况查询点位列表
                     console.log(param)
-                    queryPoint({
-                        data: {
-                            Filters: {
-                                KeyEquipmentParameter: param.EquipmentParameter,
-                                KeyEquipmentType: param.EquipmentType,
-                                DataSourceId: this.datasourceId,
-                                Used: true
-                                // KeyEquipmentParameter: '温度',
-                                // KeyEquipmentType: '冷机'
+                    if (param && param.EquipmentMark) {
+                        queryPoint({
+                            data: {
+                                Filters: {
+                                    KeyEquipmentParameter: param.EquipmentParameter,
+                                    KeyEquipmentType: param.EquipmentType,
+                                    DataSourceId: this.datasourceId,
+                                    Used: true
+                                    // KeyEquipmentParameter: '温度',
+                                    // KeyEquipmentType: '冷机'
+                                },
+                                PageNumber: 1,
+                                PageSize: 100
                             },
-                            PageNumber: 1,
-                            PageSize: 100
-                        },
-                        type: this.protocolType
-                    }, res => {
-                        console.log(res, "reslist")
-                        this.identDataArr = res.Content
-                        this.$refs.ident.getMain(param)
-                    })
+                            type: this.protocolType
+                        }, res => {
+                            console.log(res, "reslist")
+                            this.identDataArr = res.Content
+                            this.$refs.ident.getMain(param)
+                        })
+                    }
                 }
             },
             //通过type获取param的list
             getParamList(item) {
-                this.KeyEquipmentType = item.EquipmentType
-                groupParamRelated({
-                    data: {
-                        DataSourceId: this.datasourceId,
-                        KeyEquipmentType: item.EquipmentType
-                    },
-                    type: this.protocolType
-                }, res => {
-                    this.identifyArr = res.Content.map(item => {
-                        item.ownMess = item.EquipmentParameter
-                        return item
+                if (item && item.EquipmentType) {
+                    this.KeyEquipmentType = item.EquipmentType
+                    groupParamRelated({
+                        data: {
+                            DataSourceId: this.datasourceId,
+                            KeyEquipmentType: item.EquipmentType
+                        },
+                        type: this.protocolType
+                    }, res => {
+                        debugger
+                        this.identifyArr = res.Content.map(item => {
+                            item.ownMess = item.EquipmentParameter
+                            return item
+                        })
                     })
-                })
+                }
             }
         },
         components: {

+ 2 - 2
src/components/data_admin/buildData/findId.js

@@ -1,8 +1,8 @@
-import { physics } from '@/api/scan/config'
+import { venders } from '@/api/scan/config'
 import http from '@/api/scan/httpUtil'
 
 function getVenderRecommend(param, success) {
-    let url = `${physics}/venders/basic/recommend`
+    let url = `${venders}/basic/recommend`
     http.postJson(url, param, success)
 }
 

+ 1 - 1
src/components/dialogs/addDialog/dialogDevice.vue

@@ -26,7 +26,7 @@
               >
                 <i class="el-icon-fa  el-icon-fa-compass"></i>
               </span>
-              <span>当前选择的设备:{{deviceType.facility}}</span>
+              <span>当前选择的设备类型:{{deviceType.facility}}</span>
               <!-- 增加 -->
               <div style="float:right;overflow:hidden;">
                 <span>增加</span>

+ 2 - 2
src/components/dialogs/changeRea.vue

@@ -280,8 +280,8 @@ export default {
             type: ""
           }
         },
-        secret: this.$route.query.secret,
-        ProjId: this.$route.query.projId
+        secret: this.secret,
+        ProjId: this.projectId
       }
       if (this.mess.buildId == "all") {
         param.data.criteria.id = this.mess.ProjId

+ 7 - 3
src/components/dialogs/list/supplyDialog.vue

@@ -51,6 +51,7 @@
 import myPagination from "@/components/ledger/lib/myPagination";
 import { getListForSupplier } from "@/api/scan/request"
 import tools from "@/utils/scan/tools"
+import { mapGetters, mapActions } from "vuex";
 
 export default {
   components: {
@@ -70,6 +71,9 @@ export default {
       default: 0
     }
   },
+  computed: {
+    ...mapGetters("layout", ["projectId", "secret", "userId"])
+  },
   data() {
     return {
       search: "", //搜索文案
@@ -126,11 +130,11 @@ export default {
       if (!!this.id) {
         let param = {
           data: {
-            projectId: this.$route.query.projId,
+            projectId: this.projectId,
             venderId: this.id
           },
-          ProjId: this.$route.query.projId,
-          secret: this.$route.query.secret,
+          ProjId: this.projectId,
+          secret: this.secret,
         }
         getListForSupplier(param, res => {
           _this.$refs.ruleForm.resetFields()

+ 19 - 5
src/components/ledger/handsontables/assets.vue

@@ -13,7 +13,7 @@
       <div style="float:right;overflow:hidden;">
         <el-button size="small" style="width: 80px;" @click="addDevice" icon="iconfont icon-tianjia">添加资产</el-button>
         <el-button size="small" style="width: 80px;" @click="reset" icon="iconfont icon-shuaxin">刷新</el-button>
-        <el-button size="small" style="width: 80px;" @click="undo" icon="iconfont icon-undo">撤销</el-button>
+        <el-button v-show="!onlyRead" size="small" style="width: 80px;" @click="undo" icon="iconfont icon-undo">撤销</el-button>
       </div>
       <div style="width:200px;color:gray;float:right;font-size:12px;">
         <span v-if="!onlyRead">隐藏自动填充的信息点:</span>
@@ -40,7 +40,7 @@
       <div
         style="width:100px;cursor: pointer;float:right; font-size:14px;margin-right:10px"
       >
-      <el-select v-model="onlyRead" @click="changeRead" size="small">
+      <el-select v-model="onlyRead" @change="changeRead" size="small">
         <el-option
           v-for="item in options"
           :key="item.value"
@@ -233,7 +233,6 @@ export default {
   mounted() { },
   methods: {
     changeRead() {
-      this.onlyRead = !this.onlyRead
       console.log(this.onlyRead)
       this.getMain()
     },
@@ -293,7 +292,13 @@ export default {
         ProjId: this.projectId
       }
       if (this.mess.buildId == "all") {
-        delete param.data.criteria.id
+        param.data.criteria.id = this.mess.ProjId
+      } else if (this.mess.buildId == "noKnow") {
+        param.data.criteria.id = this.mess.ProjId
+        param.data.directOnly = true
+      } else if (this.mess.floorId == "noKnow") {
+        param.data.criteria.id = this.mess.buildId
+        param.data.directOnly = true
       } else if (this.mess.floorId && this.mess.floorId != "all") {
         param.data.criteria.id = this.mess.floorId
       } else if (this.mess.floorId == 'all') {
@@ -301,6 +306,15 @@ export default {
       } else {
         param.data.criteria.id = this.mess.ProjId
       }
+      // if (this.mess.buildId == "all") {
+      //   delete param.data.criteria.id
+      // } else if (this.mess.floorId && this.mess.floorId != "all") {
+      //   param.data.criteria.id = this.mess.floorId
+      // } else if (this.mess.floorId == 'all') {
+      //   param.data.criteria.id = this.mess.buildId
+      // } else {
+      //   param.data.criteria.id = this.mess.ProjId
+      // }
       getBillPropList(param, res => {
         if (res.Content.length) {
           let list = []
@@ -926,7 +940,7 @@ export default {
       let val = this.hot.colToProp(row.col);
       if (val == "caozuo") {
         window.open(`
-http://47.94.89.44:8058/asset?id=${infos.id}&pid=${this.projectId}&secret=${this.secret}`,"_blank")
+http://adm.sagacloud.cn:8058/asset?id=${infos.id}&pid=${this.projectId}&secret=${this.secret}`,"_blank")
         // this.iframeSrc =
         //   process.env.BASE_URL +
         //   ":8889/#/details?perjectId=" +

+ 23 - 22
src/components/ledger/handsontables/device.vue

@@ -5,7 +5,7 @@
         style="width:20px;float:left;display:block;height:20px;cursor: pointer;"
         @click="changeAssetsFalg"
       >
-        <i class="el-icon-fa  el-icon-fa-compass"></i>
+        <i v-show="!onlyRead" class="el-icon-fa  el-icon-fa-compass"></i>
       </span>
       <span>当前筛选条件下共{{page.total || '--'}}设备</span>
       <div style="float:right;overflow:hidden;">
@@ -39,7 +39,7 @@
         <div
         style="width:100px;cursor: pointer;float:right; font-size:14px;margin-right:10px"
       >
-      <el-select v-model="onlyRead" @click="changeRead" size="small">
+      <el-select v-model="onlyRead" @change="changeRead" size="small">
         <el-option
           v-for="item in options"
           :key="item.value"
@@ -316,8 +316,7 @@ export default {
       })
     },
     changeRead() {
-      this.onlyRead = !this.onlyRead
-      this.getMain()
+      this.getHeaderData(this.mess)
     },
     getEquipmentFamilyList() {
       getEquipmentFamily(res => {
@@ -604,8 +603,9 @@ export default {
           renderer: text.systemList,
           readOnly: true
         }, {
-          data: "linkName",
-          readOnly: true
+          data: "Count",
+          readOnly: true,
+          renderer: tools.lookDetails
         }
       );
       //   data.splice(1, 0, {
@@ -881,18 +881,18 @@ export default {
         let sortArr = this.myHotArr.getPlugin("columnSorting").rowsMapper
           .__arrayMap;
         let infos = this.main[trimmedArr[sortArr[rowArr.row]]];
-        this.getInfors(infos, { row: sortArr[rowArr.row], col: rowArr.col });
+        this.getInfors(infos, { row: sortArr[rowArr.row], col: rowArr.col }, el);
       } else if (isSort) {
         //排序后的数组
         let sortArr = this.hot.getPlugin("columnSorting").rowsMapper.__arrayMap;
         let infos = this.main[sortArr[rowArr.row]];
-        this.getInfors(infos, { row: sortArr[rowArr.row], col: rowArr.col });
+        this.getInfors(infos, { row: sortArr[rowArr.row], col: rowArr.col }, el);
       } else if (trimmedArr.length) {
         let infos = this.main[trimmedArr[rowArr.row]];
-        this.getInfors(infos, { row: trimmedArr[rowArr.row], col: rowArr.col });
+        this.getInfors(infos, { row: trimmedArr[rowArr.row], col: rowArr.col }, el);
       } else {
         let infos = this.main[rowArr.row];
-        this.getInfors(infos, rowArr);
+        this.getInfors(infos, rowArr, el);
       }
     },
 
@@ -1029,14 +1029,15 @@ export default {
     },
 
     //获取到了正确的信息
-    getInfors(infos, row) {
+    getInfors(infos, row, el) {
       //其他的开始判断
       let val = this.hot.colToProp(row.col);
       this.row = row.row
       this.messKey = val
       this.systemId = infos.id
       if (val == "caozuo") {
-         window.open(`http://47.94.89.44:8058/spread?id=${infos.id}&pid=${this.projectId}&secret=${this.secret}`,"_blank")
+         window.open(`http://adm.sagacloud.cn:8058/spread?id=${infos.id}&pid=${this.projectId}&secret=${this.secret}`,"_blank")
+         el.target.blur()
         // this.iframeSrc =
         //   process.env.BASE_URL +
         //   ":8889/#/details?perjectId=" +
@@ -1070,16 +1071,12 @@ export default {
         this.dialog.systemType = true
       }
       //列表少包含的部件字段目前用当前关联的资产
-      if (val == "linkName") {
+      if (val == "Count") {
         let partsVal = this.hot.getDataAtCell(row.row,row.col);//获取被点击的单元格的数据
         if(this.onlyRead){
-          this.$router.push({ name: 'partsLedger', params: { facilityId: infos.id }});
+          this.$router.push({ path: '/ledger/parts', query: { deviceId: infos.infos.EquipID }});
         }else{
-          if(partsVal > 0){
-            this.$router.push({ name: 'partsmanageLedger', params: { facilityId: infos.id }});
-          }else{
-            this.$router.push({ name: 'addparts', params: { facilityId: infos.id }});
-          }
+          this.$router.push({ path: '/ledger/partsmanage', query: { deviceId: infos.infos.EquipID,typeId: this.mess.deviceId }});
         }
       }
 
@@ -1095,9 +1092,13 @@ export default {
         this.filesArr = this.main[row.row].infos ? (this.main[row.row].infos[val.split(".")[1]] ? this.main[row.row].infos[val.split(".")[1]] : []) : []
         this.dialog.uploadFiles = true
       }
-      if (val == "linkName" && this.linkNameFalg) {
-        this.category = this.main[row.row]
-        this.dialog.changeRea = true
+      if (val == "linkName") {
+        if (this.linkNameFalg && !this.onlyRead) {
+          this.category = this.main[row.row]
+          this.dialog.changeRea = true
+        } else if(this.onlyRead) {
+          window.open(`http://adm.sagacloud.cn:8058/asset?id=${infos.linkId}&pid=${this.projectId}&secret=${this.secret}`,"_blank")
+        }
       }
       if (val == "infos.EquipQRCode") {
         this.qrcodeUrl = this.main[row.row].infos.EquipQRCode

+ 1 - 1
src/components/ledger/handsontables/system.vue

@@ -826,7 +826,7 @@ export default {
       }
       if (val == "caozuo") {
          window.open(`
-http://47.94.89.44:8058/system?id=${infos.id}&pid=${this.projectId}&secret=${this.secret}`,"_blank")
+http://adm.sagacloud.cn:8058/system?id=${infos.id}&pid=${this.projectId}&secret=${this.secret}`,"_blank")
         // this.iframeSrc =
         //   process.env.BASE_URL +
         //   ":8889/#/details?perjectId=" +

+ 0 - 1
src/components/ledger/lib/cenoteType.vue

@@ -72,7 +72,6 @@ export default {
 <style lang="less" scoped>
 #cascaderMap {
   float: left;
-  margin-left: 10px;
   .buildFloor {
     color: #999999;
     font-size: 14px;

+ 6 - 7
src/components/ledger/lib/floorCascader.vue

@@ -5,13 +5,10 @@
     </div>
 </template>
 <script>
-    import {
-        getSpaceFloor
-    } from '@/api/scan/request'
-    import {
-        mapGetters,
-        mapActions
-    } from "vuex";
+    import tools from "@/utils/scan/tools"
+    import { getSpaceFloor } from '@/api/scan/request'
+    import { mapGetters, mapActions } from "vuex"
+
     export default {
         props: {
             isWidth: {
@@ -71,6 +68,7 @@
                         })
                         data.map(item => {
                             if (!!item.children) {
+                                item.children = tools.sortArr(item.children, "FloorSequenceID", false) //对楼层排序
                                 item.children.unshift({
                                     value: 'noKnow',
                                     label: "未明确楼层的设备"
@@ -101,6 +99,7 @@
                                 return {
                                     value: i.id,
                                     label: i.infos.FloorLocalName,
+                                    FloorSequenceID: i.infos.FloorSequenceID
                                 }
                             })
                         }

+ 3 - 1
src/components/ledger/lib/qrcode.vue

@@ -36,7 +36,9 @@ export default {
   data() {
     return {};
   },
-  created() { },
+  created() {
+    console.log(this.qrcodeUrl)
+   },
   mounted() {
   },
   methods: {

+ 14 - 12
src/data/menus.js

@@ -22,18 +22,20 @@ export default [
                         permission: 'system:role:query'
                     }
                 ]
-            }, {
-                path: '/proj/custominfo',
-                name: '自定义信息点',
-                icon: 'el-icon-fa-user',
-                opts: [
-                    {
-                        name: '查看',
-                        basic: true,
-                        permission: 'system:role:query'
-                    }
-                ]
-            }, {
+            }, 
+            // {
+            //     path: '/proj/custominfo',
+            //     name: '自定义信息点',
+            //     icon: 'el-icon-fa-user',
+            //     opts: [
+            //         {
+            //             name: '查看',
+            //             basic: true,
+            //             permission: 'system:role:query'
+            //         }
+            //     ]
+            // }, 
+            {
                 path: '/proj/floorinfo',
                 name: '楼层信息管理',
                 icon: 'el-icon-fa-user',

+ 2 - 2
src/utils/handsontable/mainText.js

@@ -7,9 +7,9 @@ const text = {
         if (value instanceof Array && value.length > 0) {
             let i = 0
             value.map(item => {
-                if (item.type == "image" || item.type == "video") {
+                // if (item.type == "image" || item.type == "video") {
                     i++
-                }
+                // }
             })
             td.innerHTML = "已上传:" + i;
         } else {

+ 264 - 68
src/utils/handsontable/notShow.js

@@ -3,33 +3,33 @@ import text from "@/utils/handsontable/mainText"
 import tools from "@/utils/scan/tools"
 //在编辑模式下并且勾选隐藏自动填充的信息点不显示的字段
 let noShowArr = [
-    "Brand",
-    "Specification",
-    "Manufacturer",
-    "Supplier",
-    "SupplierContactor",
-    "SupplierPhone",
-    "SupplierEmail",
-    "SupplierWeb",
-    "SupplierFax",
-    "Maintainer",
-    "MaintainerContactor",
-    "MaintainerPhone",
-    "MaintainerEmail",
-    "MaintainerWeb",
-    "Principal",
-    "MaintainerFax",
-    "Insurer",
-    "InsurerContactor",
-    "InsurerPhone",
-    "InsurerEmail",
-    "InsurerWeb",
-    "InsurerFax",
-    "InsuranceFile",
-    "EquipID",
-    "EquipName",
-]
-//在编辑模式下不显示的字段
+        "Brand",
+        "Specification",
+        "Manufacturer",
+        "Supplier",
+        "SupplierContactor",
+        "SupplierPhone",
+        "SupplierEmail",
+        "SupplierWeb",
+        "SupplierFax",
+        "Maintainer",
+        "MaintainerContactor",
+        "MaintainerPhone",
+        "MaintainerEmail",
+        "MaintainerWeb",
+        "Principal",
+        "MaintainerFax",
+        "Insurer",
+        "InsurerContactor",
+        "InsurerPhone",
+        "InsurerEmail",
+        "InsurerWeb",
+        "InsurerFax",
+        "InsuranceFile",
+        "EquipID",
+        "EquipName",
+    ]
+    //在编辑模式下不显示的字段
 let cantShow = [
     "EquipQRCode",
     "EquipID",
@@ -85,23 +85,51 @@ let cutArr = [{
 }]
 
 let newData = [{
-    name: "品牌型号",
-    code: "DPManufacturerID",
-    num: 2,
-}, {
-    name: "供应商信息",
-    code: "DPSupplierID",
-    num: 8
-}, {
-    name: "维修商信息",
-    code: "DPMaintainerID",
-    num: 35
-}, {
-    name: "保险公司信息",
-    code: "DPInsurerID",
-    num: 42
-}]
-
+        name: "品牌型号",
+        code: "DPManufacturerID",
+        num: 2,
+    }, {
+        name: "供应商信息",
+        code: "DPSupplierID",
+        num: 8
+    }, {
+        name: "维修商信息",
+        code: "DPMaintainerID",
+        num: 35
+    }, {
+        name: "保险公司信息",
+        code: "DPInsurerID",
+        num: 42
+    }]
+    //创建部件固定不显示-管理部件固定不显示(即编辑模式)
+let partsAddNoShow = [
+    'EquipID',
+    'EquipName',
+    'EquipQRCode',
+    'BIMID',
+    'BIMLocation',
+    'Brand',
+    'Specification',
+    'Manufacturer',
+    'Supplier',
+    'SupplierContactor',
+    'SupplierPhone',
+    'SupplierEmail',
+    'SupplierWeb',
+    'SupplierFax',
+    'Maintainer',
+    'MaintainerContactor',
+    'MaintainerPhone',
+    'MaintainerEmail',
+    'MaintainerWeb',
+    'MaintainerFax',
+    'Insurer',
+    "InsurerContactor",
+    "InsurerPhone",
+    "InsurerEmail",
+    "InsurerWeb",
+    "InsurerFax",
+]
 const showTools = {
     addArr: () => {
         return cutArr
@@ -115,7 +143,15 @@ const showTools = {
         })
         return falg
     },
-
+    fixedNoShowField: (noShowList, code) => {
+        let flag = true
+        noShowList.map(item => {
+            if (item == code) {
+                flag = false
+            }
+        })
+        return flag
+    },
     //几种类型不显示
     technologyParam: (item) => {
         if (
@@ -222,6 +258,7 @@ const showTools = {
                     arr.splice(item, 0, {
                         InfoPointName: "保险公司信息",
                         InfoPointCode: "DPInsurerID",
+                        Path: 'DPInsurerID',
                         InputMode: "Own",
                         Unit: "",
                         SecondTag: "",
@@ -232,6 +269,7 @@ const showTools = {
                     arr.splice(item, 0, {
                         InfoPointName: "维修商信息",
                         InfoPointCode: "DPMaintainerID",
+                        Path: 'DPMaintainerID',
                         InputMode: "Own",
                         Unit: "",
                         SecondTag: "",
@@ -242,6 +280,7 @@ const showTools = {
                     arr.splice(item, 0, {
                         InfoPointName: "供应商信息",
                         InfoPointCode: "DPSupplierID",
+                        Path: 'DPSupplierID',
                         InputMode: "Own",
                         Unit: "",
                         SecondTag: "",
@@ -252,6 +291,7 @@ const showTools = {
                     arr.splice(item, 0, {
                         InfoPointName: "品牌型号",
                         InfoPointCode: "DPManufacturerID",
+                        Path: 'DPManufacturerID',
                         InputMode: "Own",
                         Unit: "",
                         SecondTag: "",
@@ -514,7 +554,7 @@ const showTools = {
             if (item.InfoPointCode == "BIMLocation") {
                 return undefined
             }
-            if (!!readArr && readArr.indexOf(item.InputMode) > -1 ) {
+            if (onlyRead || (!!readArr && readArr.indexOf(item.InputMode) > -1)) {
                 if (item.Visible || !allMess) {
                     if (!showTools.cantShow(item.InfoPointCode) && !onlyRead && !taizhang) {
                         return undefined
@@ -542,9 +582,6 @@ const showTools = {
 
     showHeaderTypes(arr, typeArr, onlyRead, isWatch, allMess, falg = false) {
         let data = arr.map(item => {
-            if (item.FirstTag && !item.FirstTag == "") {
-                item.InfoPointCode = `${item.FirstTag}.${item.InfoPointCode}`
-            }
             if (falg) {
                 if (item.FirstTag == "控制参数" ||
                     item.FirstTag == "设定参数" ||
@@ -555,27 +592,27 @@ const showTools = {
             if (item.InfoPointCode == "BIMLocation") {
                 return undefined
             }
-            if (!!typeArr && typeArr.indexOf(item.InputMode) > -1) {
+            if (onlyRead || (!!typeArr && typeArr.indexOf(item.InputMode) > -1)) {
                 if (item.Visible || !allMess) {
                     //固定不显示的code
                     if (!showTools.cantShow(item.InfoPointCode) && !onlyRead) {
                         return undefined
                     }
-    
+
                     if (!showTools.isShow(item.InfoPointCode)) {
                         if (isWatch && !onlyRead) {
                             return undefined
                         }
                     }
-    
+
                     if (item.InfoPointCode == "EquipQRCode") {
                         return {
-                            data: item.InfoPointCode,
+                            data: item.Path,
                             renderer: text.lookQRCode,
                             readOnly: onlyRead
                         }
                     }
-    
+
                     //图片类型
                     if (
                         item.InfoPointCode == "InstallPic" ||
@@ -585,47 +622,47 @@ const showTools = {
                         item.InfoPointCode == "Drawing"
                     ) {
                         return {
-                            data: item.InfoPointCode,
+                            data: item.Path,
                             renderer: text.picType,
                             readOnly: onlyRead
                         }
                     }
-    
+
                     //文件类型
                     if (item.InfoPointCode == "InsuranceFile" ||
                         item.InfoPointCode == "Archive" ||
                         item.InfoPointCode == "CheckReport") {
                         return {
-                            data: item.InfoPointCode,
+                            data: item.Path,
                             renderer: text.fileType,
                             readOnly: onlyRead
                         }
                     }
-    
-                    if (item.InputMode == "D1" || item.InputMode == "E1") {//单选
+
+                    if (item.InputMode == "D1" || item.InputMode == "E1") { //单选
                         return {
-                            data: item.InfoPointCode,
+                            data: item.Path,
                             renderer: tools.customDropdownRenderer,
                             editor: "chosen",
                             readOnly: onlyRead,
                             chosenOptions: {
-                                data: item.DataSource? tools.formatDataSource(item.DataSource): ""
+                                data: item.DataSource ? tools.formatDataSource(item.DataSource) : ""
                             }
                         };
                     } else if (item.InputMode == "D2") {
                         return {
-                            data: item.InfoPointCode,
+                            data: item.Path,
                             renderer: tools.customDropdownRenderer,
                             editor: "chosen",
                             readOnly: onlyRead,
                             chosenOptions: {
                                 multiple: true, //多选
-                                data: item.DataSource? tools.formatDataSource(item.DataSource): ""
+                                data: item.DataSource ? tools.formatDataSource(item.DataSource) : ""
                             }
                         };
                     } else if (item.InputMode == "A1" || item.InputMode == "A2") {
                         return {
-                            data: item.InfoPointCode,
+                            data: item.Path,
                             type: "numeric",
                             readOnly: onlyRead,
                             numericFormat: {
@@ -636,7 +673,7 @@ const showTools = {
                         };
                     } else if (item.InputMode == "C5") {
                         return {
-                            data: item.InfoPointCode,
+                            data: item.Path,
                             type: "date",
                             dateFormat: "YYYY-MM-DD",
                             readOnly: onlyRead,
@@ -644,13 +681,13 @@ const showTools = {
                         };
                     } else if (item.InputMode == "Own" && !onlyRead) {
                         return {
-                            data: item.InfoPointCode,
+                            data: item.Path,
                             renderer: text.idType,
                             readOnly: onlyRead
                         }
                     } else {
                         return {
-                            data: item.InfoPointCode,
+                            data: item.Path,
                             readOnly: onlyRead
                         };
                     }
@@ -662,7 +699,166 @@ const showTools = {
             }
         }).filter(item => item);
         return data
-    }
+    },
+
+    tableHeadFilter(arr, readArr, onlyRead, isWatch, allMess, falg = false, taizhang = false) {
+        if (!taizhang) {
+            arr = showTools.arrToArr(arr)
+        }
+        let data = arr.map(item => {
+            if (falg) {
+                if (item.FirstTag == "控制参数" ||
+                    item.FirstTag == "设定参数" ||
+                    item.FirstTag == "运行参数") {
+                    return undefined
+                }
+            }
+
+            if (item.InfoPointCode == "BIMLocation") {
+                return undefined
+            }
+            if (onlyRead || (!!readArr && readArr.indexOf(item.InputMode) > -1)) {
+                if (item.Visible || !allMess) {
+                    if (!showTools.fixedNoShowField(partsAddNoShow, item.InfoPointCode) && !onlyRead && !taizhang) {
+                        return undefined
+                    }
+                    if (!showTools.isShow(item.InfoPointCode) && !taizhang) {
+                        if (isWatch && !onlyRead) {
+                            return undefined
+                        }
+                    }
+                    if (!item.Unit || item.Unit == "") {
+                        return item.InfoPointName;
+                    } else {
+                        return item.InfoPointName + "(" + item.Unit + ")";
+                    }
+                } else {
+                    return undefined
+                }
+            } else {
+                return undefined;
+            }
+        }).filter(d => d);
+        return data
+    },
+    tableHeaderTypes(arr, typeArr, onlyRead, isWatch, allMess, falg = false, taizhang = false) {
+        if (!taizhang) {
+            arr = showTools.arrToArr(arr)
+        }
+        let data = arr.map(item => {
+            if (falg) {
+                if (item.FirstTag == "控制参数" ||
+                    item.FirstTag == "设定参数" ||
+                    item.FirstTag == "运行参数") {
+                    return undefined
+                }
+            }
+            if (item.Path == "BIMLocation") {
+                return undefined
+            }
+            if (onlyRead || (!!typeArr && typeArr.indexOf(item.InputMode) > -1)) {
+                if (item.Visible || !allMess) {
+                    //固定不显示的code
+                    if (!showTools.fixedNoShowField(partsAddNoShow, item.InfoPointCode) && !onlyRead && !taizhang) {
+                        return undefined
+                    }
+                    if (!showTools.isShow(item.InfoPointCode) && !taizhang) {
+                        if (isWatch && !onlyRead) {
+                            return undefined
+                        }
+                    }
+                    if (item.InfoPointCode == "EquipQRCode") {
+                        return {
+                            data: item.Path,
+                            renderer: text.lookQRCode,
+                            readOnly: onlyRead
+                        }
+                    }
+                    //图片类型
+                    if (
+                        item.InfoPointCode == "InstallPic" ||
+                        item.InfoPointCode == "InstallDrawing" ||
+                        item.InfoPointCode == "Nameplate" ||
+                        item.InfoPointCode == "Pic" ||
+                        item.InfoPointCode == "Drawing"
+                    ) {
+                        return {
+                            data: item.Path,
+                            renderer: text.picType,
+                            readOnly: onlyRead
+                        }
+                    }
+
+                    //文件类型
+                    if (item.InfoPointCode == "InsuranceFile" ||
+                        item.InfoPointCode == "Archive" ||
+                        item.InfoPointCode == "CheckReport") {
+                        return {
+                            data: item.Path,
+                            renderer: text.fileType,
+                            readOnly: onlyRead
+                        }
+                    }
+
+                    if (item.InputMode == "D1" || item.InputMode == "E1") { //单选
+                        return {
+                            data: item.Path,
+                            renderer: tools.customDropdownRenderer,
+                            editor: "chosen",
+                            readOnly: onlyRead,
+                            chosenOptions: {
+                                data: item.DataSource ? tools.formatDataSource(item.DataSource) : ""
+                            }
+                        };
+                    } else if (item.InputMode == "D2") {
+                        return {
+                            data: item.Path,
+                            renderer: tools.customDropdownRenderer,
+                            editor: "chosen",
+                            readOnly: onlyRead,
+                            chosenOptions: {
+                                multiple: true, //多选
+                                data: item.DataSource ? tools.formatDataSource(item.DataSource) : ""
+                            }
+                        };
+                    } else if (item.InputMode == "A1" || item.InputMode == "A2") {
+                        return {
+                            data: item.Path,
+                            type: "numeric",
+                            readOnly: onlyRead,
+                            numericFormat: {
+                                pattern: "0,0.00"
+                            }
+                        };
+                    } else if (item.InputMode == "C5") {
+                        return {
+                            data: item.Path,
+                            type: "date",
+                            dateFormat: "YYYY-MM-DD",
+                            readOnly: onlyRead,
+                            correctFormat: true
+                        };
+                    } else if (item.InputMode == "Own" && !onlyRead) {
+                        return {
+                            data: item.Path,
+                            renderer: text.idType,
+                            readOnly: onlyRead
+                        }
+                    } else {
+                        return {
+                            data: item.Path,
+                            readOnly: onlyRead
+                        };
+                    }
+                } else {
+                    return undefined
+                }
+            } else {
+                return undefined
+            }
+        }).filter(item => item);
+        return data
+    },
 }
 
 export default showTools

+ 1 - 1
src/utils/point_edit/handson_header.js

@@ -155,7 +155,7 @@ const headers = {
 }
 
 let common = [{
-        InfoPointName: "原始点位描述",
+        InfoPointName: "*原始点位描述",
         InfoPointCode: "Description",
         InputMode: "B1",
         Visible: true,

+ 64 - 7
src/utils/scan/tools.js

@@ -447,27 +447,84 @@ tools.dateAddYear = function(date, yearCount) {
     return result;
 }
 
-tools.formatDataSource = function (data) {
+tools.formatDataSource = function(data) {
     let options
     let arr = []
-    try{
+    try {
         options = JSON.parse(data)
-        if(options) {
-            options.forEach((item) =>{
+        if (options) {
+            options.forEach((item) => {
                 arr.push({
-                    Code: item.id,
+                    Code: item.code,
                     Name: item.name
-                }) 
+                })
             })
             return arr
         } else {
             return arr
         }
-    }catch(err){
+    } catch (err) {
         return arr
     }
 }
 
+tools.isObjectValueEqual = function(a, b) { //判断两个对象的可枚举属性值是否相等(认为null,"",undefinde相等)
+    //取对象a和b的属性名
+    var aProps = Object.keys(a)
+    var bProps = Object.keys(b)
+        //判断属性名的length是否一致
+    if (aProps.length != bProps.length) {
+        return false
+    }
+
+    //循环取出属性名,再判断属性值是否一致
+    for (var i = 0; i < aProps.length; i++) {
+        var propName = aProps[i]
+        if (!(a[propName] instanceof Object || b[propName] instanceof Object)) {
+            if (!(a[propName] == b[propName] || (!a[propName] && !b[propName]))) {
+                return false
+            }
+        } else {
+            if (!tools.isObjectValueEqual(a[propName], b[propName])) {
+                return false
+            }
+        }
+    }
+    return true
+
+}
+
+tools.dataForKey = function(data, key) {
+    let arr = key.split(".")
+    if (arr && arr[0]) {
+        for (let i = 0; i < arr.length; i++) {
+            if (arr[i] && data[arr[i]]) {
+                data = data[arr[i]]
+            } else {
+                return ''
+            }
+        }
+        return data
+    }
+}
+
+tools.setDataForKey = function(data, key, value) {
+    let arr = key.split(".")
+    if (arr && arr[0]) {
+        for (let i = 0; i < arr.length; i++) {
+            if (!(arr[i] && data[arr[i]])) {
+                data[arr[i]] = {}
+            }
+            if (value !== undefined) {
+                if (i == arr.length - 1) {
+                    data[arr[i]] = value
+                }
+            }
+            data = data[arr[i]]
+        }
+    }
+}
+
 function dateToDate(date) {
     var sDate = new Date();
     if (typeof date == 'object' && typeof new Date().getMonth == "function") {

+ 9 - 3
src/views/data_admin/buildData/index.vue

@@ -758,7 +758,7 @@
                 };
                 getFloor(param).then(res => {
                     if (res.data.Result == "success") {
-                        this.floorList = res.data.FloorList;
+                        this.floorList = tools.sortArr(res.data.FloorList, "FloorSequenceId", false);
                         // this.floorId = this.defaultFloorData;
                         for (let i = 0; i < this.floorList.length; i++) {
                             if (this.floorId == this.floorList[i].FloorId) {
@@ -769,6 +769,10 @@
                             FloorName: "全部",
                             FloorLocalName: "全部",
                             FloorId: "all"
+                        },{
+                            FloorName: "未明确楼层",
+                            FloorLocalName: "未明确楼层",
+                            FloorId: "noKnow"
                         })
                         if (this.defaultFloorData) {
                             this.getPT();
@@ -1813,8 +1817,10 @@
                     this.getNowFormatDate(new Date())
                 ];
 
-                this.buildId = "";
-                this.floorId = "";
+                this.buildId = ""
+                this.floorId = ""
+                this.buildList = []
+                this.floorList = []
 
                 this.tabAvtive = "table0"
                 this.labelChecked = "请选择点位标签!"

+ 3 - 1
src/views/data_admin/buildGraphy/index.vue

@@ -35,6 +35,7 @@
         getBuildSelect,
         getFloor
     } from "@/api/scan/request"; //获取点位坐标
+    import tools from "@/utils/scan/tools"
     import Handsontable from "handsontable-pro"
     import 'handsontable-pro/dist/handsontable.full.css'
     import zhCN from 'handsontable-pro/languages/zh-CN';
@@ -120,7 +121,8 @@
                         console.log(res)
                         this.options = this.options.map(item => {
                             if (item.value == val[0]) {
-                                item.children = res.data.FloorList.map(child => {
+                                let FloorList = tools.sortArr(res.data.FloorList, "FloorSequenceId" , false)
+                                item.children = FloorList.map(child => {
                                     return {
                                         value: child.FloorId,
                                         label: child.FloorLocalName + (child.FloorMap ? '' : '(需初始化数据)'),

+ 8 - 13
src/views/ledger/cenotelist/cenoteadd/index.vue

@@ -31,7 +31,7 @@ import text from "@/utils/handsontable/mainText"
 import session from "@/framework/utils/storage"
 
 import handsonTable from "@/components/common/handsontable"
-import { getCenoteTableHeader, createCenoteTableData } from "@/api/scan/request"
+import { getDataDictionary, getCenoteTableHeader, createCenoteTableData } from "@/api/scan/request"
 import { mapGetters, mapActions } from "vuex";
 export default {
   components: {
@@ -67,14 +67,12 @@ export default {
     // 获取表头数据(初始化表格)
     async getTableHeader() {
       let param = {
-        ProjId: this.projectId,
-        secret: this.secret,
-        data: {
-          "CollectFlag": this.allMess
-        }
+        PageNumber: 1,
+        PageSize: 500,
+        Filters: `type='Shaft'`
       }
-      await getCenoteTableHeader(param, res => {
-        this.tableHeader = res.Content
+      await getDataDictionary(param).then( res => {
+        this.tableHeader = res.data.Content
         this.initTable()
       })
     },
@@ -148,10 +146,7 @@ export default {
       arr.map((item) => {
         item.Visible = true
       })
-      let readArr = ["A1", "A2", "B1", "C5", "D1", "D2", "E1", "F1", "F2", "L", "L1", "L2", "X"]
-      if (!this.onlyRead) {
-        readArr.push("Own")
-      }
+      let readArr = ["A1", "A2", "B1", "C5", "D1", "D2", "E1", "F1", "F2", "L", "L1", "L2"]
       let data = showTools.changeHeader(arr, readArr, this.onlyRead, false, this.allMess)
       // data.unshift("关联的元空间");
       return data;
@@ -161,7 +156,7 @@ export default {
       arr.map((item) => { //缺少信息点
         item.Visible = true
       })
-      let readArr = ["A1", "A2", "B1", "C5", "D1", "D2", "E1", "F1", "F2", "L", "L1", "L2", "X"]
+      let readArr = ["A1", "A2", "B1", "C5", "D1", "D2", "E1", "F1", "F2", "L", "L1", "L2"]
       let data = showTools.showHeaderTypes(arr, readArr, this.onlyRead, false, this.allMess)
       // data.unshift({
       //   data: "SpaceCount",

+ 21 - 22
src/views/ledger/cenotelist/index.vue

@@ -13,7 +13,7 @@
           :value="item.value">
         </el-option>
       </el-select>
-      <div v-show="onlyRead" style="width:200px;display:inline-block;text-align:left;color:gray;">
+      <div v-show="onlyRead" style="width:200px;display:inline-block;text-align:left;color:gray;font-size:12px;">
         <span>只看要采集的信息</span>
         <el-checkbox v-model="allMess" @change="getTableHeader"></el-checkbox>
       </div>
@@ -71,7 +71,7 @@ import text from "@/utils/handsontable/mainText"
 
 import cenoteType from "@/components/ledger/lib/cenoteType";
 import handsonTable from "@/components/common/handsontable";
-import { getCenoteTableHeader, getCenoteTableData, updataCenoteTableData, deleteCenoteTableData, saveCenoteRelateSpace } from "@/api/scan/request"
+import { getDataDictionary, getCenoteTableHeader, getCenoteTableData, updataCenoteTableData, deleteCenoteTableData, saveCenoteRelateSpace } from "@/api/scan/request"
 import { mapGetters, mapActions } from "vuex";
 export default {
   components: {
@@ -124,14 +124,12 @@ export default {
     // 获取表头数据(初始化表格)
     async getTableHeader() {
       let param = {
-        ProjId: this.projectId,
-        secret: this.secret,
-        data: {
-          "CollectFlag": this.allMess
-        }
+        PageNumber: 1,
+        PageSize: 500,
+        Filters: `type='Shaft'`
       }
-      await getCenoteTableHeader(param, res => {
-        this.tableHeader = res.Content;
+      await getDataDictionary(param).then( res => {
+        this.tableHeader = res.data.Content;
         this.getTableData()
       })
     },
@@ -174,14 +172,18 @@ export default {
       })
       //生成对应修改数据
       data.map((item, index) => {
-        let keyarr = change[index][1].split(".")
-        if (keyarr && keyarr.length > 1) {
-          item[keyarr[0]][keyarr[1]] = item[keyarr[0]][keyarr[1]] != ""? item[keyarr[0]][keyarr[1]]: null
-        } else {
-          item[keyarr[0]] = item[keyarr[0]] != ""? item[keyarr[0]]: null
-        }
+        // param.data.Projection.map(value => {
+        //   let itemData = tools.dataForKey(item, value)
+        //   tools.setDataForKey(item, value, itemData == "" ? null : itemData)
+        // })
+        // let keyarr = change[index][1].split(".")
+        // if (keyarr && keyarr.length > 1) {
+        //   item[keyarr[0]][keyarr[1]] = item[keyarr[0]][keyarr[1]] != ""? item[keyarr[0]][keyarr[1]]: null
+        // } else {
+        //   item[keyarr[0]] = item[keyarr[0]] != ""? item[keyarr[0]]: null
+        // }
         param.data.Content.push(item);
-      });
+      })
 
       await updataCenoteTableData(param, (res) => {
         
@@ -290,10 +292,7 @@ export default {
       arr.map((item) => {
         item.Visible = true
       })
-      let readArr = ["A1", "A2", "B1", "C5", "D1", "D2", "E1", "F1", "F2", "L", "L1", "L2", "X"]
-      if (!this.onlyRead) {
-        readArr.push("Own")
-      }
+      let readArr = ["A1", "A2", "B1", "C5", "D1", "D2", "E1", "F1", "F2", "L", "L1", "L2"]
       let data = showTools.changeHeader(arr, readArr, this.onlyRead, false, this.allMess)
       data.unshift("关联的元空间");
       return data;
@@ -303,7 +302,7 @@ export default {
       arr.map((item) => { //缺少信息点
         item.Visible = true
       })
-      let readArr = ["A1", "A2", "B1", "C5", "D1", "D2", "E1", "F1", "F2", "L", "L1", "L2", "X"]
+      let readArr = ["A1", "A2", "B1", "C5", "D1", "D2", "E1", "F1", "F2", "L", "L1", "L2"]
       let data = showTools.showHeaderTypes(arr, readArr, this.onlyRead, false, this.allMess)
       data.unshift({
         data: "SpaceCount",
@@ -425,7 +424,7 @@ export default {
   }
   .search-header {
     overflow: hidden;
-    padding:0 10px 10px 10px;
+    padding-bottom: 10px;
     border-bottom: 1px solid #bcbcbc;
   }
   .tableBox {

File diff suppressed because it is too large
+ 466 - 453
src/views/ledger/facility/parts/index.vue


File diff suppressed because it is too large
+ 551 - 552
src/views/ledger/facility/partsmanage/addparts/index.vue


File diff suppressed because it is too large
+ 727 - 502
src/views/ledger/facility/partsmanage/index.vue


+ 1 - 1
src/views/point/config_point/index.vue

@@ -1,7 +1,7 @@
 <template>
     <div class="saga-config-point">
         <div style="line-height:34px;padding-left:10px">
-            <span style="display:inline-block;height: 34px;line-height:34px;">此项目包括<i style="color:#409EFF;">{{list.length}}</i>个数据源</span>
+            <span style="display:inline-block;height: 35px;line-height:34px;">此项目包括<i style="color:#409EFF;">{{list.length}}</i>个数据源</span>
             <div style="float:right;height:34px;line-height:34px;padding-bottom: 1px;">
                 <el-button @click="sameData">同步配置文件到云端</el-button>
                 <el-button style="width:140px;" @click="addItem">添加数据源</el-button>

+ 71 - 11
src/views/point/config_point/steps/step1.vue

@@ -39,6 +39,7 @@
     </div>
 </template>
 <script>
+    import tools from "@/utils/scan/tools"
     import handsontableComponent from "@/components/common/handsontable"
     import getHeaderSetting from "@/utils/point_edit/handson_header"
     import ownDialog from "@/components/el_pack/dialog"
@@ -76,6 +77,7 @@
                 localtionDialog: false,
                 renderData: {},
                 allData: [],
+                copyMain: [],
                 pages: {
                     size: 50,
                     sizes: [10, 30, 50, 100, 150, 200],
@@ -325,6 +327,7 @@
                     this.isLoading = false
                     this.changeFlag = true
                     this.allData = res.Content || []
+                    this.copyMain = JSON.parse(JSON.stringify(res.Content))
                     this.pages.total = res.Total
                     this.createHot()
                 })
@@ -357,7 +360,17 @@
             //修改提示
             changeHand(changeData, source) {
                 if (!!changeData) {
-                    this.changeFlag = false
+                    let tableData = this.hot.getSourceData()
+                    for(let i = 0; i < tableData.length; i++){
+                        let forFlag = true
+                        if(!tools.isObjectValueEqual(this.copyMain[i],tableData[i])) {
+                            this.changeFlag = false
+                            forFlag = false
+                            break
+                        } else if (i == tableData.length - 1 && forFlag) {
+                            this.changeFlag = true
+                        }
+                    }
                 }
                 return false
             },
@@ -386,22 +399,68 @@
                         }
                     })
                     console.log(updateList,createList, arr1, "updateList")
-                    if (updateList.length) {
-                        this.update(updateList)
-                    }
-                    if (createList.length) {
-                        this.createList(createList)
+                    if (createList.length || updateList.length) {
+                        let flag = true
+                        if (createList.length) {
+                          for (let i = 0; i < createList.length; i++) {
+                            if (!(
+                                (createList[i].hasOwnProperty("SlaveId") &&
+                                 createList[i].SlaveId &&
+                                 createList[i].hasOwnProperty("RegistersAddress") &&
+                                 createList[i].RegistersAddress &&
+                                 createList[i].hasOwnProperty("RegistersQuality") &&
+                                 createList[i].RegistersQuality &&
+                                 createList[i].hasOwnProperty("ConvertType") &&
+                                 createList[i].ConvertType
+                                ) ||
+                                (createList[i].hasOwnProperty("DeviceId") &&
+                                 createList[i].DeviceId &&
+                                 createList[i].hasOwnProperty("InstanceNumber") &&
+                                 createList[i].InstanceNumber &&
+                                 createList[i].hasOwnProperty("DataType") &&
+                                 createList[i].DataType
+                                ) ||
+                                (createList[i].hasOwnProperty("Item") &&
+                                 createList[i].Item
+                                ) ||
+                                (createList[i].hasOwnProperty("GroupAddress") &&
+                                 createList[i].GroupAddress
+                                ) ||
+                                (createList[i].hasOwnProperty("Topic") &&
+                                 createList[i].Topic
+                                ) ||
+                                (createList[i].hasOwnProperty("Exchange") &&
+                                 createList[i].Exchange &&
+                                 createList[i].hasOwnProperty("Type") &&
+                                 createList[i].Type &&
+                                 createList[i].hasOwnProperty("RoutingKey") &&
+                                 createList[i].RoutingKey
+                                )
+                              )) {
+                                this.$message("请输入所有必填字段(带“*”列为必填列)")
+                                flag = false
+                                return false
+                            } else if (!(createList[i].hasOwnProperty("Description") && createList[i].Description)) {
+                               this.$message("请输入全部的原始点位描述")
+                               flag = false
+                               return false
+                            }
+                          } 
+                        }
+                        if (flag) {
+                            this.createList(createList)
+                            if (updateList.length) {
+                                this.update(updateList)
+                            }
+                        }
                     }
                 } else {
                     this.$message.error("请确保存在数据")
                 }
             },
             async createList(createList) {
-                let i = 0;
-                for (i; i < createList.length; i++) {
-                    if (createList[i].hasOwnProperty("Description")) {
-                        await this.create(createList[i])
-                    }
+                for (let i = 0; i < createList.length; i++) {
+                    await this.create(createList[i])
                 }
                 this.changeFlag = true
             },
@@ -487,6 +546,7 @@
         flex: 1;
         display: flex;
         flex-flow: column;
+        padding-bottom: 10px;
         .btns-view {
             height: 40px;
             line-height: 40px;

+ 27 - 12
src/views/point/config_point/steps/step2.vue

@@ -47,6 +47,7 @@
     </div>
 </template>
 <script>
+    import tools from "@/utils/scan/tools"
     import handsontableComponent from "@/components/common/handsontable"
     import examineMain from "@/components/config_point/examine_main"
     import headerArr from "@/utils/point_edit/steps2.js"
@@ -74,6 +75,7 @@
             return {
                 checked: false,
                 settings: {},
+                copyMain: [],
                 isDialogShow: false,
                 msg: "",
                 hot: null,
@@ -163,19 +165,17 @@
                 },res => {
                     this.content = res.Content[0]
                     this.usedNum = (this.content.Current/this.content.Sum).toFixed(2)*100
+                    if (this.usedNum >= 100) {
+                        clearInterval(this.timer)
+                        this.aiDialog = false
+                        this.reset()
+                    }
                 })
             },
             changeLoc(val) {
                 this.renderData.LocationFlag = val
                 this.changeFlag = false
             },
-            //修改提示
-            changeHand(changeData, source) {
-                if (!!changeData) {
-                    this.changeFlag = false
-                }
-                return false
-            },
             //关闭人工智能弹窗
             aiClose(){
                 this.aiDialog = false
@@ -185,13 +185,14 @@
             reset() {
                 if (!this.changeFlag) {
                     this.$confirm("表格数据尚未保存,确定刷新吗?").then(_ => {
-                        this.saveData()
-                    }).catch(_ => {
+                        this.changeFlag = true
                         this.pages.currentPage = this.oldPage.currentPage
                         this.pages.size = this.oldPage.size
                         this.getData()
                     })
-                } else {}
+                } else {
+                    this.getData()
+                }
             },
             //删除点位
             delePoint(delData) {
@@ -328,9 +329,10 @@
                         type: this.protocolType
                     }, res => {
                         console.log(res)
-                        if (!falg) {
+                        if (falg) {
                             this.$message.success("保存成功")
                         }
+                        this.changeFlag = true
                         this.getData()
                     })
                 } else {
@@ -341,8 +343,19 @@
             changeHand(changeData, source) {
                 console.log(changeData, source)
                 if (!!changeData) {
-                    this.changeFlag = false
+                    let tableData = this.hot.getSourceData()
+                    for(let i = 0; i < tableData.length; i++){
+                        let forFlag = true
+                        if(!tools.isObjectValueEqual(this.copyMain[i],tableData[i])) {
+                            this.changeFlag = false
+                            forFlag = false
+                            break
+                        } else if (i == tableData.length - 1 && forFlag) {
+                            this.changeFlag = true
+                        }
+                    }
                 }
+                console.log(this.changeFlag)
                 return false
             },
             //获取初始数据
@@ -382,6 +395,7 @@
                             }
                         }
                     }
+                    this.copyMain = JSON.parse(JSON.stringify(res.Content))
                     this.pages.total = res.Total
                     this.isLoading = false
                     if (!this.pages.total) {
@@ -412,6 +426,7 @@
         flex: 1;
         display: flex;
         flex-flow: column;
+        padding-bottom: 10px;
         .btns-view {
             height: 40px;
             line-height: 40px;

+ 5 - 13
src/views/point/config_point/steps/step3.vue

@@ -26,21 +26,12 @@
 <script>
     import handsontableComponent from "@/components/common/handsontable"
     import headerArr from "@/utils/point_edit/steps3.js"
-    import {
-        changeHeader,
-        showTypes
-    } from "@/utils/handsontable/delType"
-    import {
-        mapGetters,
-        mapActions
-    } from "vuex";
+    import { changeHeader, showTypes } from "@/utils/handsontable/delType"
+    import { mapGetters, mapActions } from "vuex";
     import ownDialog from "@/components/el_pack/dialog"
     import dialogMain from "@/components/config_point/step3_point/dialog_main"
     import stepsMain from "@/components/config_point/step3_point/steps3_main"
-    import {
-        queryPointRela,
-        getNoDealPoint
-    } from "@/fetch/point_http"
+    import { queryPointRela, getNoDealPoint } from "@/fetch/point_http"
     import step3Edit from '@/components/config_point/step3_edit/index'
     import pagination from "@/components/common/myPagination"
     export default {
@@ -149,7 +140,7 @@
             },
             closeEdit() {
                 this.isEditDialogShow = false;
-                THIS.getData()
+                this.getData()
             },
             //初始化表格实例
             getData() {
@@ -213,6 +204,7 @@
         flex: 1;
         display: flex;
         flex-flow: column;
+        padding-bottom: 10px;
         .btns-view {
             height: 40px;
             line-height: 40px;

+ 17 - 20
src/views/rent/rentlist/index.vue

@@ -13,7 +13,7 @@
           :value="item.value">
         </el-option>
       </el-select>
-      <div v-show="onlyRead" style="width:200px;display:inline-block;text-align:left;color:gray;">
+      <div v-show="onlyRead" style="width:200px;display:inline-block;text-align:left;color:gray;font-size:12px;">
         <span>只看要采集的信息</span>
         <el-checkbox v-model="allMess" @change="getTableHeader"></el-checkbox>
       </div>
@@ -71,7 +71,7 @@ import text from "@/utils/handsontable/mainText"
 
 import floorCascader from "@/components/ledger/lib/floorCascader"
 import handsonTable from "@/components/common/handsontable"
-import { getRentTableHeader, getRentTableData, updataRentTableData, deleteRentTableData, saveRentRelateSpace } from "@/api/scan/request"
+import { getDataDictionary, getRentTableHeader, getRentTableData, updataRentTableData, deleteRentTableData, saveRentRelateSpace } from "@/api/scan/request"
 import { mapGetters, mapActions } from "vuex";
 export default {
   components: {
@@ -124,14 +124,14 @@ export default {
     // 获取表头数据(初始化表格)
     async getTableHeader() {
       let param = {
-        ProjId: this.projectId,
-        secret: this.secret,
-        data: {
-          "CollectFlag": this.allMess
-        }
+        // ProjId: this.projectId,
+        // secret: this.secret,
+        PageNumber: 1,
+        PageSize: 500,
+        Filters: `type='Tenant'`
       }
-      await getRentTableHeader(param, res => {
-        this.tableHeader = res.Content;
+      await getDataDictionary(param).then( res => {
+        this.tableHeader = res.data.Content;
         this.getTableData()
       })
     },
@@ -174,12 +174,12 @@ export default {
       })
       //生成对应修改数据
       data.map((item, index) => {
-        let keyarr = change[index][1].split(".")
-        if (keyarr && keyarr.length > 1) {
-          item[keyarr[0]][keyarr[1]] = item[keyarr[0]][keyarr[1]] != ""? item[keyarr[0]][keyarr[1]]: null
-        } else {
-          item[keyarr[0]] = item[keyarr[0]] != ""? item[keyarr[0]]: null
-        }
+        // let keyarr = change[index][1].split(".")
+        // if (keyarr && keyarr.length > 1) {
+        //   item[keyarr[0]][keyarr[1]] = item[keyarr[0]][keyarr[1]] != ""? item[keyarr[0]][keyarr[1]]: null
+        // } else {
+        //   item[keyarr[0]] = item[keyarr[0]] != ""? item[keyarr[0]]: null
+        // }
         param.data.Content.push(item);
       });
 
@@ -296,10 +296,7 @@ export default {
       arr.map((item) => {
         item.Visible = true
       })
-      let readArr = ["A1", "A2", "B1", "C5", "D1", "D2", "E1", "F1", "F2", "L", "L1", "L2", "X"]
-      if (!this.onlyRead) {
-        readArr.push("Own")
-      }
+      let readArr = ["A1", "A2", "B1", "C5", "D1", "D2", "E1", "F1", "F2", "L", "L1", "L2"]
       let data = showTools.changeHeader(arr, readArr, this.onlyRead, false, this.allMess)
       data.unshift("操作","所属楼层","租赁空间");
       return data;
@@ -309,7 +306,7 @@ export default {
       arr.map((item) => { //缺少信息点
         item.Visible = true
       })
-      let readArr = ["A1", "A2", "B1", "C5", "D1", "D2", "E1", "F1", "F2", "L", "L1", "L2", "X"]
+      let readArr = ["A1", "A2", "B1", "C5", "D1", "D2", "E1", "F1", "F2", "L", "L1", "L2"]
       let data = showTools.showHeaderTypes(arr, readArr, this.onlyRead, false, this.allMess)
       data.unshift({
         data: "caozuo",

+ 10 - 13
src/views/rent/rentlist/rentadd/index.vue

@@ -31,7 +31,7 @@ import text from "@/utils/handsontable/mainText"
 import session from "@/framework/utils/storage"
 
 import handsonTable from "@/components/common/handsontable"
-import { getRentTableHeader, createRentTableData } from "@/api/scan/request"
+import { getDataDictionary, getRentTableHeader, createRentTableData } from "@/api/scan/request"
 import { mapGetters, mapActions } from "vuex";
 export default {
   components: {
@@ -66,14 +66,14 @@ export default {
     // 获取表头数据(初始化表格)
     async getTableHeader() {
       let param = {
-        ProjId: this.projectId,
-        secret: this.secret,
-        data: {
-          "CollectFlag": this.allMess
-        }
+        // ProjId: this.projectId,
+        // secret: this.secret,
+        PageNumber: 1,
+        PageSize: 500,
+        Filters: `type='Tenant'`
       }
-      await getRentTableHeader(param, res => {
-        this.tableHeader = res.Content
+      await getDataDictionary(param).then( res => {
+        this.tableHeader = res.data.Content
         this.initTable()
       })
     },
@@ -147,10 +147,7 @@ export default {
       arr.map((item) => {
         item.Visible = true
       })
-      let readArr = ["A1", "A2", "B1", "C5", "D1", "D2", "E1", "F1", "F2", "L", "L1", "L2", "X"]
-      if (!this.onlyRead) {
-        readArr.push("Own")
-      }
+      let readArr = ["A1", "A2", "B1", "C5", "D1", "D2", "E1", "F1", "F2", "L", "L1", "L2"]
       let data = showTools.changeHeader(arr, readArr, this.onlyRead, false, this.allMess)
       // data.unshift("关联的元空间");
       return data;
@@ -160,7 +157,7 @@ export default {
       arr.map((item) => { //缺少信息点
         item.Visible = true
       })
-      let readArr = ["A1", "A2", "B1", "C5", "D1", "D2", "E1", "F1", "F2", "L", "L1", "L2", "X"]
+      let readArr = ["A1", "A2", "B1", "C5", "D1", "D2", "E1", "F1", "F2", "L", "L1", "L2"]
       let data = showTools.showHeaderTypes(arr, readArr, this.onlyRead, false, this.allMess)
       // data.unshift({
       //   data: "SpaceCount",