From 2d445a7f255343099b4647ea5ce51d2980768003 Mon Sep 17 00:00:00 2001
From: quanyawei <401863037@qq.com>
Date: Thu, 28 Sep 2023 16:45:41 +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