Browse Source

Merge branch 'dev' of http://39.106.8.246:3003/web/ibms into dev

zhangyu 5 years ago
parent
commit
174017237c

+ 12 - 1
src/api/scan/request.js

@@ -863,6 +863,12 @@ export function spaceInShaftUnlink(param, success) {
   http.postJson(url, param.data, success)
 }
 
+//查询竖井关联的空间垂直交通关系
+export function shaftVerticalSpace(param, success) {
+  let url = `${baseUrl}/equip-component/shaft/shaft-vertical-space`
+  http.postJson(url, param, success)
+}
+
 //获取租户表格内容信息
 export function getRentTableData(param, success) {
   let url = `${baseUrl}/datacenter/tenant/query-with-count`
@@ -1789,8 +1795,13 @@ export function shaftSpaceTypeQuery(param, success) {
   let url = `${baseUrl}/datacenter/sh-contain-sp-base/space-type-query?shaftId=${param.shaftId}`;
   http.postJson(url, param, success)
 }
-//关系-----竖井下的业务空间,竖井一对多,此方法会覆盖以前的记录
+//关系-----竖井下的业务空间,竖井一对多,此方法会覆盖以前的记录
 export function shaftZoneLink(param, success) {
+  let url = `${baseUrl}/datacenter/sh-contain-sp-base/link-shsps`;
+  http.postJson(url, param, success)
+}
+//关系-----竖井下的业务空间,竖井一对多,此方法会覆盖以前的记录
+export function shaftZoneLinkReplace(param, success) {
   let url = `${baseUrl}/datacenter/sh-contain-sp-base/link-shsps-replace?BuildingId=${param.BuildingId}&FloorId=${param.FloorId}&Type=${param.Type}`;
   http.postJson(url, param.data, success)
 }

+ 327 - 0
src/components/ledger/cenote/elevationMap.vue

@@ -0,0 +1,327 @@
+<template>
+  <div v-loading="load" class="saga-elevation">
+    <div v-if="elevationData.length" class="saga-floor">
+      <div class="saga-rf">
+        <p class="saga-floorName">RF</p>
+        <div class="saga-spaceList">
+          <div class="saga-group" v-for="(winth, index) in groupWidth" :key="index" :style="`width: ${100*winth}px;`"></div>
+        </div>
+      </div>
+      <div class="saga-floor-item" v-for="floor in elevationData" :key="floor.FloorSequenceID">
+        <p class="saga-floorName">{{floor.FloorLocalName}}<i class="el-icon-right"></i></p>
+        <div class="saga-spaceList">
+          <div class="saga-group" v-for="(group, groupIndex) in floor.group" :key="floor.FloorSequenceID+'-'+groupIndex" :style="`width: ${100*groupWidth[groupIndex]}px;`">
+            <div class="saga-spaceItem" 
+            :class="[spaceItem.IsAI?spaceItem.checked?'saga-spaceItem-checked':'saga-spaceItem-ai':'']" 
+            v-for="spaceItem in group.spaceList" 
+            :key="spaceItem.RoomID" 
+            :title="spaceItem.RoomLocalName"
+            @click="handleClickCheck(spaceItem)"
+            >
+            {{spaceItem.RoomLocalName}}
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+    <div v-else class="saga-center">
+      <i class="icon-wushuju iconfont"></i>
+      数据暂无
+    </div>
+  </div>
+</template>
+
+<script>
+  import { shaftVerticalSpace, shaftZoneLink } from "@/api/scan/request"
+
+  import {mapGetters} from 'vuex'
+  export default {
+  data () {
+    return {
+      elevationData: [],
+      groupWidth: {},
+      checkedList: [],
+      load: true
+    }
+  },
+  computed: {
+    ...mapGetters("layout", ["projectId"])
+  },
+  props: {
+    params: Object,
+    onlyRead: Boolean,
+    isEdit: Boolean,
+    isAI: Boolean,
+  },
+  methods: {
+    init () { //获取数据并格式化数据
+      //根据isAI判断请求参数是否包含AI推介数据(暂未完成)
+      this.params.AiSwitch = this.isAI
+      console.log(this.params)
+      this.load = true;
+      // 查询竖井关联的空间垂直交通关系
+      shaftVerticalSpace(this.params, (res) => {
+        let data = res.Content;
+        // let data = [
+        //   {
+        //     FloorSequenceID: 5,
+        //     FloorLocalName: 'F5',
+        //     ZoneSpaceList: [
+        //       {
+        //         RoomID: 'f5-001',
+        //         IsAI: false,
+        //         RoomLocalName: '业务空间f5-001',
+        //         SpaceIdList: ['f4-002']
+        //       }
+        //     ]
+        //   },
+        //   {
+        //     FloorSequenceID: 4,
+        //     FloorLocalName: 'F4',
+        //     ZoneSpaceList: [{
+        //       RoomID: 'f4-001',
+        //       IsAI: true,
+        //       RoomLocalName: '业务空间f4-001',
+        //       SpaceIdList: ['f3-002']
+        //     }, {
+        //       RoomID: 'f4-002',
+        //       IsAI: true,
+        //       RoomLocalName: '业务空间f4-002',
+        //       SpaceIdList: ['f5-001']
+        //     }]
+        //   },
+        //   {
+        //     FloorSequenceID: 3,
+        //     FloorLocalName: 'F3',
+        //     ZoneSpaceList: [{
+        //       RoomID: 'f3-001',
+        //       IsAI: false,
+        //       RoomLocalName: '业务空间f3-001',
+        //       SpaceIdList: ['f2-002']
+        //     }, {
+        //       RoomID: 'f3-002',
+        //       IsAI: true,
+        //       RoomLocalName: '业务空间f3-002',
+        //       SpaceIdList: ['f2-002','f4-001']
+        //     }]
+        //   },
+        //   {
+        //     FloorSequenceID: 2,
+        //     FloorLocalName: 'F2',
+        //     ZoneSpaceList: [{
+        //       RoomID: 'f2-001',
+        //       IsAI: false,
+        //       RoomLocalName: '业务空间f2-001',
+        //       SpaceIdList: ['f1-001']
+        //     }, {
+        //       RoomID: 'f2-002',
+        //       IsAI: true,
+        //       RoomLocalName: '业务空间f2-002',
+        //       SpaceIdList: ['f3-001','f3-002']
+        //     }, {
+        //       RoomID: 'f2-003',
+        //       IsAI: false,
+        //       RoomLocalName: '业务空间f2-003',
+        //       SpaceIdList: []
+        //     }]
+        //   },
+        //   {
+        //     FloorSequenceID: 1,
+        //     FloorLocalName: 'F1',
+        //     ZoneSpaceList: [{
+        //       RoomID: 'f1-001',
+        //       IsAI: false,
+        //       RoomLocalName: '业务空间f1-001',
+        //       SpaceIdList: ['f2-001']
+        //     }, {
+        //       RoomID: 'f1-002',
+        //       IsAI: false,
+        //       RoomLocalName: '业务空间f1-002',
+        //       SpaceIdList: []
+        //     }, {
+        //       RoomID: 'f1-003',
+        //       IsAI: false,
+        //       RoomLocalName: '业务空间f1-003',
+        //       SpaceIdList: []
+        //     }]
+        //   }
+        // ];
+        let max = 0, idMap = {}, groupMap = {}, copyData = JSON.parse(JSON.stringify(data));
+        this.groupWidth = {};
+        copyData.reverse().forEach(floor => {
+          if (floor.ZoneSpaceList && floor.ZoneSpaceList.length) {
+            floor.ZoneSpaceList.forEach(space => {
+              if (idMap[space.RoomID]) {  // 该业务空间在映射列表中
+                groupMap[idMap[space.RoomID]].push(space)
+                space.SpaceIdList.forEach(RoomID =>{
+                  if (!idMap[RoomID]) {
+                    idMap[RoomID] = idMap[space.RoomID];
+                  }
+                })
+              } else { // 该业务空间不在映射列表中
+                max++;
+                idMap[space.RoomID] = max;
+                groupMap[max] = [];
+                this.groupWidth[max] = 0;
+                groupMap[max].push(space);
+                space.SpaceIdList.forEach(RoomID =>{
+                  if (!idMap[RoomID]) {
+                    idMap[RoomID] = max;
+                  }
+                })
+              }
+            })
+          }
+        })
+        data.forEach((floor, index) =>{
+          floor.group = {};
+          Object.keys(groupMap).forEach(groupIndex =>{
+            let max = 0;
+            floor.group[groupIndex] = {
+              spaceList: []
+            };
+            if (floor.ZoneSpaceList && floor.ZoneSpaceList.length) {
+              floor.ZoneSpaceList.forEach(space => {
+                if (groupMap[groupIndex].find(item => { return space.RoomID == item.RoomID })) {
+                  space.checked = false;
+                  floor.group[groupIndex].spaceList.push(space);
+                  max++;
+                }
+              })
+            }
+            if (max > this.groupWidth[groupIndex]) {
+              this.groupWidth[groupIndex] = max;
+            }
+          })
+        });
+        this.elevationData = data
+        console.log(this.elevationData)
+        this.load = false;
+      })
+    },
+    handleClickCheck (sapceItem) { //点选推介的业务空间
+      console.log(this.isEdit)
+      if (sapceItem.IsAI && this.isEdit && !this.onlyRead) { //是AI推荐并且编辑模式下
+        sapceItem.checked = sapceItem.checked? false: true;
+        if (sapceItem.checked) {
+          this.checkedList.push(sapceItem)
+        } else {
+          let index = this.checkedList.findIndex(item =>{ return item.RoomID == sapceItem.RoomID })
+          if (index != -1) { // 找到对应的数据
+            this.checkedList.splice(index,1)
+          }
+        }
+      }
+    },
+    savaEdit () {// 接口保存数据和业务空间的关系
+      let params = {
+        ShaftId: this.params.ShaftId,
+        SpaceIdList: this.checkedList.map(item => {
+          return item.RoomID
+        })
+      }
+      console.log(params);
+      shaftZoneLink(params, res =>{
+        this.$message.success("保存成功");
+        this.init();
+      })
+    }
+  },
+  watch: {
+    projectId() {
+      if (this.params.BuildingId && this.params.ObjectType && this.params.ShaftId) {
+        this.init();
+      }
+      console.log(this.projectId)
+    },
+    // isAI() {
+    //   if (this.params.BuildingId && this.params.ObjectType && this.params.ShaftId) {
+    //     this.init();
+    //   }
+    // },
+    params: {
+      handler(val,ccc) {
+        if (this.params.BuildingId && this.params.ObjectType && this.params.ShaftId) {
+          this.init();
+        }
+      },
+      immediate: true,
+      deep: true,
+    }
+  }
+}
+</script>
+
+<style lang="less">
+  .saga-elevation {
+    height: 100%;
+    position: relative;
+    .saga-center{
+      position: absolute;
+      top: 50%;
+      left: 50%;
+      transform: translate(-50%,-60%);
+      text-align: center;
+    }
+    .saga-floor {
+      display: flex;
+      height: 100%;
+      box-sizing: border-box;
+      flex-direction: column;
+      justify-content: flex-end;
+      padding: 0 10px 60px 0;
+      .saga-rf {
+        display: flex;
+        flex-direction: row;
+        font-size: 12px;
+        color: blue;
+      }
+      .saga-floor-item {
+        display: flex;
+        flex-direction: row;
+        font-size: 12px;
+        height: 60px;
+        line-height: 60px;
+      }
+      .saga-floorName {
+        min-width: 50px;
+        text-align: right;
+      }
+      .saga-spaceList {
+        display: flex;
+        flex-direction: row;
+        flex: 1;
+        border-bottom: 2px solid #c1c6d2;
+        box-sizing: border-box;
+        .saga-group {
+          display: flex;
+          flex-direction: row;
+          margin-left: 10px;
+          box-sizing: border-box;
+          .saga-spaceItem {
+            width: 100px;
+            margin-left: 1px;
+            text-align: center;
+            overflow: hidden;
+            text-overflow:ellipsis;
+            white-space: nowrap;
+            background-color: #ffcc00;
+            border: 1px solid #333333;
+          }
+          .saga-spaceItem-ai{
+            cursor: pointer;
+            box-sizing: border-box;
+            background-color: #eaeae9;
+            border: 1px dashed #333333;
+          }
+          .saga-spaceItem-checked {
+            cursor: pointer;
+            box-sizing: border-box;
+            background-color: #1abc9c;
+            border: 1px dashed #333333;
+          }
+        }
+      }
+    }
+  }
+</style>

+ 2 - 2
src/components/ledger/lib/cenoteGraphy.vue

@@ -22,7 +22,7 @@ import { SColor, SPoint } from "@saga-web/draw/lib";
 import { DivideFloorScene, SpaceItem, ZoneItem } from "@saga-web/cad-engine/lib";
 import { FloorView } from "@saga-web/cad-engine/lib/FloorView";
 import { colorArr } from '@/utils/spaceColor';
-import { getFloorMsgByFloorID, queryZone, shaftSpaceQuery, shaftZoneLink } from '@/api/scan/request';
+import { getFloorMsgByFloorID, queryZone, shaftSpaceQuery, shaftZoneLinkReplace } from '@/api/scan/request';
 import { resolve, reject } from 'q';
 export default {
   data() {
@@ -211,7 +211,7 @@ export default {
       param.data.SpaceIdList = arr.map(t => {
         return t.data.RoomID;
       })
-      shaftZoneLink(param, res => {
+      shaftZoneLinkReplace(param, res => {
         this.config.isEdit = false;
         this.$message.success("保存成功");
         this.getBusinessSpace();

+ 99 - 64
src/components/model/file/versionDialog.vue

@@ -6,22 +6,53 @@
         <span style="marginLeft:30px;">上传时间:{{versionData.acceptTime}}</span>
         <p style="marginTop:15px;">更新内容:</p>
         <div v-if="Object.keys(versionData.createData).length || Object.keys(versionData.deleteData).length">
+          <!-- 新增设备概要内容 -->
           <el-divider v-if="Object.keys(versionData.createData).length">新增设备概要内容</el-divider>
           <p v-if="Object.keys(versionData.createData).length" style="marginBottom:10px;">于【{{versionData.acceptTime}}】上传模型文件,新增设备实例如下:</p>
           <p v-for="(item, key) in versionData.createData" :key="'C'+key">【{{mapType[key]}}】:【{{item.length}}】个</p>
-          <el-divider v-if="Object.keys(versionData.deleteData).length">[{{Object.keys(versionData.deleteData).length}}]删除设备概要内容</el-divider>
+          <!-- 删除设备概要内容 -->
+          <el-divider v-if="Object.keys(versionData.deleteData).length">删除设备概要内容</el-divider>
           <p v-if="Object.keys(versionData.deleteData).length" style="marginBottom:10px;">于【{{versionData.acceptTime}}】上传模型文件,删除设备实例如下:</p>
           <p v-for="(item, key) in versionData.deleteData" :key="'D'+key">【{{mapType[key]}}】:【{{item.length}}】个</p>
+          <!-- 土建设备概要内容 -->
+          <el-divider v-if="versionData.buildList.length">土建设备概要内容</el-divider>
+          <p v-if="versionData.buildList.length" style="marginBottom:10px;">于【{{versionData.acceptTime}}】上传模型文件,增删土建设备实例如下:</p>
+          <p v-if="versionData.createWall.length">【新增实体墙】:【{{versionData.createWall.length}}】个</p>
+          <p v-if="versionData.deleteWall.length">【删除实体墙】:【{{versionData.deleteWall.length}}】个</p>
+          <p v-if="versionData.createVirtualWall.length">【新增虚拟墙】:【{{versionData.createVirtualWall.length}}】个</p>
+          <p v-if="versionData.deleteVirtualWall.length">【删除虚拟墙】:【{{versionData.deleteVirtualWall.length}}】个</p>
+          <p v-if="versionData.createColumn.length">【新增柱体】:【{{versionData.createColumn.length}}】个</p>
+          <p v-if="versionData.deleteColumn.length">【删除柱体】:【{{versionData.deleteColumn.length}}】个</p>
+          <!-- 新增设备 -->
           <el-divider v-if="Object.keys(versionData.createData).length">新增设备</el-divider>
           <div v-for="(item, key) in versionData.createData" :key="'CL'+key">
             <p>【{{mapType[key]}}】</p>
             <p v-for="(obj, i) in item" :key="obj.Id">【{{i+1}}】、建筑:【{{obj.BuildingName || "无"}}】;楼层:【{{obj.FloorName || "无"}}】;设备全局id:【{{obj.ObjId || "无"}}】;BIMID:【{{obj.BimId || "无"}}】;设备本地编码:【{{obj.LocalId || "无"}}】;设备本地名称:【{{obj.LocalName || "无"}}】;CADID:【{{obj.CadId || "无"}}】;</p>
           </div>
+          <!-- 删除设备 -->
           <el-divider v-if="Object.keys(versionData.deleteData).length">删除设备</el-divider>
           <div v-for="(item, key) in versionData.deleteData" :key="'DL'+key">
             <p>【{{mapType[key]}}】</p>
             <p v-for="(obj, i) in item" :key="obj.Id">【{{i+1}}】、建筑:【{{obj.BuildingName || "无"}}】;楼层:【{{obj.FloorName || "无"}}】;设备全局id:【{{obj.ObjId || "无"}}】;BIMID:【{{obj.BimId || "无"}}】;设备本地编码:【{{obj.LocalId || "无"}}】;设备本地名称:【{{obj.LocalName || "无"}}】;CADID:【{{obj.CadId || "无"}}】;</p>
           </div>
+          <!-- 新增实体墙 -->
+          <el-divider v-if="versionData.createWall.length">新增实体墙</el-divider>
+          <p v-for="(obj, i) in versionData.createWall" :key="obj.Id">【{{i+1}}】、建筑:【{{obj.BuildingName || "无"}}】;楼层:【{{obj.FloorName || "无"}}】;Id:【{{obj.ObjId || "无"}}】;</p>
+          <!-- 删除实体墙 -->
+          <el-divider v-if="versionData.deleteWall.length">删除实体墙</el-divider>
+          <p v-for="(obj, i) in versionData.deleteWall" :key="obj.Id">【{{i+1}}】、建筑:【{{obj.BuildingName || "无"}}】;楼层:【{{obj.FloorName || "无"}}】;Id:【{{obj.ObjId || "无"}}】;</p>
+          <!-- 新增虚拟墙 -->
+          <el-divider v-if="versionData.createVirtualWall.length">新增虚拟墙</el-divider>
+          <p v-for="(obj, i) in versionData.createVirtualWall" :key="obj.Id">【{{i+1}}】、建筑:【{{obj.BuildingName || "无"}}】;楼层:【{{obj.FloorName || "无"}}】;Id:【{{obj.ObjId || "无"}}】;</p>
+          <!-- 删除虚拟墙 -->
+          <el-divider v-if="versionData.deleteVirtualWall.length">删除虚拟墙</el-divider>
+          <p v-for="(obj, i) in versionData.deleteVirtualWall" :key="obj.Id">【{{i+1}}】、建筑:【{{obj.BuildingName || "无"}}】;楼层:【{{obj.FloorName || "无"}}】;Id:【{{obj.ObjId || "无"}}】;</p>
+          <!-- 新增柱体 -->
+          <el-divider v-if="versionData.createColumn.length">新增柱体</el-divider>
+          <p v-for="(obj, i) in versionData.createColumn" :key="obj.Id">【{{i+1}}】、建筑:【{{obj.BuildingName || "无"}}】;楼层:【{{obj.FloorName || "无"}}】;Id:【{{obj.ObjId || "无"}}】;</p>
+          <!-- 删除柱体 -->
+          <el-divider v-if="versionData.deleteColumn.length">删除柱体</el-divider>
+          <p v-for="(obj, i) in versionData.deleteColumn" :key="obj.Id">【{{i+1}}】、建筑:【{{obj.BuildingName || "无"}}】;楼层:【{{obj.FloorName || "无"}}】;Id:【{{obj.ObjId || "无"}}】;</p>
         </div>
         <div v-else>
           <div style="height: 60%;transform: translateY(50%);font-weight: normal;font-size: 12px;text-align: center;color: #909399;">
@@ -65,9 +96,20 @@ export default {
         userName: '',
         acceptTime: '',
         createData: {},
-        deleteData:{}
+        deleteData: {},
+        buildList: [],
+        createWall: [],
+        deleteWall: [],
+        createVirtualWall: [],
+        deleteVirtualWall: [],
+        createColumn: [],
+        deleteColumn: [],
+      },
+      mapType: {
+        'Wall': '实体墙',
+        'VirtualWall': '虚拟墙',
+        'Column': '柱体',
       },
-      mapType: { },
     }
   },
   mounted() { },
@@ -105,23 +147,7 @@ export default {
           if (values[0].Total / (values[0].PageSize * values[0].PageNumber) > 1) {
             this.queryLogData(values[0].PageNumber + 1)
           } else {
-            this.logData.forEach(item => {
-              if(item.Operation){
-                if(this.versionData.createData[item.Type]){
-                  this.versionData.createData[item.Type].push(item);
-                } else {
-                  this.versionData.createData[item.Type] = [];
-                  this.versionData.createData[item.Type].push(item);
-                }
-              } else {
-                if(this.versionData.deleteData[item.Type]){
-                  this.versionData.deleteData[item.Type].push(item);
-                } else {
-                  this.versionData.deleteData[item.Type] = [];
-                  this.versionData.deleteData[item.Type].push(item);
-                }
-              }
-            });
+            this.formatData();
             this.loading = false;
             this.$forceUpdate();
             console.log(this.versionData);
@@ -129,37 +155,55 @@ export default {
         })
       }
     },
+    // 格式化数据
+    formatData () {
+      this.logData.forEach(item => {
+        if (item.Type == 'Wall' || item.Type == 'VirtualWall' || item.Type == 'Column') {
+          this.versionData.buildList.push(item);
+          if (item.Type == 'Wall') {
+            if(item.Operation){//创建
+              this.versionData.createWall.push(item);
+            } else {//删除
+              this.versionData.deleteWall.push(item);
+            }
+          } else if (item.Type == 'VirtualWall') {
+            if(item.Operation){//创建
+              this.versionData.createVirtualWall.push(item);
+            } else {//删除
+              this.versionData.deleteVirtualWall.push(item);
+            }
+          } else if (item.Type == 'Column') {
+            if(item.Operation){//创建
+              this.versionData.createColumn.push(item);
+            } else {//删除
+              this.versionData.deleteColumn.push(item);
+            }
+          }
+        } else {
+          if(item.Operation){//创建
+            if(this.versionData.createData[item.Type]){
+              this.versionData.createData[item.Type].push(item);
+            } else {
+              this.versionData.createData[item.Type] = [];
+              this.versionData.createData[item.Type].push(item);
+            }
+          } else {//删除
+            if(this.versionData.deleteData[item.Type]){
+              this.versionData.deleteData[item.Type].push(item);
+            } else {
+              this.versionData.deleteData[item.Type] = [];
+              this.versionData.deleteData[item.Type].push(item);
+            }
+          }
+        }
+      });
+    },
     // 获取版本信息
     getVersionData() {
       if(this.modelFile.Id || this.modelFile.CurrentModelId){
         this.versionData.userName = this.modelFile.UserName;
         this.versionData.acceptTime = this.modelFile.AcceptTime;
         this.queryLogData();
-        // querySyncLogCount({
-        //   Filters: `ModelId='${this.modelFile.CurrentModelId?this.modelFile.CurrentModelId:this.modelFile.Id}'`,
-        //   PageNumber: 1,
-        //   PageSize: 1000,
-        // }, res => {
-        //   res.Content.forEach(item => {
-        //     if(item.Operation){
-        //       if(this.versionData.createData[item.Type]){
-        //         this.versionData.createData[item.Type].push(item);
-        //       } else {
-        //         this.versionData.createData[item.Type] = [];
-        //         this.versionData.createData[item.Type].push(item);
-        //       }
-        //     } else {
-        //       if(this.versionData.deleteData[item.Type]){
-        //         this.versionData.deleteData[item.Type].push(item);
-        //       } else {
-        //         this.versionData.deleteData[item.Type] = [];
-        //         this.versionData.deleteData[item.Type].push(item);
-        //       }
-        //     }
-        //   });
-        //   this.loading = false;
-        //   this.$forceUpdate();
-        // })
       }
     },
     queryLogData(pageNum) {
@@ -174,23 +218,7 @@ export default {
         if (res.Total / (res.PageSize * res.PageNumber) > 1) {
           this.queryLogData(res.PageNumber + 1)
         } else {
-          this.logData.forEach(item => {
-            if(item.Operation){
-              if(this.versionData.createData[item.Type]){
-                this.versionData.createData[item.Type].push(item);
-              } else {
-                this.versionData.createData[item.Type] = [];
-                this.versionData.createData[item.Type].push(item);
-              }
-            } else {
-              if(this.versionData.deleteData[item.Type]){
-                this.versionData.deleteData[item.Type].push(item);
-              } else {
-                this.versionData.deleteData[item.Type] = [];
-                this.versionData.deleteData[item.Type].push(item);
-              }
-            }
-          });
+          this.formatData();
           this.loading = false;
           this.$forceUpdate();
           console.log(this.versionData)
@@ -208,9 +236,16 @@ export default {
             userName: '',
             acceptTime: '',
             createData: {},
-            deleteData:{}
+            deleteData: {},
+            buildList: [],
+            createWall: [],
+            deleteWall: [],
+            createVirtualWall: [],
+            deleteVirtualWall: [],
+            createColumn: [],
+            deleteColumn: [],
           };
-          if(Object.keys(this.mapType).length) {
+          if(Object.keys(this.mapType).length > 3) {
             this.getVersionData();
           } else {
             this.getData();

+ 119 - 88
src/components/point/report/integrateStatistics.vue

@@ -9,7 +9,7 @@
     <!-- 图形图 -->
     <div class="statistics-chart" style="border-top:5px solid #eee;min-height: calc(65% - 3px);">
       <div class="chart-title">共包含原始点位:{{ originalPoint }} 个</div>
-      <div style="padding:15px 10%;line-height:2;">
+      <div style="padding:15px 20px;line-height:2;">
         1点位对多表号功能号:{{ pointData.oneToM.toString() }}
         <br />
         多点位对1表号功能号:{{ pointData.mToOne.toString() }}
@@ -18,7 +18,32 @@
           style="margin:-25px 0 0 50px;background:rgb(121, 187, 255);color:rgb(225, 228, 229);border:none;"></el-button>
       </div>
       <hr style="width:90%;margin-top: 1px;" />
-      <div ref="barchart" class="chart" id="barchart" :style="{height:barChartData.length * 120 + 'px'}"></div>
+      <div ref="barchart" class="" id="barchart" :style="{height:barChartData.length * 120 + 'px'}">
+        <el-row class="barchart-title">
+          <el-col :span="12">
+            <span style="background:#79bbff;"></span>已接入点位 {{pointInSum}}
+          </el-col>
+          <el-col :span="12">
+            <span style="background:#e1e4e5;"></span>未接入点位 {{pointOutSum}}
+          </el-col>
+        </el-row>
+        <div>
+          <div class="source" v-for="t in barChartData" :key="t.Id">
+            <el-row class="source-name">
+              <div :title='t.Name'>{{t.Name}}</div>
+              <div>{{t.Notrelatedall+t.Relatedall}}个原始点位</div>
+            </el-row>
+            <el-row class="source-chart already-in">
+              <el-col :style="{width:(t.widthin>1?t.widthin:1)+'%'}"></el-col>
+              <el-col>{{t.Relatedall}}</el-col>
+            </el-row>
+            <el-row class="source-chart not-in">
+              <el-col :style="{width:(t.widthout>1?t.widthout:1)+'%'}"></el-col>
+              <el-col>{{t.Notrelatedall}}</el-col>
+            </el-row>
+          </div>
+        </div>
+      </div>
     </div>
     <!-- 点位/表号功能号对应总览 -->
     <pointTabOverview ref="overviewDialog"></pointTabOverview>
@@ -43,8 +68,6 @@ export default {
     return {
       //环形图
       loopChart: null,
-      //条形图
-      barChart: null,
       //环形图数据
       loopChartData: [],
       //条形图数据
@@ -57,7 +80,9 @@ export default {
         disConn: 0//可能断数数量
       },
       //原始点数量
-      originalPoint: null
+      originalPoint: null,
+      pointInSum: 0, //左侧柱形图已接入
+      pointOutSum: 0, //左侧柱形图未接入
     };
   },
   methods: {
@@ -132,8 +157,8 @@ export default {
               avoidLabelOverlap: false,
               legendHoverLink: false,
               selectedOffset: 0,
-              label:{
-                  color:'rgb(121, 187, 255)',
+              label: {
+                color: 'rgb(121, 187, 255)',
               },
               emphasis: {
                 itemStyle: {
@@ -168,7 +193,22 @@ export default {
 
       //获取条形图数据
       getIntegrateStatisticsToBar({}, res => {
-        this.barChartData = res.Content;
+        let max = 1;
+        res.Content.forEach(t => {
+          this.pointInSum += t.Relatedall;
+          this.pointOutSum += t.Notrelatedall;
+          if (t.Relatedall > max) {
+            max = t.Relatedall
+          }
+          if (t.Notrelatedall > max) {
+            max = t.Notrelatedall
+          }
+        })
+        this.barChartData = res.Content.map(t => {
+          t.widthin = ((t.Relatedall / max) * 0.8).toFixed(2) * 100
+          t.widthout = ((t.Notrelatedall / max) * 0.8).toFixed(2) * 100
+          return t;
+        });
         this.originalPoint = (() => {
           let sum = 0;
           this.barChartData.map(item => {
@@ -176,71 +216,6 @@ export default {
           });
           return sum;
         })();
-
-        //条形图参数
-        let barOption = {
-          tooltip: {
-            trigger: "axis",
-            axisPointer: {
-              // 坐标轴指示器,坐标轴触发有效
-              type: "shadow" // 默认为直线,可选为:'line' | 'shadow'
-            }
-          },
-          color: ['rgb(121, 187, 255)', 'rgb(225, 228, 229)'],
-          legend: {
-            data: ["已接入", "未接入"]
-          },
-          grid: {
-            left: "3%",
-            right: "4%",
-            bottom: "3%",
-            containLabel: true
-          },
-          xAxis: [
-            {
-              type: "value",
-              position: "top"
-            }
-          ],
-          yAxis: [
-            {
-              type: "category",
-              axisTick: { show: false },
-              data: this.barChartData.map(item => item.Name)
-            }
-          ],
-          series: [
-            {
-              name: "已接入",
-              type: "bar",
-              label: {
-                normal: {
-                  show: true,
-                  position: "inside"
-                }
-              },
-              data: this.barChartData.map(item => item.Relatedall)
-            },
-            {
-              name: "未接入",
-              type: "bar",
-              stack: "总量",
-              label: {
-                normal: {
-                  show: true
-                }
-              },
-              data: this.barChartData.map(item => item.Notrelatedall)
-            }
-          ]
-        };
-
-        /* 条形图高度随数量变化,延时初始化 */
-        let that = this;
-        setTimeout(() => {
-          that.barChart = echarts.init(document.getElementById("barchart"));
-          that.barChart.setOption(barOption);
-        }, 100);
       });
     },
     //点位/表号
@@ -258,8 +233,6 @@ export default {
     window.onresize = () => {
       if (that.loopChart != null)
         that.loopChart.resize();
-      if (that.barChart != null)
-        that.barChart.resize();
     };
   },
   components: {
@@ -271,18 +244,76 @@ export default {
 <style lang="less" scoped>
 #integrateStatistics {
   border-top: 5px solid #eee;
-}
-.statistics-chart {
-  min-height: calc(35% - 3px);
-}
-.chart-title {
-  padding: 5px 5%;
-  font-size: 16px;
-  font-weight: 500;
-}
-.chart {
-  min-height: 200px;
-  height: auto;
-  width: 100%;
+  .statistics-chart {
+    min-height: calc(35% - 3px);
+    .chart-title {
+      padding: 5px 20px;
+      font-size: 16px;
+      font-weight: 500;
+    }
+  }
+  .chart {
+    min-height: 200px;
+    height: auto;
+    width: 100%;
+  }
+  #barchart {
+    font-size: 12px;
+    .barchart-title {
+      margin: 15px 0;
+      .el-col {
+        padding-left: 20px;
+        span {
+          display: inline-block;
+          width: 14px;
+          height: 14px;
+          margin: 0 10px -2px 0;
+        }
+      }
+    }
+    .source {
+      margin-bottom: 15px;
+      .source-name {
+        margin-bottom: 15px;
+        div {
+          float: left;
+          box-sizing: border-box;
+          overflow: hidden;
+          text-overflow: ellipsis;
+          white-space: nowrap;
+          &:nth-child(1) {
+            width: 65%;
+            padding-left: 20px;
+          }
+          &:nth-child(2) {
+            width: 35%;
+            text-align: right;
+            padding-right: 20px;
+          }
+        }
+      }
+      .source-chart {
+        box-sizing: border-box;
+        padding: 0 20px;
+        .el-col {
+          height: 30px;
+          &:nth-child(2) {
+            padding-left: 10px;
+            width: 20%;
+          }
+        }
+        &.already-in {
+          .el-col:nth-child(1) {
+            background: #79bbff;
+          }
+        }
+        &.not-in {
+          .el-col:nth-child(1) {
+            background: #e1e4e5;
+          }
+        }
+      }
+    }
+  }
 }
 </style>

+ 25 - 0
src/framework/style/layout.scss

@@ -17,7 +17,32 @@ body {
     width: 100%;
     height: 100%;
 }
+/*---滚动条默认显示样式--*/
+::-webkit-scrollbar-thumb{
+    height:50px;
+    outline-offset:-2px;
+    outline:2px solid #dddee0;
+    border: 2px solid #dddee0;
+    background-color: #dddee0;
+    border-radius: 4px;
+}
+
+/*---鼠标点击滚动条显示样式--*/
+::-webkit-scrollbar-thumb:hover{
+    height:50px;
+}
+
 
+/*---滚动条大小--*/
+::-webkit-scrollbar{
+    width:8px;
+    height:8px;
+}
+
+/*---滚动框背景样式--*/
+::-webkit-scrollbar-track-piece{
+    
+}
 #page-main {
     width: 100%;
     height: 100%;

+ 66 - 32
src/views/ledger/cenotelist/relatedSpace.vue

@@ -34,27 +34,43 @@
             <el-option v-for="item in buildingList" :key="item.value" :label="item.BuildLocalName" :value="item.BuildID"></el-option>
           </el-select>
         </el-badge>
-        <el-row style="height:calc(100% - 42px);margin:10px 0 0 0;width:100%;position:relative;">
-          <el-col :span="3" style="height:100%;border:1px solid #e4e4e4;">
-            <el-scrollbar style="height:100%;">
-              <div class="floor" style="height:100%;text-align:center;">
-                <span class="floor-item" style="border-bottom:1px solid #e4e4e4;">楼 层</span>
-                <div v-if="building" v-loading="buildingLoading">
-                  <span class="floor-item" @click="changeFloor(item.FloorID)" :class="{floorItemChoose:(item.FloorID == floor)}"
-                    v-for="item in buildingObj.Floor" :key="item.FloorID">{{ item.FloorLocalName }}</span>
+        <el-switch
+          v-if="!cenoteObj.onlyRead"
+          style="margin-left:15px;"
+          v-model="isAI"
+          active-text="打开AI">
+        </el-switch>
+        <div style="height:calc(100% - 42px);margin:10px 0 0 0;width:100%;">
+          <el-row style="height:100%;margin:0;width:55%;position:relative;display:inline-block;border:1px solid #e4e4e4;">
+            <el-col :span="4" style="height:100%;border-right:1px solid #e4e4e4;">
+              <el-scrollbar style="height:100%;">
+                <div class="floor" style="height:100%;text-align:center;">
+                  <span class="floor-item" style="border-bottom:1px solid #e4e4e4;">楼 层</span>
+                  <div v-if="building" v-loading="buildingLoading">
+                    <span class="floor-item" @click="changeFloor(item.FloorID)" :class="{floorItemChoose:(item.FloorID == floor)}"
+                      v-for="item in buildingObj.Floor" :key="item.FloorID">{{ item.FloorLocalName }}</span>
+                  </div>
                 </div>
-              </div>
-            </el-scrollbar>
-          </el-col>
-          <el-col :span="21" style="height:100%;border:1px solid #e4e4e4;border-left:none;">
-            <cenote-graphy ref="cenotegraphy"></cenote-graphy>
-          </el-col>
-        </el-row>
+              </el-scrollbar>
+            </el-col>
+            <el-col :span="20" style="height:100%;position:relative;">
+              <cenote-graphy ref="cenotegraphy"></cenote-graphy>
+            </el-col>
+          </el-row>
+          <div class="elevation-box">
+            <elevation-map 
+              ref="elevationMap" 
+              :onlyRead="cenoteObj.onlyRead" 
+              :isEdit="isEdit" 
+              :isAI="isAI"
+              :params="{BuildingId: building, ObjectType: space, ShaftId: $route.query.ShaftId}">
+            </elevation-map>
+          </div>
+        </div>
 
       </div>
       <div v-show="isMyTab == 2" class="data-item">
-        <related-spaceList :space="space" :buildingList="buildingList" :spaceType="spaceType" :floorType="floorType" ref="relatedSpacelist">
-        </related-spaceList>
+        <related-spaceList :space="space" :buildingList="buildingList" :spaceType="spaceType" :floorType="floorType" ref="relatedSpacelist"></related-spaceList>
       </div>
     </div>
   </div>
@@ -63,6 +79,7 @@
 <script>
 import spaceSelect from "@/components/ledger/lib/spaceSelect";
 import relatedSpaceList from "@/components/ledger/cenote/relatedSpaceList";
+import elevationMap from "@/components/ledger/cenote/elevationMap";
 import addSpaceDialog from '@/components/ledger/cenote/dialog/addSpaceDialog';
 import { queryDictionaryHead, buildingQuery, shaftSpaceTypeQuery, shaftSpaceBuildingQuery } from '@/api/scan/request';
 import cenoteGraphy from '@/components/ledger/lib/cenoteGraphy'
@@ -82,14 +99,21 @@ export default {
       spaceType: {},//空间种类
       floorType: {},//子组件楼层信息
       buildingLoading: false,//左侧列表加载
-      showSpaceDot: false,//空间提示红点
-      showBuildDot: false,//楼层提示红点
+      // showSpaceDot: false,//空间提示红点
+      // showBuildDot: false,//楼层提示红点
+      isAI: true,//是否打开AI
     }
   },
   computed: {
     cenoteObj() {
       return this.$route.query;
     },
+    showSpaceDot() {
+      return this.spaceList.length > 1 && this.cenoteObj.onlyRead?true:false;
+    },
+    showBuildDot() {
+      return this.buildingList.length > 1 && this.cenoteObj.onlyRead?true:false;
+    },
     ...mapGetters("layout", ["projectId"])
   },
   props: {
@@ -99,9 +123,11 @@ export default {
     spaceSelect,
     relatedSpaceList,
     addSpaceDialog,
-    cenoteGraphy
+    cenoteGraphy,
+    elevationMap
   },
   created() {
+    this.isAI = this.$route.query.onlyRead?false:true;
     this.getSpaceData();
   },
   methods: {
@@ -137,9 +163,9 @@ export default {
     showDefaultSpace() {
       if (this.spaceList.length) {
         this.space = this.spaceList.find((item) => {return item.Code == "GeneralZone"})? "GeneralZone": this.spaceList[0].Code;
-        if (this.spaceList.length > 1 && this.cenoteObj.onlyRead) {
-          this.showSpaceDot = true;
-        }
+        // if (this.spaceList.length > 1 && this.cenoteObj.onlyRead) {
+        //   this.showSpaceDot = true;
+        // }
       }
       //处理空间类型
       this.spaceList.map(item => {
@@ -195,16 +221,15 @@ export default {
         this.$refs.relatedSpacelist.setFloorData(this.buildingList);
       }
       if (this.buildingList.length) {
-        if (this.buildingList.length > 1 && this.cenoteObj.onlyRead) {
-          this.showBuildDot = true;
-        }
+        // if (this.buildingList.length > 1 && this.cenoteObj.onlyRead) {
+        //   this.showBuildDot = true;
+        // }
         this.changeBuilding(this.buildingList[0].BuildID);
-      }
-      else {
+      } else {
         this.buildingList = [];
         this.building = '';
         this.floor = '';
-        this.showBuildDot = false;
+        // this.showBuildDot = false;
       }
       this.buildingList.map(item => {
         if (item.BuildID && item.BuildLocalName) {
@@ -221,7 +246,6 @@ export default {
     },
     //更改业务空间类型
     changeSpace(val) {
-      this.showSpaceDot = false;
       this.space = val;
       this.floor = '';
       this.buildingList = [];
@@ -242,7 +266,6 @@ export default {
           }
         }
       })
-      this.showBuildDot = false;
     },
     //更换楼层
     changeFloor(fid) {
@@ -264,6 +287,8 @@ export default {
     saveEdit() {
       this.isEdit = false;
       this.$refs.cenotegraphy.saveEdit();
+      // 走保存接口,然后回调渲染
+      this.$refs.elevationMap.savaEdit();
     },
     //更换列表或平面图
     changeRadio(val) {
@@ -387,6 +412,15 @@ export default {
   /deep/ .is-horizontal {
     display: none;
   }
+  .elevation-box {
+    height: 100%;
+    width: calc(45% - 14px);
+    margin-left: 10px;
+    display: inline-block;
+    box-sizing: border-box;
+    border: 1px solid #e4e4e4;
+    overflow: auto;
+  }
 }
 .floor-item {
   padding: 10px 10px;
@@ -400,4 +434,4 @@ export default {
 /deep/ .el-scrollbar__wrap {
   overflow-x: hidden;
 }
-</style>
+</style>

+ 211 - 128
src/views/model/report/index.vue

@@ -1,5 +1,5 @@
 <template>
-  <div>
+  <div class="report-index">
     <div class="statistics">
       <div class="building">
         <p>建筑模型文件夹:<b>{{ModelFileCount}}</b></p>
@@ -30,9 +30,18 @@
           <el-button @click="supplement" :plain="toBeSuppCount?false:true" :disabled="toBeSuppCount?false:true">模型待补充的设备</el-button>
           <el-button type="info" :loading="load" @click='getExportReport'>导出模型问题报告</el-button>
         </div>
-        <div class="table" :style="tableList&&tableList.length?'width: 100%;height: calc(100% - 47px)':'width: 100%;height: calc(100% - 10px)'">
-          <el-table ref="multipleTable" :data="tableData" stripe height="100%" :header-cell-style="headerStyle" v-loading='loading'
-            :row-class-name="tableRowClassName">
+        <div class="table"
+             :style="tableList&&tableList.length?'width: 100%;height: calc(100% - 47px)':'width: 100%;height: calc(100% - 10px)'">
+          <el-table
+            ref="multipleTable"
+            :data="tableData"
+            stripe
+            height="100%"
+            :header-cell-style="headerStyle"
+            v-loading='loading'
+            :row-class-name="tableRowClassName"
+            :cell-style="cellStyle"
+          >
             <el-table-column prop="FloorName" label="模型楼层" fixed width="150"></el-table-column>
             <el-table-column prop="functionNo" label="待删除设备数量" fixed width="150">
               <template slot-scope="scope">
@@ -42,7 +51,8 @@
             </el-table-column>
             <el-table-column prop="toBeSupplement" label="待补充设备数量" fixed width="150">
               <template slot-scope="scope">
-                <el-badge :value="scope.row.toBeSupplement" class="item" :type='scope.row.toBeSupplement?"danger":"success"'>
+                <el-badge :value="scope.row.toBeSupplement" class="item"
+                          :type='scope.row.toBeSupplement?"danger":"success"'>
                 </el-badge>
               </template>
             </el-table-column>
@@ -54,80 +64,121 @@
             </el-table-column>
             <el-table-column prop="ElementRangeCheck" label='构件范围检查' width="200">
               <template slot-scope="scope">
-                <el-badge :value="scope.row.ElementRangeCheck" class="item" type='danger' v-if="scope.row.ElementRangeCheck">
-                </el-badge>
-                <i class="msg-icon el-icon-success success-color" style="font-size:20px;" v-if="scope.row.ElementRangeCheck<=0"></i>
+                <!--                <el-badge :value="scope.row.ElementRangeCheck" class="item" type='danger' v-if="scope.row.ElementRangeCheck">-->
+                <!--                </el-badge>-->
+                <i class="msg-icon el-icon-success success-color1" style="font-size:20px;"
+                   v-if="scope.row.ElementRangeCheck<=0"></i>
+                <i class="msg-icon el-icon-success error-color1" style="font-size:20px;"
+                   v-if="scope.row.ElementRangeCheck"></i>
               </template>
             </el-table-column>
             <el-table-column prop="FamilyNameCheck" label='设备族编码检查' width="200">
               <template slot-scope="scope">
-                <el-badge :value="scope.row.FamilyNameCheck" class="item" type='danger' v-if="scope.row.FamilyNameCheck">
-                </el-badge>
-                <i class="msg-icon el-icon-success success-color" style="font-size:20px;" v-if="scope.row.FamilyNameCheck<=0"></i>
+                <!--                <el-badge :value="scope.row.FamilyNameCheck" class="item" type='danger' v-if="scope.row.FamilyNameCheck">-->
+                <!--                </el-badge>-->
+                <i class="msg-icon el-icon-success success-color1" style="font-size:20px;"
+                   v-if="scope.row.FamilyNameCheck<=0"></i>
+                <i class="msg-icon el-icon-success error-color1" style="font-size:20px;"
+                   v-if="scope.row.FamilyNameCheck"></i>
               </template>
             </el-table-column>
             <el-table-column prop="EquipPartLocationCheck" label='部件所在位置检查' width="200">
               <template slot-scope="scope">
-                <el-badge :value="scope.row.EquipPartLocationCheck" class="item" type='danger' v-if="scope.row.EquipPartLocationCheck">
-                </el-badge>
-                <i class="msg-icon el-icon-success success-color" style="font-size:20px;" v-if="scope.row.EquipPartLocationCheck<=0"></i>
+                <!--                <el-badge :value="scope.row.EquipPartLocationCheck" class="item" type='danger' v-if="scope.row.EquipPartLocationCheck">-->
+                <!--                </el-badge>-->
+                <i class="msg-icon el-icon-success error-color1" style="font-size:20px;"
+                   v-if="scope.row.EquipPartLocationCheck"></i>
+
+                <i class="msg-icon el-icon-success success-color1" style="font-size:20px;"
+                   v-if="scope.row.EquipPartLocationCheck<=0"></i>
               </template>
             </el-table-column>
             <el-table-column prop="ColumnCheck" label='柱边界检查' width="200">
               <template slot-scope="scope">
-                <el-badge :value="scope.row.ColumnCheck" class="item" type='danger' v-if="scope.row.ColumnCheck">
-                </el-badge>
-                <i class="msg-icon el-icon-success success-color" style="font-size:20px;" v-if="scope.row.ColumnCheck<=0"></i>
+                <!--                <el-badge :value="scope.row.ColumnCheck" class="item" type='danger' v-if="scope.row.ColumnCheck">-->
+                <!--                </el-badge>-->
+                <i class="msg-icon el-icon-success error-color1" style="font-size:20px;"
+                   v-if="scope.row.ColumnCheck"></i>
+
+                <i class="msg-icon el-icon-success success-color1" style="font-size:20px;"
+                   v-if="scope.row.ColumnCheck<=0"></i>
               </template>
             </el-table-column>
             <el-table-column prop="ConnectorCheck" label='连接件检查' width="200">
               <template slot-scope="scope">
-                <el-badge :value="scope.row.ConnectorCheck" class="item" type='danger' v-if="scope.row.ConnectorCheck">
-                </el-badge>
-                <i class="msg-icon el-icon-success success-color" style="font-size:20px;" v-if="scope.row.ConnectorCheck<=0"></i>
+                <!--                <el-badge :value="scope.row.ConnectorCheck" class="item" type='danger' v-if="scope.row.ConnectorCheck">-->
+                <!--                </el-badge>-->
+                <i class="msg-icon el-icon-success error-color1" style="font-size:20px;"
+                   v-if="scope.row.ConnectorCheck"></i>
+
+                <i class="msg-icon el-icon-success success-color1" style="font-size:20px;"
+                   v-if="scope.row.ConnectorCheck<=0"></i>
               </template>
             </el-table-column>
             <el-table-column prop="SystemNameCheck" label='系统类型名称检查' width="200">
               <template slot-scope="scope">
-                <el-badge :value="scope.row.SystemNameCheck" class="item" type='danger' v-if="scope.row.SystemNameCheck">
-                </el-badge>
-                <i class="msg-icon el-icon-success success-color" style="font-size:20px;" v-if="scope.row.SystemNameCheck<=0"></i>
+                <!--                <el-badge :value="scope.row.SystemNameCheck" class="item" type='danger' v-if="scope.row.SystemNameCheck">-->
+                <!--                </el-badge>-->
+                <i class="msg-icon el-icon-success error-color1" style="font-size:20px;"
+                   v-if="scope.row.SystemNameCheck"></i>
+
+                <i class="msg-icon el-icon-success success-color1" style="font-size:20px;"
+                   v-if="scope.row.SystemNameCheck<=0"></i>
               </template>
             </el-table-column>
             <el-table-column prop="EquipInSpaceCheck" label='未在空间中的设备' width="200">
               <template slot-scope="scope">
-                <el-badge :value="scope.row.EquipInSpaceCheck" class="item" type='danger' v-if="scope.row.EquipInSpaceCheck">
-                </el-badge>
-                <i class="msg-icon el-icon-success success-color" style="font-size:20px;" v-if="scope.row.EquipInSpaceCheck<=0"></i>
+                <!--                <el-badge :value="scope.row.EquipInSpaceCheck" class="item" type='danger' v-if="scope.row.EquipInSpaceCheck">-->
+                <!--                </el-badge>-->
+                <i class="msg-icon el-icon-success error-color1" style="font-size:20px;"
+                   v-if="scope.row.EquipInSpaceCheck"></i>
+
+                <i class="msg-icon el-icon-success success-color1" style="font-size:20px;"
+                   v-if="scope.row.EquipInSpaceCheck<=0"></i>
               </template>
             </el-table-column>
             <el-table-column prop="PipeCheck" label='管段检查' width="200">
               <template slot-scope="scope">
-                <el-badge :value="scope.row.PipeCheck" class="item" type='danger' v-if="scope.row.PipeCheck">
-                </el-badge>
-                <i class="msg-icon el-icon-success success-color" style="font-size:20px;" v-if="scope.row.PipeCheck<=0"></i>
+                <!--                <el-badge :value="scope.row.PipeCheck" class="item" type='danger' v-if="scope.row.PipeCheck">-->
+                <!--                </el-badge>-->
+                <i class="msg-icon el-icon-success error-color1" style="font-size:20px;" v-if="scope.row.PipeCheck"></i>
+
+                <i class="msg-icon el-icon-success success-color1" style="font-size:20px;"
+                   v-if="scope.row.PipeCheck<=0"></i>
               </template>
             </el-table-column>
             <el-table-column prop="SystemReferEquipCheck" label='管网及相关设备检查' width="200">
               <template slot-scope="scope">
-                <el-badge :value="scope.row.SystemReferEquipCheck" class="item" :type='scope.row.SystemReferEquipCheck?"danger":"success"'
-                  v-if="scope.row.SystemReferEquipCheck">
-                </el-badge>
-                <i class="msg-icon el-icon-success success-color" style="font-size:20px;" v-if="scope.row.SystemReferEquipCheck<=0"></i>
+                <!--                <el-badge :value="scope.row.SystemReferEquipCheck" class="item" :type='scope.row.SystemReferEquipCheck?"danger":"success"'-->
+                <!--                  v-if="scope.row.SystemReferEquipCheck">-->
+                <!--                </el-badge>-->
+                <i class="msg-icon el-icon-success error-color1" style="font-size:20px;"
+                   v-if="scope.row.SystemReferEquipCheck"></i>
+
+                <i class="msg-icon el-icon-success success-color1" style="font-size:20px;"
+                   v-if="scope.row.SystemReferEquipCheck<=0"></i>
               </template>
             </el-table-column>
             <el-table-column prop="ParameterIntegrityCheck" label='Revit族参数完整性检查' width="200">
               <template slot-scope="scope">
-                <el-badge :value="scope.row.ParameterIntegrityCheck" class="item" type='danger' v-if="scope.row.ParameterIntegrityCheck">
-                </el-badge>
-                <i class="msg-icon el-icon-success success-color" style="font-size:20px;" v-if="scope.row.ParameterIntegrityCheck<=0"></i>
+                <!--                <el-badge :value="scope.row.ParameterIntegrityCheck" class="item" type='danger' v-if="scope.row.ParameterIntegrityCheck">-->
+                <!--                </el-badge>-->
+                <i class="msg-icon el-icon-success error-color1" style="font-size:20px;"
+                   v-if="scope.row.ParameterIntegrityCheck"></i>
+
+                <i class="msg-icon el-icon-success success-color1" style="font-size:20px;"
+                   v-if="scope.row.ParameterIntegrityCheck<=0"></i>
               </template>
             </el-table-column>
             <el-table-column prop="XyzOverlapCheck" label='xyz坐标重叠检查' width="200">
               <template slot-scope="scope">
-                <el-badge :value="scope.row.XyzOverlapCheck" class="item" type='danger' v-if="scope.row.XyzOverlapCheck">
-                </el-badge>
-                <i class="msg-icon el-icon-success success-color" style="font-size:20px;" v-if="scope.row.XyzOverlapCheck<=0"></i>
+                <!--                <el-badge :value="scope.row.XyzOverlapCheck" class="item" type='danger' v-if="scope.row.XyzOverlapCheck">-->
+                <!--                </el-badge>-->
+                <i class="msg-icon el-icon-success error-color1" style="font-size:20px;"
+                   v-if="scope.row.XyzOverlapCheck"></i>
+
+                <i class="msg-icon el-icon-success success-color1" style="font-size:20px;"
+                   v-if="scope.row.XyzOverlapCheck<=0"></i>
               </template>
             </el-table-column>
             <template slot="empty">
@@ -147,43 +198,42 @@
 </template>
 
 <script>
-import { mapGetters } from "vuex";
-import dasBoard from "@/views/dasboard/index";
-import request from "@/api/model/file.js";
-import { exportReport, queryFloorList, queryModel, queryReportList, queryLostReportList } from "@/api/model/report.js";
-import { getToBeDelEquip, getSupplement } from "@/api/scan/request.js";
-import axios from 'axios'
-import { resolve } from 'q';
-export default {
-  components: {
-    dasBoard
-  },
-  data() {
-    return {
-      params: null,
-      ModelFileCount: null,// 模型文件夹数量
-      modelFloorCount: null,// 包含楼层模型文件数量
-      problemCount: 0,// 检查出问题的楼层模型文件数量
-      tableList: [], // tab数据
-      tableData: [],// 列表数据
-      activeTab: '', // tab当前选中项
-      headerStyle: { // 列表样式
-        backgroundColor: '#e1e4e5',
-        color: '#2b2b2b',
-        lineHeight: '30px'
-      },
-      page: {
-        pageSize: 50,
-        pageSizes: [10, 20, 50, 100],
-        pageNumber: 1,
-        total: 0
-      },
-      loading: false,
-      load: false,
-      floorIconType: null,
-      toBeSuppCount: 0,
-      toBeDelCount: 0
-    }
+  import {mapGetters} from "vuex";
+  import dasBoard from "@/views/dasboard/index";
+  import {queryFloorList, queryLostReportList, queryModel, queryReportList} from "@/api/model/report.js";
+  import {getSupplement, getToBeDelEquip} from "@/api/scan/request.js";
+  import axios from 'axios'
+
+  export default {
+    components: {
+      dasBoard
+    },
+    data() {
+      return {
+        params: null,
+        ModelFileCount: null,// 模型文件夹数量
+        modelFloorCount: null,// 包含楼层模型文件数量
+        problemCount: 0,// 检查出问题的楼层模型文件数量
+        tableList: [], // tab数据
+        tableData: [],// 列表数据
+        activeTab: '', // tab当前选中项
+        headerStyle: { // 列表样式
+          backgroundColor: '#e1e4e5',
+          color: '#2b2b2b',
+          lineHeight: '30px'
+        },
+        page: {
+          pageSize: 50,
+          pageSizes: [10, 20, 50, 100],
+          pageNumber: 1,
+          total: 0
+        },
+        loading: false,
+        load: false,
+        floorIconType: null,
+        toBeSuppCount: 0,
+        toBeDelCount: 0
+      }
   },
   mounted() { },
   created() {
@@ -197,6 +247,15 @@ export default {
     ...mapGetters('layout', ['projectId'])
   },
   methods: {
+    cellStyle({row, column, rowIndex, columnIndex}) {
+      console.log(row, column.label, '=====')
+      if (column.label !== '模型楼层' && column.label !== '待删除设备数量' && column.label !== '待补充设备数量' && column.label !== '有问题的检查项') {
+        return {
+          background: '#f3f3f3',
+          lineHeight: '30px'
+        }
+      }
+    },
     getModelFloorCount() {// 获取楼层模型文件数量,计算出检查出问题的模型文件
       let promise1 = new Promise(resolve => {
         queryFloorList({}, res => {
@@ -433,60 +492,84 @@ export default {
 </script>
 
 <style lang="less" scoped>
-.statistics {
-  display: flex;
-  width: 100%;
-  padding: 20px 0;
-  background: white;
-  margin-bottom: 10px;
-  div {
-    flex: 1;
-    text-align: center;
-    p {
-      b {
-        font-size: 20px;
-        margin-left: 20px;
+  .report-index {
+    .statistics {
+      display: flex;
+      width: 100%;
+      padding: 20px 0;
+      background: white;
+      margin-bottom: 10px;
+
+      div {
+        flex: 1;
+        text-align: center;
+
+        p {
+          b {
+            font-size: 20px;
+            margin-left: 20px;
+          }
+        }
       }
     }
-  }
-}
-.main-content {
-  width: 100%;
-  height: calc(100% - 90px);
-  background: white;
-  .content-box {
-    height: calc(100% - 105px);
-    .table {
-      margin-top: 15px;
+
+    .main-content {
+      width: 100%;
+      height: calc(100% - 90px);
+      background: white;
+
+      .content-box {
+        height: calc(100% - 105px);
+
+        .table {
+          margin-top: 15px;
+        }
+      }
     }
+
+    .button {
+      padding-left: 10px;
+
+      button {
+        border: 1px solid #dcdfe6;
+        color: #606266;
+        background: white;
+      }
+    }
+
+    .success-color {
+      color: #67c23a;
+    }
+
+    .error-color {
+      color: #f56c6c;
+    }
+
+    .success-color1 {
+      color: #67c23a60;
+    }
+
+    .error-color1 {
+      color: #f56c6c60;
+    }
+
+    /deep/ .el-table_1_column_4 {
+      border-right: 1px solid #e2e2e2 !important;
+    }
+
+    /deep/ .el-table {
+      .el-table__fixed {
+        height: auto !important;
+        bottom: 17px;
+      }
+    }
+
+    /deep/ .el-table__row.warning-row {
+      td {
+        background: #f9f9f9 !important;
+      }
+    }
+
   }
-}
-.button {
-  padding-left: 10px;
-  button {
-    border: 1px solid #dcdfe6;
-    color: #606266;
-    background: white;
-  }
-}
-.success-color {
-  color: #67c23a;
-}
-.error-color {
-  color: #f56c6c;
-}
-/deep/ .el-table_1_column_4 {
-  border-right: 1px solid #e2e2e2 !important;
-}
-/deep/ .el-table {
-  .el-table__fixed {
-    height: auto !important;
-    bottom: 17px;
-  }
-}
-/deep/ .el-table__row.warning-row {
-  td {
-    background: #f3f3f3 !important;
-  }
-}
+
 </style>

+ 2 - 1
src/views/ready/buildfloor/drawGraphy/checkGraphy.vue

@@ -70,7 +70,8 @@ export default {
       let pa = {
         FloorId: this.floor.FloorID,
         Id: this.modelIdToFloorId[this.jsonKey],
-        BuildingId: this.floor.BuildID
+        BuildingId: this.floor.BuildID,
+        Cover: true
       };
       bindFloorModel(pa, res => {
         this.$message.success("更新成功");