Quellcode durchsuchen

系统集成成果管理接口调整及完善

LXXXY vor 5 Jahren
Ursprung
Commit
44fe0d268c

+ 47 - 25
src/components/point/report/addTabFunNum.vue

@@ -2,19 +2,17 @@
   <!-- 新增表号-功能号 -->
   <div id="addTabFunNum">
     <el-form :model='form' label-width="150px" ref="ruleForm" :rules="rules" style="height:500px;overflow:auto;">
-      <el-form-item label="表号-功能号" prop="Id">
-        <el-input v-model="form.Id"></el-input>
+      <el-form-item label="表号-功能号" prop="MeterFunc">
+        <el-input v-model="form.MeterFunc"></el-input>
       </el-form-item>
-      <el-form-item label="设定采集间隔时间" prop="intervalTime">
-        <el-input v-model="form.intervalTime" placeholder="设定时间不能小于10s"></el-input>
+      <el-form-item label="设定采集间隔时间" prop="CollectInterval">
+        <el-input v-model="form.CollectInterval" placeholder="设定时间不能小于10s"></el-input>
       </el-form-item>
-      <el-form-item label="值单位" prop="unit">
-        <el-select v-model="form.unit" placeholder="请选择">
-          <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"></el-option>
-        </el-select>
+      <el-form-item label="值单位" prop="Unit">
+        <el-cascader :options='options' v-model='form.Unit'></el-cascader>
       </el-form-item>
-      <el-form-item label="取直公式" prop="formula">
-        <el-input type="textarea" placeholder="请输入取值公式" v-model="form.formula"></el-input>
+      <el-form-item label="取直公式" prop="DataRuleContent">
+        <el-input type="textarea" placeholder="请输入取值公式" v-model="form.DataRuleContent"></el-input>
       </el-form-item>
       <el-form-item label="">
         <el-button type="primary" @click="add()">新增</el-button>
@@ -29,37 +27,31 @@ import { mapGetters, mapActions } from 'vuex'
 import {
   addTabFunNum
 } from '@/api/point/request'
