zhangyu před 5 roky
rodič
revize
7f354b0ce4

+ 4 - 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 })
 }

+ 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
                                 }
                             })
                         }

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

@@ -514,7 +514,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
@@ -555,7 +555,7 @@ 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) {

+ 26 - 0
src/utils/scan/tools.js

@@ -468,6 +468,32 @@ tools.formatDataSource = function (data) {
     }
 }
 
+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
+
+}
+
 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 ? '' : '(需初始化数据)'),

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

@@ -148,10 +148,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 +158,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",

+ 4 - 7
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>
@@ -290,10 +290,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 +300,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 +422,7 @@ export default {
   }
   .search-header {
     overflow: hidden;
-    padding:0 10px 10px 10px;
+    padding-bottom: 10px;
     border-bottom: 1px solid #bcbcbc;
   }
   .tableBox {

+ 14 - 1
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
             },

+ 21 - 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,
@@ -169,13 +171,6 @@
                 this.renderData.LocationFlag = val
                 this.changeFlag = false
             },
-            //修改提示
-            changeHand(changeData, source) {
-                if (!!changeData) {
-                    this.changeFlag = false
-                }
-                return false
-            },
             //关闭人工智能弹窗
             aiClose(){
                 this.aiDialog = false
@@ -185,13 +180,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 +324,10 @@
                         type: this.protocolType
                     }, res => {
                         console.log(res)
-                        if (!falg) {
+                        if (falg) {
                             this.$message.success("保存成功")
                         }
+                        this.changeFlag = true
                         this.getData()
                     })
                 } else {
@@ -341,8 +338,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 +390,7 @@
                             }
                         }
                     }
+                    this.copyMain = JSON.parse(JSON.stringify(res.Content))
                     this.pages.total = res.Total
                     this.isLoading = false
                     if (!this.pages.total) {

+ 3 - 12
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 {

+ 3 - 6
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>
@@ -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",

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

@@ -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",