소스 검색

代码优化

LXXXY 5 년 전
부모
커밋
6afa7e635f

+ 0 - 13
src/api/point/config.js

@@ -1,13 +0,0 @@
-export const baseUrl = '/api';
-// export const api = '/ScanBuilding';
-// export const sass = 'sass';
-// export const physics = '/data-platform-3';
-// export const business = '/business-space'
-// export const venders = '/venders'
-// export const zone = {
-//   GeneralZone: 'zone-general', //默认分区
-//   PowerSupplyZone: 'zone-power-supply', //供电分区
-//   LightingZone: 'zone-lighting', //照明分区
-//   AirConditioningZone: 'metaspace', //空调分区
-//   TenantZone: 'zone-tenant' //租赁分区
-// }

+ 0 - 41
src/api/point/fetch.js

@@ -1,41 +0,0 @@
-import Vue from 'vue'
-import axios from 'axios'
-import vueAxios from 'vue-axios'
-import { Message } from 'element-ui';
-
-Vue.use(vueAxios, axios)
-    //创建实例
-
-const service = axios.create({
-    timeout: 3000000, //请求时间超出
-    withCredentials: true, //是否跨站点访问控制请求
-})
-
-//request拦截
-service.interceptors.request.use(config => {
-    return config
-}, error => {
-    console.log(error)
-    Promise.reject(error)
-})
-
-//response拦截器
-service.interceptors.response.use(
-    response => {
-        // let resp = response.data;
-        // let result = resp.result || resp.Result
-        return response
-        // if (result == 'success' || result == 'Success') {
-        //     return response
-        // } else {
-        //     let msg = resp.message ? resp.message : resp.ResultMsg? resp.ResultMsg: resp.Message;
-        //     Message.error({ message: msg });
-        // }        
-    },
-    error => {
-        console.log('err' + error)
-        return Promise.reject(error)
-    }
-)
-
-export default service

+ 0 - 54
src/api/point/httpUtil.js

@@ -1,54 +0,0 @@
-import { Message } from 'element-ui';
-import fetch from './fetch'
-import storage from '@/framework/utils/storage'
-
-function successResponse(vm, response, success, failed) {
-    let resp = response.data;
-    let result = resp.result ? resp.result : resp.Result;
-    if (result === 'success') {
-        if (success) {
-            success(resp);
-        }
-    } else {
-        let msg = resp.message ? resp.message : resp.ResultMsg || resp.resultMsg || resp.Message;
-        Message.error({ message: msg });
-        if (failed) {
-            failed(resp);
-        }
-    }
-
-}
-
-function errorResponse(vm, response, err) {
-    let json = JSON.parse(JSON.stringify(response))
-    console.error(response)
-    if (json.response) {
-        Message.error({ message: `接口:${json.response.config.url}请求错误,错误状态为:${json.response.status}` })
-    } else {
-        console.error(vm, response, err)
-        Message.error({ message: '请求错误' });
-    }
-}
-
-export default {
-    getJson: function(url, data, success, failed, err) {
-        let ProjectId = storage.get("global_project_selected")
-        let userName = storage.get("user_name")
-        let vm = this;
-        fetch({ url: url, method: 'get', params: data, headers: { 'ProjectId': ProjectId, 'Comming': 'adm', 'Account': userName } }).then((response) => {
-            successResponse(vm, response, success, failed)
-        }).catch(error => {
-            errorResponse(vm, error, err);
-        });
-    },
-    postJson: function(url, data, success, failed, err) {
-        let ProjectId = storage.get("global_project_selected")
-        let userName = storage.get("user_name")
-        let vm = this;
-        fetch({ url: url, method: 'post', data: data, headers: { 'ProjectId': ProjectId, 'Comming': 'adm', 'Account': userName } }).then((response) => {
-            successResponse(vm, response, success, failed)
-        }).catch(error => {
-            errorResponse(vm, error, err);
-        });
-    }
-}

+ 0 - 75
src/api/point/request.js

