Sfoglia il codice sorgente

表号功能号总览,原始点位,总览,点查询,实例查询接口对接,

LXXXY 5 anni fa
parent
commit
f96986db27

+ 21 - 61
src/api/point/request.js

@@ -2,91 +2,51 @@ import fetch from './fetch'
 import { api } from './config.js'
 import http from './httpUtil'
 
-//系统集成统计环形图
-export function getIntegrateStatisticsToLoop(param, success) {
-    let url = `/pointconfig/datasource/queryWithCount`
-    let data = param
-    http.postJson(url, data, success)
+//系统集成统计条形图
+export function getIntegrateStatisticsToBar(param, success) {
+    let url = `/pointconfig/report/point-statis    `
+    http.postJson(url, param, success)
 }
 
-//系统集成统计条形
-export function getIntegrateStatisticsToBar(param, success) {
+//系统集成统计环形图
+export function getIntegrateStatisticsToLoop(param, success) {
     let url = `/pointconfig/report/meterfunc-statis`
-    let data = param
-    http.postJson(url, data, success)
+    http.postJson(url, param, success)
 }
 
 //表号功能号总览
 export function getTabFunNumOverview(param, success) {
     let url = `/pointconfig/report/meterfunc-overview`
-    let data = param
-    data = {
-        "Comming": 'revit',
-        "ProjId": 'Pj4201050001',
-        "UserId": 'test',
-        "PageNum": 1,
-        "PageSize": 10,
-        "Filter": ""
-    }
-    http.postJson(url, data, success)
+    http.postJson(url, param, success)
 }
 
 //表号功能号对应历史数据
 export function getHistoryData(param, success) {
-    let url = `/ScanBuilding/service/user/query`
+    let url = `/data-platform-3/hisdata/batch_query_period_data_by_metfun`
     let data = param
-    data = {
-        "Comming": 'revit',
-        "ProjId": 'Pj4201050001',
-        "UserId": 'test',
-        "PageNum": 1,
-        "PageSize": 10,
-        "Filter": ""
-    }
     http.postJson(url, data, success)
 }
 
 //获取表号功能号的源数据
 export function getTabFunNumSourceData(param, success) {
-    let url = `/ScanBuilding/service/user/query`
-    let data = param
-    data = {
-        "Comming": 'revit',
-        "ProjId": 'Pj4201050001',
-        "UserId": 'test',
-        "PageNum": 1,
-        "PageSize": 10,
-        "Filter": ""
-    }
-    http.postJson(url, data, success)
+    let url = `/pointconfig/report/query-point`
+    http.postJson(url, param, success)
 }
 
 //获取表号功能号对应的对象实例
 export function getTabFunNumObjInstance(param, success) {
-    let url = `/ScanBuilding/service/user/query`
-    let data = param
-    data = {
-        "Comming": 'revit',
-        "ProjId": 'Pj4201050001',
-        "UserId": 'test',
-        "PageNum": 1,
-        "PageSize": 10,
-        "Filter": ""
-    }
-    http.postJson(url, data, success)
+    let url = `/pointconfig/report/query-instance`
+    http.postJson(url, param, success)
 }
 
 //添加表号功能号
 export function addTabFunNum(param, success) {
-    let url = `/ScanBuilding/service/user/query`
-    let data = param
-    data = {
-        "Comming": 'revit',
-        "ProjId": 'Pj4201050001',
-        "UserId": 'test',
-        "PageNum": 1,
-        "PageSize": 10,
-        "Filter": ""
-    }
-    http.postJson(url, data, 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)
 }

+ 36 - 8
src/components/point/report/addTabFunNum.vue

@@ -1,19 +1,19 @@
 <template>
   <!-- 新增表号-功能号 -->
   <div id="addTabFunNum">
-    <el-form :model='form' label-width="150px">
-      <el-form-item label="表号-功能号">
-        <el-input v-model="form.tabFunNum"></el-input>
+    <el-form :model='form' label-width="150px" ref="ruleForm" :rules="rules">
+      <el-form-item label="表号-功能号" prop="Id">
+        <el-input v-model="form.Id"></el-input>
       </el-form-item>
-      <el-form-item label="设定采集间隔时间">
+      <el-form-item label="设定采集间隔时间" prop="intervalTime">
         <el-input v-model="form.intervalTime" placeholder="设定时间不能小于10s"></el-input>
       </el-form-item>
-      <el-form-item label="值单位">
+      <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>
-      <el-form-item label="取直公式">
+      <el-form-item label="取直公式" prop="formula">
         <el-input type="textarea" placeholder="请输入取值公式" v-model="form.formula"></el-input>
       </el-form-item>
       <el-form-item label="">
@@ -26,11 +26,14 @@
 
 <script>
 import { mapGetters, mapActions } from 'vuex'
+import {
+  addTabFunNum
+} from '@/api/point/request'
 export default {
   data() {
     return {
       form: {
-        tabFunNum: 'xx-xxx',//表号-功能号
+        Id: 'xx-xxx',//表号-功能号
         intervalTime: '',//采集间隔时间
         formula: 'xxxxxxxxxx',//取值公式
         unit: ''//值单位
@@ -44,7 +47,22 @@ export default {
           value: '选项2',
           label: '选项2'
         },
-      ]
+      ],
+      //验证规则
+      rules: {
+        Id: [
+          { required: true, message: '请输入表号-功能号', trigger: 'blur' }
+        ],
+        intervalTime: [
+          { required: true, message: '请输入采集间隔时间', trigger: 'blur' }
+        ],
+        formula: [
+          { required: true, message: '请选择值单位', trigger: 'change' }
+        ],
+        unit: [
+          { required: true, message: '请填写取直公式', trigger: 'blur' }
+        ]
+      }
     }
   },
   computed: {
@@ -53,7 +71,17 @@ export default {
   methods: {
     //添加
     add() {
+      this.$refs.ruleForm.validate((valid) => {
+        if (valid) {
+          addTabFunNum(this.form, res => {
 
+          });
+        } else {
+          console.log('error submit!!');
+          return false;
+        }
+      });
+      
     }
   }
 }

+ 8 - 57
src/components/point/report/dataSource.vue

@@ -4,7 +4,7 @@
         <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}}
+                    {{form.Datasource}}
                 </el-form-item>
                 <el-form-item label="值单位说明:">
                     {{form.explain}}
@@ -13,10 +13,10 @@
                     {{form.value}}
                 </el-form-item>
                 <el-form-item label="原始点位描述:">
-                    {{form.describe}}
+                    {{form.Description}}
                 </el-form-item>
                 <el-form-item label="位置标签:">
-                    {{form.locationLabel}}
+                    {{form.LocationFlag.toString()}}
                 </el-form-item>
                 <el-form-item label="原始值处理规则详情:">
                     {{form.ruleDetail}}
@@ -37,65 +37,16 @@ export default {
     data() {
         return {
             forms: [
-                // {
-                //     id: '1',                     ID
-                //     name: 'test',                数据源名称
-                //     explain: '说明',             值单位说明
-                //     value: '测试值',             原始点位值
-                //     describe: '测试描述',        原始点位描述
-                //     locationLabel: '位置标签',   位置标签
-                //     ruleDetail: '规则详情'       原始值处理规则详情
-                // }
             ]
         }
     },
     methods: {
         loadDataSource() {
-            getTabFunNumSourceData({tabFunNum: this.tabFunNum}, res => {
-                // this.forms = res;
-                this.forms = [
-                    {
-                        id: '1',
-                        name: 'test',
-                        explain: '说明',
-                        value: '测试值',
-                        describe: '测试描述',
-                        locationLabel: '位置标签',
-                        ruleDetail: '规则详情'
-                    },{
-                        id: '2',
-                        name: 'test1',
-                        explain: '说明',
-                        value: '测试值',
-                        describe: '测试描述',
-                        locationLabel: '位置标签',
-                        ruleDetail: '规则详情'
-                    },{
-                        id: '3',
-                        name: 'test2',
-                        explain: '说明',
-                        value: '测试值',
-                        describe: '测试描述',
-                        locationLabel: '位置标签',
-                        ruleDetail: '规则详情'
-                    },{
-                        id: '4',
-                        name: 'test2',
-                        explain: '说明',
-                        value: '测试值',
-                        describe: '测试描述',
-                        locationLabel: '位置标签',
-                        ruleDetail: '规则详情'
-                    },{
-                        id: '5',
-                        name: 'test2',
-                        explain: '说明',
-                        value: '测试值',
-                        describe: '测试描述',
-                        locationLabel: '位置标签',
-                        ruleDetail: '规则详情'
-                    },
-                ];
+            let pa = {
+                Filters: "MeterFuncid='" + this.tabFunNum + "'"
+            };
+            getTabFunNumSourceData(pa, res => {
+                this.forms = res.Content;
             });
         }
     },

+ 13 - 1
src/components/point/report/historyChart.vue

@@ -54,7 +54,19 @@ export default {
   methods: {
     //加载表格
     loadTable() {
-      getHistoryData({ tabFunNum: this.tabFunNum }, res => {
+      let pa = {
+        criterias:[
+          {
+            "met_fun":"101-122",      //表号功能号
+            "period":"5min",
+            "receivetime":{
+              "$gte":"20170522000000",
+              "$lt":"20170523000000"
+            }
+          }
+        ]
+      };
+      getHistoryData(pa, res => {
         // this.chartData = res;
         //折线图参数
         let lineChartOption = {

+ 6 - 3
src/components/point/report/integrateStatistics.vue

@@ -72,7 +72,7 @@ export default {
     //加载图表数据
     loadChart() {
       //获取环形图数据
-      getIntegrateStatisticsToBar({}, res => {
+      getIntegrateStatisticsToLoop({}, res => {
         if(res.Result && res.Result == "success"){
           this.pointData = {
             tabFuncNumSum: res.Content[0].Sum,
@@ -154,8 +154,10 @@ export default {
       });
 
       //获取条形图数据
-      getIntegrateStatisticsToLoop({}, res => {
-        this.barChartData = res.Content;
+      getIntegrateStatisticsToBar({}, res => {
+        if(res.Result && res.Result == "success"){
+          this.barChartData = res.Content;
+        }
 
         this.originalPoint = (() => {
           let sum = 0;
@@ -261,6 +263,7 @@ export default {
 }
 .statistics-chart {
   border: 1px solid rgba(0, 0, 0, 0.3);
+  min-height:50%;
 }
 .chart-title {
   padding: 5px 5%;

+ 27 - 63
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.objType}}
+                    {{form.TypeCode}}
                 </el-form-item>
                 <el-form-item label="对象实例本地名称:">
-                    {{form.localName}}
+                    {{form.ObjectLocalName}}
                 </el-form-item>
                 <el-form-item label="对象实例本地编码:">
-                    {{form.localNum}}
+                    {{form.EquipmentMark}}
                 </el-form-item>
                 <el-form-item label="对象实例ID:">
-                    {{form.instanceId}}
+                    {{form.ObjectID}}
                 </el-form-item>
                 <el-form-item label="信息点名称:">
-                    {{form.mesPointName}}
+                    {{form.EquipLocalName}}
                 </el-form-item>
                 <el-form-item label="对应值:">
-                    {{form.mesPointVal}}
+                    {{form.InfomationPointCode}}
                 </el-form-item>
                 <el-form-item label="对象实例位置图:">
                     <canvas height="200" width="100" class="instanceMap" :id="form.instanceId"></canvas>
@@ -62,67 +62,31 @@ export default {
     methods: {
         //加载对象实例
         loadObjectInstance() {
-            getTabFunNumObjInstance({}, res => {
-                // this.forms = res;
-                this.forms = [
-                    {
-                        id: '1',
-                        objType: 'type1',
-                        localName: 'name1',
-                        localNum: 'num1',
-                        instanceId: 'id1',
-                        mesPointName: 'name1',
-                        mesPointVal: 'value1',
-                        instanceMap: 'm'
-                    },{
-                        id: '2',
-                        objType: 'type2',
-                        localName: 'name1',
-                        localNum: 'num1',
-                        instanceId: 'id2',
-                        mesPointName: 'name1',
-                        mesPointVal: 'value1',
-                        instanceMap: 'm'
-                    },{
-                        id: '3',
-                        objType: 'type3',
-                        localName: 'name1',
-                        localNum: 'num1',
-                        instanceId: 'id3',
-                        mesPointName: 'name1',
-                        mesPointVal: 'value1',
-                        instanceMap: 'm'
-                    },{
-                        id: '4',
-                        objType: 'type4',
-                        localName: 'name1',
-                        localNum: 'num1',
-                        instanceId: 'id4',
-                        mesPointName: 'name1',
-                        mesPointVal: 'value1',
-                        instanceMap: 'm'
-                    },
-                ];
+            let pa = {
+                Filters: "MeterFuncid='" + this.tabFunNum + "'"
+            };
+            getTabFunNumObjInstance(pa, res => {
+                this.forms = res.Content;
 
                 //加载canvas
 
-                this.forms.map(item => {
-                    let that = this;
-                    that.clearGraphy()
-                    that.views.map(it => {
-                        it
-                    })
-                    that.view = new SGraphyView('floorCanvas')
-                    that.scene = new DivideFloorScene();
-                    that.canvasLoading = true;
-                    let instance = document.getElementById(item.instanceId);
+                // this.forms.map(item => {
+                //     let that = this;
+                //     that.clearGraphy()
+                //     that.views.map(it => {
+                //         it
+                //     })
+                //     that.view = new SGraphyView('floorCanvas')
+                //     that.scene = new DivideFloorScene();
+                //     that.canvasLoading = true;
+                //     let instance = document.getElementById(item.instanceId);
 
-                    let ctx = instance.getContext('2d');
-                    cxt.moveTo(10,10);
-                    cxt.lineTo(150,50);
-                    cxt.lineTo(10,50);
-                    cxt.stroke();
-                });
+                //     let ctx = instance.getContext('2d');
+                //     cxt.moveTo(10,10);
+                //     cxt.lineTo(150,50);
+                //     cxt.lineTo(10,50);
+                //     cxt.stroke();
+                // });
             })
         },
         //清楚画布

+ 33 - 46
src/components/point/report/pointTabOverview.vue

@@ -7,11 +7,11 @@
         <!-- 一对多数据 -->
         <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="dataSource" label="数据源" show-overflow-tooltip min-width="100"></el-table-column>
-            <el-table-column prop="TableNum" label="表号功能号" show-overflow-tooltip min-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="MeterList" label="表号功能号" show-overflow-tooltip min-width="100">
               <template slot-scope="scope">
-                <div v-for="(item, index) in scope.row.TableNum" :key="index" >{{ item }}</div>
+                <div v-for="(item, index) in scope.row.MeterList" :key="index" >{{ item }}</div>
               </template>
             </el-table-column>
           </el-table>
@@ -19,13 +19,13 @@
         <!-- 多对一数据 -->
         <el-tab-pane label="多对一" name="mto">
           <el-table :data="mTOData" style="width: 100%">
-            <el-table-column prop="name" label="点位名称" show-overflow-tooltip min-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.name" :key="index" >{{ item }}</div>
+                <div v-for="(item, index) in scope.row.Data" :key="index" >{{ item.MeterList[0] }}</div>
               </template>
             </el-table-column>
-            <el-table-column prop="dataSource" label="数据源" show-overflow-tooltip min-width="100"></el-table-column>
-            <el-table-column prop="TableNum" label="表号功能号" show-overflow-tooltip min-width="100"></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>
       </el-tabs>
@@ -34,55 +34,42 @@
 </template>
 
 <script>
+import { tableFuncRelatedOverview } from '@/api/point/request'
 export default {
   data() {
     return {
       activeName: "otm", //默认展示一对多
       dialogVisiable: false, //显示对话
-      mTOData: null, //多对一数据
-      oTMData: null //一对多数据
+      mTOData: [], //多对一数据
+      oTMData: [] //一对多数据
     };
   },
   methods: {
     //加载数据
     loadOverviewData() {
-      this.dialogVisiable = true;
+      tableFuncRelatedOverview({}, res => {
+        this.dialogVisiable = true;
 
-      this.mTOData = [
-        {
-          name: ["测试1", "测试2", "测试3"],
-          dataSource: "source 1",
-          TableNum: "XX-XX"
-        },
-        {
-          name: ["测试1", "测试2"],
-          dataSource: "source 1",
-          TableNum: "XX-XX2"
-        },
-        {
-          name: ["测试1", "测试2", "测试3", "测试4"],
-          dataSource: "source 1",
-          TableNum: "XX-XX3"
-        }
-      ];
-
-      this.oTMData = [
-        {
-          name: "测试2",
-          dataSource: "source 1",
-          TableNum: ["11-11", "2-2", "11-11", "11-11"]
-        },
-        {
-          name: "测试1",
-          dataSource: "source 1",
-          TableNum: ["11-11", "2-2", "11-11", "11-11"]
-        },
-        {
-          name: "测试3",
-          dataSource: "source 1",
-          TableNum: ["11-11", "2-2", "11-11", "11-11"]
-        }
-      ];
+        let mD = res.Content[0].MtoO;
+        this.mTOData = [];
+        for(let k in mD){
+          this.mTOData.push({
+            "MeterFunc": k,
+            "DataSource": null,
+            "Data":mD[k]
+          })
+        };
+        // this.mTOData= mD.map((key,item) => {
+        //   return {
+        //     "MeterFunc": key,
+        //     "DataSource": null,
+        //     "Data":item
+        //   }
+        // });
+        console.log(this.mTOData);
+        this.oTMData = res.Content[0].OtoM;
+        
+      });
     }
   }
 };

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

@@ -45,7 +45,7 @@
                 :page-sizes="pageSizes"
                 :page-size="pageSize"
                 layout="total, sizes, prev, pager, next, jumper"
-                :total="allTableData.length">
+                :total="allTableData.length" style="float:right;margin-right: 15px;">
             </el-pagination>
         </div>
         <!-- 对话框和抽屉统一放在drawers中 -->
@@ -106,13 +106,13 @@ export default {
         //抽屉处理
         handleDrawer(row, index){
             if(index != 3)
-                this.drawers[index].objId = row.TableNum;
+                this.drawers[index].objId = row.MeterFunc;
             this.drawers[index].drawer = true;
         },
         //获取统计数据
         getOverViewList(){
             this.loading = true;
-            getTabFunNumOverview({}, res => {
+            getTabFunNumOverview({MeterFunc:this.tabFunNum}, res => {
                 if(res.Result && res.Result == "success"){
                     this.allTableData = res.Content;
                     this.loading = false;
@@ -121,9 +121,12 @@ export default {
         },
         //刷新当前行数据
         refreshThisRow(row){
-            let index = this.tableData.indexOf(row);
-            getTabFunNumOverview({}, res => {
-                this.tableData[index].Data.Time = new Date().getTime();
+            let index = this.allTableData.indexOf(row);
+            let pa = {
+                MeterFunc: row.MeterFunc
+            }
+            getTabFunNumOverview(pa, res => {
+                this.allTableData[index] = res.Content[0];
             });
         },
         //分页更换size

+ 1 - 1
src/views/point/report/index.vue

@@ -2,7 +2,7 @@
     <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"></integrateStatistics></div>
+        <div class="contain-data" ><integrateStatistics ref="chart" style="height: calc(100% - 15px);"></integrateStatistics></div>
       </div>
       <div class="contain-block">
         <span class="contain-title-leftblock">表号功能号总览</span>