From 64b642cfbe4f34706ed40af77e51079ddf919d54 Mon Sep 17 00:00:00 2001 From: quanyawei <401863037@qq.com> Date: Fri, 13 Oct 2023 16:52:43 +0800 Subject: [PATCH] fix:查询修改和表格添加 --- src/components/Echarts/LineChartSpe.vue | 239 ++++++++++++++++++++++++++++++++--------------------------- 1 files changed, 131 insertions(+), 108 deletions(-) diff --git a/src/components/Echarts/LineChartSpe.vue b/src/components/Echarts/LineChartSpe.vue index 74abf3e..3f35afa 100644 --- a/src/components/Echarts/LineChartSpe.vue +++ b/src/components/Echarts/LineChartSpe.vue @@ -1,12 +1,12 @@ <template> <!-- <div> --> <!-- <div>1111111111111111111111111111111111111111</div> --> - <div :class="className" :style="{height:height,width:width}" /> + <div :class="className" :style="{ height: height, width: width }" /> <!-- </div> --> </template> <script> -import echarts from 'echarts' +import * as echarts from 'echarts' require('echarts/theme/macarons') // echarts theme import resize from './mixins/resize' @@ -15,24 +15,24 @@ 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, + }, // xdata: { // type: Array, // required: true @@ -40,16 +40,16 @@ }, data() { return { - chart: null + chart: null, } }, watch: { chartData: { - deep: true, handler(val) { this.setOptions(val) - } - } + }, + deep: true + }, }, mounted() { this.$nextTick(() => { @@ -66,106 +66,129 @@ methods: { initChart() { this.chart = echarts.init(this.$el, 'macarons') + this.chart.clear() this.setOptions(this.chartData) }, setOptions(val) { - console.log(val); - this.chart.setOption({ - xAxis: { - data: val.xAxis, - boundaryGap: false, - axisTick: { - show: false - } - }, - grid: { - left: 10, - right: 10, - bottom: 20, - top: 30, - containLabel: true - }, - toolbox: { - feature: { - dataZoom: { - yAxisIndex: 'none' - }, - restore: {}, - saveAsImage: {} - } - }, - // tooltip: { - // trigger: 'axis', - // position: function(pt) { - // return [pt[0], '10%'] - // } - // }, - tooltip: { - trigger: 'axis', - position: function(pt) { - return [pt[0], '10%'] - }, - formatter(params) { - for (let i = 0; i < params.length; i++) { - return params[i].seriesName + ':' + ' ' + params[i].data.data0 + let that = this + function fontSize(res) { + let clientWidth = + window.innerWidth || + document.documentElement.clientWidth || + document.body.clientWidth + if (!clientWidth) return + let fontSize = 100 * (clientWidth / 1920) + return res * fontSize + } + /** + * ���������������mouseover������������������������������ + * ������������������ ������������������������������������������������������������ + * ��������������������������������������������������������������������������� + * ������������������������series��������������������������������� + * ������params������������������������������ + */ + this.chart.on('mouseover', function (params) { + that.chart.setOption({ + series: [ + { + name: params.seriesName, + label: { + show: true, + fontSize: 16, + position: [10, -15], + formatter: '{c}' + } } - } + ] + }) + }) + // ���������������mouseout������������������������ + this.chart.on('mouseout', function (params) { + that.chart.setOption({ + series: [ + { + name: params.seriesName, + lineStyle: { + width: 2 + }, + label: { + show: false + }, + endLabel: { + show: false + } + } + ] + }) + }) + this.chart.setOption( + { + xAxis: { + data: val.xAxis, + boundaryGap: false, + axisTick: { + show: true, + }, + + }, + grid: { + left: '5%', + right: '5%', + top: '5%', + containLabel: true, + height: fontSize(4.3), + }, + tooltip: { + trigger: 'axis', + backgroundColor: 'rgba(50,50,50,0.5)', + textStyle: { + color: 'rgb(255, 255, 255);', + fontSize: fontSize(0.117), // ������������ + lineHeight: 0 + } + }, + yAxis: { + axisTick: { + show: true, // ������������ + }, + axisLine: { + show: true, //��������������������� + }, + axisLabel: { + show: true, //������������������������������ + } + }, + legend: { + data: val.title, + tooltip: { + show: true, + }, + textStyle: { + fontSize: fontSize(0.15), + }, + widht: 'auto', + height: 'auto', + top: fontSize(5.5), + }, + dataZoom: [ + { + type: 'inside', + start: 0, + end: 100, + }, + { + start: 0, + end: 10, + top: fontSize(4.5), + height: fontSize(0.4), + }, + ], + series: val.series }, - // tooltip: { - // trigger: 'axis', - // axisPointer: { - // type: 'cross' - // }, - // padding: [5, 10] - // }, - yAxis: { - axisLabel: { - show: false - } - }, - legend: { - icon: 'circle', - itemHeight: 15, - // textStyle: { - // fontSize: 18 - // }, - 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