From 82732610befafe88ae9512c9ac37e6a4bcf291c7 Mon Sep 17 00:00:00 2001
From: XingChuan <m17600301067@163.com>
Date: 星期日, 30 五月 2021 22:59:44 +0800
Subject: [PATCH] 废气小时数据、日数据、人工数据接口替换;增加点位id、检测项id查询;无数据提示;UI优化。

---
 src/components/base-page/WasteGas/HourData.vue |  312 ++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 255 insertions(+), 57 deletions(-)

diff --git a/src/components/base-page/WasteGas/HourData.vue b/src/components/base-page/WasteGas/HourData.vue
index 52ab5e3..6590b1e 100644
--- a/src/components/base-page/WasteGas/HourData.vue
+++ b/src/components/base-page/WasteGas/HourData.vue
@@ -1,5 +1,5 @@
 <template>
-  <div class="echarts-box">
+  <div id="waste-gas-hours-chart-box" class="waste-gas-hours-chart-box echarts-box">
     <div class="tab-scroll">
       <PublicDataStandard :dataStandard="dataStandard"></PublicDataStandard>
     </div>
@@ -9,11 +9,18 @@
       <span class="demonstration">缁撴潫鏃堕棿锛�</span>
       <el-date-picker v-model="formData.timeEnd" value-format="yyyy-MM-dd HH:mm:ss" type="datetime" size="mini"></el-date-picker>
       <span class="demonstration">閲囨牱鐐规暟锛�</span>
-      <el-select v-model="formData.region" placeholder="璇烽�夋嫨" size="mini" >
+      <el-select class="selectBox" v-model="formData.region" placeholder="璇烽�夋嫨" size="mini" >
         <el-option v-for="(item,index) in formData.regionList" :key="index" :label="item" :value="item"></el-option>
       </el-select>
       <el-button @click="querySearch">鏌ヨ</el-button>
-      <el-button @click="ScheduleShow">鏄庣粏琛�</el-button>
+      <el-popover
+          placement="top"
+          width="100%"
+          popper-class="popoverBoxStyle"
+          trigger="click">
+        <dynamic-table :tableData="tableData" :tableHeader="tableConfig" v-if="tableData"></dynamic-table>
+        <el-button class="mingxiBtn" slot="reference" id="mingxiBtn">鏄庣粏琛�</el-button>
+      </el-popover>
     </div>
     <div class="echarts-chart">
       <div ref="wastegashour"></div>
@@ -31,6 +38,7 @@
 <script>
 import Scheduleof from '@components/base-page/WasteGas/Scheduleof'
 import PublicDataStandard from '../PublicDataStandard'
+import DynamicTable from '../../../views/popup/DynamicHeader/DynamicTable' // 澶氱骇琛ㄥご琛ㄦ牸
 
 import 'dayjs/locale/es'
 import dayjs from 'dayjs'
