From 1ce8dd8980692da59fac09d4f868b490f7f74b88 Mon Sep 17 00:00:00 2001 From: yupan <yupanx@163.com> Date: Thu, 27 Oct 2022 10:24:24 +0800 Subject: [PATCH] Merge branch 'master' of http://blit.7drlb.com:8888/r/moral_fronted --- src/components/Echarts/LineChart.vue | 264 ++++++++++++++++++++++++++++------------------------ 1 files changed, 143 insertions(+), 121 deletions(-) diff --git a/src/components/Echarts/LineChart.vue b/src/components/Echarts/LineChart.vue index 7948ca8..bf3d6ca 100644 --- a/src/components/Echarts/LineChart.vue +++ b/src/components/Echarts/LineChart.vue @@ -1,8 +1,5 @@ <template> - <!-- <div> --> - <!-- <div>1111111111111111111111111111111111111111</div> --> - <div :class="className" :style="{height:height,width:width}" /> - <!-- </div> --> + <div :class="className" :style="{ height: height, width: width }" /> </template> <script> @@ -16,28 +13,28 @@ props: { className: { type: String, - default: 'chart' + default: 'chart', }, width: { type: String, - default: '100%' + default: '100%', }, height: { type: String, - default: '350px' + default: '350px', }, autoResize: { type: Boolean, - default: true + default: true, }, chartData: { type: Object, - required: true + required: true, }, interval: { type: Number, - default: 1 - } + default: 1, + }, // xdata: { // type: Array, // required: true @@ -45,7 +42,7 @@ }, data() { return { - chart: null + chart: null, } }, watch: { @@ -53,8 +50,8 @@ deep: true, handler(val) { this.setOptions(val) - } - } + }, + }, // xdata: { // deep: true, // handler(val) { @@ -65,10 +62,9 @@ // } }, mounted() { - // this.$nextTick(() => { - // this.initChart() - // }) - this.initChart() + this.$nextTick(() => { + this.initChart() + }) }, beforeDestroy() { if (!this.chart) { @@ -78,117 +74,143 @@ this.chart = null }, methods: { + initChart() { this.chart = echarts.init(this.$el, 'macarons') this.setOptions(this.chartData) }, setOptions(val) { + function fontSize(res){ + let clientWidth = window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth; + if (!clientWidth) return; + let fontSize = 100 * (clientWidth / 1920); + return res*fontSize; + } + // console.log('���������������������') - // console.log(val) - this.chart.setOption({ - title: { - text: val.text, - textStyle: { - color: '#000000' - } - }, - xAxis: { - data: val.xAxis, - boundaryGap: false, - axisTick: { - show: false - }, - // axisTick: { // ������������������������������ - // alignWithLabel: true, - // show: true - // }, - axisLine: { - lineStyle: { - color: '#000000' - } - }, - axisLabel: { - interval: this.interval - } - }, - grid: { - left: '5%', - right: '5%', - bottom: '20%', - top: '10%', - containLabel: true, - x: 120 - }, - toolbox: { - feature: { - dataZoom: { - yAxisIndex: 'none' + + console.log(val) + this.chart.setOption( + { + title: { + text: val.text, + textStyle: { + color: '#000000', }, - restore: {}, - saveAsImage: {} - } - }, - tooltip: { - trigger: 'axis', - position: function(pt) { - return [pt[0], '10%'] - } - }, - // tooltip: { - // trigger: 'axis', - // axisPointer: { - // type: 'cross' - // }, - // padding: [5, 10] - // }, - yAxis: { - axisTick: { - show: false // ������������ }, - axisLine: { - lineStyle: { - color: '#000000' - } - } + xAxis: { + data: val.xAxis.slice(0, 24), + boundaryGap: false, + axisTick: { + show: false, + }, + // axisTick: { // ������������������������������ + // alignWithLabel: true, + // show: true + // }, + // axisLine: { + // lineStyle: { + // color: '#000000' + // } + // }, + // axisLabel: { + // interval: this.interval + // } + }, + grid: { + left: '5%', + right: '5%', + top:'5%', + containLabel: true, + height:fontSize(3.3), + }, + toolbox: { + feature: { + dataZoom: { + yAxisIndex: 'none', + }, + restore: {}, + saveAsImage: {}, + }, + }, + tooltip: { + trigger: 'axis', + position: function (pt) { + return [pt[0], '10%'] + }, + }, + // tooltip: { + // trigger: 'axis', + // axisPointer: { + // type: 'cross' + // }, + // padding: [5, 10] + // }, + yAxis: { + axisTick: { + show: false, // ������������ + }, + // axisLine: { + // lineStyle: { + // color: '#000000' + // } + // } + }, + legend: { + data: val.title, + tooltip: { + show: true, + }, + textStyle:{ + fontSize:fontSize(0.12) + }, + widht:'auto', + height:'auto', + top: fontSize(4.6), + }, + dataZoom: [ + { + type: 'inside', + start: 0, + end: 100, + }, + { + start: 0, + end: 20, + bottom: fontSize(4.4), + height: fontSize(0.5), + }, + ], + series: val.series, + // [{ + // name: JSON.parse(JSON.stringify(val.title)), + // itemStyle: { + // normal: { + // color: '#7AC5CD', + // lineStyle: { + // color: '#7AC5CD', + // width: 2 + // } + // } + // }, + // smooth: true, + // type: 'line', + // data: val.series, + // animationDuration: 2800, + // animationEasing: 'cubicInOut', + // areaStyle: {}, + // label: { + // normal: { + // show: true, + // position: 'top' + // } + // } + // }] }, - legend: { - data: val.title - }, - // dataZoom: [{ - // type: 'inside', - // start: 0, - // end: 100 - // }, { - // start: 0, - // end: 10 - // }], - series: val.series - // [{ - // name: JSON.parse(JSON.stringify(val.title)), - // itemStyle: { - // normal: { - // color: '#7AC5CD', - // lineStyle: { - // color: '#7AC5CD', - // width: 2 - // } - // } - // }, - // smooth: true, - // type: 'line', - // data: val.series, - // animationDuration: 2800, - // animationEasing: 'cubicInOut', - // areaStyle: {}, - // label: { - // normal: { - // show: true, - // position: 'top' - // } - // } - // }] - }, true) - } - } + true + ) + window.onresize = this.chart.resize; + }, + }, } </script> -- Gitblit v1.8.0