From 2ccfcb5a17c31ade0b532d7cc77c9a65aed1343c Mon Sep 17 00:00:00 2001 From: chenzeping <ChenZeping02609@163.com> Date: 星期一, 12 四月 2021 09:55:05 +0800 Subject: [PATCH] echarts实时数据 --- src/components/BaseNav/PublicBounced/GasComponents/Echarts.vue | 216 +++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 157 insertions(+), 59 deletions(-) diff --git a/src/components/BaseNav/PublicBounced/GasComponents/Echarts.vue b/src/components/BaseNav/PublicBounced/GasComponents/Echarts.vue index 2207d31..7051034 100644 --- a/src/components/BaseNav/PublicBounced/GasComponents/Echarts.vue +++ b/src/components/BaseNav/PublicBounced/GasComponents/Echarts.vue @@ -4,7 +4,7 @@ <script> -// import mapApi from '@/api/mapApi' +import mapApi from '@/api/mapApi' import 'dayjs/locale/es' import dayjs from 'dayjs' @@ -12,90 +12,188 @@ name: 'ECharts', data () { return { - myChart: [], days: dayjs(new Date()).format('YYYYMMDDHHmmss'), - data: [] + myChart: [], + // x杞存暟鎹� + xAxis: [], + seriesData: [], + seriesName: [] } }, mounted () { this.$nextTick(() => { - this.upDateEcharts() + this.upDateEchartsData() }) }, methods: { + async upDateEchartsData () { + const addDays = dayjs().add(1, 's') + const data = { + $tagCodeList: 'TJIP45.yyqAI90305,TJIP45.yyqAI90303,TJIP45.yyqFI_90310N,TJIP45.yyqAI90304,TJIP45.yyqAIR001', + $startTime: this.dayjs, + $endTime: addDays, + $step: 15 + } + const result = (await mapApi.DataItems(data)).data + for (var i = 0; i < result.length; i++) { + // console.log(result[i]) + this.xAxis.push(result[i].ReadTime) + this.seriesData.push(result[i].TagValue) + this.seriesName = result[i].UnionTagCode + // let num = 0 + // if (result[i].UnionTagCode === 'TJIP45.lscl2tb552AI10710') { + // num++ + // console.log(num) + // } + } + this.upDateEchartsinit() + }, // 鍒濆鍖杄charts - upDateEcharts () { + upDateEchartsinit () { this.myChart = this.$echarts.init(this.$refs.echarts) - // this.myChart.setOption(this.options) - // setInterval(this.echartsData, 1000) - function randomData () { - now = new Date(+now + oneDay) - value = value + Math.random() * 21 - 10 - return { - name: now.toString(), - value: [ - [now.getFullYear(), now.getMonth() + 1, now.getDate()].join('/'), - Math.round(value) - ] + // 鍥捐〃鐨勯厤缃」鏁版嵁 + const xAxisData = this.xAxis + const legendData = [this.seriesName, 'TJIP45.lscl2tb552AISA11201B', 'TJIP45.lscl2tb552AISA11202A', 'TJIP45.lscl2tbAIA-10505-1', 'TJIP45.lscl2tbAIA-10505-2'] + const seriesData = [ + { + name: this.seriesName, + type: 'line', + data: this.seriesData, + symbolSize: 8, + smooth: true, + silent: false, + barWidth: '50%', + animation: true + }, + { + name: 'TJIP45.lscl2tb552AISA11201B', + type: 'line', + stack: '鎬婚噺', + smooth: true, + symbolSize: 8, + data: [2.20, 1.82, 1.91, 2.34, 2.90, 3.30, 3.10] } - } - - // this.data = [] - var now = +new Date(1997, 9, 3) - var oneDay = 24 * 3600 * 1000 - var value = Math.random() * 1000 - for (var i = 0; i < 1000; i++) { - this.data.push(randomData()) - } + ] const option = { title: { - text: '鍔ㄦ�佹暟鎹� + 鏃堕棿鍧愭爣杞�' + text: '瀹炴椂鏁版嵁', + target: 'blank', + left: '5%', + textStyle: { + color: '#fff', + fontSize: 15, + bottom: 20 + } }, tooltip: { - trigger: 'axis', - formatter: function (params) { - params = params[0] - var date = new Date(params.name) - return date.getDate() + '/' + (date.getMonth() + 1) + '/' + date.getFullYear() + ' : ' + params.value[1] - }, - axisPointer: { - animation: false + trigger: 'axis' + }, + grid: { + left: '3%', + right: '4%', + bottom: '3%', + containLabel: true + }, + toolbox: { + show: false, + feature: { + saveAsImage: {} + } + }, + dataZoom: [ + { + type: 'inside' + // start: 50, + // end: 100, + // filterMode: 'empty' + } + ], + legend: { + data: legendData, + textStyle: { + color: '#ffffff', + fontSize: 12 } }, xAxis: { - type: 'time', + type: 'category', + boundaryGap: false, + axisLabel: { + rotate: 20, + interval: 0, + textStyle: { + color: '#fff' + } + }, splitLine: { + show: true, + lineStyle: { + type: 'dashed' + } + }, + axisTick: { show: false - } + }, + axisLine: { + lineStyle: { + color: '#FFFFFF', + width: 1 + } + }, + data: xAxisData }, - yAxis: { + yAxis: [{ type: 'value', - boundaryGap: [0, '100%'], + name: 'yname', + // max: function (value) { + // var 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 + // }); //鎺掑簭 + // var 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' + } + }, splitLine: { show: false + }, // y杞� 缃戞牸绾夸笉鏄剧ず, + axisLine: { + lineStyle: { + color: '#FFFFFF', + width: 1 + } } - }, - series: [{ - name: '妯℃嫙鏁版嵁', - type: 'line', - showSymbol: false, - hoverAnimation: false, - data: this.data - }] + }, { + type: 'value', + name: 'dataUnit', + axisLabel: { + formatter: '{value}', + textStyle: { + color: '#fff' + } + }, + splitLine: { + show: false + }, + axisLine: { + lineStyle: { + color: '#FFFFFF', + width: 1 + } + } + }], + series: seriesData } - - setInterval(function () { - for (var i = 0; i < 5; i++) { - this.data.shift() - this.data.push(randomData()) - } - - // this.myChart.setOption({ - // series: [{ - // data: this.data - // }] - // }) - }, 1000) this.myChart.setOption(option) } } -- Gitblit v1.8.0