@@ -41,69 +49,149 @@
   components: {
     // PublicDetailedList
     PublicDataStandard,
-    Scheduleof
+    Scheduleof,
+    DynamicTable
+  },
+  props: {
+    OnlineMonEmissPointId: {
+      type: Number
+    }
   },
   data () {
     return {
       // tab鏍忎紶閫掓帴鏀舵暟鎹�
-      dataStandard: [
-        {
-          current: {
-            name: '姘哀鍖栫墿',
-            val: 29.93
-          },
-          standard: {
-            name: '鏍囧噯',
-            val: 100
-          }
-        },
-        {
-          current: {
-            name: '浜屾哀鍖栫~',
-            val: 17.34
-          },
-          standard: {
-            name: '鏍囧噯',
-            val: 50
-          }
-        },
-        {
-          current: {
-            name: '鐑熷皹',
-            val: 6.93
-          },
-          standard: {
-            name: '鏍囧噯',
-            val: 30
-          }
-        },
-        {
-          current: {
-            name: '搴熸皵娴侀噺',
-            val: 120
-          },
-          standard: {
-            name: '',
-            val: null
-          }
-        }],
+      dataStandard: [],
       formData: {
         region: '25',
         regionList: [25, 50, 75, 100],
         timeStart: dayjs().subtract(24, 'hours').format('YYYY-MM-DD HH:mm:ss'),
         timeEnd: dayjs().format('YYYY-MM-DD HH:mm:ss')
       },
+      tableData: [],
       showSchedule: false,
       dataType: 2,
       myChart: null,
       exhbzz: null,
       jcdID: 1,
-      exhbzzList: []
+      exhbzzList: [],
+      // 閰嶇疆鏄庣粏琛ㄨ〃澶�
+      tableConfig: [
+        {
+          id: 100,
+          label: '鎺掓斁鐐�',
+          prop: 'OnLineMonEmissPointName'
+        },
+        {
+          id: 200,
+          label: '鐩戞祴鏃堕棿',
+          prop: 'MonTimeStr'
+        },
+        {
+          id: 300,
+          label: '姘哀鍖栫墿',
+          prop: 'PoltmtrlName',
+          children: [
+            {
+              id: 310,
+              label: '娴撳害锛坢g/m鲁锛�',
+              prop: '姘哀鍖栫墿_OrglQty'
+            },
+            {
+              id: 320,
+              label: '鎶樼畻鍊硷紙mg/m鲁锛夛級',
+              prop: '姘哀鍖栫墿_ConvertQty'
+            },
+            {
+              id: 330,
+              label: '鏍囧噯鍊硷紙mg/m鲁锛�',
+              prop: '姘哀鍖栫墿_StdValue'
+            },
+            {
+              id: 340,
+              label: '鎺掓斁閲忥紙kg/h锛�',
+              prop: '姘哀鍖栫墿_EmissQty'
+            }
+          ]
+        },
+        {
+          id: 400,
+          label: '浜屾哀鍖栫~',
+          prop: 'PoltmtrlName',
+          children: [
+            {
+              id: 410,
+              label: '娴撳害锛坢g/m鲁锛�',
+              prop: '姘哀鍖栫墿_OrglQty'
+            },
+            {
+              id: 420,
+              label: '鎶樼畻鍊硷紙mg/m鲁锛夛級',
+              prop: '姘哀鍖栫墿_ConvertQty'
+            },
+            {
+              id: 430,
+              label: '鏍囧噯鍊硷紙mg/m鲁锛�',
+              prop: '姘哀鍖栫墿_StdValue'
+            },
+            {
+              id: 440,
+              label: '鎺掓斁閲忥紙kg/h锛�',
+              prop: '姘哀鍖栫墿_EmissQty'
+            }
+          ]
+        },
+        {
+          id: 500,
+          label: '鐑熷皹',
+          prop: 'PoltmtrlName',
+          children: [
+            {
+              id: 510,
+              label: '娴撳害锛坢g/m鲁锛�',
+              prop: '姘哀鍖栫墿_OrglQty'
+            },
+            {
+              id: 520,
+              label: '鎶樼畻鍊硷紙mg/m鲁锛夛級',
+              prop: '姘哀鍖栫墿_ConvertQty'
+            },
+            {
+              id: 530,
+              label: '鏍囧噯鍊硷紙mg/m鲁锛�',
+              prop: '姘哀鍖栫墿_StdValue'
+            },
+            {
+              id: 540,
+              label: '鎺掓斁閲忥紙kg/h锛�',
+              prop: '姘哀鍖栫墿_EmissQty'
+            }
+          ]
+        },
+        {
+          id: 600,
+          label: '搴熸皵娴侀噺',
+          prop: '',
+          children: [
+            {
+              id: 610,
+              label: '姘旈噺锛坢鲁/h锛�',
+              prop: '搴熸皵娴侀噺_MonQty'
+            }
+          ]
+        }
+      ]
     }
   },
   mounted () {
     this.$nextTick(() => {
-      this.initnData()
+      if (!this.OnlineMonEmissPointId) {
+        document.querySelector('#waste-gas-hours-chart-box').innerHTML = '娌℃湁鏌ヨ鍒版暟鎹紒'
+        document.querySelector('#waste-gas-hours-chart-box').style.textAlign = 'center'
+        document.querySelector('#waste-gas-hours-chart-box').style.height = '2.02rem'
+        document.querySelector('#waste-gas-hours-chart-box').style.lineHeight = '1rem'
+      } else {
+        this.initnData()
+      }
     })
   },
   methods: {
@@ -116,8 +204,11 @@
     },
     async initnData () {
       const data = {
-        onLineMonEmissPointId: 23,
-        monItemId: 28,
+        poltSourceId: '',
+        poltMtrlId: '',
+        emissTypeId: '',
+        onLineMonEmissPointId: this.OnlineMonEmissPointId,
+        monItemId: '28,31,226',
         beginTime: this.formData.timeStart,
         endTime: this.formData.timeEnd,
         dataType: this.dataType
@@ -128,6 +219,8 @@
     },
     get24HourDate (res) {
       if (res.length > 0) {
+        this.dataStandard = []
+        this.tableData = this.analysisResult(res) // 灏忔椂鏄庣粏琛ㄨВ鏋愮粨鏋�
         // 澶勭悊鏁版嵁寮�濮�
         const d = res
         const nameList = [] // 瀛樻斁鍥句緥
@@ -210,21 +303,41 @@
 
           if (nameList.length === 0) {
             nameList.push(d[i].PoltmtrlName.trim())
+            this.dataStandard.push({
+              current: {
+                name: d[i].PoltmtrlName.trim(),
+                val: 29.93
+              },
+              standard: {
+                name: '鏍囧噯',
+                val: 100
+              }
+            })
             dateList.push(strDate)
             if ((d[i].PoltmtrlName === '搴熸皵娴侀噺' || d[i].PoltmtrlName === '搴熸皵') && d[i].MonQty < 0) {
               d[i].MonQty = 0
             }
-            data.push(d[i].MonQty)
+            if (d[i].MonQty !== null)data.push(d[i].MonQty)
             bzh.push(d[i].StdValue)
           } else if (nameList.indexOf(d[i].PoltmtrlName.trim()) < 0) {
             nameList.push(d[i].PoltmtrlName)
+            this.dataStandard.push({
+              current: {
+                name: d[i].PoltmtrlName.trim(),
+                val: 29.93
+              },
+              standard: {
+                name: '鏍囧噯',
+                val: 100
+              }
+            })
             bzh.push(d[i].StdValue)
             dataList.push(data)
             data = []
             if ((d[i].PoltmtrlName === '搴熸皵娴侀噺' || d[i].PoltmtrlName === '搴熸皵') && d[i].MonQty < 0) {
               d[i].MonQty = 0
             }
-            data.push(d[i].MonQty)
+            if (d[i].MonQty !== null)data.push(d[i].MonQty)
           } else if (i === d.length - 1) {
             if ((d[i].PoltmtrlName === '搴熸皵娴侀噺' || d[i].PoltmtrlName === '搴熸皵') && d[i].MonQty < 0) {
               d[i].MonQty = 0
@@ -238,7 +351,7 @@
             if ((d[i].PoltmtrlName === '搴熸皵娴侀噺' || d[i].PoltmtrlName === '搴熸皵') && d[i].MonQty < 0) {
               d[i].MonQty = 0
             }
-            data.push(d[i].MonQty)
+            if (d[i].MonQty !== null)data.push(d[i].MonQty)
           }
         }
         // 澶勭悊鏁版嵁缁撴潫
@@ -337,7 +450,10 @@
         }
 
         const yname = '娴撳害(mg/m鲁)'
-
+        for (var t = 0; t < this.dataStandard.length; t++) {
+          this.dataStandard[t].current.val = ydatas[t].data[ydatas[t].data.length - 1].toFixed(2)
+          this.dataStandard[t].standard.val = ydatas[t].bzz
+        }
         this.CreateChart(id, title, legend, xdata, ydatas, yname, this.jcdID, this.datatype)
       }
     },
