| | |
| | | -ms-overflow-style: none; |
| | | font-size: 12px; |
| | | } |
| | | |
| | | .popoverBoxStyle{ |
| | | border: 0.00521rem solid #00fff6; |
| | | box-shadow: 0 0 0.03rem #00fff6; |
| | | background-color: rgba(0, 16, 30, 0.7) !important; |
| | | } |
| | | </style> |
| | |
| | | <!-- <span class="grid-content">废气流量 : <i style="color: #e8ee0b">120343.18</i></span>--> |
| | | <span class="grid-content" v-for="item in dataStandard" :key="item.current.name">{{ item.current.name }} : |
| | | <i style="color: #e8ee0b">{{ item.current.val }}</i> {{ |
| | | item.standard.name ? item.standard.name + ':' : '' |
| | | item.standard.name && item.current.name.indexOf('流量') === -1 ? item.standard.name + ':' : '' |
| | | }} <i style="color: #fff">{{ item.standard.val }}</i></span> |
| | | </div> |
| | | </div> |
| | |
| | | <script> |
| | | export default { |
| | | name: 'PublicDataStandard', |
| | | watch: { |
| | | dataStandard (val, oldVal) { |
| | | this.dataStandard = val |
| | | } |
| | | }, |
| | | props: { |
| | | dataStandard: { |
| | | type: Array, |
| | |
| | | .animation { |
| | | .information { |
| | | .grid-content { |
| | | padding: 0.02rem; |
| | | background-color: #2e4967; |
| | | padding: 0.03rem 0.08rem 0.03rem 0.08rem; |
| | | text-align: center; |
| | | border-radius: 0.02rem; |
| | | line-height: 0.15rem; |
| | | margin: 0 0.05rem; |
| | | margin: 0 0.03rem; |
| | | box-shadow: 0 0 10px rgba(129,211,248,.35) inset; |
| | | } |
| | | } |
| | | } |
| | |
| | | <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>明细表</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 slot="reference">明细表</el-button> |
| | | </el-popover> |
| | | </div> |
| | | <div class="echarts-chart"> |
| | | <div ref="echartsDay"></div> |
| | |
| | | import dayjs from 'dayjs' |
| | | import PublicDataStandard from '../PublicDataStandard' |
| | | import mapApi from '@/api/mapApi' |
| | | import DynamicTable from '../../../views/popup/DynamicHeader/DynamicTable' // 多级表头 |
| | | |
| | | export default { |
| | | name: 'WasteWaterDayChart', |
| | | components: { |
| | | PublicDataStandard |
| | | PublicDataStandard, |
| | | DynamicTable |
| | | }, |
| | | 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: [], |
| | | tableData: null, |
| | | formData: { |
| | | region: '25', |
| | | regionList: [25, 50, 75, 100], |
| | |
| | | dataType: 1, |
| | | jcdID: 1, |
| | | bzz: null, |
| | | bzzList: [] |
| | | bzzList: [], |
| | | // 表头数据 |
| | | tableConfig: [ |
| | | { |
| | | id: 100, |
| | | label: '排放点', |
| | | prop: 'OnLineMonEmissPointName' |
| | | }, |
| | | { |
| | | id: 200, |
| | | label: '监测时间', |
| | | prop: 'MonTimeStr' |
| | | }, |
| | | { |
| | | id: 300, |
| | | label: 'COD', |
| | | prop: 'PoltmtrlName', |
| | | children: [ |
| | | { |
| | | id: 310, |
| | | label: '实测排放量(kg/h)', |
| | | prop: 'COD_EmissQty' |
| | | }, |
| | | { |
| | | id: 320, |
| | | label: '实测浓度(mg/l)', |
| | | prop: 'COD_MonQty' |
| | | }, |
| | | { |
| | | id: 330, |
| | | label: '标准值(mg/l)', |
| | | prop: 'COD_StdValue' |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | id: 400, |
| | | label: '氨氮', |
| | | prop: 'PoltmtrlName', |
| | | children: [ |
| | | { |
| | | id: 410, |
| | | label: '实测排放量(kg/h)', |
| | | prop: '氨氮_EmissQty' |
| | | }, |
| | | { |
| | | id: 420, |
| | | label: '实测浓度(mg/l)', |
| | | prop: '氨氮_MonQty' |
| | | }, |
| | | { |
| | | id: 430, |
| | | label: '标准值(mg/l)', |
| | | prop: '氨氮_StdValue' |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | id: 500, |
| | | label: 'PH', |
| | | prop: 'PoltmtrlName', |
| | | children: [ |
| | | { |
| | | id: 510, |
| | | label: '实测排放量(kg/h)', |
| | | prop: 'pH_EmissQty' |
| | | }, |
| | | { |
| | | id: 520, |
| | | label: '实测浓度(mg/l)', |
| | | prop: 'pH_MonQty' |
| | | }, |
| | | { |
| | | id: 530, |
| | | label: '标准值(mg/l)', |
| | | prop: 'pH_StdValue' |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | id: 600, |
| | | label: '废水流量', |
| | | prop: '', |
| | | children: [ |
| | | { |
| | | id: 610, |
| | | label: '实测流量(m³/h)', |
| | | prop: '废水流量_MonQty' |
| | | } |
| | | ] |
| | | } |
| | | ] |
| | | } |
| | | }, |
| | | mounted () { |
| | |
| | | poltMtrlId: '', |
| | | emissTypeId: '', |
| | | onLineMonEmissPointId: 23, |
| | | monItemId: 28, |
| | | monItemId: '28,31,35', // 监测项 COD、氨氮、PH |
| | | beginTime: this.formData.timeStart, |
| | | endTime: this.formData.timeEnd, |
| | | dataType: this.dataType |
| | |
| | | }, |
| | | get24HourDate (res) { |
| | | if (res.length > 0) { |
| | | this.dataStandard = [] |
| | | this.tableData = this.analysisResult(res) // 小时明细表解析结果 |
| | | // 处理数据开始 |
| | | const d = res |
| | | const nameList = [] // 存放图例 |
| | |
| | | if (nameList.length === 0) { |
| | | nameList.push(d[i].PoltmtrlName.trim()) |
| | | dateList.push(strDate) |
| | | |
| | | this.dataStandard.push({ |
| | | current: { |
| | | name: d[i].PoltmtrlName.trim(), |
| | | val: '' |
| | | }, |
| | | standard: { |
| | | name: '标准', |
| | | val: '' |
| | | } |
| | | }) |
| | | bzh.push(d[i].StdValue) |
| | | data = { |
| | | name: d[i].PoltmtrlName.trim(), |
| | | data: [d[i].MonQty] |
| | | data: [] |
| | | } |
| | | if (d[i].MonQty !== null) { |
| | | data.data.push(d[i].MonQty) |
| | | } |
| | | dataList.push(data) |
| | | } else if (nameList.indexOf(d[i].PoltmtrlName.trim()) < 0) { |
| | | nameList.push(d[i].PoltmtrlName) |
| | | bzh.push(d[i].StdValue) |
| | | this.dataStandard.push({ |
| | | current: { |
| | | name: d[i].PoltmtrlName.trim(), |
| | | val: '' |
| | | }, |
| | | standard: { |
| | | name: '标准', |
| | | val: '' |
| | | } |
| | | }) |
| | | data = { |
| | | name: d[i].PoltmtrlName.trim(), |
| | | data: [d[i].MonQty] |
| | | data: [] |
| | | } |
| | | if (d[i].MonQty !== null) { |
| | | data.data.push(d[i].MonQty) |
| | | } |
| | | dataList.push(data) |
| | | } else { |
| | |
| | | } |
| | | for (let j = 0; j < dataList.length; j++) { |
| | | if (d[i].PoltmtrlName.trim() === dataList[j].name) { |
| | | dataList[j].data.push(d[i].MonQty) |
| | | if (d[i].MonQty !== null)dataList[j].data.push(d[i].MonQty) |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | ydatas.push(ydata) |
| | | } |
| | | |
| | | 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 |
| | | } |
| | | const yname = '浓度(mg/l)' |
| | | this.effChartShow(legend, xdata, ydatas, yname, this.jcdID, this.datatype) |
| | | } |
| | |
| | | biaozhuiz = bzzList[i].bzhui |
| | | } |
| | | } |
| | | if (c.value[1] > biaozhuiz) { |
| | | return zdcbcolor |
| | | } else if (c.value[1] > biaozhuiz * 0.9) { |
| | | return '#FFA500' |
| | | } else { |
| | | return '#33c95f' |
| | | if (c.value) { |
| | | if (c.value[1] > biaozhuiz) { |
| | | return zdcbcolor |
| | | } else if (c.value[1] > biaozhuiz * 0.9) { |
| | | return '#FFA500' |
| | | } else { |
| | | return '#33c95f' |
| | | } |
| | | } |
| | | }, |
| | | lineStyle: { // 折线的颜色 |
| | |
| | | } |
| | | this.chart.setOption(option) |
| | | window.onresize = this.chart.resize |
| | | }, |
| | | 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 + '_EmissQty'] = rgdata.EmissQty ? rgdata.EmissQty.toFixed(2) : '--' |
| | | el[rgdata.PoltmtrlName + '_MonQty'] = rgdata.MonQty ? rgdata.MonQty.toFixed(2) : '--' |
| | | el[rgdata.PoltmtrlName + '_StdValue'] = rgdata.StdValue ? rgdata.StdValue.toFixed(2) : '--' |
| | | } |
| | | let FSLLtemp = null |
| | | for (var key in json) { |
| | | if (key === '废水流量' || key === '废水') { |
| | | FSLLtemp = key |
| | | } else { |
| | | arr.push(key) |
| | | } |
| | | } |
| | | if (FSLLtemp != null) { |
| | | arr.push(FSLLtemp) |
| | | } |
| | | for (var p in dataMap) { |
| | | bodyDataList.push(dataMap[p]) |
| | | } |
| | | return bodyDataList |
| | | } |
| | | } |
| | | } |
| | |
| | | <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>明细表</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 slot="reference">明细表</el-button> |
| | | </el-popover> |
| | | </div> |
| | | <div class="echarts-chart"> |
| | | <div ref="echartsHour"></div> |
| | |
| | | import PublicDataStandard from '../PublicDataStandard' |
| | | import dayjs from 'dayjs' |
| | | import mapApi from '../../../api/mapApi' |
| | | import DynamicTable from '../../../views/popup/DynamicHeader/DynamicTable' // 多级表头 |
| | | |
| | | export default { |
| | | name: 'WasteWaterHoursChart', |
| | | components: { |
| | | PublicDataStandard |
| | | PublicDataStandard, |
| | | DynamicTable |
| | | }, |
| | | 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: 123 |
| | | }, |
| | | standard: { |
| | | name: '', |
| | | val: null |
| | | } |
| | | }], |
| | | dataStandard: [], |
| | | popUpName: '', |
| | | tableData: null, |
| | | mingxiBoxHtml: '', |
| | | formData: { |
| | | region: '25', |
| | | regionList: [25, 50, 75, 100], |
| | |
| | | dataType: 2, |
| | | bzz: null, |
| | | bzzList: [], |
| | | bz: '' |
| | | bz: '', |
| | | // 表头数据 |
| | | tableConfig: [ |
| | | { |
| | | id: 100, |
| | | label: '排放点', |
| | | prop: 'OnLineMonEmissPointName' |
| | | }, |
| | | { |
| | | id: 200, |
| | | label: '监测时间', |
| | | prop: 'MonTimeStr' |
| | | }, |
| | | { |
| | | id: 300, |
| | | label: 'COD', |
| | | prop: 'PoltmtrlName', |
| | | children: [ |
| | | { |
| | | id: 310, |
| | | label: '实测排放量(kg/h)', |
| | | prop: 'COD_EmissQty' |
| | | }, |
| | | { |
| | | id: 320, |
| | | label: '实测浓度(mg/l)', |
| | | prop: 'COD_MonQty' |
| | | }, |
| | | { |
| | | id: 330, |
| | | label: '标准值(mg/l)', |
| | | prop: 'COD_StdValue' |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | id: 400, |
| | | label: '氨氮', |
| | | prop: 'PoltmtrlName', |
| | | children: [ |
| | | { |
| | | id: 410, |
| | | label: '实测排放量(kg/h)', |
| | | prop: '氨氮_EmissQty' |
| | | }, |
| | | { |
| | | id: 420, |
| | | label: '实测浓度(mg/l)', |
| | | prop: '氨氮_MonQty' |
| | | }, |
| | | { |
| | | id: 430, |
| | | label: '标准值(mg/l)', |
| | | prop: '氨氮_StdValue' |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | id: 500, |
| | | label: 'PH', |
| | | prop: 'PoltmtrlName', |
| | | children: [ |
| | | { |
| | | id: 510, |
| | | label: '实测排放量(kg/h)', |
| | | prop: 'pH_EmissQty' |
| | | }, |
| | | { |
| | | id: 520, |
| | | label: '实测浓度(mg/l)', |
| | | prop: 'pH_MonQty' |
| | | }, |
| | | { |
| | | id: 530, |
| | | label: '标准值(mg/l)', |
| | | prop: 'pH_StdValue' |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | id: 600, |
| | | label: '废水流量', |
| | | prop: '', |
| | | children: [ |
| | | { |
| | | id: 610, |
| | | label: '实测流量(m³/h)', |
| | | prop: '废水流量_MonQty' |
| | | } |
| | | ] |
| | | } |
| | | ] |
| | | } |
| | | }, |
| | | mounted () { |
| | |
| | | poltMtrlId: '', |
| | | emissTypeId: '', |
| | | onLineMonEmissPointId: 23, |
| | | monItemId: 28, |
| | | monItemId: '28,31,35', // 监测项 COD、氨氮、PH |
| | | beginTime: this.formData.startTime, |
| | | endTime: this.formData.endTime, |
| | | dataType: this.dataType |
| | | } |
| | | const result = (await mapApi.getQueryOnlineMonData(data)).Result.DataInfo |
| | | // console.log(result) |
| | | this.popUpName = result[0].OnLineMonEmissPointName |
| | | this.get24HourDate(result) |
| | | }, |
| | | // 绘制小时数据折线图 |
| | | get24HourDate (result) { |
| | | if (result.length > 0) { |
| | | this.dataStandard = [] |
| | | this.tableData = this.analysisResult(result) // 小时明细表解析结果 |
| | | console.log(this.tableData) |
| | | const d = result |
| | | const nameList = [] // 存放图例 |
| | | const dateList = [] // 存放时间 |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | 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 |
| | |
| | | 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) |
| | | } |
| | | } |
| | | |
| | | const newList = [] |
| | | |
| | | for (let i = 0; i < dataList.length; i++) { |
| | |
| | | // console.log(ydatas) |
| | | |
| | | const yname = '浓度(mg/l)' |
| | | |
| | | 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.effChartShow(legend, xdata, ydatas, yname, this.jcdID, this.datatype) |
| | | } |
| | | }, |
| | |
| | | } |
| | | this.chart.setOption(option) |
| | | window.onresize = this.chart.resize |
| | | }, |
| | | 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 + '_EmissQty'] = rgdata.EmissQty ? rgdata.EmissQty.toFixed(2) : '--' |
| | | el[rgdata.PoltmtrlName + '_MonQty'] = rgdata.MonQty ? rgdata.MonQty.toFixed(2) : '--' |
| | | el[rgdata.PoltmtrlName + '_StdValue'] = rgdata.StdValue ? rgdata.StdValue.toFixed(2) : '--' |
| | | } |
| | | let FSLLtemp = null |
| | | for (var key in json) { |
| | | if (key === '废水流量' || key === '废水') { |
| | | FSLLtemp = key |
| | | } else { |
| | | arr.push(key) |
| | | } |
| | | } |
| | | if (FSLLtemp != null) { |
| | | arr.push(FSLLtemp) |
| | | } |
| | | for (var p in dataMap) { |
| | | bodyDataList.push(dataMap[p]) |
| | | } |
| | | return bodyDataList |
| | | } |
| | | } |
| | | } |
| | |
| | | .hover:hover { |
| | | cursor: pointer; |
| | | padding: 5px; |
| | | border: 1px solid #5F9EA0; |
| | | border-radius: 4px; |
| | | text-align: center; |
| | | color: #F0FFFF; |