From 17de93255772734b15cce7a0c680a40d2ec5878c Mon Sep 17 00:00:00 2001
From: zhangshuaibao <15731629597@163.com>
Date: 星期五, 09 四月 2021 09:43:43 +0800
Subject: [PATCH] echarts日数据折线图实现
---
src/components/BaseNav/PublicBounced/GasComponents/PublicChart.vue | 7
src/components/BaseNav/PublicBounced/GasComponents/EChartsHour.vue | 4
src/components/BaseNav/PublicBounced/GasComponents/EChartsDate.vue | 449 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/BaseNav/PublicBounced/PublicBounced.vue | 3
4 files changed, 457 insertions(+), 6 deletions(-)
diff --git a/src/components/BaseNav/PublicBounced/GasComponents/EChartsDate.vue b/src/components/BaseNav/PublicBounced/GasComponents/EChartsDate.vue
new file mode 100644
index 0000000..cf5bcb8
--- /dev/null
+++ b/src/components/BaseNav/PublicBounced/GasComponents/EChartsDate.vue
@@ -0,0 +1,449 @@
+<!-- 灏忔椂鏁版嵁 -->
+<template>
+ <div id="Tab">
+ <div class="infomation">
+<!-- <el-tag>姘哀鍖栫墿 : 29.93 鏍囧噯 : 100</el-tag>-->
+<!-- <el-tag>浜屾哀鍖栫~ : 17.34 鏍囧噯 : 50</el-tag>-->
+<!-- <el-tag>鐑熷皹 : 6.93 鏍囧噯 : 30</el-tag>-->
+<!-- <el-tag>搴熸皵娴侀噺 : 120343.18</el-tag>-->
+ <el-row>
+ <el-col :span="6"><div class="grid-content bg-purple">姘哀鍖栫墿 : 29.93 鏍囧噯 : 100</div></el-col>
+ <el-col :span="6"><div class="grid-content bg-purple">浜屾哀鍖栫~ : 17.34 鏍囧噯 : 50</div></el-col>
+ <el-col :span="6"><div class="grid-content bg-purple">鐑熷皹 : 6.93 鏍囧噯 : 30</div></el-col>
+ <el-col :span="6"><div class="grid-content bg-purple">搴熸皵娴侀噺 : 120343.18</div></el-col>
+<!-- <el-col :span="6"><div class="grid-content bg-purple"></div></el-col>-->
+ </el-row>
+ </div>
+ <div class="form-echrts">
+ <!-- :title="this.$attrs.getWasteGasDetails[0].OnLineMonEmissPointName" -->
+ <div class="from-search">
+<!-- <el-form :inline="true" :model="formInline" class="demo-form-inline">-->
+<!-- <el-form-item label="瀹℃壒浜�">-->
+<!-- <el-input v-model="formInline.user" placeholder="瀹℃壒浜�"></el-input>-->
+<!-- </el-form-item>-->
+<!-- <div class="block">-->
+<!-- <el-date-picker-->
+<!-- size="'mini"-->
+<!-- class="date"-->
+<!-- v-model="value"-->
+<!-- type="datetimerange"-->
+<!-- range-separator="鑷�"-->
+<!-- start-placeholder="寮�濮嬫棩鏈�"-->
+<!-- end-placeholder="缁撴潫鏃ユ湡">-->
+<!-- </el-date-picker>-->
+<!-- </div>-->
+<!-- <el-form-item label="閲囨牱鐐规暟" class="text-size">-->
+<!-- <el-select v-model="formInline.region" placeholder="0">-->
+<!-- <el-option label="0" value="shanghai"></el-option>-->
+<!-- <el-option label="25" value="beijing"></el-option>-->
+<!-- <el-option label="50" value="beijing"></el-option>-->
+<!-- <el-option label="75" value="beijing"></el-option>-->
+<!-- <el-option label="100" value="beijing"></el-option>-->
+<!-- </el-select>-->
+<!-- </el-form-item>-->
+<!-- <el-form-item>-->
+<!-- <el-button type="primary" @click="onSubmit">鏌ヨ</el-button>-->
+<!-- </el-form-item>-->
+
+<!-- </el-form>-->
+<!-- <input list="students">-->
+<!-- <datalist id="students">-->
+<!-- <option value="Lily">-->
+<!-- <option value="Lucy">-->
+<!-- <option value="Jim">-->
+<!-- <option value="Lily">-->
+<!-- </datalist>-->
+ <el-row type="flex" :gutter="20">
+ <el-col :span="14">
+<!-- <el-row>-->
+<!-- <el-col :span="12">-->
+<!-- <el-row type="flex" justify="space-between">-->
+<!-- <el-col class="pickerData">-->
+<!-- 寮�濮嬫椂闂�:-->
+<!-- <el-date-picker-->
+<!-- type="date">-->
+<!-- </el-date-picker>-->
+<!-- </el-col>-->
+<!-- </el-row>-->
+<!-- </el-col>-->
+<!-- <el-col :span="12" type="flex">-->
+<!-- <el-row type="flex" justify="center">-->
+<!-- <el-col>-->
+<!-- 缁撴潫鏃堕棿:-->
+<!-- <el-date-picker-->
+<!-- type="date"-->
+<!-- >-->
+<!-- </el-date-picker>-->
+<!-- </el-col>-->
+<!-- </el-row>-->
+<!-- </el-col>-->
+<!-- </el-row>-->
+ </el-col>
+ <el-col :span="5">
+ 閲囨牱鐐规暟:
+ <input list="source" id="ipt" class="echatsInput">
+ <datalist id="source">
+ <option value="0" />
+ <option value="25" />
+ <option value="50" />
+ <option value="75" />
+ <option value="100" />
+ </datalist>
+<!-- <div data-tap-disabled="true">-->
+<!-- 閲囨牱鐐规暟:-->
+<!-- <select id="source">-->
+<!-- <option value="1">0</option>-->
+<!-- <option value="2">25</option>-->
+<!-- <option value="3">50</option>-->
+<!-- <option value="4">75</option>-->
+<!-- <option value="5">100</option>-->
+<!-- </select>-->
+<!-- </div>-->
+ </el-col>
+ <el-col class="detailbtn" :span="2" @click="onSubmit">鏌ヨ</el-col>
+ <el-col :span="3">
+ <div class="detailbtn" @click="dialogVisible = true" >鏄庣粏琛�</div>
+ <el-dialog :visible.sync="dialogVisible"
+ :append-to-body="true"
+ :title="this.$attrs.value==='feiqi'?this.$attrs.getWasteGasDetails[0].OnLineMonEmissPointName:this.$attrs.getWasteWaterMonitoringDetails[0].OnLineMonEmissPointName"
+ width="68%"
+ center
+ v-dialogDrag
+ >
+ <div class="el-dialog-div" style="height: 500px">
+ <public-detailed-list v-bind="$attrs"></public-detailed-list>
+ </div>
+ </el-dialog>
+ </el-col>
+ </el-row>
+ </div>
+ <div style="width:600px;height:200px;" id="echarts" ref="main">
+ </div>
+ </div>
+ </div>
+</template>
+
+<script>
+import PublicDetailedList from '@components/BaseNav/PublicBounced/GasComponents/PublicDetailedList'
+
+export default {
+ name: 'ECharts',
+ components: {
+ PublicDetailedList
+ },
+ data () {
+ return {
+ watchData: [],
+ dialogVisible: false,
+ myChar: null,
+ value: '',
+ formInline: {
+ user: '',
+ region: ''
+ }
+ }
+ },
+ methods: {
+ onSubmit () {
+ console.log('submit!')
+ },
+ drawChart: function () {
+ window.onresize = function () {
+ var h1 = document.documentElement.clientHeight// 鑾峰彇灞忓箷鐨勯珮搴�
+ if (h1 > 700) {
+ this.myChart.getDom().style.height = 3 + 'rem'
+ this.myChart.getDom().style.width = 6 + 'rem'
+ } else {
+ this.myChart.getDom().style.height = 3 + 'rem'
+ this.myChart.getDom().style.width = 6 + 'rem'
+ }
+ this.myChart.resize()
+ }
+ },
+ initOptions: function (dataDate, dataValue1, dataValue2, dataValue3) {
+ var options = {
+ title: {
+ // text: '鎶樼嚎鍥惧爢鍙�'
+ },
+ color: ['#5470c6', '#91CC75', '#EE6666', '#FF0087'],
+ tooltip: {
+ trigger: 'axis',
+ axisPointer: {
+ type: 'cross',
+ label: {
+ color: '#1a4245'
+ }
+ }
+ },
+ legend: {
+ x: '200px',
+ y: '30px',
+ data: [{
+ name: 'COD',
+ textStyle: {
+ color: '#00d0f9'
+ }
+ },
+ {
+ name: '姘ㄦ爱',
+ textStyle: {
+ color: '#00d0f9'
+ }
+ },
+ {
+ name: '搴熸按娴侀噺',
+ textStyle: {
+ color: '#00d0f9'
+ }
+ }]
+ },
+ grid: {
+ left: '3%',
+ right: '6%',
+ bottom: '3%',
+ containLabel: true
+ },
+ toolbox: {},
+ // 鍥炬爣缂╂斁璁剧疆
+ 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
+ }
+ }],
+ // x杞寸殑璁剧疆
+ xAxis: {
+ type: 'category',
+ boundaryGap: ['10%', '10%'],
+ data: dataDate,
+ axisLabel: { // x杞村叏閮ㄦ樉绀�
+ rotate: 20,
+ interval: 0,
+ textStyle: {
+ color: '#fff',
+ fontSize: 10
+ }
+ },
+ splitLine: { // 缃戞牸鍨傜洿绾夸负铏氱嚎
+ show: true,
+ lineStyle: {
+ type: 'dashed'
+ }
+ },
+ axisTick: { // x 杞村埢搴︽樉绀�
+ show: false
+ },
+ axisLine: {
+ lineStyle: {
+ color: '#FFFFFF',
+ width: 1 // 杩欓噷鏄负浜嗙獊鍑烘樉绀哄姞涓婄殑
+ }
+ }
+ },
+ // Y 杞寸殑璁剧疆
+ yAxis: [{
+ type: 'value',
+ position: 'left', // 澶� Y 杞翠娇鐢�
+ name: '娴撳害(mg/m鲁)',
+ axisLabel: {
+ formatter: '{value}',
+ textStyle: {
+ color: '#fff' // 鍧愭爣鐨勫瓧浣撻鑹�
+ }
+ },
+ axisPointer: {
+ snap: true // 鑷姩鍚搁檮鏈�杩戠殑鐐�
+ },
+ splitLine: {
+ show: false // y杞� 缃戞牸绾夸笉鏄剧ず
+ },
+ axisLine: {
+ lineStyle: {
+ color: '#ffffff', // 鍧愭爣杞寸殑棰滆壊
+ width: 1
+ }
+ }
+ },
+ {
+ type: 'value',
+ position: 'right', // 澶� Y 杞翠娇鐢�
+ name: '娴侀噺(m鲁/h鲁)',
+ axisLabel: {
+ formatter: '{value}',
+ textStyle: {
+ color: '#fff' // 鍧愭爣鐨勫瓧浣撻鑹�
+ }
+ },
+ axisPointer: {
+ snap: true // 鑷姩鍚搁檮鏈�杩戠殑鐐�
+ },
+ splitLine: {
+ show: false // y杞� 缃戞牸绾夸笉鏄剧ず
+ },
+ axisLine: {
+ lineStyle: {
+ color: '#ffffff', // 鍧愭爣杞寸殑棰滆壊
+ width: 1
+ }
+ }
+ }],
+ series: [
+ {
+ name: 'COD',
+ type: 'line',
+ stack: '鎬婚噺',
+ data: dataValue1,
+ yAxisIndex: 0
+ },
+ {
+ name: '姘ㄦ爱',
+ type: 'line',
+ stack: '鎬婚噺',
+ data: dataValue2,
+ yAxisIndex: 0
+ },
+ {
+ name: '搴熸按娴侀噺',
+ type: 'line',
+ stack: '鎬婚噺',
+ data: dataValue3,
+ yAxisIndex: 1
+ }
+ ]
+ }
+ return options
+ }
+ },
+ mounted () {
+ this.$nextTick(() => {
+ this.drawChart()
+ const dataWatch = JSON.parse(JSON.stringify(this.$attrs.getQueryOnlineMonData)).reverse()
+ console.log(dataWatch)
+ var dataValue1 = []
+ var dataValue2 = []
+ var dataValue3 = []
+ var dataDate = []
+ for (var i = 0; i < 24; i++) {
+ if (i === 0 || i === 23) {
+ dataDate.push(dataWatch[i].MonTimeStr.substring(0, 8))
+ }
+ }
+ for (var n = 0; n < dataWatch.length; n++) {
+ if (dataWatch[n].PoltmtrlName === 'COD') {
+ const valueData1 = []
+ valueData1.push(dataWatch[n].MonQty)
+ } else if (dataWatch[n].PoltmtrlName === '姘ㄦ爱') {
+ const valueData2 = []
+ valueData2.push(dataWatch[n].MonQty)
+ console.log(dataValue2)
+ } else if (dataWatch[n].PoltmtrlName === '搴熸按娴侀噺') {
+ const valueData3 = []
+ valueData3.push(dataWatch[n].MonQty)
+ }
+ }
+ const opitons = this.initOptions(dataDate, dataValue1, dataValue2, dataValue3)
+ this.myChart = this.$echarts.init(this.$refs.main)
+ this.myChart.setOption(opitons)
+ })
+ }
+}
+</script>
+
+<style scoped lang="less">
+.grid-content{
+ font-size: 8px!important;
+ background-color:#2e4967;
+ text-align: center;
+ margin: 0 2px 4px 2px;
+ border-radius: 2px;
+}
+.Infomation {
+ margin-left: 10px;
+ height: 0.2rem;
+}
+
+.el-tag {
+ height: 25px;
+ width: 140px;
+ line-height: 25px;
+ margin-right: 10px;
+ font-size: 10px;
+ background-color: rgba(0, 255, 246, 0.14);
+ color: #00d0f9;
+ border: none;
+ padding: 0 15px;
+}
+
+.form-echrts {
+ width: 100%;
+ height: 1rem;
+ border-top: 1px solid #396d83;
+ //margin: 10px 10px 10px 10px;
+ .from-search{
+ //display: flex;
+ //justify-content: space-between;
+ .pickerData{
+ display: flex;
+ justify-content: space-between;
+ }
+ /deep/.el-input__inner{
+ width: 40px!important;
+ height: 16px!important;
+ background-color: #2e4967;
+ }
+ .echatsInput{
+ color: #00ffff;
+ background-color: #2e4967;
+ border: none;
+ border-radius: 6px;
+ width: 40px;
+ }
+ .detailbtn{
+ background-color:#2e4967;
+ 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;
+ }
+
+ .from-search {
+ background-color: red;
+ .date{
+ width: 200px;
+ height: 30px;
+ padding: 0;
+ border: none;
+ .el-icon-time{
+ line-height: 30px;
+ }
+ }
+ }
+
+ #echarts {
+ margin: 0;
+ padding: 0;
+ //height: 3rem;
+ //border: 1px solid #396d83;
+ //margin: 10px 10px 10px 10px;
+ }
+ }
+</style>
diff --git a/src/components/BaseNav/PublicBounced/GasComponents/EChartsHour.vue b/src/components/BaseNav/PublicBounced/GasComponents/EChartsHour.vue
index 8370098..9ecea2e 100644
--- a/src/components/BaseNav/PublicBounced/GasComponents/EChartsHour.vue
+++ b/src/components/BaseNav/PublicBounced/GasComponents/EChartsHour.vue
@@ -117,7 +117,7 @@
</el-col>
</el-row>
</div>
- <div style="width:100%;height:200px;" id="echarts" ref="main">
+ <div style="width:600px;height:200px;" id="echarts" ref="main">
</div>
</div>
</div>
@@ -329,7 +329,7 @@
mounted () {
this.$nextTick(() => {
this.drawChart()
- const dataWatch = JSON.parse(JSON.stringify(this.$attrs.getQueryOnlineMonData))
+ const dataWatch = JSON.parse(JSON.stringify(this.$attrs.getQueryOnlineMonData)).reverse()
console.log(dataWatch)
var dataValue1 = []
var dataValue2 = []
diff --git a/src/components/BaseNav/PublicBounced/GasComponents/PublicChart.vue b/src/components/BaseNav/PublicBounced/GasComponents/PublicChart.vue
index 09a7134..7a6739f 100644
--- a/src/components/BaseNav/PublicBounced/GasComponents/PublicChart.vue
+++ b/src/components/BaseNav/PublicBounced/GasComponents/PublicChart.vue
@@ -7,7 +7,7 @@
<ul class="tab">
<li @click='tabTaggle("ECharts")'>瀹炴椂鏁版嵁</li>
<li @click='tabTaggle("EChartsHour")'>灏忔椂鏁版嵁</li>
- <li @click='tabTaggle("ECharts")'>鏃ユ暟鎹�</li>
+ <li @click='tabTaggle("EChartsDate")'>鏃ユ暟鎹�</li>
<li @click='tabTaggle("ECharts")'>浜哄伐鏁版嵁</li>
</ul>
<component :is="currentTab" v-bind="$attrs"></component>
@@ -16,11 +16,13 @@
<script>
import EChartsHour from './EChartsHour'
+import EChartsDate from './EChartsDate'
export default {
name: 'PublicChart',
components: {
- EChartsHour
+ EChartsHour,
+ EChartsDate
},
data () {
return {
@@ -49,7 +51,6 @@
margin-bottom: 13px;
background-color: rgba(33, 41, 69, 0.9);
border: 0.8px solid #396d83;
- height: 1.5rem;
}
.border_corner {
diff --git a/src/components/BaseNav/PublicBounced/PublicBounced.vue b/src/components/BaseNav/PublicBounced/PublicBounced.vue
index 91ae6e2..4c186ce 100644
--- a/src/components/BaseNav/PublicBounced/PublicBounced.vue
+++ b/src/components/BaseNav/PublicBounced/PublicBounced.vue
@@ -14,7 +14,8 @@
<public-chart v-else :getWasteGasDetails="getWasteGasDetails"
:value="value"
:getQueryOnlineMonData="getQueryOnlineMonData"
- :getWasteWaterMonitoringDetails="getWasteWaterMonitoringDetails"></public-chart>
+ :getWasteWaterMonitoringDetails="getWasteWaterMonitoringDetails">
+ </public-chart>
</div>
</div>
<div class="public-bounced-content-right">
--
Gitblit v1.8.0