@@ -525,10 +641,12 @@
             saveAsImage: {}
           }
         },
-        grid: { // 缃戞牸
+        grid: {
+          // 涓庣粷瀵瑰畾浣嶇浉浼硷紝top锛宭eft锛宺ight锛宐ottom 璁惧畾鏄牴鎹笂绾х洅瀛愬楂樻潵璁$畻
           top: '20%',
-          left: '15%'
-          // containLabel: true
+          left: '6%',
+          right: '8%',
+          bottom: '12%'
         },
         legend: { // 鍥句緥
           data: legend
@@ -646,10 +764,90 @@
         series: serLists
       }
       this.myChart.setOption(option)
+    },
+    analysisResult (result) {
+      // 澶勭悊琛ㄦ牸澶�
+      const json = {}
+      const arr = []
+      // 澶勭悊琛ㄦ牸鍐呭
+      const bodyDataList = []
+      const dataMap = {}
+      for (let i = 0; i < result.length; i++) {
+        json[result[i].PoltmtrlName] = result[i].PoltmtrlName
+        const rgdata = result[i]
+        const timeTag = rgdata.MonTimeStr
+        if (!dataMap[timeTag]) {
+          dataMap[timeTag] = { MonTimeStr: '' + rgdata.MonTimeStr }
+        }
+
+        // 寰�鏁版嵁涓坊鍔犲睘鎬ф暟鎹�
+        const el = dataMap[timeTag]
+        el.OnLineMonEmissPointName = rgdata.OnLineMonEmissPointName
+        el[rgdata.PoltmtrlName + '_OrglQty'] = rgdata.OrglQty ? rgdata.OrglQty.toFixed(2) : '--' // 鍘熷鍊�
+        el[rgdata.PoltmtrlName + '_ConvertQty'] = rgdata.ConvertQty ? rgdata.ConvertQty.toFixed(2) : '--' // 鎶樻爣閲�
+        el[rgdata.PoltmtrlName + '_StdValue'] = rgdata.StdValue ? rgdata.StdValue.toFixed(2) : '--' // 鏍囧噯鍊�
+        el[rgdata.PoltmtrlName + '_EmissQty'] = rgdata.EmissQty ? rgdata.EmissQty.toFixed(2) : '--' // 鎺掓斁閲�
+        el[rgdata.PoltmtrlName + '_MonQty'] = rgdata.MonQty ? rgdata.MonQty.toFixed(2) : '--' // 鐩戞祴閲�
+      }
+      let FQLLtemp = ''
+      let FQWDtemp = ''
+      let FQYHLtemp = ''
+      for (var key in json) {
+        if (key === '搴熸皵娴侀噺' || key === '搴熸皵') {
+          FQLLtemp = key
+        } else if (key === '娓╁害') {
+          FQWDtemp = key
+        } else if (key === '姘у惈閲�') {
+          FQYHLtemp = key
+        } else {
+          arr.push(key)
+        }
+      }
+      if (FQLLtemp != null) {
+        arr.push(FQLLtemp)
+      }
+      if (FQWDtemp != null) {
+        arr.push(FQWDtemp)
+      }
+      if (FQYHLtemp != null) {
+        arr.push(FQYHLtemp)
+      }
+      for (var p in dataMap) {
+        bodyDataList.push(dataMap[p])
+      }
+      return bodyDataList
     }
   }
 }
 </script>
 
-<style scoped lang="less">
+<style lang="less">
+.waste-gas-hours-chart-box .echarts-form .el-input__inner {
+  background-color: rgba(0, 0, 0, 0);
+  height: .13rem;
+  border-color: #336fa4;
+}
+.waste-gas-hours-chart-box .echarts-form{
+  margin-top: 1px
+}
+.waste-gas-hours-chart-box .echarts-form .el-input__icon{
+  height: .13rem;
+  top: -.02rem;
+  right: -0.03rem;
+  position: absolute;
+  color: #00d0f9;
+}
+.waste-gas-hours-chart-box .echarts-form .selectBox .el-input__icon:last-child{
+  top: .02rem;
+}
+.waste-gas-hours-chart-box .echarts-form .selectBox .is-reverse{
+  top: -.02rem !important;
+}
+.waste-gas-hours-chart-box .echarts-form .el-button{
+  background-color: rgba(0, 0, 0, 0);
+  height: .13rem;
+}
+.waste-gas-hours-chart-box .echarts-form .mingxiBtn{
+  margin-left: -.02rem;
+}
 </style>

--
Gitblit v1.8.0