Browse Source

模型质量报告、数据质量报告

yangjunjing 5 years ago
parent
commit
abe67c4d79

+ 113 - 156
src/views/ledger/report/index.vue

@@ -1,160 +1,70 @@
 <template>
   <div>
-    <el-row style="margin-top: 30px;">
-      <span>请选择要导出的数据:</span>
-      <el-select v-model="value" placeholder="请选择">
-        <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"></el-option>
-      </el-select>
-      <el-button @click="handleClickDownload" type="primary" :loading="loading" style="margin-left: 15px;">导出Excel</el-button>
-    </el-row>
-    <div style="text-align:center;font-size:25px;margin-top:20%;">当前页面中的为临时功能,完整版正在设计中……</div>
+    <div class="data-display">
+      <ul class="list">
+        <li>
+          <p class="list-num">
+            <i class='el-icon-s-order'></i>
+            {{324}}
+          </p>
+          <p class="list-text">台账中待删除的对象</p>
+        </li>
+        <li>
+          <p class="list-num">
+            <i class="el-icon-s-help"></i>
+            {{22}}
+          </p>
+          <p class="list-text">不能同步到物理世界的对象</p>
+        </li>
+        <li>
+          <p class="list-num">
+            <i class="el-icon-s-marketing"></i>
+            {{33}}
+          </p>
+          <p class="list-text">不能同步到物理世界的关系数据</p>
+        </li>
+        <li>
+          <p class="list-num">
+            <i class="el-icon-s-release"></i>
+            {{134}}
+          </p>
+          <p class="list-text">岗位和关联的资产信息点值不一致</p>
+        </li>
+      </ul>
+    </div>
+    <div class="progress">
+      <p>基本统计</p>
+      <div class="data equipment">
+        <!-- 设备:本期只做前三个 -->
+        <span class="contain-title">设备{{}}</span>
+      </div>
+      <div class="data assets">
+        <span class="contain-title">资产{{}}</span>
+      </div>
+      <div class="data parts">
+        <span class="contain-title">部件{{}}</span>
+      </div>
+      <div class="data business-space">
+        <span class="contain-title">业务空间{{}}</span>
+      </div>
+      <div class="data system">
+        <!-- 系统:本期只查询总数 -->
+        <span class="contain-title">系统{{}}</span>
+      </div>
+      <div class="data tenant">
+        <span class="contain-title">租户{{}}</span>
+      </div>
+      <div class="data shaft">
+        <span class="contain-title">竖井{{}}</span>
+      </div>
+    </div>
   </div>
 </template>
 
 <script>