+import { batchQueryUnit } from '@/fetch/point_http'
 export default {
   data() {
     return {
       form: {
-        Id: 'xx-xxx',//表号-功能号
-        intervalTime: '',//采集间隔时间
-        formula: 'xxxxxxxxxx',//取值公式
-        unit: '',//值单位
+        MeterFunc: '',//表号-功能号
+        CollectInterval: '',//采集间隔时间
+        DataRuleContent: '',//取值公式
+        Unit: '',//值单位
       },
       //下拉框选项
       options: [
-        {
-          value: '选项1',
-          label: '选项1'
-        }, {
-          value: '选项2',
-          label: '选项2'
-        },
       ],
       //验证规则
       rules: {
-        Id: [
+        MeterFunc: [
           { required: true, message: '请输入表号-功能号', trigger: 'blur' }
         ],
-        intervalTime: [
+        CollectInterval: [
           { required: true, message: '请输入采集间隔时间', trigger: 'blur' }
         ],
-        formula: [
+        DataRuleConten: [
           { required: true, message: '请选择值单位', trigger: 'change' }
         ],
-        unit: [
+        Unit: [
           { required: true, message: '请填写取直公式', trigger: 'blur' }
         ]
       }
@@ -73,6 +65,7 @@ export default {
     add() {
       this.$refs.ruleForm.validate((valid) => {
         if (valid) {
+          this.form.Unit = this.form.Unit.toString();
           addTabFunNum(this.form, res => {
 
           });
@@ -81,7 +74,36 @@ export default {
           return false;
         }
       });
+    },
+    //加载下拉框
+    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
+          }
+      })
     }
+  },
+  mounted(){
+    this.initSelect();
   }
 }
 </script>

+ 5 - 5
src/components/point/report/dataSource.vue

@@ -4,13 +4,13 @@
         <div class="data-item"  v-for="form in forms" :key="form.id">
             <el-form :model="form" label-width="150px">
                 <el-form-item label="数据源名称:">
-                    {{form.Datasource}}
+                    {{form.Name}}
                 </el-form-item>
                 <el-form-item label="值单位说明:">
-                    {{form.explain}}
+                    {{form.ValueDescription}}
                 </el-form-item>
                 <el-form-item label="原始点位值:">
-                    {{form.value}}
+                    {{form.Data}}
                 </el-form-item>
                 <el-form-item label="原始点位描述:">
                     {{form.Description}}
@@ -19,7 +19,7 @@
                     {{form.LocationFlag.toString()}}
                 </el-form-item>
                 <el-form-item label="原始值处理规则详情:">
-                    {{form.ruleDetail}}
+                    {{form.DataRuleContent}}
                 </el-form-item>
             </el-form>
         </div>
@@ -45,7 +45,7 @@ export default {
         loadDataSource() {
             this.loading = true;
             let pa = {
-                Filters: "MeterFuncid='" + this.tabFunNum + "'"
+                Filters: "Infos='" + this.tabFunNum + "'"
             };
             getTabFunNumSourceData(pa, res => {
                 this.forms = res.Content;

+ 7 - 7
src/components/point/report/historyChart.vue

@@ -27,7 +27,7 @@ export default {
   data() {
     return {
       lineChart: null,//折线表
-      selectValue: '1',//下拉框默认值
+      selectValue: '5min',//下拉框默认值
       options: [//精度
         { value: '1min', label: '1分钟' },
         { value: '5min', label: '5分钟' },
@@ -55,16 +55,16 @@ export default {
     //加载表格
     loadTable() {
       let query = {
-        secret: this.tabFunNum
+        secret: this.secret
       };
       let pa = {
         criterias:[
           {
-            "met_fun":"101-122",      //表号功能号
-            "period":"5min",
+            "met_fun": this.tabFunNum,      //表号功能号
+            "period": this.selectValue,
             "receivetime":{
-              "$gte":"20170522000000",
-              "$lt":"20170523000000"
+              "$gte":"20190522000000",
+              "$lt":"20190926000000"
             }
           }
         ]
@@ -138,7 +138,7 @@ export default {
     },
   },
   computed: {
-    ...mapGetters('layout', ['projectId', 'userId'])
+    ...mapGetters('layout', ['projectId', 'userId', 'secret'])
   },
   mounted() {
     //实例化

+ 29 - 38
src/components/point/report/objectInstance.vue

@@ -5,22 +5,22 @@
     <div class="obj-item" v-for="form in forms" :key="form.id">
       <el-form :model="form" label-width="150px">
         <el-form-item label="对象类型:">
-          {{form.TypeCode}}
+          {{form.TypeName}}
         </el-form-item>
         <el-form-item label="对象实例本地名称:">
           {{form.ObjectLocalName}}
         </el-form-item>
         <el-form-item label="对象实例本地编码:">
-          {{form.EquipmentMark}}
+          {{form.ObjectLocalCode}}
         </el-form-item>
         <el-form-item label="对象实例ID:">
           {{form.ObjectID}}
         </el-form-item>
         <el-form-item label="信息点名称:">
-          {{form.EquipLocalName}}
+          {{form.InfomationPointName}}
         </el-form-item>
         <el-form-item label="对应值:">
-          {{form.InfomationPointCode}}
+          {{ reValue }}
         </el-form-item>
         <el-form-item label="对象实例位置图:">
           <canvas height="200" width="100" class="instanceMap" :id="form.instanceId" v-loading="form.loading"></canvas>
@@ -44,16 +44,6 @@ export default {
   data() {
     return {
       forms: [
-        // {
-        //     id: '1',                 ID
-        //     objType: 'type1' ,       对象类型
-        //     localName: 'name1',      对象实例本地名称
-        //     localNum: 'num1',        对象实例本地编码
-        //     instanceId: 'id1',       对象实例ID
-        //     mesPointName: 'name1',   信息点名称
-        //     mesPointVal: 'value1',   对应值
-        //     instanceMap: 'm'         对象实例位置图
-        // }
       ],
       views: [],
       scenes: [],
@@ -75,30 +65,30 @@ export default {
         that.forms = res.Content;
         that.clearGraphy()
         //加载canvas
-        that.forms.map((key, item) => {
-          that.views[key] = new SGraphyView('floorCanvas')
-          that.scenes[key] = new DivideFloorScene();
-          that.forms[key].loading = true;
+        // that.forms.map((key, item) => {
+        //   that.views[key] = new SGraphyView('floorCanvas')
+        //   that.scenes[key] = new DivideFloorScene();
+        //   that.forms[key].loading = flase;
 
-          that.scenes[key].loadUrl(`/image-service/common/file_get?systemId=revit&key=${this.FloorMap}`).then(() => {
-            that.forms[key].loading = false;
-            that.views[key].scene = that.scenes[key];
-            let tempArr = that.BSPRelaISPLists[key].map((t, i) => {
-              return {
-                RoomLocalName: t.RoomLocalName,
-                OutLine: t.Outline,
-                RoomID: t.RoomID,
-                Color: new SColor(colorArr[i % colorArr.length]),
-              }
-            })
-            that.scenes[key].addZoneList(tempArr);
-            that.scenes[key].click(that, that.canvasClick)
-            that.views[key].fitSceneToView();
-            that.views[key].maxScale = that.views[key].scale * 10;
-            that.views[key].minScale = that.views[key].scale;
-            // that.$refs.canvasFun.everyScale = that.views[key].scale;
-          })
-        });
+        //   that.scenes[key].loadUrl(`/image-service/common/file_get?systemId=revit&key=${this.FloorMap}`).then(() => {
+        //     that.forms[key].loading = false;
+        //     that.views[key].scene = that.scenes[key];
+        //     let tempArr = that.BSPRelaISPLists[key].map((t, i) => {
+        //       return {
+        //         RoomLocalName: t.RoomLocalName,
+        //         OutLine: t.Outline,
+        //         RoomID: t.RoomID,
+        //         Color: new SColor(colorArr[i % colorArr.length]),
+        //       }
+        //     })
+        //     that.scenes[key].addZoneList(tempArr);
+        //     that.scenes[key].click(that, that.canvasClick)
+        //     that.views[key].fitSceneToView();
+        //     that.views[key].maxScale = that.views[key].scale * 10;
+        //     that.views[key].minScale = that.views[key].scale;
+        //     // that.$refs.canvasFun.everyScale = that.views[key].scale;
+        //   })
+        // });
 
       })
     },
@@ -137,7 +127,8 @@ export default {
     this.loadObjectInstance();
   },
   props: {
-    tabFunNum: String//表号功能号
+    tabFunNum: String,//表号功能号,
+    reValue: String//对应值
   },
   computed: {
     ...mapGetters('layout', ['projectId', 'userId'])

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

@@ -7,8 +7,8 @@
         <!-- 一对多数据 -->
         <el-tab-pane label="一对多" name="otm">
           <el-table :data="oTMData" style="width: 100%">
-            <el-table-column prop="Name" label="点位名称" show-overflow-tooltip min-width="100"></el-table-column>
-            <el-table-column prop="DataSourceId" label="数据源" show-overflow-tooltip min-width="100"></el-table-column>
+            <el-table-column prop="Description" label="点位名称" show-overflow-tooltip min-width="100"></el-table-column>
+            <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>
@@ -21,10 +21,14 @@
           <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.MeterList[0] }}</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>
               </template>
             </el-table-column>
-            <el-table-column prop="DataSource" label="数据源" show-overflow-tooltip min-width="100"></el-table-column>
             <el-table-column prop="MeterFunc" label="表号功能号" show-overflow-tooltip min-width="100"></el-table-column>
           </el-table>
         </el-tab-pane>
@@ -53,11 +57,12 @@ export default {
         let mD = res.Content[0].MtoO;
         this.mTOData = [];
         for(let k in mD){
-          this.mTOData.push({
-            "MeterFunc": k,
-            "DataSource": null,
-            "Data":mD[k]
-          })
+          if(mD[k].length > 1){
+            this.mTOData.push({
+              "MeterFunc": k,
+              "Data":mD[k]
+            })
+          }
         };
         // this.mTOData= mD.map((key,item) => {
         //   return {
@@ -67,8 +72,12 @@ export default {
         //   }
         // });
         console.log(this.mTOData);
-        this.oTMData = res.Content[0].OtoM;
-        
+        let oD = res.Content[0].OtoM;
+        for(let k in oD){
+          if(oD[k].MeterList.length > 1){
+            this.oTMData.push(oD[k]);
+          }
+        }
       });
     }
   }

+ 14 - 7
src/components/point/report/tabFunNumOverview.vue

@@ -13,20 +13,20 @@
             <el-table :data="tableData" style="width: 100%" height="calc(100% - 40px)" v-loading="loading" :header-cell-style="headerStyle">
                 <el-table-column prop='MeterFunc' label='表号-功能号' show-overflow-tooltip min-width="100">
                     <template slot-scope="scope">
-                        <el-tooltip v-if="scope.row.DataQuality" content="已断数,请检查" placement="bottom" effect="light">
+                        <el-tooltip v-if="scope.row.DataQuality!=0" content="已断数,请检查" placement="bottom" effect="light">
                             <i  class="el-icon-warning-outline" style="float:left;margin: 0 5px;color: red;"></i>
                         </el-tooltip>
                         <span>{{ scope.row.MeterFunc }}</span>
                     </template>
                     
                 </el-table-column>
-                <el-table-column prop='Data.Data' label='对应值(单位)' show-overflow-tooltip min-width="120">
+                <el-table-column prop='Data.Data' label='对应值(单位)' show-overflow-tooltip min-width="90">
                     <template slot-scope="scope">
                         <span>{{ scope.row.Data.Data }}</span>
                         <i @click="handleDrawer(scope.row, 0)" class="el-icon-s-data"></i>
                     </template>
                 </el-table-column>
-                <el-table-column prop='Data.Time' label='获取时间' show-overflow-tooltip>
+                <el-table-column prop='Data.Time' label='获取时间' show-overflow-tooltip min-width="130">
                     <template slot-scope="scope">
                         <span>{{ scope.row.Data.Time }}</span>
                         <i class="el-icon-refresh" @click="refreshThisRow(scope.row)"></i>
@@ -66,7 +66,7 @@
             <dataSource :tabFunNum='drawers[1].objId'></dataSource>
         </el-drawer>
         <el-drawer :title="'< ' + drawers[2].objId + ' > 的对象实例'" :visible.sync="drawers[2].drawer" :direction="drawers[2].direction" size="50%">
-            <objectInstance :tabFunNum='drawers[2].objId'></objectInstance>
+            <objectInstance :tabFunNum='drawers[2].objId' :reValue='drawers[2].value'></objectInstance>
         </el-drawer>
         <el-dialog title="新增表号功能号" :visible.sync="drawers[3].drawer">
             <addTabFunNum @closeDrawer="closeDrawer()"></addTabFunNum>
@@ -108,7 +108,7 @@ export default {
             drawers: [
                 {drawer: false, direction: 'rtl', objId:''},
                 {drawer: false, direction: 'rtl', objId:''},
-                {drawer: false, direction: 'rtl', objId:''},
+                {drawer: false, direction: 'rtl', objId:'',value: ''},
                 {drawer: false, direction: 'rtl', objId:''}
             ]
             
@@ -119,6 +119,8 @@ export default {
         handleDrawer(row, index){
             if(index != 3)
                 this.drawers[index].objId = row.MeterFunc;
+            if(index == 2)
+                this.drawers[index].value = row.Data.Data;
             this.drawers[index].drawer = true;
         },
         //获取统计数据
@@ -133,12 +135,17 @@ export default {
         },
         //刷新当前行数据
         refreshThisRow(row){
-            let index = this.allTableData.indexOf(row);
+            let index = this.tableData.indexOf(row);
             let pa = {
                 MeterFunc: row.MeterFunc
             }
             getTabFunNumOverview(pa, res => {
-                this.allTableData[index] = res.Content[0];
+                //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;
+                this.tableData[index].RelatedInstance = res.Content[0].RelatedInstance;
+                this.tableData[index].RelatedPoint = res.Content[0].RelatedPoint;
             });
         },
         //分页更换size

+ 13 - 4
src/views/point/report/index.vue

@@ -2,17 +2,18 @@
     <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);"></integrateStatistics></div>
+        <div class="contain-data" ><integrateStatistics ref="chart" style="height: calc(100% - 15px);" :key="refresh"></integrateStatistics></div>
       </div>
       <div class="contain-block">
         <span class="contain-title-leftblock">表号功能号总览</span>
-        <div class="contain-data"><tabFunNumOverview ref="table"></tabFunNumOverview></div>
+        <div class="contain-data"><tabFunNumOverview ref="table" :key="refresh"></tabFunNumOverview></div>
       </div>
     </div>
 </template>
 
 <script>
-
+import { mapGetters } from 'vuex'
+import { batchQueryUnit } from '@/fetch/point_http'
 import integrateStatistics from '@/components/point/report/integrateStatistics'
 import tabFunNumOverview from '@/components/point/report/tabFunNumOverview'
 
@@ -21,9 +22,12 @@ export default {
       integrateStatistics,
       tabFunNumOverview
     },
+    computed: {
+      ...mapGetters('layout', ['projectId', 'secret']),
+    },
     data() {
         return {
-
+          refresh: ''
         }
     },
     methods:{
@@ -31,6 +35,11 @@ export default {
     },
     mounted() {
 
+    },
+    watch:{
+      projectId(){
+        this.refresh = new Date().getTime()
+      }
     }
 }
 </script>