@@ -1,75 +0,0 @@
-import fetch from './fetch'
-import { api, baseUrl } from './config.js'
-import http from './httpUtil'
-import storage from '@/framework/utils/storage'
-
-//系统集成统计条形图
-export function getIntegrateStatisticsToBar(param, success) {
-    let url = `/pointconfig/report/point-statis    `
-    http.postJson(url, param, success)
-}
-
-//系统集成统计环形图
-export function getIntegrateStatisticsToLoop(param, success) {
-    let url = `/pointconfig/report/meterfunc-statis`
-    http.postJson(url, param, success)
-}
-
-//表号功能号总览
-export function getTabFunNumOverview(param, success) {
-    let url = `/pointconfig/report/meterfunc-overview`
-    http.postJson(url, param, success)
-}
-
-//表号功能号对应历史数据
-export function getHistoryData(query, param, success) {
-    let url = `/data-platform-3/hisdata/batch_query_period_data_by_metfun`
-    let ProjectId = storage.get("global_project_selected")
-    let userName = storage.get("user_name")
-    url += `?projectId=${ProjectId}`
-    for (let key in query) {
-        url += `&${key}=${query[key]}`
-    }
-    fetch({ url: url, method: 'post', data: param, headers: { 'ProjectId': ProjectId, 'Comming': 'adm', 'Account': userName } }).then((response) => {
-        success(response.data);
-    }).catch(error => {
-        console.error(error);
-    });
-    //http.postJson(url, param, success)
-}
-
-//获取表号功能号的源数据
-export function getTabFunNumSourceData(param, success) {
-    let url = `/pointconfig/report/query-point`
-    http.postJson(url, param, success)
-}
-
-//获取表号功能号对应的对象实例
-export function getTabFunNumObjInstance(param, success) {
-    let url = `/pointconfig/report/query-instance`
-    http.postJson(url, param, success)
-}
-
-//添加表号功能号
-export function addTabFunNum(param, success) {
-    let url = `/pointconfig/report/custom-meter-func`
-    http.postJson(url, param, success)
-}
-
-//表号功能号对应总览
-export function tableFuncRelatedOverview(param, success) {
-    let url = `/pointconfig/report/meter-related`
-    http.postJson(url, param, success)
-}
-
-//实例中查询设备信息
-export function getEquipByEqID(param, success) {
-    let url = `${baseUrl}/datacenter/equip/query`
-    http.postJson(url, param, success)
-}
-
-//获取楼层信息
-export function getFloorMsgByFloorID(param, success) {
-    let url = `${baseUrl}/datacenter/floor/query`
-    http.postJson(url, param, success)
-}

+ 68 - 11
src/api/scan/request.js

@@ -4,7 +4,7 @@ import http from './httpUtil'
 let arithmetic = '/arithmetic'
 
 var Comming = 'revit'
-//获取打印标签模板test
+    //获取打印标签模板test
 export function getTest() {
     return fetch({ method: 'GET', url: `${api}/service/template/note_template` })
 }
@@ -393,11 +393,11 @@ export function setHeader(param) {
 //获取头部接口
 export function getHeader(param) {
     let data = {
-        "AppType": Comming,
-        "Code": param.code,
-        "ProjId": param.perjectId
-    }
-    // return fetch({ method: 'POST', url: `${api}/service/dict/equipment_family_info_header`, data })
+            "AppType": Comming,
+            "Code": param.code,
+            "ProjId": param.perjectId
+        }
+        // return fetch({ method: 'POST', url: `${api}/service/dict/equipment_family_info_header`, data })
     return fetch({ method: 'POST', url: `${api}/service/dict/infocode_query_header`, data })
 }
 
