From dd087d8c1b1406d8438d80e02a71cc77595e7e10 Mon Sep 17 00:00:00 2001
From: seatonwan9 <seatonwan9@163.com>
Date: 星期一, 31 五月 2021 13:34:26 +0800
Subject: [PATCH] 治理设施查询
---
src/components/base-page/GovernEquipment/WasteWaterRealChart.vue | 643 +++++++++++++
src/components/panel/RightSearchPanel.vue | 6
src/components/LayerController/logic/GovernEquipment.js | 4
src/conf/Topic.js | 2
src/components/base-page/GovernEquipment/WasteWaterIndex.vue | 208 ++++
src/components/base-page/GovernEquipment/WasteWaterHoursChart.vue | 736 +++++++++++++++
/dev/null | 233 ----
src/components/panel/topicSearch/EnvRiskSearch.vue | 10
src/components/panel/topicSearch/PollutionSourceSearch.vue | 130 ++
src/components/base-page/GovernEquipment/Detail.vue | 113 ++
src/components/base-page/GovernEquipment/WasteWaterDayChart.vue | 718 ++++++++++++++
src/components/base-page/GovernEquipment/PublicTabs.vue | 117 ++
public/assets/governEquipment.json | 2
13 files changed, 2,678 insertions(+), 244 deletions(-)
diff --git a/public/assets/governEquipment.json b/public/assets/governEquipment.json
index 7e47157..8d4c015 100644
--- a/public/assets/governEquipment.json
+++ b/public/assets/governEquipment.json
@@ -20,7 +20,7 @@
"status": 1
},
{
- "no": 1,
+ "no": 2,
"company": "澶╂触鐭冲寲",
"plate": "鐐兼补鏉垮潡",
"unitName": "鍖栧伐閮�",
diff --git a/src/components/LayerController/logic/GovernEquipment.js b/src/components/LayerController/logic/GovernEquipment.js
index 87e7223..fc2b021 100644
--- a/src/components/LayerController/logic/GovernEquipment.js
+++ b/src/components/LayerController/logic/GovernEquipment.js
@@ -2,7 +2,7 @@
* 姹℃煋婧�
*/
// 淇℃伅缁勪欢
-const GovernEquipmentIndex = require('../../base-page/RiskSource/RiskSourceIndex.vue').default
+const GovernEquipmentIndex = require('../../base-page/GovernEquipment/WasteWaterIndex').default
// 浣跨敤灏佽鏂规硶
const AnimalService = require('../service/AnimalService').default
// 璇锋眰鎺ュ彛鏁版嵁
@@ -63,7 +63,7 @@
comp: GovernEquipmentIndex, // 缁勪欢
parent: this, // 鐖剁粍浠�
data: { // 浼犻�掔殑鍙傛暟
- riskSourceId: e.layer.options.totransferData.no
+ governId: e.layer.options.totransferData.no
}
},
title: title // 鏍囬
diff --git a/src/components/base-page/GovernEquipment/Detail.vue b/src/components/base-page/GovernEquipment/Detail.vue
new file mode 100644
index 0000000..37e8999
--- /dev/null
+++ b/src/components/base-page/GovernEquipment/Detail.vue
@@ -0,0 +1,113 @@
+<template>
+ <div id="wasteWaterDetailBox" class="detail" style="width: 5rem">
+ <el-table :data="tableData" style="width: 100%;" height="2.07rem">
+ <el-table-column prop="LabMonTime" label="妫�娴嬫椂闂�"></el-table-column>
+ <el-table-column label="COD">
+ <el-table-column prop="LabMonValue" label="鐩戞祴鍊�" width="80"></el-table-column>
+ <el-table-column prop="LabMonValue" label="鏍囧噯鍊�" width="80"></el-table-column>
+ </el-table-column>
+ <el-table-column label="姘ㄦ爱">
+ <el-table-column prop="LabMonValue" label="鐩戞祴鍊�" width="80"></el-table-column>
+ <el-table-column prop="LabMonValue" label="鏍囧噯鍊�" width="80"></el-table-column>
+ </el-table-column>
+ <el-table-column label="鎬荤7">
+ <el-table-column prop="LabMonValue" label="鐩戞祴鍊�" width="80"></el-table-column>
+ <el-table-column prop="LabMonValue" label="鏍囧噯鍊�" width="80"></el-table-column>
+ </el-table-column>
+ <el-table-column label="鎬绘爱">
+ <el-table-column prop="LabMonValue" label="鐩戞祴鍊�" width="80"></el-table-column>
+ <el-table-column prop="LabMonValue" label="鏍囧噯鍊�" width="80"></el-table-column>
+ </el-table-column>
+ <!-- <el-table-column-->
+ <!-- fixed="right"-->
+ <!-- label="鑻�">-->
+ <!-- <el-table-column-->
+ <!-- fixed="right"-->
+ <!-- prop="LabMonValue"-->
+ <!-- label="鐩戞祴鍊�">-->
+ <!-- </el-table-column>-->
+ <!-- <el-table-column-->
+ <!-- fixed="right"-->
+ <!-- prop="StdValue"-->
+ <!-- label="鏍囧噯鍊�">-->
+ <!-- </el-table-column>-->
+ <!-- </el-table-column>-->
+ </el-table>
+ </div>
+</template>
+
+<script>
+
+// import PublicDataStandard from '../PublicDataStandard'
+// import mapApi from '@/api/mapApi'
+import mapApi from '../../../api/mapApi'
+import 'dayjs/locale/es'
+import dayjs from 'dayjs'
+
+export default {
+ name: 'Detail',
+ components: {
+ // PublicDataStandard
+ },
+ data () {
+ return {
+ tableData: [],
+ timeEnd: dayjs().format('YYYY-MM-DD HH:mm:ss'),
+ timeStart: dayjs().subtract(3, 'minute').format('YYYY-MM-DD HH:mm:ss')
+ }
+ },
+ props: {
+ LabMonPointId: {
+ type: Number
+ }
+ },
+ mounted () {
+ this.$nextTick(() => {
+ this.initdetail()
+ })
+ },
+ methods: {
+ async initdetail () {
+ const timeEnd = dayjs().format('YYYY-MM-DD HH:mm:ss')
+ var timeStart = null
+ var oDate = new Date()
+ var year = oDate.getFullYear()
+ if ((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0) { // 鍒ゆ柇鏄钩骞磋繕鏄棸骞�
+ timeStart = dayjs().subtract(366, 'day').format('YYYY-MM-DD HH:mm:ss')
+ } else {
+ timeStart = dayjs().subtract(365, 'day').format('YYYY-MM-DD HH:mm:ss')
+ }
+ const data = {
+ companyId: 3900100145,
+ companyCode: '',
+ poltSourceId: '',
+ labMonPointId: this.LabMonPointId ? this.LabMonPointId : '',
+ poltMtrlId: '',
+ monItemId: '28,31,35',
+ emissTypeId: '',
+ beginTime: timeStart,
+ endTime: timeEnd
+ }
+ const result = (await mapApi.getQueryLabMonData(data)).Result.DataInfo
+ // console.log(result)
+ this.tableData = result
+ for (let i = 0; i < result.length; i++) {
+ if (result[i].LabMonValue === '0') {
+ return '-'
+ }
+ }
+ }
+ }
+}
+
+</script>
+
+<style scoped>
+/deep/ .el-table--border::after, .el-table--group::after, .el-table::before {
+ background: none;
+}
+
+/*/deep/ .el-table {*/
+/* border: none !important;*/
+/*}*/
+</style>
diff --git a/src/components/base-page/GovernEquipment/PublicTabs.vue b/src/components/base-page/GovernEquipment/PublicTabs.vue
new file mode 100644
index 0000000..1f08bb6
--- /dev/null
+++ b/src/components/base-page/GovernEquipment/PublicTabs.vue
@@ -0,0 +1,117 @@
+<template>
+ <div class="win">
+ <div class="border_corner border_corner_left_top"></div>
+ <div class="border_corner border_corner_right_top"></div>
+ <div class="border_corner border_corner_left_bottom"></div>
+ <div class="border_corner border_corner_right_bottom"></div>
+ <div class="main">
+ <div class="main-matter">
+ <div>
+ <ul>
+ <li><span class="namer">鐩戞祴鐐瑰悕绉帮細</span>{{ storagePlaceId.Name }}</li>
+ <li><span class="namer">鐢熶骇鍗曚綅锛�</span>{{ storagePlaceId.porltName }}</li>
+ <li><span class="namer">鎺掓斁绫诲瀷鍚嶇О锛�</span>{{ storagePlaceId.MonTypeName }}</li>
+ <li><span class="namer">鎺掓斁鍘诲悜锛�</span>{{ storagePlaceId.EmissDirecti }}</li>
+ <li><span class="namer">鎺у埗绾у埆鍚嶇О锛�</span>{{ storagePlaceId.ContrLevelShowName }}</li>
+ <li><span class="namer">鍐�/澶栨帓鏀惧彛锛�</span>{{ storagePlaceId.OrOutPortName }}</li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+</template>
+
+<script>
+// import mapApi from '../../../api/mapApi'
+
+export default {
+ name: 'WaterTabs',
+ props: ['storagePlaceId'],
+ data () {
+ return {}
+ }
+}
+</script>
+
+<style scoped lang="less">
+
+.win {
+ position: relative;
+ margin-bottom: 0.04rem;
+ background-color: @background-color;
+}
+
+.main {
+
+ .main-matter {
+ font-size: 0.06rem;
+ font-weight: normal;
+ padding: 0.04rem 0;
+ border: 1px solid #396d83;
+
+ ul {
+ //width: 100%;
+ //height: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: space-around;
+ flex-wrap: wrap;
+ margin-bottom: -0.04rem;
+
+ li {
+ margin-bottom: 0.04rem;
+ min-width: 31%;
+ box-shadow: 0 0 10px rgba(129,211,248,.35) inset;
+ color: #00fff6;
+ border-radius: 0.02rem;
+ font-size: 0.08rem;
+ line-height: 0.09rem;
+ padding: 0.03rem .5%;
+ .namer{
+ display: inline-block;
+ width: .6rem;
+ text-align: right;
+ }
+ }
+
+ }
+ }
+}
+
+.border_corner {
+ z-index: 999;
+ position: absolute;
+ width: 10px;
+ height: 10px;
+ background: rgba(0, 0, 0, 0);
+ border: 1px solid #47d5ea;
+}
+
+.border_corner_left_top {
+ top: 0;
+ left: 0;
+ border-right: none;
+ border-bottom: none;
+}
+
+.border_corner_right_top {
+ top: 0;
+ right: 0;
+ border-left: none;
+ border-bottom: none;
+}
+
+.border_corner_left_bottom {
+ bottom: 0;
+ left: 0;
+ border-right: none;
+ border-top: none;
+}
+
+.border_corner_right_bottom {
+ bottom: 0;
+ right: 0;
+ border-left: none;
+ border-top: none;
+}
+</style>
diff --git a/src/components/base-page/GovernEquipment/WasteWaterDayChart.vue b/src/components/base-page/GovernEquipment/WasteWaterDayChart.vue
new file mode 100644
index 0000000..dac9ad0
--- /dev/null
+++ b/src/components/base-page/GovernEquipment/WasteWaterDayChart.vue
@@ -0,0 +1,718 @@
+<template>
+ <div id="wasteWaterDayChartBox" class="echarts-box">
+ <div class="tab-scroll">
+ <PublicDataStandard :dataStandard="dataStandard"></PublicDataStandard>
+ </div>
+ <div class="echarts-form">
+ <span class="demonstration">寮�濮嬫椂闂达細</span>
+ <el-date-picker v-model="formData.timeStart" value-format="yyyy-MM-dd" type="datetime" size="mini"></el-date-picker>
+ <span class="demonstration">缁撴潫鏃堕棿锛�</span>
+ <el-date-picker v-model="formData.timeEnd" value-format="yyyy-MM-dd" type="datetime" size="mini"></el-date-picker>
+ <span class="demonstration">閲囨牱鐐规暟锛�</span>
+ <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-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" id="mingxiBtn">鏄庣粏琛�</el-button>
+ </el-popover>
+ </div>
+ <div class="echarts-chart">
+ <div ref="echartsDay"></div>
+ </div>
+ <span class="time-select">{{ formData.timeStart }}鏃モ�攞{ formData.timeEnd }}鏃�</span>
+ </div>
+</template>
+
+<script>
+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,
+ DynamicTable
+ },
+ data () {
+ return {
+ // tab鏍忎紶閫掓帴鏀舵暟鎹�
+ dataStandard: [],
+ tableData: null,
+ formData: {
+ region: '25',
+ regionList: [25, 50, 75, 100],
+ timeStart: dayjs().subtract(1, 'month').format('YYYY-MM-DD'),
+ timeEnd: dayjs().format('YYYY-MM-DD')
+ },
+ chart: null,
+ dataType: 1,
+ jcdID: 1,
+ bzz: null,
+ 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: '瀹炴祴娴撳害锛坢g/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: '瀹炴祴娴撳害锛坢g/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: '瀹炴祴娴撳害锛坢g/l锛�',
+ prop: 'pH_MonQty'
+ },
+ {
+ id: 530,
+ label: '鏍囧噯鍊硷紙mg/l锛�',
+ prop: 'pH_StdValue'
+ }
+ ]
+ },
+ {
+ id: 600,
+ label: '搴熸按娴侀噺',
+ prop: '',
+ children: [
+ {
+ id: 610,
+ label: '瀹炴祴娴侀噺锛坢鲁/h锛�',
+ prop: '搴熸按娴侀噺_MonQty'
+ }
+ ]
+ }
+ ]
+ }
+ },
+ props: {
+ OnlineMonEmissPointId: {
+ type: Number
+ }
+ },
+ mounted () {
+ this.$nextTick(() => {
+ this.draw24Chart()
+ })
+ },
+ methods: {
+ querySearch () {
+ this.draw24Chart()
+ },
+ async draw24Chart () {
+ const data = {
+ poltSourceId: '',
+ poltMtrlId: '',
+ emissTypeId: '',
+ onLineMonEmissPointId: 23,
+ monItemId: '28,31,35', // 鐩戞祴椤� COD銆佹皑姘�丳H
+ beginTime: this.formData.timeStart,
+ endTime: this.formData.timeEnd,
+ dataType: this.dataType
+ }
+ const result = (await mapApi.getQueryOnlineMonData(data)).Result.DataInfo
+ this.get24HourDate(result)
+ },
+ get24HourDate (res) {
+ if (res.length > 0) {
+ this.dataStandard = []
+ this.tableData = this.analysisResult(res) // 灏忔椂鏄庣粏琛ㄨВ鏋愮粨鏋�
+ // 澶勭悊鏁版嵁寮�濮�
+ const d = res
+ const nameList = [] // 瀛樻斁鍥句緥
+ const dateList = [] // 瀛樻斁鏃堕棿
+ const dataList = [] // 瀛樻斁鏁版嵁
+ let data
+ const bzh = []
+
+ for (let i = 0; i < d.length; i++) {
+ if (d[i].MonItemId === '29') {
+ continue
+ }
+ const MonTimeStr = d[i].MonTimeStr
+
+ const d1 = MonTimeStr.split('/')
+ // let d2=d1[2].split(' ');
+ let strDate
+ if (d1[1] > 9) {
+ // if(d2[0]>9){
+ strDate = MonTimeStr.substring(8, 10) + '鏃�'
+ // }else {
+ // strDate=MonTimeStr.substring(8,9)+"鏃�";
+ // }
+ } else {
+ // if(d2[0]>9){
+ strDate = MonTimeStr.substring(7, 9) + '鏃�'
+ // }else {
+ // strDate=MonTimeStr.substring(7,8)+"鏃�";
+ // }
+ }
+
+ 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: []
+ }
+ 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: []
+ }
+ if (d[i].MonQty !== null) {
+ data.data.push(d[i].MonQty)
+ }
+ dataList.push(data)
+ } else {
+ if (dateList.indexOf(strDate) < 0) {
+ dateList.push(strDate)
+ }
+ for (let j = 0; j < dataList.length; j++) {
+ if (d[i].PoltmtrlName.trim() === dataList[j].name) {
+ if (d[i].MonQty !== null)dataList[j].data.push(d[i].MonQty)
+ }
+ }
+ }
+ }
+ // 澶勭悊鏁版嵁缁撴潫
+
+ const lengList = []
+ let objTemp
+
+ for (let l = 0; l < nameList.length; l++) {
+ let obj
+ let iconurl
+ if (nameList[l] === 'COD') {
+ iconurl = 'image://../assets/imgs/legend/SO2.png'
+ } else if (nameList[l] === '姘ㄦ爱') {
+ iconurl = 'image://../assets/imgs/legend/NOX.png'
+ } else if (nameList[l] === '鎬荤7') {
+ iconurl = 'image://../assets/imgs/legend/YanChen.png'
+ } else if (nameList[l] === '鎬绘爱') {
+ iconurl = 'image://../assets/imgs/legend/zongdan.png'
+ } else {
+ iconurl = 'image://../assets/imgs/legend/VOCs.png'
+ }
+
+ if (nameList[l] === '搴熸按' || nameList[l] === '搴熸按娴侀噺') { // 灏嗗簾姘存祦閲忔帓鍒版暟缁勬渶鍚�
+ objTemp = {
+ name: nameList[l],
+ icon: iconurl,
+ textStyle: {
+ color: '#ccc'
+ },
+ itemWidth: 20,
+ itemHeight: 5
+ }
+ } else {
+ obj = {
+ name: nameList[l],
+ icon: iconurl,
+ textStyle: {
+ color: '#ccc'
+ },
+ itemWidth: 20,
+ itemHeight: 5
+ }
+ lengList.push(obj)
+ }
+
+ this.bzz = {
+ name: nameList[l],
+ bzhui: bzh[l]
+ }
+ this.bzzList.push(this.bzz)
+ }
+ lengList.push(objTemp)
+
+ const legend = lengList
+ const xdata = dateList.reverse()
+ const ydatas = []
+
+ for (let j = 0; j < nameList.length; j++) {
+ let zdcbcolor, zxcolor
+ if (nameList[j] === 'COD') {
+ zdcbcolor = 'red'
+ zxcolor = '#fff21c'
+ } else if (nameList[j] === '姘ㄦ爱') {
+ zdcbcolor = 'red'
+ zxcolor = '#00B0F0'
+ } else if (nameList[j] === '鎬荤7') {
+ zdcbcolor = 'red'
+ zxcolor = '#f48183'
+ } else if (nameList[j] === '鎬绘爱') {
+ zdcbcolor = 'red'
+ zxcolor = '#d9f2f4'
+ } else {
+ zdcbcolor = 'red'
+ zxcolor = '#9ACD32'
+ }
+
+ let sdata = []
+
+ for (let k = 0; k < dataList.length; k++) {
+ if (nameList[j].trim() === dataList[k].name.trim()) {
+ sdata = dataList[k].data.reverse()
+ }
+ }
+
+ const ydata = {
+ name: nameList[j],
+ data: sdata,
+ zdcbcolor: zdcbcolor,
+ zxcolor: zxcolor,
+ bzz: bzh[j]
+ }
+ 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)
+ }
+ },
+ effChartShow (legend, xdata, ydatas, yname, jcdID, datatype) {
+ this.chart = this.$echarts.init(this.$refs.echartsDay)
+ this.chart.clear()
+ this.chart.clear()
+ let dataUnit = ''
+ if (datatype === 1) {
+ dataUnit = '娴侀噺(m鲁/d)'
+ } else {
+ dataUnit = '娴侀噺(m鲁/h)'
+ }
+ const bzzList = this.bzzList
+ const serLists = []
+ for (let i = 0; i < ydatas.length; i++) {
+ const zdcbcolor = ydatas[i].zxcolor
+ const bz = ydatas[i].bzz
+ let obj
+ if (bz) {
+ obj = {
+ name: ydatas[i].name,
+ symbol: 'circle', // 鎶樼偣褰㈢姸
+ symbolSize: 10, // 澶у皬
+ smooth: false, // 鐩寸嚎 锛宼rue 涓烘洸绾�
+ itemStyle: {
+ normal: {
+ color: function (c) { // 鏍规嵁value 鏄剧ず涓嶅悓鐨勬姌鐐归鑹�
+ let biaozhuiz
+ for (let i = 0; i < bzzList.length; i++) {
+ if (bzzList[i].name === c.seriesName) {
+ biaozhuiz = bzzList[i].bzhui
+ }
+ }
+ if (c.value) {
+ if (c.value[1] > biaozhuiz) {
+ return zdcbcolor
+ } else if (c.value[1] > biaozhuiz * 0.9) {
+ return '#FFA500'
+ } else {
+ return '#33c95f'
+ }
+ }
+ },
+ lineStyle: { // 鎶樼嚎鐨勯鑹�
+ color: ydatas[i].zxcolor,
+ width: 5
+ },
+ borderColor: 'black', // 鎶樼偣杈规鐨勯鑹�
+ label: { // 鏄剧ず鍊�
+ show: false
+ }
+ }
+ },
+ type: 'line',
+ data: ydatas[i].data,
+ markLine: { // 骞冲潎鍊� 锛� 鍜� 鎸囨爣涓婇檺
+ symbol: 'none',
+ data: [{
+ label: {
+ normal: {
+ position: 'end',
+ formatter: ''// ydatas[i].name+'鏍囧噯鍊�' //+'{c}'
+ }
+ },
+ name: '鏍囧噯鍊�',
+ yAxis: bz,
+ lineStyle: {
+ color: ydatas[i].zxcolor,
+ type: 'dashed',
+ width: 2
+ }
+ }
+ ]
+ }
+ }
+ } else {
+ obj = {
+ name: ydatas[i].name,
+ symbol: 'circle', // 鎶樼偣褰㈢姸
+ symbolSize: 10, // 澶у皬
+ smooth: false, // 鐩寸嚎 锛宼rue 涓烘洸绾�
+ yAxisIndex: 1,
+ itemStyle: {
+ normal: {
+ color: function (c) { // 鏍规嵁value 鏄剧ず涓嶅悓鐨勬姌鐐归鑹�
+ let biaozhuiz
+ for (let i = 0; i < bzzList.length; i++) {
+ if (bzzList[i].name === c.seriesName) {
+ biaozhuiz = bzzList[i].bzhui
+ }
+ }
+ if (c.value[1] > biaozhuiz) {
+ return zdcbcolor
+ } else if (c.value[1] > biaozhuiz * 0.9) {
+ return '#FFA500'
+ } else {
+ return '#33c95f'
+ }
+ },
+ lineStyle: { // 鎶樼嚎鐨勯鑹�
+ color: ydatas[i].zxcolor,
+ width: 5
+ },
+ borderColor: 'black', // 鎶樼偣杈规鐨勯鑹�
+ label: { // 鏄剧ず鍊�
+ show: false
+ }
+ }
+ },
+ type: 'line',
+ data: ydatas[i].data
+ }
+ }
+ serLists.push(obj)
+ }
+ const option = {
+ /* title: {
+ text: title,
+ }, */
+ tooltip: { // 鎻愮ず妗�
+ trigger: 'axis',
+ axisPointer: {
+ type: 'cross',
+ label: {
+ color: '#1a4245'
+ }
+ },
+ formatter: function (params) {
+ let s = params[0].name + '<br />'
+ for (let i = 0; i < params.length; i++) {
+ // let name = params[i].name
+ // 鍥捐〃title鍚嶇О
+ const seriesName = params[i].seriesName
+ // 鍊�
+ const value = params[i].value
+
+ // let valueFliter = formatter(value)
+ const valueFliter = parseFloat(value).toFixed(2)
+
+ let maker = params[i].marker
+ if (seriesName === 'COD') {
+ maker = '<span style="display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:#fff21c;"></span>'
+ } else if (seriesName === '姘ㄦ爱') {
+ maker = '<span style="display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:#00B0F0;"></span>'
+ } else if (seriesName === '鎬荤7') {
+ maker = '<span style="display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:#f48183;"></span>'
+ } else if (seriesName === '鎬绘爱') {
+ maker = '<span style="display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:#d9f2f4;"></span>'
+ } else {
+ maker = '<span style="display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:#9ACD32;"></span>'
+ }
+ s += maker + seriesName + ':' + valueFliter + '<br />'
+ }
+ return s
+ }
+ },
+ toolbox: { // 鎵撳嵃绛夊伐鍏�
+ show: false,
+ feature: {
+ saveAsImage: {}
+ }
+ },
+ grid: {
+ // 涓庣粷瀵瑰畾浣嶇浉浼硷紝top锛宭eft锛宺ight锛宐ottom 璁惧畾鏄牴鎹笂绾х洅瀛愬楂樻潵璁$畻
+ top: '20%',
+ left: '6%',
+ right: '6%',
+ bottom: '12%'
+ },
+ legend: {
+ data: legend
+ },
+ dataZoom: [{
+ type: 'inside',
+ start: 0,
+ end: 100
+ }, {
+ start: 0,
+ end: 100,
+ show: false,
+ handleIcon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4v1.3h1.3v-1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7V23h6.6V24.4z M13.3,19.6H6.7v-1.4h6.6V19.6z',
+ handleSize: '80%',
+ handleStyle: {
+ color: '#fff',
+ shadowBlur: 3,
+ shadowColor: 'rgba(0, 0, 0, 0.6)',
+ shadowOffsetX: 2,
+ shadowOffsetY: 2
+ }
+ }],
+ xAxis: { // x 杞磋缃�
+ type: 'category',
+ boundaryGap: false,
+ axisLabel: { // x杞村叏閮ㄦ樉绀�
+ // rotate: 20,
+ // interval: 0,
+ textStyle: {
+ color: '#fff'
+ }
+ },
+ splitLine: { // 缃戞牸鍨傜洿绾夸负 铏氱嚎
+ show: true,
+ lineStyle: {
+ type: 'dashed'
+ }
+ },
+ axisTick: { // x 杞村埢搴︽樉绀�
+ show: false
+ },
+ axisLine: {
+ lineStyle: {
+ color: '#FFFFFF',
+ width: 1// 杩欓噷鏄负浜嗙獊鍑烘樉绀哄姞涓婄殑
+ }
+ },
+ data: xdata
+ },
+ yAxis: [{
+ type: 'value',
+ name: yname,
+ // max: function (value) {
+ // let max_val_list = [] // 鎵�鏈夋樉绀烘姌绾跨殑鏍囧噯鍊�
+ // if (bzzList && bzzList.length > 0) {
+ // $.each(bzzList, function (index, item) {
+ // max_val_list.push(item.bzhui)
+ // })
+ // }
+ // max_val_list = max_val_list.sort(function (a, b) {
+ // return a - b
+ // }) // 鎺掑簭
+ // let ma = value.max > max_val_list[max_val_list.length - 1] ? value.max + 5 : max_val_list[max_val_list.length - 1]
+ // return parseInt(ma)
+ // },
+ axisLabel: {
+ formatter: '{value}',
+ textStyle: {
+ color: '#fff'
+ }
+ },
+ axisPointer: {
+ snap: true
+ },
+ splitLine: {
+ show: false
+ }, // y杞� 缃戞牸绾夸笉鏄剧ず,
+ axisLine: {
+ lineStyle: {
+ color: '#FFFFFF',
+ width: 1// 杩欓噷鏄负浜嗙獊鍑烘樉绀哄姞涓婄殑
+ }
+ }
+ }, {
+ type: 'value',
+ name: dataUnit,
+ axisLabel: {
+ formatter: '{value}',
+ textStyle: {
+ color: '#fff'
+ }
+ },
+ axisPointer: {
+ snap: true
+ },
+ splitLine: {
+ show: false
+ }, // y杞� 缃戞牸绾夸笉鏄剧ず,
+ // inverse: true,
+ // nameLocation: 'start',
+ // max:500,
+ axisLine: {
+ lineStyle: {
+ color: '#FFFFFF',
+ width: 1// 杩欓噷鏄负浜嗙獊鍑烘樉绀哄姞涓婄殑
+ }
+ }
+ }],
+ series: serLists
+ }
+ 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
+ }
+ }
+}
+</script>
+
+<style lang="less">
+#wasteWaterDayChartBox .echarts-form .el-input__inner {
+ background-color: rgba(0, 0, 0, 0);
+ height: .13rem;
+ border-color: #336fa4;
+}
+#wasteWaterDayChartBox .echarts-form{
+ margin-top: 1px
+}
+#wasteWaterDayChartBox .echarts-form .el-input__icon{
+ height: .13rem;
+ top: -.02rem;
+ right: -0.03rem;
+ position: absolute;
+ color: #00d0f9;
+}
+#wasteWaterDayChartBox .echarts-form .selectBox .el-input__icon:last-child{
+ top: .02rem;
+}
+#wasteWaterDayChartBox .echarts-form .selectBox .is-reverse{
+ top: -.02rem !important;
+}
+#wasteWaterDayChartBox .echarts-form .el-button{
+ background-color: rgba(0, 0, 0, 0);
+ height: .13rem;
+}
+#mingxiBtn{
+ margin-left: -.02rem;
+}
+</style>
diff --git a/src/components/base-page/GovernEquipment/WasteWaterHoursChart.vue b/src/components/base-page/GovernEquipment/WasteWaterHoursChart.vue
new file mode 100644
index 0000000..3b8c74b
--- /dev/null
+++ b/src/components/base-page/GovernEquipment/WasteWaterHoursChart.vue
@@ -0,0 +1,736 @@
+<template>
+ <div id="wasteWaterHoursChartBox" class="echarts-box">
+ <div class="tab-scroll">
+ <PublicDataStandard :dataStandard="dataStandard"></PublicDataStandard>
+ </div>
+ <div class="echarts-form">
+ <span class="demonstration">寮�濮嬫椂闂达細</span>
+ <el-date-picker v-model="formData.startTime" value-format="yyyy-MM-dd HH" type="datetime" size="mini"></el-date-picker>
+ <span class="demonstration">缁撴潫鏃堕棿锛�</span>
+ <el-date-picker v-model="formData.endTime" value-format="yyyy-MM-dd HH" type="datetime" size="mini"></el-date-picker>
+ <span class="demonstration">閲囨牱鐐规暟锛�</span>
+ <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-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" id="mingxiBtn">鏄庣粏琛�</el-button>
+ </el-popover>
+ </div>
+ <div class="echarts-chart">
+ <div ref="echartsHour"></div>
+ </div>
+ <span class="time-select">{{ formData.startTime }}鏃垛�攞{ formData.endTime }}鏃�</span>
+ </div>
+</template>
+
+<script>
+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,
+ DynamicTable
+ },
+ data () {
+ return {
+ // tab鏍忎紶閫掓帴鏀舵暟鎹�
+ dataStandard: [],
+ popUpName: '',
+ tableData: null,
+ mingxiBoxHtml: '',
+ formData: {
+ region: '25',
+ regionList: [25, 50, 75, 100],
+ startTime: dayjs().subtract(24, 'hour').format('YYYY-MM-DD HH:mm:ss'),
+ endTime: dayjs().format('YYYY-MM-DD HH:mm:ss')
+ },
+ chart: null,
+ jcdID: 1,
+ dataType: 2,
+ bzz: null,
+ bzzList: [],
+ 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: '瀹炴祴娴撳害锛坢g/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: '瀹炴祴娴撳害锛坢g/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: '瀹炴祴娴撳害锛坢g/l锛�',
+ prop: 'pH_MonQty'
+ },
+ {
+ id: 530,
+ label: '鏍囧噯鍊硷紙mg/l锛�',
+ prop: 'pH_StdValue'
+ }
+ ]
+ },
+ {
+ id: 600,
+ label: '搴熸按娴侀噺',
+ prop: '',
+ children: [
+ {
+ id: 610,
+ label: '瀹炴祴娴侀噺锛坢鲁/h锛�',
+ prop: '搴熸按娴侀噺_MonQty'
+ }
+ ]
+ }
+ ]
+ }
+ },
+ props: {
+ OnlineMonEmissPointId: {
+ type: Number
+ }
+ },
+ mounted () {
+ this.$nextTick(() => {
+ this.draw24Chart()
+ })
+ },
+ methods: {
+ // 鐐瑰嚮鏌ヨ鍔熻兘
+ querySearch () {
+ this.draw24Chart()
+ },
+ // 鍒濆鍖栨暟鎹姹�
+ async draw24Chart () {
+ const data = {
+ poltSourceId: '',
+ poltMtrlId: '',
+ emissTypeId: '',
+ onLineMonEmissPointId: 23,
+ monItemId: '28,31,35', // 鐩戞祴椤� COD銆佹皑姘�丳H
+ beginTime: this.formData.startTime,
+ endTime: this.formData.endTime,
+ dataType: this.dataType
+ }
+ const result = (await mapApi.getQueryOnlineMonData(data)).Result.DataInfo
+ this.popUpName = result[0].OnLineMonEmissPointName
+ this.get24HourDate(result)
+ },
+ // 缁樺埗灏忔椂鏁版嵁鎶樼嚎鍥�
+ get24HourDate (result) {
+ if (result.length > 0) {
+ this.dataStandard = []
+ this.tableData = this.analysisResult(result) // 灏忔椂鏄庣粏琛ㄨВ鏋愮粨鏋�
+ const d = result
+ const nameList = [] // 瀛樻斁鍥句緥
+ const dateList = [] // 瀛樻斁鏃堕棿
+ let dataList = [] // 瀛樻斁鏁版嵁
+ let data = []
+ const bzh = []
+ for (let i = 0; i < d.length; i++) {
+ if (d[i].MonItemId === '29') {
+ continue
+ }
+
+ const MonTimeStr = d[i].MonTimeStr
+
+ let strDate
+ const d1 = MonTimeStr.split('/') // 鏈�
+ const d2 = d1[2].split(' ')
+ const t = MonTimeStr.split(' ')
+ const hlist = t[1].split(':')
+ const h = hlist[0]
+ if (d1[1] > 9) {
+ // strDate=MonTimeStr.substring(8,10)+"鏃�";
+ if (d2[0] > 9) {
+ strDate = ''
+ if (h > 9) {
+ strDate += MonTimeStr.substring(11, 13) + '鏃�'
+ } else {
+ strDate += MonTimeStr.substring(11, 12) + '鏃�'
+ }
+ } else {
+ strDate = ''
+ if (h > 9) {
+ strDate += MonTimeStr.substring(10, 12) + '鏃�'
+ } else {
+ strDate += MonTimeStr.substring(10, 11) + '鏃�'
+ }
+ }
+ } else {
+ if (d2[0] > 9) {
+ strDate = ''
+ if (h > 9) {
+ strDate += MonTimeStr.substring(10, 12) + '鏃�'
+ } else {
+ strDate += MonTimeStr.substring(10, 11) + '鏃�'
+ }
+ } else {
+ strDate = ''
+ if (h > 9) {
+ strDate += MonTimeStr.substring(9, 11) + '鏃�'
+ } else {
+ strDate += MonTimeStr.substring(9, 10) + '鏃�'
+ }
+ }
+ }
+ 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
+ }
+ 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
+ }
+ 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
+ }
+ data.push(d[i].MonQty)
+ dataList.push(data)
+ } else {
+ if (dateList.indexOf(strDate) < 0) {
+ dateList.push(strDate)
+ }
+ // data.push()
+ if ((d[i].PoltmtrlName === '搴熸按娴侀噺' || d[i].PoltmtrlName === '搴熸按') && d[i].MonQty < 0) {
+ d[i].MonQty = 0
+ }
+ if (d[i].MonQty !== null)data.push(d[i].MonQty)
+ }
+ }
+ const newList = []
+
+ for (let i = 0; i < dataList.length; i++) {
+ const list = dataList[i].reverse()
+ newList.push(list)
+ }
+ dataList = newList
+
+ const lengList = []
+ let objTemp
+
+ for (let l = 0; l < nameList.length; l++) {
+ let obj
+ let iconUrl
+ if (nameList[l] === 'COD') {
+ iconUrl = 'image://../assets/imgs/legend/SO2.png'
+ } else if (nameList[l] === '姘ㄦ爱') {
+ iconUrl = 'image://../assets/imgs/legend/NOX.png'
+ } else if (nameList[l] === '鎬荤7') {
+ iconUrl = 'image://../assets/imgs/legend/YanChen.png'
+ } else if (nameList[l] === '鎬绘爱') {
+ iconUrl = 'image://../assets/imgs/legend/zongdan.png'
+ } else {
+ iconUrl = 'image://../assets/imgs/legend/VOCs.png'
+ }
+
+ if (nameList[l] === '搴熸按' || nameList[l] === '搴熸按娴侀噺') { // 灏嗗簾姘存祦閲忔帓鍒版暟缁勬渶鍚�
+ objTemp = {
+ name: nameList[l],
+ icon: iconUrl,
+ textStyle: {
+ color: '#ccc'
+ },
+ itemWidth: 20,
+ itemHeight: 5
+ }
+ } else {
+ obj = {
+ name: nameList[l],
+ icon: iconUrl,
+ textStyle: {
+ color: '#ccc'
+ },
+ itemWidth: 20,
+ itemHeight: 5
+ }
+ lengList.push(obj)
+ }
+ }
+ lengList.push(objTemp)
+
+ const legend = lengList
+ const xdata = dateList.reverse()
+ const ydatas = []
+
+ for (let j = 0; j < nameList.length; j++) {
+ let zdcbcolor, zxcolor
+ if (nameList[j] === 'COD') {
+ zdcbcolor = 'red'
+ zxcolor = '#fff21c'
+ } else if (nameList[j] === '姘ㄦ爱') {
+ zdcbcolor = 'red'
+ zxcolor = '#00B0F0'
+ } else if (nameList[j] === '搴熸按娴侀噺') {
+ zdcbcolor = 'red'
+ zxcolor = '#8fdc6e'
+ }
+ const ydata = {
+ name: nameList[j],
+ data: dataList[j],
+ zdcbcolor: zdcbcolor,
+ zxcolor: zxcolor,
+ bzz: bzh[j]
+ }
+
+ this.bzz = {
+ name: nameList[j],
+ bzhui: bzh[j]
+ }
+ this.bzzList.push(this.bzz)
+ ydatas.push(ydata)
+ }
+ // 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)
+ }
+ },
+ effChartShow (legend, xdata, ydatas, yname, jcdID, datatype) {
+ // console.log(ydatas)
+ // 鍒濆鍖栧浘鏍�
+ this.chart = this.$echarts.init(this.$refs.echartsHour)
+ this.chart.clear()
+ // const bzlist = this.bzzList
+ // const bzz = this.bz
+
+ let dataUnit = ''
+ if (datatype === 1) {
+ dataUnit = '娴侀噺(m鲁/d)'
+ } else {
+ dataUnit = '娴侀噺(m鲁/h)'
+ }
+ const bzzList = this.bzzList
+ const serLists = []
+ for (let i = 0; i < ydatas.length; i++) {
+ const zdcbcolor = ydatas[i].zxcolor
+ const bz = ydatas[i].bzz
+ let obj
+ if (bz) {
+ obj = {
+ name: ydatas[i].name,
+ symbol: 'circle', // 鎶樼偣褰㈢姸
+ symbolSize: 10, // 澶у皬
+ smooth: false, // 鐩寸嚎 锛宼rue 涓烘洸绾�
+ itemStyle: {
+ normal: {
+ color: function (c) { // 鏍规嵁value 鏄剧ず涓嶅悓鐨勬姌鐐归鑹�
+ let biaozhuiz
+ for (let i = 0; i < bzzList.length; i++) {
+ if (bzzList[i].name === c.seriesName) {
+ biaozhuiz = bzzList[i].bzhui
+ }
+ }
+ if (c.value) {
+ if (c.value[1] > biaozhuiz) {
+ return zdcbcolor
+ } else if (c.value[1] > biaozhuiz * 0.9) {
+ return '#FFA500'
+ } else {
+ return '#33c95f'
+ }
+ }
+ },
+ lineStyle: { // 鎶樼嚎鐨勯鑹�
+ color: ydatas[i].zxcolor,
+ width: 5
+ },
+ borderColor: ydatas[i].zxcolor, // 鎶樼偣杈规鐨勯鑹�
+ label: { // 鏄剧ず鍊�
+ show: false
+ }
+ }
+ },
+ type: 'line',
+ data: ydatas[i].data,
+ markLine: { // 骞冲潎鍊� 锛� 鍜� 鎸囨爣涓婇檺
+ symbol: 'none',
+ data: [{
+ label: {
+ normal: {
+ position: 'end',
+ formatter: ''// ydatas[i].name+'鏍囧噯鍊�' //+'{c}'
+ }
+ },
+ name: '鏍囧噯鍊�',
+ yAxis: bz,
+ lineStyle: {
+ color: ydatas[i].zxcolor,
+ type: 'dashed',
+ width: 2
+ }
+ }]
+ }
+ }
+ } else {
+ obj = {
+ name: ydatas[i].name,
+ symbol: 'circle', // 鎶樼偣褰㈢姸
+ symbolSize: 10, // 澶у皬
+ smooth: false, // 鐩寸嚎 锛宼rue 涓烘洸绾�
+ yAxisIndex: 1,
+ itemStyle: {
+ normal: {
+ color: function (c) { // 鏍规嵁value 鏄剧ず涓嶅悓鐨勬姌鐐归鑹�
+ let biaozhuiz
+ for (let i = 0; i < bzzList.length; i++) {
+ if (bzzList[i].name === c.seriesName) {
+ biaozhuiz = bzzList[i].bzhui
+ }
+ }
+ if (c.value[1] > biaozhuiz) {
+ return zdcbcolor
+ } else if (c.value[1] > biaozhuiz * 0.9) {
+ return '#FFA500'
+ } else {
+ return '#33c95f'
+ }
+ },
+ lineStyle: { // 鎶樼嚎鐨勯鑹�
+ color: ydatas[i].zxcolor,
+ width: 5
+ },
+ borderColor: 'black', // 鎶樼偣杈规鐨勯鑹�
+ label: { // 鏄剧ず鍊�
+ show: false
+ }
+ }
+ },
+ type: 'line',
+ data: ydatas[i].data
+ }
+ }
+ serLists.push(obj)
+ }
+ const option = {
+ tooltip: {
+ trigger: 'axis',
+ axisPointer: {
+ type: 'cross',
+ label: {
+ color: '#1a4245'
+ }
+ },
+ formatter: function (params) {
+ let s = params[0].name + '<br />'
+ for (let i = 0; i < params.length; i++) {
+ // let name = params[i].name
+ // 鍥捐〃title鍚嶇О
+ const seriesName = params[i].seriesName
+ // 鍊�
+ const value = params[i].value
+
+ // let valueFliter = formatter(value)
+ const valueFliter = parseFloat(value).toFixed(2)
+
+ let maker = params[i].marker
+ if (seriesName === 'COD') {
+ maker = '<span style="display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:#fff21c;"></span>'
+ } else if (seriesName === '姘ㄦ爱') {
+ maker = '<span style="display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:#00B0F0;"></span>'
+ } else if (seriesName === '鎬荤7') {
+ maker = '<span style="display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:#f48183;"></span>'
+ } else if (seriesName === '搴熸按娴侀噺') {
+ maker = '<span style="display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:#9ACD32;"></span>'
+ } else {
+ maker = '<span style="display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:#d9f2f4;"></span>'
+ }
+ s += maker + seriesName + ':' + valueFliter + '<br />'
+ }
+ return s
+ }
+ },
+ toolbox: {
+ show: false,
+ feature: {
+ saveAsImage: {}
+ }
+ },
+ legend: {
+ data: legend
+ },
+ grid: {
+ // 涓庣粷瀵瑰畾浣嶇浉浼硷紝top锛宭eft锛宺ight锛宐ottom 璁惧畾鏄牴鎹笂绾х洅瀛愬楂樻潵璁$畻
+ top: '20%',
+ left: '6%',
+ right: '6%',
+ bottom: '12%'
+ },
+ dataZoom: [{
+ type: 'inside',
+ start: 0,
+ end: 100
+ }, {
+ start: 0,
+ end: 100,
+ show: false,
+ handleIcon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4v1.3h1.3v-1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7V23h6.6V24.4z M13.3,19.6H6.7v-1.4h6.6V19.6z',
+ handleSize: '80%',
+ handleStyle: {
+ color: '#fff',
+ shadowBlur: 3,
+ shadowColor: 'rgba(0, 0, 0, 0.6)',
+ shadowOffsetX: 2,
+ shadowOffsetY: 2
+ }
+ }],
+ xAxis: { // x 杞磋缃�
+ type: 'category',
+ boundaryGap: false,
+ axisLabel: { // x杞村叏閮ㄦ樉绀�
+ // rotate: 20,
+ // interval: 0,
+ textStyle: {
+ color: '#fff'
+ }
+ },
+ splitLine: { // 缃戞牸鍨傜洿绾夸负 铏氱嚎
+ show: true,
+ lineStyle: {
+ type: 'dashed'
+ }
+ },
+ axisTick: { // x 杞村埢搴︽樉绀�
+ show: false
+ },
+ axisLine: {
+ lineStyle: {
+ color: '#FFFFFF',
+ width: 1// 杩欓噷鏄负浜嗙獊鍑烘樉绀哄姞涓婄殑
+ }
+ },
+ data: xdata
+ },
+ yAxis: [{
+ type: 'value',
+ name: yname,
+ // max: function (value) {
+ // let max_val_list = [] // 鎵�鏈夋樉绀烘姌绾跨殑鏍囧噯鍊�
+ // if (bzzList && bzzList.length > 0) {
+ // $.each(bzzList, function (index, item) {
+ // max_val_list.push(item.bzhui)
+ // })
+ // }
+ // max_val_list = max_val_list.sort(function (a, b) {
+ // return a - b
+ // }) // 鎺掑簭
+ // let ma = value.max > max_val_list[max_val_list.length - 1] ? value.max + 5 : max_val_list[max_val_list.length - 1]
+ // return parseInt(ma)
+ // },
+ axisLabel: {
+ formatter: '{value}',
+ textStyle: {
+ color: '#fff'
+ }
+ },
+ axisPointer: {
+ snap: true
+ },
+ splitLine: {
+ show: false
+ }, // y杞� 缃戞牸绾夸笉鏄剧ず,
+ axisLine: {
+ lineStyle: {
+ color: '#FFFFFF',
+ width: 1// 杩欓噷鏄负浜嗙獊鍑烘樉绀哄姞涓婄殑
+ }
+ }
+ }, {
+ type: 'value',
+ name: dataUnit,
+ axisLabel: {
+ formatter: '{value}',
+ textStyle: {
+ color: '#fff'
+ }
+ },
+ axisPointer: {
+ snap: true
+ },
+ splitLine: {
+ show: false
+ }, // y杞� 缃戞牸绾夸笉鏄剧ず,
+ // inverse: true,
+ // nameLocation: 'start',
+ // max:500,
+ axisLine: {
+ lineStyle: {
+ color: '#FFFFFF',
+ width: 1// 杩欓噷鏄负浜嗙獊鍑烘樉绀哄姞涓婄殑
+ }
+ }
+ }],
+ series: serLists
+ }
+ 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
+ }
+ }
+}
+</script>
+<style>
+#wasteWaterHoursChartBox .echarts-form .el-input__inner {
+ background-color: rgba(0, 0, 0, 0);
+ height: .13rem;
+ border-color: #336fa4;
+}
+#wasteWaterHoursChartBox .echarts-form .el-input__icon{
+ height: .13rem;
+ top: -.02rem;
+ right: -0.03rem;
+ position: absolute;
+ color: #00d0f9;
+}
+#wasteWaterHoursChartBox .echarts-form .selectBox .el-input__icon:last-child{
+ top: .02rem;
+}
+#wasteWaterHoursChartBox .echarts-form .selectBox .is-reverse{
+ top: -.02rem !important;
+}
+#wasteWaterHoursChartBox .echarts-form .el-button{
+ background-color: rgba(0, 0, 0, 0);
+ height: .13rem;
+}
+#mingxiBtn{
+ margin-left: -.02rem;
+}
+</style>
diff --git a/src/components/base-page/GovernEquipment/WasteWaterIndex.vue b/src/components/base-page/GovernEquipment/WasteWaterIndex.vue
new file mode 100644
index 0000000..38dc2a7
--- /dev/null
+++ b/src/components/base-page/GovernEquipment/WasteWaterIndex.vue
@@ -0,0 +1,208 @@
+<template>
+ <public-sector>
+ <template v-slot:tabs>
+ <public-tabs :storagePlaceId="storagePlaceId"></public-tabs>
+ </template>
+ <template v-slot:publicPart>
+ <div class="public-part">
+ <span></span>
+ <span></span>
+ <span></span>
+ <span></span>
+ <div class="navigation">
+ <div class="navigation-left">
+ <div :class="active===0?'hover':''" class="uncheck" @click='tabTaggle("RealData",0)'>瀹炴椂鏁版嵁</div>
+ <div :class="active===1?'hover':''" class="uncheck" @click='tabTaggle("HourData",1)'>灏忔椂鏁版嵁</div>
+ <div :class="active===2?'hover':''" class="uncheck" @click='tabTaggle("DayData",2)'>鏃ユ暟鎹�</div>
+ <div :class="active===3?'hover':''" class="uncheck" @click='tabTaggle("Detail",3)'>浜哄伐鐩戞祴鏁版嵁</div>
+ </div>
+ <div class="navigation-right" v-if="active !== 3">
+ <p>姝e父</p>
+ <i style=" background: #4ec99c;"></i>
+ <p>棰勮</p>
+ <i style=" background: #fc9303;"></i>
+ <p>瓒呮爣</p>
+ <i style=" background: #fc1d04;"></i>
+ </div>
+ </div>
+ <component :is="currentTab" :OnlineMonEmissPointId="OnlineMonEmissPointId" :LabMonPointId='LabMonPointId' ref="RealData"></component>
+ </div>
+ </template>
+<!-- <template v-slot:video>
+ <public-video></public-video>
+ </template>-->
+ </public-sector>
+</template>
+
+<script>
+
+import PublicTabs from './PublicTabs'
+import PublicVideo from '../PublicVideo'
+import PublicSector from '../PublicSector'
+// 鍥捐〃缁勪欢
+import RealData from './WasteWaterRealChart'
+import HourData from './WasteWaterHoursChart'
+import DayData from './WasteWaterDayChart'
+import Detail from './Detail'
+
+export default {
+ name: 'WasteWaterIndex',
+ props: {
+ storagePlaceId: {
+ type: Object
+ },
+ OnlineMonEmissPointId: {
+ type: Number
+ },
+ LabMonPointId: {
+ type: Number
+ }
+ },
+ components: {
+ PublicSector,
+ PublicTabs,
+ PublicVideo,
+ RealData,
+ HourData,
+ DayData,
+ Detail
+ },
+ data () {
+ return {
+ activeName: 'first',
+ currentTab: RealData,
+ active: 0
+ }
+ },
+ methods: {
+ tabTaggle (taggleMenu, num) {
+ this.currentTab = taggleMenu
+ this.active = num
+ },
+ current (currentTab) {
+ currentTab = RealData
+ },
+ handleClick (tab, event) {
+ console.log(tab, event)
+ }
+ }
+}
+</script>
+
+<style lang="less" scoped>
+.navigation {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding-left: 0.07rem;
+ border-bottom: 1px #243a55 solid;
+ .navigation-left {
+ display: flex;
+ align-items: center;
+
+ .uncheck {
+ cursor: pointer;
+ margin-left: -0.05rem;
+ width: .8rem;
+ padding: 6px 0;
+ /*border: 1px solid #2b87c8;*/
+ /*border-radius: 4px;*/
+ background-position: 0 0;
+ background-repeat: no-repeat;
+ background-size: 100% 100%;
+ background-image: url("../../../../public/assets/images/map-pages/title_bg.png");
+ text-align: center;
+ vertical-align: middle !important;
+ color: #fff;
+ }
+
+ .default-uncheck {
+ background-color: #0e639e;
+ color: #C0C0C0;
+ cursor: pointer;
+ }
+
+ .hover {
+ background-image: url("../../../../public/assets/images/map-pages/title_bg2.png");
+ color: #ffffff;
+ cursor: pointer;
+ }
+
+ .hover:hover {
+ cursor: pointer;
+ border-radius: 4px;
+ text-align: center;
+ color: #F0FFFF;
+ }
+ }
+
+ .navigation-left :hover {
+ color: #fff;
+ cursor: pointer;
+ }
+
+ .navigation-right {
+ display: flex;
+ align-items: center;
+
+ i {
+ display: block;
+ width: 0.1rem;
+ height: 0.1rem;
+ margin: 0 0.1rem 0 0.05rem;
+ border-radius: 50%;
+ border: 2px #ffffff solid;
+ }
+ }
+}
+
+.public-part {
+ position: relative;
+ background-color: @background-color;
+ font-size: 0.06rem;
+ font-weight: normal;
+ padding: 0.04rem 0;
+ border: 1px solid #396d83;
+}
+
+.public-part span:nth-child(1) {
+ position: absolute;
+ left: -2px;
+ top: -2px;
+ padding: 6px;
+ border-style: solid;
+ border-color: #02a6b5;
+ border-width: 2px 0 0 2px;
+}
+
+.public-part span:nth-child(2) {
+ position: absolute;
+ right: -2px;
+ top: -2px;
+ padding: 6px;
+ border-style: solid;
+ border-color: #02a6b5;
+ border-width: 2px 2px 0 0;
+}
+
+.public-part span:nth-child(3) {
+ position: absolute;
+ right: -2px;
+ bottom: -2px;
+ padding: 6px;
+ border-style: solid;
+ border-color: #02a6b5;
+ border-width: 0 2px 2px 0;
+}
+
+.public-part span:nth-child(4) {
+ position: absolute;
+ left: -2px;
+ bottom: -2px;
+ padding: 6px;
+ border-style: solid;
+ border-color: #02a6b5;
+ border-width: 0 0 2px 2px;
+}
+
+</style>
diff --git a/src/components/base-page/GovernEquipment/WasteWaterRealChart.vue b/src/components/base-page/GovernEquipment/WasteWaterRealChart.vue
new file mode 100644
index 0000000..670b975
--- /dev/null
+++ b/src/components/base-page/GovernEquipment/WasteWaterRealChart.vue
@@ -0,0 +1,643 @@
+<template>
+ <div id="wasteWaterRealChartBox" class="echarts-box">
+ <div class="tab-scroll">
+ <PublicDataStandard :dataStandard="dataStandard"></PublicDataStandard>
+ </div>
+ <div class="echarts-form">
+ <span class="demonstration">寮�濮嬫椂闂达細</span>
+ <el-date-picker v-model="formData.startTime" value-format="yyyy-MM-dd HH:mm:ss" type="datetime" size="mini"></el-date-picker>
+ <span class="demonstration">缁撴潫鏃堕棿锛�</span>
+ <el-date-picker v-model="formData.endTime" value-format="yyyy-MM-dd HH:mm:ss" type="datetime" size="mini"></el-date-picker>
+ <span class="demonstration">閲囨牱鐐规暟锛�</span>
+ <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>鏄庣粏琛�</el-button>-->
+ </div>
+ <div class="echarts-chart">
+ <div ref="echarts"></div>
+ </div>
+ <span class="time-select">{{ formData.startTime }}鈥攞{ formData.endTime }}</span>
+ </div>
+</template>
+
+<script>
+
+import 'dayjs/locale/es'
+import dayjs from 'dayjs'
+
+import mapApi from '../../../api/mapApi'
+import PublicDataStandard from '../PublicDataStandard'
+
+export default {
+ name: 'WasteWaterRealChart',
+ components: {
+ PublicDataStandard
+ },
+ 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
+ }
+ }],
+ // 琛ㄥ崟鏁版嵁缁戝畾鍊�
+ formData: {
+ region: '25',
+ regionList: [25, 50, 75, 100],
+ startTime: dayjs().subtract(3, 'minute').format('YYYY-MM-DD HH:mm:ss'),
+ endTime: dayjs().format('YYYY-MM-DD HH:mm:ss')
+ },
+ // 鏁版嵁鍒嗙被澶勭悊瀛樺偍鍒楄〃
+ RealTimeDataList: [],
+ // 鐢ㄤ簬澶勭悊鏍囧噯鍊�
+ standardValues: null,
+ // 鏍囧噯鍊煎垪琛�
+ standardValuesList: [],
+ // 鐢ㄤ簬鍥捐〃灞曠ず璁剧疆鏁扮粍
+ nameList: [],
+ legendList: [],
+ ydatas: []
+ }
+ },
+ mounted () {
+ this.$nextTick(() => {
+ this.initEchartsData()
+ })
+ },
+ methods: {
+ // 鏌ヨ鎼滅储鍔熻兘
+ querySearch () {
+ this.initEchartsData()
+ },
+ // 鍒濆鍖栨暟鎹姹�
+ async initEchartsData () {
+ const data = {
+ $tagCodeList: 'TJIP45.y2h508CEMS01NOX,CTJIP45.y2h508CEMS01SO2,CTJIP45.y2h508CEMS01F,CTJIP45.y2h508CEMS01PM',
+ $startTime: this.formData.startTime,
+ $endTime: this.formData.endTime,
+ $step: 15
+ }
+ const result = (await mapApi.getDataItems(data)).data
+ // 鏁版嵁鎸夌被鍒垎缁�
+ this.pointsSet(result)
+ // 鍥炬爣瀛樺偍澶勭悊
+ this.legendSet()
+ // y杞磀ata鏁版嵁
+ this.yDataSet()
+ // 鏍规嵁宸叉湁鏁版嵁缁樺埗鍥捐〃
+ this.drawRealTimeDateChart()
+ },
+ // 鎺ュ彛鏁版嵁鎸夌収 鏁版嵁鍐呭垎绫诲埆璁剧疆
+ pointsSet (d) {
+ // 鏁扮粍鏁版嵁缃┖
+ this.nameList = []
+ this.RealTimeDataList = []
+
+ let data = []
+ let datalist = []
+
+ for (let i = 0; i < d.length; i++) {
+ // 鍒ゆ柇鏄惁缁х画鎵ц
+ if (d[i].ErrorMessage != null) {
+ continue
+ }
+
+ // temp 涓存椂鏁版嵁鍒ゆ柇鏂规硶
+ const tempList = [
+ {
+ 'TJIP45.lscl2tb552AISA11201B': 'COD',
+ 'TJIP45.lscl2tbAIA-10505-1': '姘ㄦ爱',
+ 'TJIP45.lscl2tbAIA-10505-2': '鎬荤7',
+ 'TJIP45.lscl2tb552AI10710': '鎬绘爱',
+ 'TJIP45.lscl2tb552AISA11202A': '搴熸按娴侀噺'
+ }
+ ]
+ // 鎸囨爣 涓存椂鐢ㄤ簬鏁版嵁澶勭悊
+ const name = tempList[0][d[i].UnionTagCode]
+
+ // 鍒ゆ柇甯傚眬绫诲瀷杩涜鍒嗙粍 =>鏁扮粍涓虹┖鏃�
+ if (this.nameList.length === 0) {
+ this.nameList.push(name)
+ const newDate = new Date(d[i].ReadTime)
+ data = {
+ name: name,
+ value: [newDate, d[i].TagValue]
+ }
+ datalist = {
+ name: name,
+ data: [data]
+ }
+ this.RealTimeDataList.push(datalist)
+ } else if (this.nameList.indexOf(name) < 0) {
+ // 娌℃湁鎸囨爣鏃�
+ this.nameList.push(name)
+ const newDate = new Date(d[i].ReadTime)
+ data = {
+ name: name,
+ value: [newDate, d[i].TagValue]
+ }
+ datalist = {
+ name: name,
+ data: [data]
+ }
+ this.RealTimeDataList.push(datalist)
+ } else if (i === d.length - 1) {
+ // 寰幆鍒版渶鍚�
+ if (this.nameList.indexOf(name) < 0) {
+ this.nameList.push(name)
+ const newDate = new Date(d[i].ReadTime)
+ data = {
+ name: name,
+ value: [newDate, d[i].TagValue]
+ }
+ datalist = {
+ name: name,
+ data: [data]
+ }
+ this.RealTimeDataList.push(datalist)
+ } else {
+ const newDate = new Date(d[i].ReadTime)
+ data = {
+ name: name,
+ value: [newDate, d[i].TagValue]
+ }
+ for (let k = 0; k < this.RealTimeDataList.length; k++) {
+ if (this.RealTimeDataList[k].name === name) {
+ this.RealTimeDataList[k].data.push(data)
+ }
+ }
+ }
+ } else {
+ const newDate = new Date(d[i].ReadTime)
+ data = {
+ name: name,
+ value: [newDate, d[i].TagValue]
+ }
+ for (let k = 0; k < this.RealTimeDataList.length; k++) {
+ if (this.RealTimeDataList[k].name === name) {
+ this.RealTimeDataList[k].data.push(data)
+ }
+ }
+ }
+ }
+ },
+ // legend绫诲埆鍥捐〃灞曠ず璁剧疆鏁扮粍
+ legendSet () {
+ this.legendList = []
+ let objTemp
+ for (let l = 0; l < this.nameList.length; l++) {
+ let obj
+ let IconUrl
+ if (this.nameList[l] === 'COD') {
+ IconUrl = 'image://../assets/imgs/legend/SO2.png'
+ } else if (this.nameList[l] === '姘ㄦ爱') {
+ IconUrl = 'image://../assets/imgs/legend/NOX.png'
+ } else if (this.nameList[l] === '鎬荤7') {
+ IconUrl = 'image://../assets/imgs/legend/YanChen.png'
+ } else if (this.nameList[l] === '鎬绘爱') {
+ IconUrl = 'image://../assets/imgs/legend/zongdan.png'
+ } else if (this.nameList[l] === '搴熸按娴侀噺') {
+ IconUrl = 'image://../assets/imgs/legend/VOCs.png'
+ }
+ if (this.nameList[l] === '搴熸按' || this.nameList[l] === '搴熸按娴侀噺') { // 灏嗗簾姘存祦閲忔帓鍒版暟缁勬渶鍚�
+ objTemp = {
+ name: this.nameList[l],
+ icon: IconUrl,
+ textStyle: {
+ color: '#ccc'
+ },
+ itemWidth: 20,
+ itemHeight: 5
+ }
+ } else {
+ obj = {
+ name: this.nameList[l],
+ icon: IconUrl,
+ textStyle: {
+ color: '#ccc'
+ },
+ itemWidth: 20,
+ itemHeight: 5
+ }
+ this.legendList.push(obj)
+ }
+ }
+ this.legendList.push(objTemp)
+ },
+ // yDataSet 鏁版嵁澶勭悊
+ yDataSet () {
+ // 鏁扮粍娣诲姞鏁版嵁 缃┖
+ this.standardValuesList = []
+ this.ydatas = []
+ for (let j = 0; j < this.nameList.length; j++) {
+ let pointColor, lineColor
+ if (this.nameList[j] === 'COD') {
+ pointColor = 'red'
+ lineColor = '#ffff00'
+ } else if (this.nameList[j] === '姘ㄦ爱') {
+ pointColor = 'red'
+ lineColor = '#00B0F0'
+ } else if (this.nameList[j] === '鎬荤7') {
+ pointColor = 'red'
+ lineColor = '#f48183'
+ } else if (this.nameList[j] === '鎬绘爱') {
+ pointColor = 'red'
+ lineColor = '#e0ffff'
+ } else if (this.nameList[j] === '搴熸按娴侀噺') {
+ pointColor = 'red'
+ lineColor = '#9ACD32'
+ }
+
+ // 涓存椂鏁版嵁
+ const BBZMAPPING = {
+ COD: 35,
+ 姘ㄦ爱: 30,
+ 鎬荤7: 0.3,
+ 鎬绘爱: 15,
+ 搴熸按娴侀噺: 3
+ }
+ for (let m = 0; m < this.RealTimeDataList.length; m++) {
+ let stdValue = null
+ if (this.RealTimeDataList[m].name === this.nameList[j]) {
+ stdValue = BBZMAPPING[this.RealTimeDataList[m].name]
+ this.standardValues = {
+ name: this.nameList[j],
+ standardValue: stdValue
+ }
+ const yData = {
+ name: this.nameList[j],
+ data: this.RealTimeDataList[m].data,
+ pointColor: pointColor,
+ lineColor: lineColor,
+ standardValue: stdValue
+ }
+ this.standardValuesList.push(this.standardValues)
+ this.ydatas.push(yData)
+ }
+ }
+ }
+ },
+ // 鏍规嵁澶勭悊濂界殑鏁扮粍杩涜echarts鍥炬爣鐨勬覆鏌�
+ drawRealTimeDateChart () {
+ this.myChart = this.$echarts.init(this.$refs.echarts)
+ this.myChart.clear()
+
+ // y杞翠晶杈规爣棰榥eme
+ const ySideName = '娴撳害(mg/m鲁)'
+ // 鏍囧噯鍊煎垪琛�
+ const standardValuesList = this.standardValuesList
+
+ // 搴旂敤浜庢暟鎹粨鏋滃垽鏂爣鍑嗗��
+ let standardValue
+
+ // series鏁版嵁瀛樺偍
+ const serLists = []
+
+ for (let i = 0; i < this.ydatas.length; i++) {
+ // 搴旂敤浜庢暟鎹鐞�
+ const pointColor = this.ydatas[i].pointColor
+ // 鏁版嵁鏍囧噯鍊�
+ const bz = this.ydatas[i].standardValue
+ let seriesObj
+
+ if (bz) {
+ seriesObj = {
+ name: this.ydatas[i].name,
+ smooth: true,
+ type: 'line',
+ data: this.ydatas[i].data,
+ // borderColor: this.ydatas[i].pointColor,
+ borderColor: '#fff',
+ itemStyle: {
+ normal: {
+ color: function (c) {
+ for (let i = 0; i < standardValuesList.length; i++) {
+ if (standardValuesList[i].name === c.seriesName) {
+ standardValue = standardValuesList[i].standardValue
+ }
+ }
+ if (c.value[1] > standardValue) {
+ return pointColor
+ } else if (c.value[1] > standardValue * 0.7) {
+ return '#FFA500'
+ } else {
+ return '#33c95f'
+ }
+ },
+ lineStyle: {
+ color: this.ydatas[i].lineColor,
+ width: 2
+ },
+ label: { // 鏄剧ず鍊�
+ show: false
+ }
+ }
+ },
+ markLine: {
+ symbol: 'none',
+ data: [{
+ label: {
+ normal: {
+ position: 'end',
+ formatter: bz
+ }
+ },
+ name: '鏍囧噯鍊�',
+ yAxis: bz,
+ lineStyle: {
+ normal: {
+ color: function (c) {
+ for (let i = 0; i < standardValuesList.length; i++) {
+ if (standardValuesList[i].name === c.seriesName) {
+ standardValue = standardValuesList[i].standardValue
+ }
+ }
+ if (c.value[1] > standardValue) {
+ return pointColor
+ } else if (c.value[1] > standardValue * 0.7) {
+ return '#FFA500'
+ } else {
+ return '#33c95f'
+ }
+ }
+ }
+ }
+ }]
+ }
+ }
+ } else {
+ seriesObj = {
+ name: this.ydatas[i].name,
+ symbol: 'circle',
+ symbolSize: 10,
+ smooth: false,
+ yAxisIndex: 1,
+ // borderColor:'black',
+ type: 'line',
+ data: this.ydatas[i].data,
+ itemStyle: {
+ normal: {
+ color: function (c) {
+ for (let i = 0; i < standardValuesList.length; i++) {
+ if (standardValuesList[i].name === c.seriesName) {
+ standardValue = standardValuesList[i].standardValue
+ }
+ }
+ if (c.value[1] > standardValue) {
+ return pointColor
+ } else if (c.value[1] > standardValue * 0.9) {
+ return '#FFA500'
+ } else {
+ return '#33c95f'
+ }
+ },
+ lineStyle: { // 鎶樼嚎鐨勯鑹�
+ color: this.ydatas[i].lineColor,
+ width: 2
+ },
+ label: { // 鏄剧ず鍊�
+ show: false
+ }
+ }
+ }
+ }
+ }
+ if (this.ydatas[i].name === '搴熸按娴侀噺' || this.ydatas[i].name === '搴熸按') {
+ seriesObj.yAxisIndex = 1
+ }
+ serLists.push(seriesObj)
+ }
+ const dataUnit = '娴侀噺(m鲁/h)'
+ // echarts鍥捐〃option鏁版嵁
+ const options = {
+ tooltip: {
+ trigger: 'axis',
+ axisPointer: {
+ type: 'cross',
+ label: {
+ color: '#1a4245'
+ }
+ },
+ formatter: function (params) {
+ let s = params[0].name + '<br />'
+ for (let i = 0; i < params.length; i++) {
+ const seriesName = params[i].seriesName
+ // 鍊�
+ const value = params[i].value[1]
+
+ // const valueFliter = formatter(value)
+ const valueFliter = parseFloat(value).toFixed(2)
+
+ let maker = params[i].marker
+ let colo = ''
+ switch (seriesName) {
+ case 'COD':
+ colo = '#ffff00'
+ break
+ case '姘ㄦ爱':
+ colo = '#00B0F0'
+ break
+ case '鎬绘爱':
+ colo = '#e0ffff'
+ break
+ case '搴熸按娴侀噺':
+ colo = '#9ACD32'
+ break
+ case '鎬荤7':
+ colo = '#f48183'
+ break
+ default:
+ colo = ''
+ break
+ }
+ maker = '<span style="display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:' + colo + ';"></span>'
+ s += maker + seriesName + ':' + valueFliter + '<br />'
+ }
+ return s
+ }
+ },
+ toolbox: {
+ show: false,
+ feature: {
+ saveAsImage: {}
+ }
+ },
+ grid: {
+ // 涓庣粷瀵瑰畾浣嶇浉浼硷紝top锛宭eft锛宺ight锛宐ottom 璁惧畾鏄牴鎹笂绾х洅瀛愬楂樻潵璁$畻
+ top: '20%',
+ left: '6%',
+ right: '6%',
+ bottom: '12%'
+ },
+ legend: {
+ data: this.legendList
+ },
+ dataZoom: [{
+ type: 'inside',
+ start: 0,
+ end: 100
+ }, {
+ start: 0,
+ end: 100,
+ show: false,
+ handleIcon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4v1.3h1.3v-1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7V23h6.6V24.4z M13.3,19.6H6.7v-1.4h6.6V19.6z',
+ handleSize: '80%',
+ handleStyle: {
+ color: '#fff',
+ shadowBlur: 3,
+ shadowColor: 'rgba(0, 0, 0, 0.6)',
+ shadowOffsetX: 2,
+ shadowOffsetY: 2
+ }
+ }],
+ xAxis: {
+ type: 'time',
+ boundaryGap: false,
+ axisLabel: {
+ // rotate: 30,
+ margin: 6,
+ interval: 0,
+ textStyle: {
+ color: '#fff'
+ }
+ },
+ splitLine: {
+ show: true,
+ lineStyle: {
+ type: 'dashed'
+ }
+ },
+ axisTick: { // x 杞村埢搴︽樉绀�
+ show: false
+ },
+ axisLine: {
+ lineStyle: {
+ color: '#FFFFFF',
+ width: 1
+ }
+ }
+ },
+ yAxis: [{
+ type: 'value',
+ name: ySideName,
+ max: function (value) {
+ return parseInt(value.max + 3)
+ },
+ axisLabel: {
+ formatter: '{value}',
+ textStyle: {
+ color: '#fff'
+ }
+ },
+ axisPointer: {
+ snap: true
+ },
+ splitLine: {
+ show: false
+ },
+ axisLine: {
+ lineStyle: {
+ color: '#FFFFFF',
+ width: 1
+ }
+ }
+ }, {
+ type: 'value',
+ name: dataUnit,
+ axisLabel: {
+ formatter: '{value}',
+ textStyle: {
+ color: '#fff'
+ }
+ },
+ axisPointer: {
+ snap: true
+ },
+ splitLine: {
+ show: false
+ },
+ // inverse: true,
+ // nameLocation: 'start',
+ // max:500,
+ axisLine: {
+ lineStyle: {
+ color: '#FFFFFF',
+ width: 1
+ }
+ }
+ }],
+ series: serLists
+ }
+ this.myChart.setOption(options)
+ window.onresize = this.myChart.resize
+ }
+ }
+}
+</script>
+
+<style lang="less">
+#wasteWaterRealChartBox .echarts-form .el-input__inner {
+ background-color: rgba(0, 0, 0, 0);
+ height: .13rem;
+ border-color: #336fa4;
+}
+#wasteWaterRealChartBox .echarts-form{
+ margin-top: 1px
+}
+#wasteWaterRealChartBox .echarts-form .el-input__icon{
+ height: .13rem;
+ top: -.02rem;
+ right: -0.03rem;
+ position: absolute;
+ color: #00d0f9;
+}
+#wasteWaterRealChartBox .echarts-form .selectBox .el-input__icon:last-child{
+ top: .02rem;
+}
+#wasteWaterRealChartBox .echarts-form .selectBox .is-reverse{
+ top: -.02rem !important;
+}
+#wasteWaterRealChartBox .echarts-form .el-button{
+ background-color: rgba(0, 0, 0, 0);
+ height: .13rem;
+}
+</style>
diff --git a/src/components/panel/RightSearchPanel.vue b/src/components/panel/RightSearchPanel.vue
index 2283ad0..dea96f0 100644
--- a/src/components/panel/RightSearchPanel.vue
+++ b/src/components/panel/RightSearchPanel.vue
@@ -50,7 +50,7 @@
<script>
import EnvRiskSearch from './topicSearch/EnvRiskSearch'
-import DischargeSearch from './topicSearch/DischargeSearch'
+import PollutionSourceSearch from './topicSearch/PollutionSourceSearch'
import { topicList } from '../../conf/Topic'
import WasteGasSearch from '@components/panel/topicSearch/WasteGasSearch'
@@ -69,7 +69,7 @@
WasteWaterSearch,
SolidWasteSearch,
EnvRiskSearch,
- DischargeSearch,
+ PollutionSourceSearch,
EnterpriseEmergencySearch
},
data () {
@@ -150,7 +150,7 @@
this.title = val.name
switch (val.name) {
case '姹℃煋婧�':
- this.gcComp = DischargeSearch
+ this.gcComp = PollutionSourceSearch
break
case '搴熸按':
this.gcComp = WasteWaterSearch
diff --git a/src/components/panel/topicSearch/DischargeSearch.vue b/src/components/panel/topicSearch/DischargeSearch.vue
deleted file mode 100644
index a1e7bc8..0000000
--- a/src/components/panel/topicSearch/DischargeSearch.vue
+++ /dev/null
@@ -1,233 +0,0 @@
-<template>
- <div class="sewers-search" v-if="gdVisible">
- <div class="panel-title">{{title}}</div>
- <div class="search-panel ">
- <el-form ref="form" :model="form" label-width="90px" class="search-form">
- <el-form-item label="鍖哄煙锛�" size="mini" class="search-panel-item">
- <el-select style="width: 100%" v-model="form.areaVal" @change="areaType"
- :popper-class="'select-down'">
- <el-option
- v-for="item in areaTypeOptions"
- :key="item.value"
- :label="item.label"
- :value="item.value">
- </el-option>
- </el-select>
- </el-form-item>
- <!-- <el-form-item label="浼佷笟鍚嶇О" size="mini">
- <el-select style="width: 100%" v-model="form.enterpriseVal" @change="enterpriseType" :popper-class="'select-down'">
- <el-option
- v-for="item in enterpriseTypeOptions"
- :key="item.value"
- :label="item.label"
- :value="item.value">
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="浜岀骇鍗曚綅" size="mini">
- <el-select style="width: 100%" v-model="form.enterpriseSubunitsVal" @change="enterpriseSubunitsType" :popper-class="'select-down'">
- <el-option
- v-for="item in enterpriseSubunitsTypeOptions"
- :key="item.value"
- :label="item.label"
- :value="item.value">
- </el-option>
- </el-select>
- </el-form-item> -->
- <!-- <el-form-item label="椋庨櫓绾у埆" size="mini"></el-form-item>
- <el-radio-group v-model="form.type" class="levelOfRisk">
- <el-radio v-for="(item,index) in levelOfRisk" :label="item.value" :key="index"><span class="levelOfRisk-type">{{item.name}}<i :style="'background:'+item.color"></i></span></el-radio>
- </el-radio-group> -->
- <!-- <el-form-item >-->
- <div class="page_total">
- <p>鍏辫
- <span>{{total}}</span>
- 鏉¤褰�
- </p>
- </div>
- <div class="rightButtonSearch">
- <el-input v-model="form.keyword" size="mini" placeholder="鍦ㄦ杈撳叆鍏抽敭瀛楁悳绱�"></el-input>
- <el-button class="el-icon-search" @click="handleSearch"></el-button>
- </div>
- </el-form>
- </div>
- <el-scrollbar style="height:416.44px">
- <div class="environmental-risk-list hover"><!-- v-for="(item,index) in list" :key="index" -->
- <i class="state"></i>
- <div>
- <h3 @click="flyto">###鐐煎寲閮�</h3>
- <p>鎵�灞為儴闂細<span>鐐煎寲閮�</span></p>
- <p>椋庨櫓绾у埆锛�<span>涓夌骇</span></p>
- </div>
- </div>
- <div class="environmental-risk-list"><!-- v-for="(item,index) in list" :key="index" -->
- <i class="state"></i>
- <div>
- <h3>###鐐煎寲閮�</h3>
- <p>鎵�灞為儴闂細<span>鐐煎寲閮�</span></p>
- <p>椋庨櫓绾у埆锛�<span>涓夌骇</span></p>
- </div>
- </div>
- <div class="environmental-risk-list"><!-- v-for="(item,index) in list" :key="index" -->
- <i class="state"></i>
- <div>
- <h3>###鐐煎寲閮�</h3>
- <p>鎵�灞為儴闂細<span>鐐煎寲閮�</span></p>
- <p>椋庨櫓绾у埆锛�<span>涓夌骇</span></p>
- </div>
- </div>
- <div class="environmental-risk-list"><!-- v-for="(item,index) in list" :key="index" -->
- <i class="state"></i>
- <div>
- <h3>###鐐煎寲閮�</h3>
- <p>鎵�灞為儴闂細<span>鐐煎寲閮�</span></p>
- <p>椋庨櫓绾у埆锛�<span>涓夌骇</span></p>
- </div>
- </div>
- <div class="environmental-risk-list"><!-- v-for="(item,index) in list" :key="index" -->
- <i class="state"></i>
- <div>
- <h3>###鐐煎寲閮�</h3>
- <p>鎵�灞為儴闂細<span>鐐煎寲閮�</span></p>
- <p>椋庨櫓绾у埆锛�<span>涓夌骇</span></p>
- </div>
- </div>
- <div class="environmental-risk-list"><!-- v-for="(item,index) in list" :key="index" -->
- <i class="state"></i>
- <div>
- <h3>###鐐煎寲閮�</h3>
- <p>鎵�灞為儴闂細<span>鐐煎寲閮�</span></p>
- <p>椋庨櫓绾у埆锛�<span>涓夌骇</span></p>
- </div>
- </div>
- </el-scrollbar>
- <!-- <span class="location-btn" @click="handleLocation(item)">588</span> -->
- <el-card class="footer-page" v-if="total > 10">
- <el-pagination
- small
- @current-change="handlePage"
- :page-size=pageSize
- layout="prev, pager, next"
- :total=total
- :current-page=current
- class="warnPagination"
- >
- </el-pagination>
- </el-card>
- </div>
- <!-- <div class="monitor2" v-if="hbVisible">-->
- <!-- <env-protect-search></env-protect-search>-->
- <!-- </div>-->
- <!-- <div class="monitor2" v-if="pkVisible">-->
- <!-- <discharge-search></discharge-search>-->
- <!-- </div>-->
-</template>
-
-<script>
-import WfsHelper from '@components/helpers/WfsHelper'
-import AjaxUtils from '@utils/AjaxUtils'
-
-export default {
- name: 'DischargeSearch',
- data () {
- return {
- gdVisible: true,
- list: [],
- total: 0,
- pageSize: 10,
- inareaTypeOptions: [],
- enterpriseTypeOptions: [],
- enterpriseSubunitsTypeOptions: [],
- form: {
- areaVal: '',
- enterpriseVal: '',
- enterpriseSubunitsVal: '',
- type: ''
- },
- // pageSize: 10,
- // current: 1,
- isWaybillHover: true,
- isRouteHover: false,
- levelOfRisk: [
- {
- name: '閲嶅ぇ椋庨櫓',
- value: '1',
- color: 'red'
- },
- {
- name: '涓�绾ч闄�',
- value: '2',
- color: 'sandybrown'
- },
- {
- name: '浜岀骇椋庨櫓',
- value: '3',
- color: 'yellow'
- },
- {
- name: '涓夌骇椋庨櫓',
- value: '4',
- color: 'green'
- }
- ],
- areaTypeOptions: []
- }
- },
- props: ['title'],
- methods: {
- handlePage () {
-
- },
- flyto () {
- const pos = [39.90751504898071, 116.38927817344666]
- window.map.setView(pos, 15)
- },
- // 鍖哄煙绛涢��
- areaType (val) {
- this.pipelineTypeOptions.forEach((itm) => {
- if (val === itm.value) {
-
- }
- })
- },
- // 浼佷笟绛涢��
- enterpriseType (val) {
- this.dataTypeOptions.forEach((itm) => {
- if (val === itm.value) {
-
- }
- })
- },
- // 浜岀骇鍗曚綅绛涢��
- enterpriseSubunitsType (val) {
-
- },
- async handleSearch () {
- const param = {
- pipelineType: this.form.pipelineType,
- dataType: this.form.dataType
- }
- console.log(param)
- var wfsHelper = new WfsHelper()
- wfsHelper.addTypeName(this.form.query.layerName)
- wfsHelper.addLike(this.form.query.key, this.form.keyword)
- // const _this = this
- const res = await AjaxUtils.GetDataAsynByUrl(wfsHelper.getUrl(), {})
- if (res.data instanceof Object && Object.prototype.hasOwnProperty.call(res.data, 'features')) {
- this.list = res.data.features
- }
- },
- handleLocation (val) {
- console.log(val)
- const bound = this.L.geoJSON([val], {}).getBounds()
- var layer = window.serviceLayerHelper.getByLayerId(val.id)
- layer && layer.openPopup()
- this.$store.state.map.map.flyToBounds(bound)
- }
- }
-}
-</script>
-
-<style lang="less" scoped>
-
-</style>
diff --git a/src/components/panel/topicSearch/EnvRiskSearch.vue b/src/components/panel/topicSearch/EnvRiskSearch.vue
index ae56021..49e056f 100644
--- a/src/components/panel/topicSearch/EnvRiskSearch.vue
+++ b/src/components/panel/topicSearch/EnvRiskSearch.vue
@@ -24,7 +24,8 @@
</el-select>
</el-form-item>
<el-form-item label="鍗曚綅閮ㄩ棬锛�" size="mini">
- <el-select style="width: 100%" v-model="form.enterpriseSubunitsVal" @change="enterpriseSubunitsType" :popper-class="'select-down'">
+ <el-select style="width: 100%" v-model="form.enterpriseSubunitsVal" @change="enterpriseSubunitsType"
+ :popper-class="'select-down'">
<el-option
v-for="item in enterpriseSubunitsTypeOptions"
:key="item.value"
@@ -35,7 +36,9 @@
</el-form-item>
<el-form-item label="椋庨櫓绾у埆锛�" size="mini"></el-form-item>
<el-radio-group v-model="form.type" class="levelOfRisk">
- <el-radio v-for="(item,index) in levelOfRisk" :label="item.value" :key="index"><span class="levelOfRisk-type">{{item.name}}<i :style="'background:'+item.color"></i></span></el-radio>
+ <el-radio v-for="(item,index) in levelOfRisk" :label="item.value" :key="index">
+ <span class="levelOfRisk-type">{{item.name}}<i :style="'background:'+item.color"></i></span>
+ </el-radio>
</el-radio-group>
<div class="page_total">
<p>鍏辫
@@ -155,14 +158,13 @@
handleLocation (val) {
const pos = [val.Latitude, val.Longitude]
- debugger
window.map.setView(pos, 15)
window.$layer.open({
content: {
comp: RiskSourceIndex, // 缁勪欢
parent: this, // 鐖剁粍浠�
data: { // 浼犻�掔殑鍙傛暟
- storagePlaceId: val.no
+ riskSourceId: val.no
}
},
title: '澶╂触鐭冲寲' + val.riskname
diff --git a/src/components/panel/topicSearch/PollutionSourceSearch.vue b/src/components/panel/topicSearch/PollutionSourceSearch.vue
new file mode 100644
index 0000000..7281154
--- /dev/null
+++ b/src/components/panel/topicSearch/PollutionSourceSearch.vue
@@ -0,0 +1,130 @@
+<template>
+ <div class="sewers-search" v-if="gdVisible">
+ <div class="panel-title">{{title}}</div>
+ <div class="search-panel ">
+ <el-form ref="form" :model="form" label-width="90px" class="search-form">
+ <el-form-item label="浜岀骇鍗曚綅锛�" size="mini">
+ <el-select style="width: 100%" v-model="form.enterpriseSubunitsVal" @change="enterpriseSubunitsType"
+ :popper-class="'select-down'">
+ <el-option
+ v-for="item in enterpriseSubunitsTypeOptions"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="杩愯鐘舵�侊細" size="mini"></el-form-item>
+ <el-radio-group v-model="form.type" class="levelOfRisk">
+ <el-radio v-for="(item,index) in levelOfRisk" :label="item.value" :key="index">
+ <span class="levelOfRisk-type">{{item.name}}<i :style="'background:'+item.color"></i></span>
+ </el-radio>
+ </el-radio-group>
+ <div class="page_total">
+ <p>鍏辫
+ <span>{{total}}</span>
+ 鏉¤褰�
+ </p>
+ </div>
+ <div class="rightButtonSearch">
+ <el-input v-model="form.keyword" size="mini" placeholder="鍦ㄦ杈撳叆鍏抽敭瀛楁悳绱�"></el-input>
+ <el-button class="el-icon-search" @click="handleSearch"></el-button>
+ </div>
+ </el-form>
+ </div>
+ <el-scrollbar style="height:416.44px">
+ <div class="environmental-risk-list" v-for="(item,index) in list" :key="index"
+ @click="handleLocation(item)">
+ <img :src='iconUrl[1]' alt="" class="state"/>
+ <div>
+ <h3>{{ item.governName }}</h3>
+ <p>鎵�灞為儴闂細<span>{{ item.unitName }}</span></p>
+ </div>
+ </div>
+ </el-scrollbar>
+ <!-- <span class="location-btn" @click="handleLocation(item)">588</span> -->
+ <el-card class="footer-page" v-if="total > 10">
+ <el-pagination
+ small
+ @current-change="handlePage"
+ :page-size=pageSize
+ layout="prev, pager, next"
+ :total=total
+ :current-page=current
+ class="warnPagination"
+ >
+ </el-pagination>
+ </el-card>
+ </div>
+</template>
+
+<script>
+
+import GovernEquipmentIndex from '@components/base-page/GovernEquipment/WasteWaterIndex'
+import { pulseEffect, setPanTo } from '@utils/utils'
+const mapApi = require('../../../api/mapApi').default
+
+export default {
+ name: 'PollutionSource',
+ data () {
+ return {
+ gdVisible: true,
+ list: [],
+ total: 0,
+ pageSize: 10,
+ current: 1,
+ enterpriseSubunitsTypeOptions: [],
+ form: {
+ enterpriseSubunitsVal: '',
+ type: ''
+ },
+ isWaybillHover: true,
+ isRouteHover: false,
+ levelOfRisk: [
+ { name: '姝e父', value: '1', color: 'green' },
+ { name: '鍋滆繍', value: '2', color: 'grey' }
+ ],
+ iconUrl: ['',
+ require('../../../../public/assets/images/map/governEquipment/govern_green.png')
+ ]
+ }
+ },
+ props: ['title'],
+ methods: {
+ handlePage () {
+
+ },
+ // 浜岀骇鍗曚綅绛涢��
+ enterpriseSubunitsType (val) {
+
+ },
+ async handleSearch () {
+ const param = {
+ }
+ const res = await mapApi.getGovernEquipment(param)
+ this.list = res // 涓存椂鏁版嵁
+ },
+
+ handleLocation (val) {
+ const pos = [val.Latitude, val.Longitude]
+ window.map.setView(pos, 15)
+ window.$layer.open({
+ content: {
+ comp: GovernEquipmentIndex, // 缁勪欢
+ parent: this, // 鐖剁粍浠�
+ data: { // 浼犻�掔殑鍙傛暟
+ governId: val.no
+ }
+ },
+ title: '澶╂触鐭冲寲' + val.governName
+ })
+ pulseEffect([val.Latitude, val.Longitude])
+ setPanTo(pos, 250)
+ }
+ }
+}
+</script>
+
+<style lang="less" scoped>
+
+</style>
diff --git a/src/conf/Topic.js b/src/conf/Topic.js
index 7f566af..e722922 100644
--- a/src/conf/Topic.js
+++ b/src/conf/Topic.js
@@ -5,7 +5,7 @@
}
export const TopicComp = {
- dischargeSearch: () => import('@components/panel/topicSearch/DischargeSearch'),
+ pollutionSourceSearch: () => import('@components/panel/topicSearch/PollutionSourceSearch'),
envProtectSearch: () => import('@components/panel/topicSearch/EnvRiskSearch'),
soilGroundWaterSearch: () => import('@components/panel/topicSearch/SoilGroundWaterSearch'),
sewersSearch: () => import('@components/panel/topicSearch/SewersSearch.vue'),
--
Gitblit v1.8.0