From 81e426e19db140e630f45409c1569fe16dbcc33f Mon Sep 17 00:00:00 2001 From: 徐旺旺 <11530253@qq.com> Date: 星期二, 18 五月 2021 15:25:19 +0800 Subject: [PATCH] 修复点击弹窗bug --- src/components/BaseNav/WasteGas/WasteGasRealChart.vue | 386 +++++++++++++++++++----------------------------------- 1 files changed, 135 insertions(+), 251 deletions(-) diff --git a/src/components/BaseNav/WasteGas/WasteGasRealChart.vue b/src/components/BaseNav/WasteGas/WasteGasRealChart.vue index a882ee3..d8de3cf 100644 --- a/src/components/BaseNav/WasteGas/WasteGasRealChart.vue +++ b/src/components/BaseNav/WasteGas/WasteGasRealChart.vue @@ -1,49 +1,38 @@ <template> - <div id="Tab"> - <PublicDataStandard :dataStandard="dataStandard"></PublicDataStandard> - <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="querySearch">鏌ヨ</div> - </div> - <div style="width:5rem;height:1.5rem;" ref="echarts"></div> + <div 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 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> + </div> + <div class="echarts-chart"> + <div ref="echarts"></div> + <span class="time-select">{{ formData.startTime }}鈥攞{ formData.endTime }}</span> + <!-- <public-chart :propsData="propsData"></public-chart>--> </div> </div> </template> <script> - -import PublicDataStandard from '@/components/BaseNav/PublicDataStandard' -import mapApi from '@/api/mapApi' +// import PublicChart from '../PublicChart' +import PublicDataStandard from '../PublicDataStandard' +import mapApi from '../../../api/mapApi' import 'dayjs/locale/es' import dayjs from 'dayjs' export default { name: 'WasteGasRealChart', components: { + // PublicChart, PublicDataStandard }, data () { @@ -90,19 +79,18 @@ val: null } }], + propsData: {}, + + // 寮�濮� /缁撴潫 鏃堕棿 鍜岄噰鏍风偣鍊肩殑缁戝畾鍊兼暟鎹� + 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') + }, // echarts鐨勬暟鎹缃� myChart: null, - - // 寮�濮� /缁撴潫 鏃堕棿 鍜岄噰鏍风偣鍊肩殑缁戝畾鍊兼暟鎹� - formInline: { - region: '', - timeEnd: '', - timeStart: '' - }, - - res: [], - // 瀹炴椂鏁版嵁鍒楄〃 EXHRealTimeDataList: [], bzz: null, @@ -117,41 +105,34 @@ }) }, methods: { - // 鍒濆鍖栨暟鎹幏鍙杄charts鐨刼ptions鏁版嵁 + // 鐐瑰嚮鏌ヨ鎸夐挳鍔熻兘 鏌ヨ鎼滅储鍔熻兘 + querySearch () { + this.initEchartsData() + // console.log(this.EXHRealTimeDataList) + }, + // 鍒濆鍖栨暟鎹姹� async initEchartsData () { const data = { $tagCodeList: 'TJIP45.y2h508CEMS01NOX,CTJIP45.y2h508CEMS01SO2,CTJIP45.y2h508CEMS01F,CTJIP45.y2h508CEMS01PM', - $startTime: dayjs().subtract(3, 'minute').format('YYYYMMDD HHmmss'), - $endTime: dayjs().format('YYYYMMDD HHmmss'), - $step: 15 - } - this.res = (await mapApi.DataItems(data)).data - this.getRtdb15s(this.res) - }, - // 鐐瑰嚮鏌ヨ鎸夐挳鍔熻兘 - async querySearch () { - // 鐢ㄤ簬鎺ュ彛鏁版嵁璇锋眰鐨勫弬鏁� 寮�濮�/缁撴潫鏃堕棿 || 鍙�夋嫨鏌ヨ鐨勫紑濮�/缁撴潫鏃堕棿 - // this.formInline.timeEnd = dayjs().format('YYYYMMDD HHmmss') - // this.formInline.timeStart = dayjs().subtract(3, 'minute').format('YYYYMMDD HHmmss') - 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 } const result = (await mapApi.DataItems(data)).data - this.getRtdb15s(result) + this.dealWithData(result) }, // echarts鏁版嵁澶勭悊 - getRtdb15s (res) { + dealWithData (res) { if (res.length > 0) { // 澶勭悊鏁版嵁寮�濮� const d = res const nameList = [] // 瀛樻斁鍥句緥 - let data // 鏁版嵁绫诲瀷// let data={name:'',value:[now1.getFullYear(), now1.getMonth() + 1, now1.getDate().join('/'),value]} - let datalist // 瀛樻斁data鐨勬暟缁� - // let bzh = [] + let data + // 瀛樻斁data鐨勬暟缁� + let datalist + this.EXHRealTimeDataList = [] + this.nameList = [] for (let i = 0; i < d.length; i++) { if (d[i].ErrorMessage != null) { continue @@ -161,9 +142,9 @@ const nameListTemp = [ { 'TJIP45.y2h508CEMS01NOX': '姘哀鍖栫墿', - 'TJIP45.y2h508CEMS01SO2': '鐑熷皹', - 'TJIP45.y2h508CEMS01F': '浜屾哀鍖栫7', - 'TJIP45.y2h508CEMS01PM': 'ph' + 'TJIP45.y2h508CEMS01SO2': '姘у惈閲�', + 'TJIP45.y2h508CEMS01F': '娓╁害', + 'TJIP45.y2h508CEMS01PM': '搴熸皵娴侀噺' // 'TJIP45.lscl2tb552AI10710': '浜屾哀鍖栫⒊' } ] @@ -231,32 +212,27 @@ } } } - // console.log(this.EXHRealTimeDataList) - - const divid = 'mychart_ss' - const title = name - const lengList = [] + const legendList = [] 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] === '娓╁害') { + 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' - } else if (nameList[l] === '浜屾哀鍖栫7') { - iconurl = 'image://../assets/imgs/legend/YanChen.png' - } else if (nameList[l] === '浜屾哀鍖栫⒊') { - iconurl = 'image://../assets/imgs/legend/VOCs.png' + iconUrl = 'image://../assets/imgs/legend/zongdan.png' + } else if (nameList[l] === '姘у惈閲�') { + iconUrl = 'image://../assets/imgs/legend/VOCs.png' + } else if (nameList[l] === '搴熸皵娴侀噺') { + iconUrl = 'image://../assets/imgs/legend/VOCs.png' } if (nameList[l] === '搴熸皵' || nameList[l] === '搴熸皵娴侀噺') { // 灏嗗簾姘旀祦閲忔帓鍒版暟缁勬渶鍚� objTemp = { name: nameList[l], - icon: iconurl, + icon: iconUrl, textStyle: { color: '#ccc' }, @@ -266,24 +242,24 @@ } else { obj = { name: nameList[l], - icon: iconurl, + icon: iconUrl, textStyle: { color: '#ccc' }, itemWidth: 20, itemHeight: 5 } - lengList.push(obj) + legendList.push(obj) } } - lengList.push(objTemp) + legendList.push(objTemp) - const legend = lengList + const legend = legendList const ydatas = [] for (let j = 0; j < nameList.length; j++) { let zdcbcolor, zxcolor - if (nameList[j] === 'ph') { + if (nameList[j] === '娓╁害') { zdcbcolor = 'red' zxcolor = '#f206ff' } else if (nameList[j] === '鐑熷皹') { @@ -292,23 +268,21 @@ } else if (nameList[j] === '姘哀鍖栫墿') { zdcbcolor = 'red' zxcolor = '#00B0F0' - } else if (nameList[j] === '浜屾哀鍖栫⒊') { + } else if (nameList[j] === '搴熸皵娴侀噺') { zdcbcolor = 'red' zxcolor = '#9ACD32' - } else if (nameList[j] === '浜屾哀鍖栫7') { + } else if (nameList[j] === '姘у惈閲�') { zdcbcolor = 'red' - zxcolor = '#f48183' + zxcolor = '#008000' } let ydata // 涓存椂鏁版嵁 - const BBZMAPPING = [ - { - 姘哀鍖栫墿: 35, - 鐑熷皹: 9, - 浜屾哀鍖栫7: 15, - ph: 0.3 - } - ] + const BBZMAPPING = { + 姘哀鍖栫墿: 30, + 鐑熷皹: 9, + 浜屾哀鍖栫7: 15, + ph: 0.3 + } for (let m = 0; m < this.EXHRealTimeDataList.length; m++) { let stdValue = null if (this.EXHRealTimeDataList[m].name === nameList[j]) { @@ -316,9 +290,14 @@ // i++ // stdValue = BBZMAPPING[this.EXHRealTimeDataList[m].name] // } - BBZMAPPING.forEach(item => { + // BBZMAPPING.forEach(item => { + // stdValue = BBZMAPPING[this.EXHRealTimeDataList[m].name] + // }) + for (const p in BBZMAPPING) { + // console.log('p' + p) + this.a = p stdValue = BBZMAPPING[this.EXHRealTimeDataList[m].name] - }) + } ydata = { name: nameList[j], @@ -336,23 +315,26 @@ } } } - - const yname = '娴撳害(mg/m鲁)' - - this.DrawRealTimeDateChart(divid, title, legend, ydatas, yname) + const yName = '娴撳害(mg/m鲁)' + this.drawRealTimeDateChart(legend, ydatas, yName) } }, // 鑾峰彇鏁版嵁鐢ㄤ簬echarts鍥捐〃缁樺埗 - DrawRealTimeDateChart (id, title, legend, ydatas, yname) { - // console.log(ydatas) + drawRealTimeDateChart (legend, ydatas, yName) { + // 姣忔缁樺埗鍥捐〃杩涜鍥捐〃瀹炰緥鍖� this.myChart = this.$echarts.init(this.$refs.echarts) + // 鍥捐〃鏁版嵁娓呴櫎 + this.myChart.clear() + // 瀹氫箟series鏁版嵁 const serLists = [] let dataUnit for (let i = 0; i < ydatas.length; i++) { const zdcbcolor = ydatas[i].zdcbcolor const bz = ydatas[i].bzz - // console.log(bz) let obj + let biaozhuiz + const exhbzzList = this.exhbzzList + // console.log(exhbzzList) if (bz) { obj = { name: ydatas[i].name, @@ -362,14 +344,14 @@ itemStyle: { normal: { color: function (c) { // 鏍规嵁value 鏄剧ず涓嶅悓鐨勬姌鐐归鑹� - for (let i = 0; i < this.exhbzzList.length; i++) { - if (this.exhbzzList[i].name === c.seriesName) { - this.biaozhuiz = this.exhbzzList[i].bzhui + for (let i = 0; i < exhbzzList.length; i++) { + if (exhbzzList[i].name === c.seriesName) { + biaozhuiz = exhbzzList[i].bzhui } } - if (c.value[1] > this.biaozhuiz) { + if (c.value[1] > biaozhuiz) { return zdcbcolor - } else if (c.value[1] > this.biaozhuiz * 0.9) { + } else if (c.value[1] > biaozhuiz * 0.9) { return '#FFA500' } else { return '#33c95f' @@ -417,15 +399,14 @@ itemStyle: { normal: { color: function (c) { // 鏍规嵁value 鏄剧ず涓嶅悓鐨勬姌鐐归鑹� - // let biaozhuiz - // for (let i = 0; i < this.exhbzzList.length; i++) { - // if (this.exhbzzList[i].name === c.seriesName) { - // this.biaozhuiz = this.exhbzzList[i].bzhui - // } - // } - if (c.value[1] > 20) { + for (let i = 0; i < exhbzzList.length; i++) { + if (exhbzzList[i].name === c.seriesName) { + biaozhuiz = exhbzzList[i].bzhui + } + } + if (c.value[1] > biaozhuiz) { return zdcbcolor - } else if (c.value[1] > 15 * 0.9) { + } else if (c.value[1] > biaozhuiz * 0.8) { return '#FFA500' } else { return '#33c95f' @@ -484,7 +465,7 @@ let maker = params[i].marker let colo = '' switch (seriesName) { - case 'ph': + case '娓╁害': colo = '#f206ff' break case '姘哀鍖栫墿': @@ -493,11 +474,11 @@ case '鐑熷皹': colo = '#e0ffff' break - case '浜屾哀鍖栫⒊': + case '搴熸皵娴侀噺': colo = '#9ACD32' break - case '浜屾哀鍖栫7': - colo = '#f48183' + case '姘у惈閲�': + colo = '#008000' break default: colo = '' @@ -516,8 +497,8 @@ } }, grid: { - top: '20%', - bottom: '15%' + top: '40px', + bottom: '30px' }, legend: { data: legend @@ -543,9 +524,9 @@ xAxis: { // x 杞磋缃� type: 'time', boundaryGap: false, - axisLabel: { // x杞村叏閮ㄦ樉绀� + axisLabel: { // rotate: 30, - margin: 6, + // margin: 6, interval: 0, textStyle: { color: '#fff' @@ -566,15 +547,13 @@ width: 1// 杩欓噷鏄负浜嗙獊鍑烘樉绀哄姞涓婄殑 } } - // data: xdata }, yAxis: [{ type: 'value', - name: yname, - // max: function (value) { - // console.log(value) - // return parseInt(value.max + 30) - // }, + name: yName, + max: function (value) { + return parseInt(value.max + 30) + }, axisLabel: { formatter: '{value}', textStyle: { @@ -607,10 +586,7 @@ }, splitLine: { show: false - }, // y杞� 缃戞牸绾夸笉鏄剧ず, - // inverse: true, - // nameLocation: 'start', - // max:500, + }, axisLine: { lineStyle: { color: '#FFFFFF', @@ -621,138 +597,46 @@ series: serLists } this.myChart.setOption(option) - }, - // 瀹氭椂鍣� 鏍规嵁鏃堕棿闂撮殧璇锋眰鏁版嵁 - IntervalRealTimeDate (id, unionTagCodeList, BBZMAPPING) { - // const interValHander = setInterval(function () { - // this.initEchartsData() - // console.log('闂撮殧璇锋眰鏁版嵁') - // }, 1500) - // console.log(interValHander) } } } </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; - } -} - -.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 { - display: flex; - padding: 5px; - - > div { - margin-left: 10px - } - - .pickerMon { - display: flex; - - > div:first-child { - margin-right: 10px; - } - - .pickerData { - flex: 1; - display: flex; - - > span { - line-height: 22px - } - - .pickerTable { - margin-left: 3px; - } - } - } - - /deep/ .el-date-editor--datetime { - width: 100%; +.echarts-box { + .echarts-form { + .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