@@ -446,7 +446,7 @@ export function getSpaceFloor(param) {
 export function createBusiness(param) {
     let data = param.data
     return fetch({ method: "POST", url: `${physics}/space/create?projectId=${param.ProjId}&secret=${param.secret}`, data })
-    // return fetch({ method: "POST", url: `/test/space/create?projectId=${param.ProjId}&secret=${param.secret}`, data })
+        // return fetch({ method: "POST", url: `/test/space/create?projectId=${param.ProjId}&secret=${param.secret}`, data })
 }
 
 //批量创建业务空间
@@ -496,7 +496,7 @@ export function getGraphyId(param) {
 export function getBussines(param) {
     let data = param.data
     return fetch({ method: "POST", url: `${physics}/object/outside_query?projectId=${param.ProjId}&secret=${param.secret}`, data })
-    // return fetch({ method: "POST", url: `/test/object/outside_query?projectId=${param.ProjId}&secret=${param.secret}`, data })
+        // return fetch({ method: "POST", url: `/test/object/outside_query?projectId=${param.ProjId}&secret=${param.secret}`, data })
 }
 
 //替代前一个接口
@@ -929,7 +929,7 @@ export function equipLinkSys(param, success) {
 export function sysLinkEquip(param, success) {
     let url = `${baseUrl}/datacenter/sy-in-eq/link-sy-eq`;
     http.postJson(url, param, success)
-} 
+}
 
 //设备清单 - 根据对象删除系统和设备的关系
 export function sysUnlinkEquip(param, success) {
@@ -994,7 +994,7 @@ export function queryPartsDie(param, success) {
 }
 
 //查询项目下设备或部件的类别、以及名称
-export function TypePartsDie( success) {
+export function TypePartsDie(success) {
     let url = `${baseUrl}/equip-component/equip-query/equip-compon-category`;
     http.getJson(url, {}, success)
 }
@@ -1072,7 +1072,7 @@ export function queryPhysicsAllType(param, success) {
 }
 
 //查询所有设备族信息
-export function queryFamilyAll( success) {
+export function queryFamilyAll(success) {
     let url = `${baseUrl}/datacenter/data-dictionary/family-query-All`;
     http.getJson(url, {}, success)
 }
@@ -1409,4 +1409,61 @@ export function getIspNotInSpace(param, success) {
 export function createRelateInZoneAndISp(param, success) {
     let url = `${baseUrl}/datacenter/si-in-sp-base/link-sp?type=${param.type}`;
     http.postJson(url, param.data, success)
+}
+
+/**系统集成成果管理 */
+//系统集成统计条形图
+export function getIntegrateStatisticsToBar(param, success) {
+    let url = `/pointconfig/report/point-statis    `
+    http.postJson(url, param, success)
+}
+//系统集成统计环形图
+export function getIntegrateStatisticsToLoop(param, success) {
+    let url = `/pointconfig/report/meterfunc-statis`
+    http.postJson(url, param, success)
+}
+//表号功能号总览
+export function getTabFunNumOverview(param, success) {
+    let url = `/pointconfig/report/meterfunc-overview`
+    http.postJson(url, param, success)
+}
+//表号功能号对应历史数据
+export function getHistoryData(query, param, success) {
+    let url = `/data-platform-3/hisdata/batch_query_period_data_by_metfun`
+    url += `?projectId=${query.projectId}&secret=${query.secret}`
+    fetch({ url: url, method: 'post', data: param, headers: { 'ProjectId': query.projectId, 'Comming': 'adm', 'Account': query.userInfo.username } }).then((response) => {
+        success(response.data);
+    }).catch(error => {
+        console.error(error);
+    });
+}
+//获取表号功能号的源数据
+export function getTabFunNumSourceData(param, success) {
+    let url = `/pointconfig/report/query-point`
+    http.postJson(url, param, success)
+}
+//获取表号功能号对应的对象实例
+export function getTabFunNumObjInstance(param, success) {
+    let url = `/pointconfig/report/query-instance`
+    http.postJson(url, param, success)
+}
+//添加表号功能号
+export function addTabFunNum(param, success) {
+    let url = `/pointconfig/report/custom-meter-func`
+    http.postJson(url, param, success)
+}
+//表号功能号对应总览
+export function tableFuncRelatedOverview(param, success) {
+    let url = `/pointconfig/report/meter-related`
+    http.postJson(url, param, success)
+}
+//实例中查询设备信息
+export function getEquipByEqID(param, success) {
+    let url = `${baseUrl}/datacenter/equip/query`
+    http.postJson(url, param, success)
+}
+//获取楼层信息
+export function getFloorMsgByFloorID(param, success) {
+    let url = `${baseUrl}/datacenter/floor/query`
+    http.postJson(url, param, success)
 }

+ 31 - 30
src/components/point/report/addTabFunNum.vue

@@ -3,7 +3,7 @@
   <div id="addTabFunNum">
     <el-form :model='form' label-width="150px" ref="ruleForm" :rules="rules" style="height:300px;overflow:auto;">
       <el-form-item label="表号-功能号" prop="MeterFunc">
-        <el-input v-model="form.MeterFunc"  placeholder="请输入表号-功能号"></el-input>
+        <el-input v-model="form.MeterFunc" placeholder="请输入表号-功能号"></el-input>
       </el-form-item>
       <el-form-item label="设定采集间隔时间" prop="CollectInterval">
         <el-input v-model="form.CollectInterval" placeholder="设定时间不能小于10s"></el-input>
@@ -26,7 +26,7 @@
 import { mapGetters, mapActions } from 'vuex'
 import {
   addTabFunNum
-} from '@/api/point/request'
+} from '@/api/scan/request'
 import { batchQueryUnit } from '@/fetch/point_http'
 export default {
   data() {
@@ -58,68 +58,69 @@ export default {
     }
   },
   computed: {
-    ...mapGetters('layout', ['projectId', 'userId'])
   },
   methods: {
     //添加
     add() {
+      //验证参数
       this.$refs.ruleForm.validate((valid) => {
         if (valid) {
           this.form.Unit = this.form.Unit.toString();
           addTabFunNum(this.form, res => {
-            if(res.Result && res.Result=="success"){
+            if (res.Result && res.Result == "success") {
+              //成功提示
               this.$message({
                 showClose: true,
                 message: '添加成功',
                 type: 'success'
               });
+              //清楚当前表单数据,500ms后关闭
               let that = this;
               that.$emit('reloadData');
               setTimeout(() => {
                 that.$emit('closeDrawer');
-                that.form =  {
+                that.form = {
                   MeterFunc: '',
                   CollectInterval: '',
                   DataRuleContent: '',
                   Unit: '',
                 }
-              },500);
+              }, 500);
             }
           });
         } else {
-          console.log('error submit!!');
           return false;
         }
       });
     },
     //加载下拉框
-    initSelect(){
+    initSelect() {
       batchQueryUnit({}, res => {
-          if (res.Result == 'success') {
-              let data = res.Content
-              let arr = []
-              data.forEach(item => {
-                  let first = {
-                      value: item.Type,
-                      label: item.Type,
-                      children: []
-                  }
-                  item.Units.forEach(ele => {
-                      let second = {}
-                      second = {
-                          value: ele.Name,
-                          label: ele.Name
-                      }
-                      first.children.push(second)
-                  })
-                  arr.push(first)
-              })
-              this.options = arr
-          }
+        if (res.Result == 'success') {
+          let data = res.Content
+          let arr = []
+          data.forEach(item => {
+            let first = {
+              value: item.Type,
+              label: item.Type,
+              children: []
+            }
+            item.Units.forEach(ele => {
+              let second = {}
+              second = {
+                value: ele.Name,
+                label: ele.Name
+              }
+              first.children.push(second)
+            })
+            arr.push(first)
+          })
+          this.options = arr
+        }
       })
     }
   },
-  mounted(){
+  mounted() {
     this.initSelect();
   }
 }

+ 66 - 67
src/components/point/report/dataSource.vue

@@ -1,85 +1,84 @@
 <template>
-    <!-- 子系统点位(数据来源) -->
-    <div id="dataSource" v-loading="loading">
-        <div class="data-item"  v-for="form in forms" :key="form.id">
-            <el-form :model="form" label-width="150px">
-                <el-form-item label="数据源名称:">
-                    {{form.Name || '--'}}
-                </el-form-item>
-                <el-form-item label="值单位说明:">
-                    {{form.ValueDescription || '--'}}
-                </el-form-item>
-                <el-form-item label="原始点位值:">
-                    {{form.Data || '--'}}
-                </el-form-item>
-                <el-form-item label="原始点位描述:">
-                    {{form.Description || '--'}}
-                </el-form-item>
-                <el-form-item label="位置标签:">
-                    {{form.LocationFlag.toString() || '--'}}
-                </el-form-item>
-                <el-form-item label="原始值处理规则详情:">
-                    {{form.DataRuleContent  || '--'}}
-                </el-form-item>
-            </el-form>
-        </div>
+  <!-- 子系统点位(数据来源) -->
+  <div id="dataSource" v-loading="loading">
+    <div class="data-item" v-for="form in forms" :key="form.id">
+      <el-form :model="form" label-width="150px">
+        <el-form-item label="数据源名称:">
+          {{form.Name || '--'}}
+        </el-form-item>
+        <el-form-item label="值单位说明:">
+          {{form.ValueDescription || '--'}}
+        </el-form-item>
+        <el-form-item label="原始点位值:">
+          {{form.Data || '--'}}
+        </el-form-item>
+        <el-form-item label="原始点位描述:">
+          {{form.Description || '--'}}
+        </el-form-item>
+        <el-form-item label="位置标签:">
+          {{form.LocationFlag.toString() || '--'}}
+        </el-form-item>
+        <el-form-item label="原始值处理规则详情:">
+          {{form.DataRuleContent  || '--'}}
+        </el-form-item>
+      </el-form>
     </div>
+  </div>
 </template>
 
 <script>
 import { mapGetters, mapActions } from 'vuex'
 
 import {
-    getTabFunNumSourceData
-} from '@/api/point/request'
+  getTabFunNumSourceData
+} from '@/api/scan/request'
 
 export default {
-    data() {
-        return {
-            forms: [
-            ],
-            loading: true
-        }
-    },
-    methods: {
-        loadDataSource() {
-            this.loading = true;
-            let pa = {
-                Filters: "Infos='" + this.tabFunNum + "'"
-            };
-            getTabFunNumSourceData(pa, res => {
-                this.forms = res.Content;
-
-                this.loading = false;
-            });
-        }
-    },
-    props: {
-        tabFunNum: String
-    },
-    computed:{
-        ...mapGetters('layout', ['projectId', 'userId'])
-    },
-    mounted() {
-        this.loadDataSource();
-    },
-    watch: {
-        tabFunNum() {
-            this.loadDataSource();
-        }
+  data() {
+    return {
+      forms: [
+      ],
+      loading: true
+    }
+  },
+  methods: {
+    //加载数据
+    loadDataSource() {
+      this.loading = true;
+      let pa = {
+        Filters: "Infos='" + this.tabFunNum + "'"
+      };
+      getTabFunNumSourceData(pa, res => {
+        this.forms = res.Content;
+        this.loading = false;
+      });
+    }
+  },
+  props: {
+    tabFunNum: String
+  },
+  computed: {
+  },
+  mounted() {
+    this.loadDataSource();
+  },
+  watch: {
+    tabFunNum() {
+      this.loadDataSource();
     }
+  }
 }
 </script>
 
 <style lang="less" scoped>
-#dataSource{
-    height:100%;
-    overflow:auto;
+#dataSource {
+  height: 100%;
+  overflow: auto;
 }
-.data-item{
-    margin: 15px 10px;
-    box-shadow: 2px 2px 2px 2px #aaa;
-    background-color: white;
-    padding: 10px 10px;
+.data-item {
+  margin: 15px 10px;
+  box-shadow: 2px 2px 2px 2px #aaa;
+  background-color: white;
+  padding: 10px 10px;
 }
 </style>

+ 19 - 18
src/components/point/report/historyChart.vue

@@ -20,7 +20,7 @@ import { mapGetters, mapActions } from 'vuex'
 
 import {
   getHistoryData
-} from '@/api/point/request'
+} from '@/api/scan/request'
 import echarts from 'echarts'
 
 export default {
@@ -47,36 +47,37 @@ export default {
     //加载表格
     loadTable() {
       let query = {
-        secret: this.secret
+        secret: this.secret,
+        projectId: this.projectId,
+        userInfo: this.userInfo
       };
+      //时间处理
       let nowDate = new Date().getTime();
       let gteDate = 0;
-      if(this.selectValue == '1min' || this.selectValue == '5min'){
+      if (this.selectValue == '1min' || this.selectValue == '5min') {
         gteDate = nowDate - 3600 * 1000;
       }
-      else if(this.selectValue == '15min' || this.selectValue == '30min'){
+      else if (this.selectValue == '15min' || this.selectValue == '30min') {
         gteDate = nowDate - 24 * 3600 * 1000;
       }
-      else{
+      else {
         gteDate = nowDate - 30 * 24 * 3600 * 1000;
       }
       let pa = {
-        criterias:[
+        criterias: [
           {
             "met_fun": this.tabFunNum,      //表号功能号
             "period": this.selectValue,
-            "receivetime":{
-              "$gte":this.date2String(gteDate),
-              "$lt":this.date2String(nowDate)
+            "receivetime": {
+              "$gte": this.date2String(gteDate),
+              "$lt": this.date2String(nowDate)
             }
           }
         ]
       };
       //获取历史数据
       getHistoryData(query, pa, res => {
-        console.log(res);
         this.chartData = res[`${this.tabFunNum}`].Content;
-        console.log(this.chartData);
         //折线图参数
         let lineChartOption = {
           tooltip: {
@@ -137,19 +138,19 @@ export default {
         this.lineChart.setOption(lineChartOption);
       });
     },
-    //时间戳转string
-    date2String(d){
+    //时间戳转string 例:标准时间 => 20190929120000
+    date2String(d) {
       let dateString = new Date(d).toLocaleString().split("/");
-      if(dateString[1].length == 1){
+      if (dateString[1].length == 1) {
         dateString[1] = '0' + dateString[1];
       }
       dateString = dateString.toString();
       dateString = dateString.split(/(\d\d)/);
       var r = [];
       dateString.map((value, key) => {
-          if (key % 2 != 0) {
-              r.push(value);
-          }
+        if (key % 2 != 0) {
+          r.push(value);
+        }
       })
       return r.join("");
     },
@@ -159,7 +160,7 @@ export default {
     },
   },
   computed: {
-    ...mapGetters('layout', ['projectId', 'userId', 'secret'])
+    ...mapGetters('layout', ['projectId', 'secret', 'userInfo'])
   },
   mounted() {
     //实例化

+ 50 - 49
src/components/point/report/integrateStatistics.vue

@@ -11,6 +11,7 @@
         1点位对多表号功能号:{{ pointData.oneToM }}
         <br />
         多点为对1表号功能号:{{ pointData.mToOne }}
+        <!-- 查看表号功能号一对多多对一总览 -->
         <el-button @click="showOverview" type="info" icon="el-icon-arrow-right" circle
           style="margin:-25px 0 0 50px;background:rgb(121, 187, 255);color:rgb(233, 233, 235);border:none;"></el-button>
       </div>
@@ -38,7 +39,7 @@ import "echarts/lib/component/title";
 import {
   getIntegrateStatisticsToLoop,
   getIntegrateStatisticsToBar
-} from "@/api/point/request";
+} from "@/api/scan/request";
 import pointTabOverview from "./pointTabOverview";
 
 export default {
@@ -46,38 +47,38 @@ export default {
     return {
       //环形图
       loopChart: null,
-      //条形图1
+      //条形图
       barChart: null,
-      //图数据
+      //环形图数据
       loopChartData: [],
+      //条形图数据
       barChartData: [],
-      //表号功能号
+      //点位-标号功能号数据
       pointData: {
-        tabFuncNumSum: 0,
-        oneToM: 0,
-        mToOne: 0,
-        disConn: 0
-      },//总数 一对多 多对一
+        tabFuncNumSum: 0,//总数
+        oneToM: 0,//一对多
+        mToOne: 0,//多对一
+        disConn: 0//可能断数数量
+      },
       //原始点数量
       originalPoint: null
     };
   },
   computed: {
-    ...mapGetters("layout", ["projectId", "userId"])
   },
   methods: {
     //加载图表数据
     loadChart() {
       //获取环形图数据
       getIntegrateStatisticsToLoop({}, res => {
-        if (res.Result && res.Result == "success") {
-          this.pointData = {
-            tabFuncNumSum: res.Content[0].Sum,
-            oneToM: res.Content[0].OtoM,
-            mToOne: res.Content[0].MtoO,
-            disConn: res.Content[0].Disconn
-          };
-        }
+        //设置点位-表号功能号数据
+        this.pointData = {
+          tabFuncNumSum: res.Content[0].Sum,
+          oneToM: res.Content[0].OtoM,
+          mToOne: res.Content[0].MtoO,
+          disConn: res.Content[0].Disconn
+        };
+        //设置环形表数据
         this.loopChartData = [
           { value: res.Content[0].RelatedCount, name: "已对实例数量" },
           { value: res.Content[0].Sum - res.Content[0].RelatedCount, name: "未对应实例数量" }
@@ -119,32 +120,32 @@ export default {
             ]
           },
           series: [
-                {
-                name: "实例总数",
-                type: "pie",
-                radius: ["50%", "70%"],
-                avoidLabelOverlap: false,
-                legendHoverLink: false,
-                selectedOffset: 0,
-                label: {
-                  normal: {
-                    show: true,
-                    position: "outside"
-                  }
-                },
-                labelLine: {
-                  normal: {
-                    show: true
-                  }
-                },
-                emphasis: {
-                  itemStyle: {
-                    // 高亮时点的颜色。
-                    color:undefined
-                  }
-                },
-                data: this.loopChartData
-              }
+            {
+              name: "实例总数",
+              type: "pie",
+              radius: ["50%", "70%"],
+              avoidLabelOverlap: false,
+              legendHoverLink: false,
+              selectedOffset: 0,
+              label: {
+                normal: {
+                  show: true,
+                  position: "outside"
+                }
+              },
+              labelLine: {
+                normal: {
+                  show: true
+                }
+              },
+              emphasis: {
+                itemStyle: {
+                  // 高亮时点的颜色。
+                  color: undefined
+                }
+              },
+              data: this.loopChartData
+            }
           ]
         };
 
@@ -158,14 +159,13 @@ export default {
             loopOption.series[0].emphasis.itemStyle.color = 'rgb(233, 233, 235)';
             that.loopChart.setOption(loopOption);
           }
-          else{
+          else {
             loopOption.series[0].emphasis.itemStyle.color = 'rgb(121, 187, 255)';
             that.loopChart.setOption(loopOption);
           }
         });
       })
 
-
       //获取条形图数据
       getIntegrateStatisticsToBar({}, res => {
         if (res.Result && res.Result == "success") {
@@ -260,9 +260,10 @@ export default {
     //图表随窗口变化
     let that = this;
     window.onresize = () => {
-      console.log("resize")
-      that.loopChart.resize();
-      that.barChart.resize();
+      if (that.loopChart != null)
+        that.loopChart.resize();
+      if (that.barChart != null)
+        that.barChart.resize();
     };
   },
   components: {

+ 20 - 26
src/components/point/report/objectInstance.vue

@@ -24,7 +24,7 @@
         </el-form-item>
         <el-form-item label="对象实例位置图:">
           <span v-if="!drawCanvas">--</span>
-          <canvas v-else height="300px" width="600" class="instanceMap" :id="form.instanceId" v-loading="form.loading" :k="refreshCanvas"></canvas>
+          <canvas v-else height="300px" width="600" class="instanceMap" :id="form.instanceId" :k="refreshCanvas"></canvas>
         </el-form-item>
       </el-form>
     </div>
@@ -39,24 +39,19 @@ import { LocationPointScene, DivideFloorScene } from "cad-engine"
 import { SColor, SPoint } from "@sybotan-web/draw/lib";
 
 import {
-  getTabFunNumObjInstance, getEquipByEqID, getFloorMsgByFloorID
-} from '@/api/point/request'
-import {
-  queryZone
+  getTabFunNumObjInstance, getEquipByEqID, getFloorMsgByFloorID, queryZone
 } from '@/api/scan/request'
 
 export default {
   data() {
     return {
-      forms: [
-      ],
-      views: [],
-      scenes: [],
+      forms: [],//实例数据
+      views: [],//canvas view
+      scenes: [],//canvas scene
       loading: true,
-      canvasLoadings: [],
       BSPRelaISPLists: [[]],
-      refreshCanvas:'',
-      drawCanvas:true
+      refreshCanvas: '',//重载canvas组件
+      drawCanvas: true//是否画canvas
     }
   },
   methods: {
@@ -67,39 +62,37 @@ export default {
         Filters: `MeterFuncid='${this.tabFunNum}';Related='true'`//
       };
       let that = this;
-      //获取所有实例
+      //获取所有实例信息
       getTabFunNumObjInstance(pa, res => {
         that.loading = false;
         that.forms = res.Content;
-        //实例化所有实例
         res.Content.map((item, key) => {
+          //存在实例ID
           if (item.ObjectID) {
-
             that.forms[key].instanceId = item.ObjectID;
-            console.log(item.ObjectID);
             //设备或者组件
             if (item.TypeCode == 'Eq' || item.TypeCode == 'Ec') {
               let pa = {
                 Filters: `EquipID='${item.TypeCode + this.projectId.substring(2) + item.ObjectID}'`
               }
+              //获取设备信息
               getEquipByEqID(pa, res1 => {
-                console.log(res1);
                 if (res1.Content[0].LocationJson && res1.Content[0].FloorId) {
                   let param = {
                     Filters: `FloorId='${res1.Content[0].FloorId}'`
                   }
+                  //获取楼层信息
                   getFloorMsgByFloorID(param, res2 => {
+                    //刷新canvas
                     that.refreshCanvas = new Date().getTime();
-                    if(!that.views[key]){
+                    if (!that.views[key]) {
                       that.views[key] = new SGraphyView(`${that.forms[key].instanceId}`)
                     }
                     that.views[key].scene = null;
                     that.scenes[key] = null;
-                    console.log(that.forms[key].instanceId)
                     that.scenes[key] = new LocationPointScene();
-                    that.canvasLoadings[key] = true;
-
                     if (res2.Content[0].StructureInfo && res2.Content[0].StructureInfo.FloorMap) {
+                      //获取数据,并加载canvas
                       that.scenes[key].loadUrl(`/image-service/common/file_get?systemId=revit&key=${res2.Content[0].StructureInfo.FloorMap}`).then(() => {
                         that.forms[key].loading = false;
                         that.views[key].scene = that.scenes[key];
@@ -122,6 +115,7 @@ export default {
                 }
               })
             }
+            //空间
             else if (item.TypeCode == 'Sp') {
               let pa = {
                 data: {
@@ -129,22 +123,23 @@ export default {
                 },
                 zone: item.SubTypeCode
               }
+              //获取空间信息
               queryZone(pa, res1 => {
                 if (res1.Content[0] && res1.Content[0].Outline) {
                   let param = {
                     Filters: `FloorId='${res1.Content[0].FloorId}'`
                   }
+                  //获取楼层信息
                   getFloorMsgByFloorID(param, res2 => {
                     that.refreshCanvas = new Date().getTime();
-                    if(!that.views[key]){
+                    if (!that.views[key]) {
                       that.views[key] = new SGraphyView(`${that.forms[key].instanceId}`)
                     }
                     that.views[key].scene = null;
                     that.scenes[key] = null;
                     that.scenes[key] = new DivideFloorScene();
-                    that.canvasLoadings[key] = true;
-
                     if (res2.Content[0].StructureInfo && res2.Content[0].StructureInfo.FloorMap) {
+                      //获取数据并加载canvas
                       that.scenes[key].loadUrl(`/image-service/common/file_get?systemId=revit&key=${res2.Content[0].StructureInfo.FloorMap}`).then(() => {
                         that.forms[key].loading = false;
                         that.views[key].scene = that.scenes[key];
@@ -160,9 +155,8 @@ export default {
                       })
                     }
                   });
-
                 }
-                else{
+                else {
                   this.drawCanvas = false;
                 }
               });

+ 11 - 12
src/components/point/report/pointTabOverview.vue

@@ -11,7 +11,7 @@
             <el-table-column prop="Name" label="数据源" show-overflow-tooltip min-width="100"></el-table-column>
             <el-table-column prop="MeterList" label="表号功能号" show-overflow-tooltip min-width="100">
               <template slot-scope="scope">
-                <div v-for="(item, index) in scope.row.MeterList" :key="index" >{{ item }}</div>
+                <div v-for="(item, index) in scope.row.MeterList" :key="index">{{ item }}</div>
               </template>
             </el-table-column>
           </el-table>
@@ -21,12 +21,12 @@
           <el-table :data="mTOData" style="width: 100%">
             <el-table-column prop="Data" label="点位名称" show-overflow-tooltip min-width="100">
               <template slot-scope="scope">
-                <div v-for="(item, index) in scope.row.Data" :key="index" >{{ item.Description }}</div>
+                <div v-for="(item, index) in scope.row.Data" :key="index">{{ item.Description }}</div>
               </template>
             </el-table-column>
             <el-table-column prop="Data" label="数据源" show-overflow-tooltip min-width="100">
               <template slot-scope="scope">
-                <div v-for="(item, index) in scope.row.Data" :key="index" >{{ item.Name }}</div>
+                <div v-for="(item, index) in scope.row.Data" :key="index">{{ item.Name }}</div>
               </template>
             </el-table-column>
             <el-table-column prop="MeterFunc" label="表号功能号" show-overflow-tooltip min-width="100"></el-table-column>
@@ -38,7 +38,7 @@
 </template>
 
 <script>
-import { tableFuncRelatedOverview } from '@/api/point/request'
+import { tableFuncRelatedOverview } from '@/api/scan/request'
 export default {
   data() {
     return {
@@ -53,22 +53,22 @@ export default {
     loadOverviewData() {
       tableFuncRelatedOverview({}, res => {
         this.dialogVisiable = true;
-
+        //去掉非多对一数据
         let mD = res.Content[0].MtoO;
         this.mTOData = [];
-        for(let k in mD){
-          if(mD[k].length > 1){
+        for (let k in mD) {
+          if (mD[k].length > 1) {
             this.mTOData.push({
               "MeterFunc": k,
-              "Data":mD[k]
+              "Data": mD[k]
             })
           }
         };
-
+        //去掉非一对多数据
         this.oTMData = [];
         let oD = res.Content[0].OtoM;
-        for(let k in oD){
-          if(oD[k].MeterList.length > 1){
+        for (let k in oD) {
+          if (oD[k].MeterList.length > 1) {
             this.oTMData.push(oD[k]);
           }
         }
@@ -79,5 +79,4 @@ export default {
 </script>
 
 <style lang="less" scoped>
-
 </style>

+ 8 - 9
src/components/point/report/tabFunNumOverview.vue

@@ -71,7 +71,7 @@
 import { mapGetters, mapActions } from 'vuex'
 import {
   getTabFunNumOverview
-} from '@/api/point/request'
+} from '@/api/scan/request'
 
 import historyChart from './historyChart'
 import dataSource from './dataSource'
@@ -106,14 +106,15 @@ export default {
   methods: {
     //抽屉处理
     handleDrawer(row, index) {
-      if (index == 2){
-        if(row.RelatedInstance > 0){
-          this.drawers[index].value = row.Data? row.Data.Data : '';
+      if (index == 2) {
+        //实例数量大于0才能打开
+        if (row.RelatedInstance > 0) {
+          this.drawers[index].value = row.Data ? row.Data.Data : '';
           this.drawers[index].objId = row.MeterFunc;
           this.drawers[index].drawer = true;
         }
       }
-      else{
+      else {
         if (index != 3)
           this.drawers[index].objId = row.MeterFunc;
         this.drawers[index].drawer = true;
@@ -136,7 +137,6 @@ export default {
         MeterFunc: row.MeterFunc
       }
       getTabFunNumOverview(pa, res => {
-        //this.tableData[index] = [];
         this.tableData[index].Data.Data = res.Content[0].Data.Data;
         this.tableData[index].Data.Time = res.Content[0].Data.Time;
         this.tableData[index].DataQuality = res.Content[0].DataQuality;
@@ -157,7 +157,7 @@ export default {
       this.drawers[3].drawer = false;
     },
     //新建自定义后重载页面
-    reloadData(){
+    reloadData() {
       this.$emit('reloadData');
     },
     init() {
@@ -168,8 +168,7 @@ export default {
     this.init();
   },
   computed: {
-    ...mapGetters('layout', ['projectId', 'userId']),
-    //根绝分页,获取要展示的tableData
+    //根据分页,获取要展示的tableData
     tableData: function () {
       return this.allTableData.slice(
         (this.currentPage - 1) * this.pageSize,

+ 58 - 50
src/views/point/report/index.vue

@@ -1,14 +1,20 @@
 <template>
-    <div>
-      <div class="contain-block" style="width:calc(40% - 20px);margin-right:20px;">
-        <span class="contain-title-leftblock">系统集成统计</span>
-        <div class="contain-data" ><integrateStatistics ref="chart" style="height: calc(100% - 15px);" :key="refresh"></integrateStatistics></div>
+  <div>
+    <!-- 系统集成统计页面 -->
+    <div class="contain-block" style="width:calc(40% - 20px);margin-right:20px;">
+      <span class="contain-title-leftblock">系统集成统计</span>
+      <div class="contain-data">
+        <integrateStatistics ref="chart" style="height: calc(100% - 15px);" :key="refresh"></integrateStatistics>
       </div>
-      <div class="contain-block">
-        <span class="contain-title-leftblock">表号功能号总览</span>
-        <div class="contain-data"><tabFunNumOverview ref="table" :key="refresh" @reloadData="reloadData()"></tabFunNumOverview></div>
+    </div>
+    <!-- 表号功能号总览页面 -->
+    <div class="contain-block">
+      <span class="contain-title-leftblock">表号功能号总览</span>
+      <div class="contain-data">
+        <tabFunNumOverview ref="table" :key="refresh" @reloadData="reloadData()"></tabFunNumOverview>
       </div>
     </div>
+  </div>
 </template>
 
 <script>
@@ -18,53 +24,55 @@ import integrateStatistics from '@/components/point/report/integrateStatistics'
 import tabFunNumOverview from '@/components/point/report/tabFunNumOverview'
 
 export default {
-    components: {
-      integrateStatistics,
-      tabFunNumOverview
-    },
-    computed: {
-      ...mapGetters('layout', ['projectId', 'secret']),
-    },
-    data() {
-        return {
-          refresh: ''
-        }
-    },
-    methods:{
-      reloadData() {
-        this.refresh = new Date().getTime();
-      }
-    },
-    mounted() {
+  components: {
+    integrateStatistics,
+    tabFunNumOverview
+  },
+  computed: {
+    ...mapGetters('layout', ['projectId', 'secret']),
+  },
+  data() {
+    return {
+      refresh: ''//刷新组件
+    }
+  },
+  methods: {
+    //子组件中的新建完成后刷新
+    reloadData() {
+      this.refresh = new Date().getTime();
+    }
+  },
+  mounted() {
 
-    },
-    watch:{
-      projectId(){
-        this.refresh = new Date().getTime()
-      }
+  },
+  watch: {
+    //监听项目变化
+    projectId() {
+      this.refresh = new Date().getTime();
     }
+  }
 }
 </script>
 
 <style lang="less" scoped>
-  .contain-block{
-    float:left;
-    height:100%;
-    background:white;
-    width:60%;
-  }
-  .contain-title-leftblock{
-    height:30px;
-    line-height:30px;
-    border-left:8px solid black;
-    display:inline-block;
-    margin:8px 8px;
-    font-weight:600;
-    padding-left:8px;
-    cursor: default;
-  }
-  .contain-data{
-    overflow:auto;
-    height:calc(100% - 50px);
-  }
+.contain-block {
+  float: left;
+  height: 100%;
+  background: white;
+  width: 60%;
+}
+.contain-title-leftblock {
+  height: 30px;
+  line-height: 30px;
+  border-left: 8px solid black;
+  display: inline-block;
+  margin: 8px 8px;
+  font-weight: 600;
+  padding-left: 8px;
+  cursor: default;
+}
+.contain-data {
+  overflow: auto;
+  height: calc(100% - 50px);
+}
 </style>