From 2b249104b536535697157adfa224a4cc51c28351 Mon Sep 17 00:00:00 2001 From: chenzeping <ChenZeping02609@163.com> Date: 星期四, 22 四月 2021 21:34:39 +0800 Subject: [PATCH] 废水弹框相关修改 --- src/components/BaseNav/WasteWater/RealData.vue | 521 ++++++++++++++++++++++++--------------------------------- 1 files changed, 219 insertions(+), 302 deletions(-) diff --git a/src/components/BaseNav/WasteWater/RealData.vue b/src/components/BaseNav/WasteWater/RealData.vue index 7a134ae..60554f9 100644 --- a/src/components/BaseNav/WasteWater/RealData.vue +++ b/src/components/BaseNav/WasteWater/RealData.vue @@ -1,37 +1,28 @@ <template> - <div id="Tab"> + <div class="echarts-box"> <div class="tab-scroll"> <PublicDataStandard :dataStandard="dataStandard"></PublicDataStandard> - <span class="time-select">{{ formInline.timeStart }}鈥斺�攞{ formInline.timeEnd }}</span> + <span class="time-select">{{ startTime }}鈥攞{ endTime }}</span> </div> - <div class="form-echrts"> - <div class="from-search"> - <div class="pickerMon"> - <div class="pickerData"> - <span> 寮�濮嬫椂闂�:</span> - <span class="pickerTable"> - <el-date-picker type="datetime" v-model="formInline.timeStart"></el-date-picker> - </span> - </div> - <div class="pickerData"> - <span>缁撴潫鏃堕棿:</span> - <span class="pickerTable"> - <el-date-picker type="datetime" v-model="formInline.timeEnd"></el-date-picker> - </span> - </div> - </div> - <div> - <span>閲囨牱鐐规暟:</span> - <el-select v-model="formInline.region" placeholder="50"> - <el-option label="0" value="0"></el-option> - <el-option label="25" value="25"></el-option> - <el-option label="50" value="50"></el-option> - <el-option label="75" value="75"></el-option> - <el-option label="100" value="100"></el-option> - </el-select> - </div> - <div class="detailbtn" @click="onSubmit">鏌ヨ</div> - </div> + <div class="echarts-form"> + <span class="demonstration">寮�濮嬫椂闂达細</span> + <el-date-picker + v-model="startTime" + type="datetime"> + </el-date-picker> + <span class="demonstration">缁撴潫鏃堕棿锛�</span> + <el-date-picker + v-model="endTime" + type="datetime"> + </el-date-picker> + <span class="demonstration">閲囨牱鐐规暟锛�</span> + <el-select v-model="region" placeholder="璇烽�夋嫨" style="width: 80px"> + <el-option v-for="(item,index) in 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 style="width:5rem;height:1.5rem;" ref="echarts"></div> </div> </div> @@ -39,10 +30,11 @@ <script> -import PublicDataStandard from '@/components/BaseNav/PublicDataStandard' -import mapApi from '@/api/mapApi' import 'dayjs/locale/es' import dayjs from 'dayjs' + +import mapApi from '../../../api/mapApi' +import PublicDataStandard from '../PublicDataStandard' export default { name: 'ECharts', @@ -51,6 +43,7 @@ }, data () { return { + a: '', // tab鏍忎紶閫掓帴鏀舵暟鎹� dataStandard: [ { @@ -93,27 +86,15 @@ val: null } }], - - // echarts鐨勬暟鎹缃� - myChart: null, - - // 寮�濮� /缁撴潫 鏃堕棿 鍜岄噰鏍风偣鍊肩殑缁戝畾鍊兼暟鎹� - formInline: { - region: '', - timeStart: '', - timeEnd: '' + formData: { + startTime: '', + endTime: '' }, - // timeStart:, - // timeEnd:'', - - // echarts鐨刼ptions鏁版嵁浼犲叆 - echartsOptions: { - legend: [], - ydatas: [], - yname: ' 娴撳害(mg/m鲁)' - }, - - // 瀹炴椂鏁版嵁鍒楄〃 + startTime: dayjs().subtract(3, 'minute').format('YYYY-MM-DD HH:mm:ss'), + endTime: dayjs().format('YYYY-MM-DD HH:mm:ss'), + region: '25', + regionList: [25, 50, 75, 100], + datatype: 1, RealTimeDataList: [], bzz: null, bzzList: [] @@ -121,56 +102,63 @@ }, mounted () { this.$nextTick(() => { + this.myChart = this.$echarts.init(this.$refs.echarts) this.initEchartsData() }) }, methods: { - // 鐐瑰嚮鏌ヨ鎸夐挳鍔熻兘 - onSubmit () { - this.DrawEXHRealTimeDateChart() - }, - // 鍒濆鍖栨暟鎹幏鍙杄charts鐨刼ptions鏁版嵁 - async initEchartsData () { - // 鐢ㄤ簬鎺ュ彛鏁版嵁璇锋眰鐨勫弬鏁� 寮�濮�/缁撴潫鏃堕棿 || 鍙�夋嫨鏌ヨ鐨勫紑濮�/缁撴潫鏃堕棿 - this.formInline.timeEnd = dayjs().format('YYYY-MM-DD HH:mm:ss') - this.formInline.timeStart = dayjs().subtract(3, 'minute').format('YYYY-MM-DD HH:mm:ss') + // 鏌ヨ鎼滅储鍔熻兘 + async querySearch () { const data = { $tagCodeList: 'TJIP45.y2h508CEMS01NOX,CTJIP45.y2h508CEMS01SO2,CTJIP45.y2h508CEMS01F,CTJIP45.y2h508CEMS01PM', - $startTime: this.formInline.timeEnd, - $endTime: this.formInline.timeStart, + $startTime: this.formData.startTime, + $endTime: this.formData.endTime, + $step: 15 + } + // console.log(data) + const result = (await mapApi.getDataItems(data)).data + // console.log(result) + this.dealWithData(result) + }, + async initEchartsData () { + const data = { + $tagCodeList: 'TJIP45.y2h508CEMS01NOX,CTJIP45.y2h508CEMS01SO2,CTJIP45.y2h508CEMS01F,CTJIP45.y2h508CEMS01PM', + $startTime: dayjs().subtract(3, 'minute').format('YYYY-MM-DD HH:mm:ss'), + $endTime: dayjs().format('YYYY-MM-DD HH:mm:ss'), $step: 15 } const result = (await mapApi.getDataItems(data)).data - this.getRtdb15s(result) + // this.result = result + this.dealWithData(result) }, - // echarts鏁版嵁澶勭悊 - getRtdb15s (res) { - if (res.length > 0) { + // 鏁版嵁澶勭悊 + dealWithData (result) { + // 鎺ユ敹鏁版嵁姝g‘ 杩涜鏁版嵁澶勭悊 + if (result.length > 0) { // 澶勭悊鏁版嵁寮�濮� - const d = res - const nameList = [] // 瀛樻斁鍥句緥 - // 鏁版嵁绫诲瀷// var data={name:'',value:[now1.getFullYear(), now1.getMonth() + 1, now1.getDate().join('/'),value]} - let data = {} - // 瀛樻斁data鐨勬暟缁� - let datalist - // var bzh = [] + const d = result + const nameList = [] + let data + let datalist + + // 鏁版嵁鍒ゆ柇 for (let i = 0; i < d.length; i++) { if (d[i].ErrorMessage != null) { continue } - // 涓存椂name鏁版嵁 - const nameListTemp = [ + + // temp 涓存椂鏁版嵁鍒ゆ柇鏂规硶 + const tempList = [ { 'TJIP45.lscl2tbAIA-10505-1': '姘哀鍖栫墿', 'TJIP45.lscl2tbAIA-10505-2': '鐑熷皹', 'TJIP45.lscl2tb552AISA11202A': '浜屾哀鍖栫7', - 'TJIP45.lscl2tb552AISA11201B': 'ph', + 'TJIP45.lscl2tb552AISA11201B': 'pH', 'TJIP45.lscl2tb552AI10710': '浜屾哀鍖栫⒊' } ] - - const name = nameListTemp[0][d[i].UnionTagCode] + const name = tempList[0][d[i].UnionTagCode] if (nameList.length === 0) { nameList.push(name) @@ -183,17 +171,10 @@ name: name, data: [data] } - this.RealTimeDataList.push(datalist) - // console.log(this.RealTimeDataList) - - // bzh.push(d[i].StdValue); } else if (nameList.indexOf(name) < 0) { nameList.push(name) - // bzh.push(d[i].StdValue); - const newdate = new Date(d[i].ReadTime) - data = { name: name, value: [newdate, d[i].TagValue] @@ -206,7 +187,6 @@ } else if (i === d.length - 1) { if (nameList.indexOf(name) < 0) { nameList.push(name) - // bzh.push(d[i].StdValue); const newdate = new Date(d[i].ReadTime) data = { name: name, @@ -223,7 +203,7 @@ name: name, value: [newdate, d[i].TagValue] } - for (var k = 0; k < this.RealTimeDataList.length; k++) { + for (let k = 0; k < this.RealTimeDataList.length; k++) { if (this.RealTimeDataList[k].name === name) { this.RealTimeDataList[k].data.push(data) } @@ -242,34 +222,28 @@ } } } - - const divid = 'mycharteff_second' - const title = name - const lengList = [] - let objTemp = [] - // console.log(objTemp) + let objTemp for (let l = 0; l < nameList.length; l++) { let obj - let iconurl - if (nameList[l] === 'ph') { - iconurl = 'image://../assets/imgs/legend/WenDu.png' + let IconUrl + if (nameList[l] === 'pH') { + IconUrl = 'image://../assets/imgs/legend/WenDu.png' } else if (nameList[l] === '姘哀鍖栫墿') { - iconurl = 'image://../assets/imgs/legend/NOX.png' + IconUrl = 'image://../assets/imgs/legend/NOX.png' } else if (nameList[l] === '鐑熷皹') { - iconurl = 'image://../assets/imgs/legend/zongdan.png' + IconUrl = 'image://../assets/imgs/legend/zongdan.png' } else if (nameList[l] === '浜屾哀鍖栫7') { - iconurl = 'image://../assets/imgs/legend/YanChen.png' + IconUrl = 'image://../assets/imgs/legend/YanChen.png' } else if (nameList[l] === '浜屾哀鍖栫⒊') { - iconurl = 'image://../assets/imgs/legend/VOCs.png' + IconUrl = 'image://../assets/imgs/legend/VOCs.png' } if (nameList[l] === '搴熸按' || nameList[l] === '搴熸按娴侀噺') { // 灏嗗簾姘存祦閲忔帓鍒版暟缁勬渶鍚� - // eslint-disable-next-line no-const-assign objTemp = { name: nameList[l], - icon: iconurl, + icon: IconUrl, textStyle: { color: '#ccc' }, @@ -279,7 +253,7 @@ } else { obj = { name: nameList[l], - icon: iconurl, + icon: IconUrl, textStyle: { color: '#ccc' }, @@ -288,52 +262,54 @@ } lengList.push(obj) } - // console.log(lengList) } lengList.push(objTemp) const legend = lengList - // const xdata = dateList.reverse(); const ydatas = [] + // console.log(nameList) for (let j = 0; j < nameList.length; j++) { let zdcbcolor, zxcolor - if (nameList[j] === 'ph') { + if (nameList[j] === 'COD') { zdcbcolor = 'red' - zxcolor = '#f206ff' - } else if (nameList[j] === '鐑熷皹') { - zdcbcolor = 'red' - zxcolor = '#e0ffff' - } else if (nameList[j] === '姘哀鍖栫墿') { + zxcolor = '#fff21c' + } else if (nameList[j] === '姘ㄦ爱') { zdcbcolor = 'red' zxcolor = '#00B0F0' - } else if (nameList[j] === '浜屾哀鍖栫⒊') { - zdcbcolor = 'red' - zxcolor = '#9ACD32' - } else if (nameList[j] === '浜屾哀鍖栫7') { + } else if (nameList[j] === '鎬荤7') { zdcbcolor = 'red' zxcolor = '#f48183' + } else if (nameList[j] === '鎬绘爱') { + zdcbcolor = 'red' + zxcolor = '#e0ffff' + } else { + zdcbcolor = 'red' + zxcolor = '#9ACD32' } let ydata + // 涓存椂鏁版嵁 - const BBZMAPPING = [ - { - COD: 35, - ph: 9, - 鎬绘爱: 15, - 鎬荤7: 0.3, - 姘ㄦ爱: 3 - } - ] + const BBZMAPPING = { + COD: 35, + pH: 9, + 鎬绘爱: 15, + 鎬荤7: 0.3, + 姘ㄦ爱: 3 + } for (let m = 0; m < this.RealTimeDataList.length; m++) { let stdValue = null if (this.RealTimeDataList[m].name === nameList[j]) { - // for (let p in BBZMAPPING) { - // stdValue = BBZMAPPING[this.RealTimeDataList[m].name] - // } - BBZMAPPING.forEach((item) => { + for (const p in BBZMAPPING) { + // console.log('p' + p) + this.a = p stdValue = BBZMAPPING[this.RealTimeDataList[m].name] - }) + } + // console.log(stdValue) + this.bzz = { + name: nameList[j], + bzhui: stdValue + } ydata = { name: nameList[j], data: this.RealTimeDataList[m].data, @@ -341,30 +317,26 @@ zxcolor: zxcolor, bzz: stdValue } - this.bzz = { - name: nameList[j], - bzhui: stdValue - } + // console.log(stdValue) this.bzzList.push(this.bzz) ydatas.push(ydata) } } } const yname = '娴撳害(mg/l)' - this.DrawRealTimeDateChart(divid, title, legend, ydatas, yname) - // - // this.IntervalRealTimeDate(id, unionTagCodeList, BBZMAPPING) - this.IntervalRealTimeDate() + this.DrawRealTimeDateChart(legend, ydatas, yname) } }, - // 鑾峰彇鏁版嵁鐢ㄤ簬echarts鍥捐〃缁樺埗 - DrawRealTimeDateChart (id, title, legend, ydatas, yname) { - this.myChart = this.$echarts.init(this.$refs.echarts) + + // 鎸囨爣鏍规嵁鏍囧噯鍊煎垽鏂紝濡傛灉澶т簬鏍囧噯鍊兼槸绾㈣壊 + // 鏍囧噯绾跨粯鍒� + DrawRealTimeDateChart (legend, ydatas, yname) { const serLists = [] - let dataUnit + const bzzList = this.bzzList for (let i = 0; i < ydatas.length; i++) { const zdcbcolor = ydatas[i].zdcbcolor const bz = ydatas[i].bzz + // console.log(bz) let obj if (bz) { obj = { @@ -376,9 +348,9 @@ normal: { color: function (c) { // 鏍规嵁value 鏄剧ず涓嶅悓鐨勬姌鐐归鑹� let biaozhuiz - for (var i = 0; i < this.bzzList.length; i++) { - if (this.bzzList[i].name === c.seriesName) { - biaozhuiz = this.bzzList[i].bzhui + for (let i = 0; i < bzzList.length; i++) { + if (bzzList[i].name === c.seriesName) { + biaozhuiz = bzzList[i].bzhui } } if (c.value[1] > biaozhuiz) { @@ -398,7 +370,6 @@ show: false } } - }, type: 'line', data: ydatas[i].data, @@ -408,15 +379,34 @@ label: { normal: { position: 'end', - formatter: ''// ydatas[i].name+'鏍囧噯鍊�' //+'{c}' + formatter: bz } }, name: '鏍囧噯鍊�', yAxis: bz, lineStyle: { - color: ydatas[i].zxcolor, - type: 'dashed', - width: 2 + normal: { + type: 'dashed', + width: 2, + // color: ydatas[i].zxcolor, + // color: '#4ec99c', + color: function (c) { + console.log(c) + 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' + } + } + } } } ] @@ -425,26 +415,36 @@ } else { obj = { name: ydatas[i].name, - // symbol:'circle', // 鎶樼偣褰㈢姸 - // symbolSize: 3, //澶у皬 - smooth: true, // 鐩寸嚎 锛宼rue 涓烘洸绾� + symbol: 'circle', // 鎶樼偣褰㈢姸 + symbolSize: 10, // 澶у皬 + smooth: false, // 鐩寸嚎 锛宼rue 涓烘洸绾� yAxisIndex: 1, - itemStyle: { - normal: { - color: function (c) { // 鏍规嵁value 鏄剧ず涓嶅悓鐨勬姌鐐归鑹� - return '#33c95f' - }, - lineStyle: { // 鎶樼嚎鐨勯鑹� - color: ydatas[i].zxcolor, - width: 2 - }, - // borderColor:'black', //鎶樼偣杈规鐨勯鑹� - label: { // 鏄剧ず鍊� - show: false - } - } - - }, + // itemStyle: { + // normal: { + // color: function (c) { // 鏍规嵁value 鏄剧ず涓嶅悓鐨勬姌鐐归鑹� + // for (let i = 0; i < this.bzzList.length; i++) { + // let biaozhuizs + // if (this.bzzList[i].name === c.seriesName) { + // biaozhuizs = this.bzzList[i].bzhui + // } + // console.log(biaozhuizs) + // } + // if (c.value[1] > 9) { + // return zdcbcolor + // } else { + // return '#33c95f' + // } + // }, + // lineStyle: { // 鎶樼嚎鐨勯鑹� + // color: ydatas[i].zxcolor, + // width: 5 + // }, + // borderColor: 'black', // 鎶樼偣杈规鐨勯鑹� + // label: { // 鏄剧ず鍊� + // show: false + // } + // } + // }, type: 'line', data: ydatas[i].data } @@ -453,16 +453,17 @@ if (ydatas[i].name === '搴熸皵娴侀噺' || ydatas[i].name === '搴熸皵') { obj.yAxisIndex = 1 } - // 涓存椂 - const datatype = 1 - if (datatype === 1) { - dataUnit = '娴侀噺(m鲁/d)' - } else { - dataUnit = '娴侀噺(m鲁/h)' - } serLists.push(obj) } - const option = { + + let dataUnit = '' + if (this.datatype === 1) { + dataUnit = '娴侀噺(m鲁/d)' + } else { + dataUnit = '娴侀噺(m鲁/h)' + } + + const options = { /* title: { text: title, }, */ @@ -477,19 +478,19 @@ formatter: function (params) { let s = params[0].name + '<br />' for (let i = 0; i < params.length; i++) { - // var name = params[i].name + // let name = params[i].name // 鍥捐〃title鍚嶇О const seriesName = params[i].seriesName // 鍊� const value = params[i].value[1] - // var valueFliter = formatter(value) + // const valueFliter = formatter(value) const valueFliter = parseFloat(value).toFixed(2) let maker = params[i].marker let colo = '' switch (seriesName) { - case 'ph': + case 'pH': colo = '#f206ff' break case '姘哀鍖栫墿': @@ -514,15 +515,14 @@ return s } }, - toolbox: { + toolbox: { // 鎵撳嵃绛夊伐鍏� show: false, feature: { saveAsImage: {} } }, - grid: { - top: '20%', - bottom: '15%' + grid: { // 缃戞牸 + top: '20%' }, legend: { data: legend @@ -624,7 +624,8 @@ }], series: serLists } - this.myChart.setOption(option) + this.myChart.setOption(options) + window.onresize = this.myChart.resize }, // 瀹氭椂鍣� 鏍规嵁鏃堕棿闂撮殧璇锋眰鏁版嵁 IntervalRealTimeDate (id, unionTagCodeList, BBZMAPPING) { @@ -639,144 +640,60 @@ </script> <style scoped lang="less"> -.grid-content { - font-size: 8px; - background-color: #2e4967; - text-align: center; - border-radius: 2px; - margin-right: 10px; - padding: 0 10px; - - > i { - color: #ffffff; - } -} - -.tab-scroll { - display: flex; - align-items: center; - justify-content: space-between; - - .time-select { - //margin: 0 10px; - cursor: pointer; - padding: 5px; - border: 1px solid #2b87c8; - border-radius: 4px; - text-align: center; - color: #fff; - font-size: 11px; - width: 280px; - } -} - -.animation { - //width: 600px; - //height: 0.06rem; - .infomation { - padding: 5px 10px; - } -} - -.form-echrts { - width: 100%; - border-top: 1px solid #396d83; - //margin: 10px 10px 10px 10px; - .from-search { +.echarts-box { + .tab-scroll { display: flex; - //justify-content: space-evenly; - padding: 15px 0; + align-items: center; + justify-content: space-between; - > div { - margin-left: 10px + .time-select { + cursor: pointer; + padding: 5px; + border: 1px solid #2b87c8; + border-radius: 4px; + text-align: center; + color: #fff; + font-size: 11px; + width: 280px; } + } - .pickerMon { - display: flex; + .echarts-form { + height: 0.3rem; + line-height: 0.3rem; - > div:first-child { - margin-right: 10px; - } - - .pickerData { - flex: 1; - display: flex; - - > span { - line-height: 22px; - margin-right: 15px; - } - - .pickerTable { - margin-left: 3px; - } - } - } - - /deep/ .el-date-editor--datetime { - width: 100%; + .demonstration { + color: #00fff6; + font-size: 12px; + margin-left: 10px; } /deep/ .el-input__inner { - position: relative; - width: 140px; + height: 0.15rem; background-color: #2e4967; color: #fff; font-size: 12px; - height: 24px; padding: 0; border-color: #00fff6; text-align: center; - z-index: 9999; - //padding-left:20px ; - //padding: 0!important; } - /deep/ .el-input__icon { - display: block; - width: 140px; - height: 22px; - line-height: 22px; - cursor: pointer; - font-size: 0; - } - - .echatsInput { - color: #00ffff; + .el-button { + margin: 0 15px; + width: 0.3rem; + height: 0.15rem; + display: inline-block; background-color: #2e4967; - border: none; - border-radius: 6px; - width: 80px; - height: 22px; - } - - input::-webkit-calendar-picker-indicator { - opacity: 100; - } - - .detailbtn { - background-color: #2e4967; + color: #fff; + font-size: 12px; + padding: 0; + border-color: #00fff6; text-align: center; - padding: 0 7px; - line-height: 20px; - border-radius: 4px; - margin-right: 6px; } - } - .el-dialog-div { - //height: 50vh!important; - overflow: auto; - //overflow: hidden; - } - - #echarts { - margin: 0; - padding: 0; - //height: 3rem; - //border: 1px solid #396d83; - //margin: 10px 10px 10px 10px; + /deep/ .el-icon-time:before { + content: " "; } } </style> -- Gitblit v1.8.0