-import jsontoExcel from "@/utils/JOSNToExcel"
-import { State, Family } from "@/data/mapTable"
-import { queryEquip, queryProperty } from "@/api/scan/request"
-import { mapGetters, mapActions } from "vuex"
-
 export default {
   data() {
-    return {
-      loading: false,
-      value: '',
-      dataList: [],
-      options: [{
-        value: 'header1',
-        label: '已建立关联的设备资产'
-      }, {
-        value: 'header2',
-        label: '未关联资产的设备'
-      }, {
-        value: 'header3',
-        label: '未关联设备的资产'
-      }],
-      header1: [{
-        fieldName: "Building.BuildLocalName",
-        headerName: "建筑"
-      }, {
-        fieldName: "Floor.FloorLocalName",
-        headerName: "楼层"
-      }, {
-        fieldName: "EquipCategory.EquipName",
-        headerName: "设备类"
-      }, {
-        fieldName: "EquipLocalName",
-        headerName: "设备本地名称"
-      }, {
-        fieldName: "EquipLocalID",
-        headerName: "设备本地编码"
-      }, {
-        fieldName: "EquipID",
-        headerName: "设备id"
-      }, {
-        fieldName: "BIMID",
-        headerName: "设备BIMID"
-      }, {
-        fieldName: "Property.EquipFamilyList.0.FamilyName",
-        headerName: "资产设备族"
-      }, {
-        fieldName: "Property.EquipLocalName",
-        headerName: "资产本地名称"
-      }, {
-        fieldName: "Property.EquipLocalID",
-        headerName: "资产本地编码"
-      }, {
-        fieldName: "Property.EquipID",
-        headerName: "资产id"
-      }, {
-        fieldName: "Property.CreateTime",
-        headerName: "资产创建时间"
-      }, {
-        fieldName: "Property.CodeType",
-        headerName: "资产现场验证状态"
-      }],
-      header2: [{
-        fieldName: "Building.BuildLocalName",
-        headerName: "建筑"
-      }, {
-        fieldName: "Floor.FloorLocalName",
-        headerName: "楼层"
-      }, {
-        fieldName: "EquipCategory.EquipName",
-        headerName: "设备类"
-      }, {
-        fieldName: "EquipLocalName",
-        headerName: "设备本地名称"
-      }, {
-        fieldName: "EquipLocalID",
-        headerName: "设备本地编码"
-      }, {
-        fieldName: "EquipID",
-        headerName: "设备id"
-      }, {
-        fieldName: "BIMID",
-        headerName: "设备BIMID"
-      }, {
-        fieldName: "Property.EquipFamilyList.0.FamilyName",
-        headerName: "资产设备族"
-      }, {
-        fieldName: "Property.EquipLocalName",
-        headerName: "资产本地名称"
-      }, {
-        fieldName: "Property.EquipLocalID",
-        headerName: "资产本地编码"
-      }, {
-        fieldName: "Property.EquipID",
-        headerName: "资产id"
-      }, {
-        fieldName: "Property.CreateTime",
-        headerName: "资产创建时间"
-      }, {
-        fieldName: "Property.CodeType",
-        headerName: "资产现场验证状态"
-      }],
-      header3: [{
-        fieldName: "Building.BuildLocalName",
-        headerName: "建筑"
-      }, {
-        fieldName: "Floor.FloorLocalName",
-        headerName: "楼层"
-      }, {
-        fieldName: "Equipment.EquipCategory.EquipName",
-        headerName: "设备类"
-      }, {
-        fieldName: "Equipment.EquipLocalName",
-        headerName: "设备本地名称"
-      }, {
-        fieldName: "Equipment.EquipLocalID",
-        headerName: "设备本地编码"
-      }, {
-        fieldName: "Equipment.EquipID",
-        headerName: "设备id"
-      }, {
-        fieldName: "Equipment.BIMID",
-        headerName: "设备BIMID"
-      }, {
-        fieldName: "EquipFamilyList.0.FamilyName",
-        headerName: "资产设备族"
-      }, {
-        fieldName: "EquipLocalName",
-        headerName: "资产本地名称"
-      }, {
-        fieldName: "EquipLocalID",
-        headerName: "资产本地编码"
-      }, {
-        fieldName: "EquipID",
-        headerName: "资产id"
-      }, {
-        fieldName: "CreateTime",
-        headerName: "资产创建时间"
-      }, {
-        fieldName: "CodeType",
-        headerName: "资产现场验证状态"
-      }
-      ]
-    }
+    return {}
   },
   methods: {
     handleClickDownload() {
@@ -181,7 +91,7 @@ export default {
             Cascade: [
               {
                 Name: "equipFamilyList",
-                Projection: [ "Family", "FamilyName" ]
+                Projection: ["Family", "FamilyName"]
               }
             ],
             Projection: ["Family", "EquipLocalName", "EquipLocalID", "EquipID", "CodeType", "CreateTime"]
@@ -256,22 +166,22 @@ export default {
         Cascade: [
           {
             Name: "equipFamilyList",
-            Projection: [ "Family", "FamilyName" ]
+            Projection: ["Family", "FamilyName"]
           },
           {
             Name: "building",
-            Projection: [ "BuildLocalName", "BuildName", "BuildID" ]
+            Projection: ["BuildLocalName", "BuildName", "BuildID"]
           },
           {
             Name: "floor",
-            Projection: [ "FloorLocalName", "FloorName", "FloorID" ]
+            Projection: ["FloorLocalName", "FloorName", "FloorID"]
           }
         ],
         Filters: " EquipmentId isnull ",
         Orders: "CreateTime desc, EquipID asc",
         PageNumber: pageNum,
         PageSize: 1000,
-        Projection: [ "BuildingId", "FloorId", "Family", "EquipLocalName", "EquipLocalID", "EquipID", "CreateTime", "CodeType" ]
+        Projection: ["BuildingId", "FloorId", "Family", "EquipLocalName", "EquipLocalID", "EquipID", "CreateTime", "CodeType"]
       }
       queryProperty(params, res => {
         this.dataList = this.dataList.concat(res.Content.map((item) => {
@@ -291,5 +201,52 @@ export default {
 }
 </script>
 
-<style scoped>
-</style>
+<style lang="scss" scoped>
+.data-display {
+  width: 100%;
+  margin-bottom: 10px;
+  ul {
+    display: flex;
+    li {
+      flex: 1;
+      background: white;
+      border: 1px solid #c9c9c9;
+      text-align: center;
+      padding: 20px;
+      box-sizing: border-box;
+      p {
+        color: #333;
+        i {
+          margin-right: 20px;
+        }
+      }
+      p:nth-child(1) {
+        font-size: 24px;
+      }
+      + li {
+        margin-left: 10px;
+      }
+    }
+  }
+}
+.progress {
+  width: 100%;
+  p {
+    border-bottom: 1px dashed #c9c9c9;
+    padding-bottom: 10px;
+    margin-bottom: 10px;
+  }
+  .data {
+    .contain-title {
+      height: 30px;
+      line-height: 30px;
+      border-left: 8px solid black;
+      display: inline-block;
+      margin: 8px 8px;
+      font-weight: 600;
+      padding-left: 8px;
+      cursor: default;
+    }
+  }
+}
+</style>

File diff suppressed because it is too large
+ 85 - 26
src/views/model/report/deleted.vue


+ 8 - 17
src/views/model/report/index.vue

@@ -27,13 +27,10 @@
         </el-tabs>
       </div>
       <div class="content-box">
-        <div class="button" @click="buttonOperation">
-          <el-button @click="del">需从模型中删除的设备</el-button>
-          <el-button @click="supplement">模型待补充的设备</el-button>
-          <el-button class="export">
-            导出模型问题报告
-            <el-link href="" download="" :underline="false" type="info"></el-link>
-          </el-button>
+        <div class="button">
+          <el-link :underline="false" @click="del">需从模型中删除的设备</el-link>
+          <el-link href="" @click="supplement" :underline="false" type="info">模型待补充的设备</el-link>
+          <el-link href="" download="" :underline="false" type="info">导出模型问题报告</el-link>
         </div>
         <div class="table" style="width: 100%;height: calc(100% - 47px)">
           <!-- <el-table ref="multipleTable" :data="tableData" stripe height="100%" :header-cell-style="headerStyle"> -->
@@ -142,16 +139,10 @@ export default {
     font-size: 12px;
     text-decoration: none;
     color: #606266 !important;
-  }
-  .export {
-    position: relative;
-  }
-  a {
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 100%;
-    height: 100%;
+    padding: 4px 15px;
+    border: 1px solid #DCDFE6;
+    border-radius: 3px;
+    margin-right: 10px;
   }
 }
 .success-color {

+ 122 - 13
src/views/model/report/supplement.vue

@@ -7,13 +7,12 @@
           <h4>{{'四位序列号'}}<el-badge value="待补充" class="item"></el-badge>
           </h4>
           <h4>{{"XXXX建筑模型夹"}}-{{"XXX层"}}-{{"待删除设备名称XXXXXXXXXXXXX"}}</h4>
-          <b>BIM ID:{{'XXXXXXX'}}</b>
-          <p>Revit族:{{'XXXXXXX'}}</p>
+          <b>标记码:{{'XXXXXXX'}}</b>
+          <p style="margin-top:30px;">建议使用的Revit族:{{'XXXXXXX'}}</p>
           <p>设计图纸中编码:{{'XXXXXXX'}}</p>
           <p><span>设备类型:{{'XXXXXXX'}}</span><span>设备ID:{{'XXXXXXX'}}</span></p>
-          <p><span>资产族:{{'XXXXXXX'}}</span><span>关联的资产ID:{{'XXXXXXX'}}</span></p>
-          <p>现场任务ID:{{'XXXXXXX'}}</p>
-          <p><span>执行人:{{'XXXXXXX'}}</span><span>确认人:{{'XXXXXXX'}}</span></p>
+          <p><span>资产族:{{'XXXXXXX'}}</span><span>资产ID:{{'XXXXXXX'}}</span></p>
+          <p>现场发现人:{{'XXXXXXX'}}</p>
         </div>
         <div class="plan">
           <p>平面图上的位置:<span>{{`${'('+'X:'+'329'+','+'Y:'+'398'+')'}`}}</span></p>
@@ -23,11 +22,38 @@
         </div>
       </div>
       <div class="content-bottom">
-        <div class="explain">
-          <p>现场问题说明...</p>
+        <div class="photo">
+          <p>铭牌图片:<span>拍摄时间:{{`${'2019'+'年'+'12'+'月'+'56'+'时'+'5'+'分'}`}}</span></p>
+          <div class="img-box">
+            <img src="https://hbimg.huabanimg.com/f761a5fd8164882f9bad2dc46da4f5682cfd7c6eabc2-ArjdOX_fw658" alt="">
+          </div>
+        </div>
+        <div class="photo">
+          <p>设备图片:<span>拍摄时间:{{`${'2019'+'年'+'12'+'月'+'56'+'时'+'5'+'分'}`}}</span></p>
+          <div class="img-box">
+            <img src="https://hbimg.huabanimg.com/f761a5fd8164882f9bad2dc46da4f5682cfd7c6eabc2-ArjdOX_fw658" alt="">
+          </div>
         </div>
         <div class="photo">
-          <p><b>现场发现照片:</b><span>拍摄时间:{{`${'2019'+'年'+'12'+'月'+'56'+'时'+'5'+'分'}`}}</span></p>
+          <p>设备图片:<span>拍摄时间:{{`${'2019'+'年'+'12'+'月'+'56'+'时'+'5'+'分'}`}}</span></p>
+          <div class="img-box">
+            <img src="https://hbimg.huabanimg.com/f761a5fd8164882f9bad2dc46da4f5682cfd7c6eabc2-ArjdOX_fw658" alt="">
+          </div>
+        </div>
+        <div class="photo">
+          <p>设备图片:<span>拍摄时间:{{`${'2019'+'年'+'12'+'月'+'56'+'时'+'5'+'分'}`}}</span></p>
+          <div class="img-box">
+            <img src="https://hbimg.huabanimg.com/f761a5fd8164882f9bad2dc46da4f5682cfd7c6eabc2-ArjdOX_fw658" alt="">
+          </div>
+        </div>
+        <div class="photo">
+          <p>设备图片:<span>拍摄时间:{{`${'2019'+'年'+'12'+'月'+'56'+'时'+'5'+'分'}`}}</span></p>
+          <div class="img-box">
+            <img src="https://hbimg.huabanimg.com/f761a5fd8164882f9bad2dc46da4f5682cfd7c6eabc2-ArjdOX_fw658" alt="">
+          </div>
+        </div>
+        <div class="photo">
+          <p>设备图片:<span>拍摄时间:{{`${'2019'+'年'+'12'+'月'+'56'+'时'+'5'+'分'}`}}</span></p>
           <div class="img-box">
             <img src="https://hbimg.huabanimg.com/f761a5fd8164882f9bad2dc46da4f5682cfd7c6eabc2-ArjdOX_fw658" alt="">
           </div>
@@ -43,9 +69,7 @@ export default {
 
   },
   data() {
-    return {
-
-    }
+    return {}
   },
   mounted() { },
   created() {
@@ -57,13 +81,98 @@ export default {
 }
 </script>
 
+<style lang="less">
+body {
+  width: 100%;
+  height: 100%;
+  background: #f2f2f2;
+}
+</style>
 <style lang="less" scoped>
 .box {
-  background: #f2f2f2;
+  height: 100%;
+  width: 1000px;
+  margin: 0 auto;
   .content-box {
-    width: 1000px;
     background: white;
+    padding: 20px 24px;
     box-sizing: border-box;
+    .content-top {
+      display: flex;
+      div {
+        flex: 1;
+      }
+      .details {
+        .el-badge {
+          margin: 10px 0 0 10px;
+        }
+        p {
+          margin-top: 4px;
+          span:nth-child(1) {
+            display: inline-block;
+            width: 200px;
+          }
+        }
+      }
+      .plan {
+        padding: 0 10px;
+        box-sizing: border-box;
+        p {
+          width: 100%;
+          margin: 10px 0 10px 0;
+          span {
+            float: right;
+          }
+        }
+      }
+    }
+    .content-bottom {
+      width: 100%;
+      margin-top: 20px;
+      display: flex;
+      flex-wrap: wrap;
+      .explain,
+      .photo {
+        width: 50%;
+      }
+      .photo {
+        padding: 10px;
+        overflow: hidden;
+        margin-bottom: 20px;
+        box-sizing: border-box;
+        p {
+          margin-bottom: 10px;
+        }
+        span {
+          float: right;
+        }
+      }
+      .explain {
+        padding-right: 20px;
+        box-sizing: border-box;
+        .el-scrollbar {
+          background: #f2f2f2;
+        }
+        p {
+          margin-bottom: 10px;
+        }
+        .explain-content {
+          padding: 10px;
+          width: 100%;
+          height: 300px;
+          box-sizing: border-box;
+        }
+      }
+    }
+  }
+}
+.img-box {
+  width: 100%;
+  // text-align: center;
+  img {
+    vertical-align: middle;
+    width: 400px;
+    height: 300px;
   }
 }
 </style>