From 933f7c55bdf0f84b1c780de715c7d477df8ab052 Mon Sep 17 00:00:00 2001
From: quanyawei <401863037@qq.com>
Date: Fri, 06 Sep 2024 13:44:17 +0800
Subject: [PATCH] fix: 责任单位修改
---
src/components/Echarts/LineChartSpe.vue | 259 ++++++++++++++++++++++++++++-----------------------
1 files changed, 141 insertions(+), 118 deletions(-)
diff --git a/src/components/Echarts/LineChartSpe.vue b/src/components/Echarts/LineChartSpe.vue
index 74abf3e..a7f10d6 100644
--- a/src/components/Echarts/LineChartSpe.vue
+++ b/src/components/Echarts/LineChartSpe.vue
@@ -1,62 +1,65 @@
<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'
-require('echarts/theme/macarons') // echarts theme
-import resize from './mixins/resize'
+import * as echarts from 'echarts' // echarts theme
+// import resize from './mixins/resize'
+require('echarts/theme/macarons')
export default {
- mixins: [resize],
+ // mixins: [resize],
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
// }
},
- data() {
+ data () {
return {
- chart: null
+ chart: null,
}
},
watch: {
chartData: {
- deep: true,
- handler(val) {
+ handler (val) {
this.setOptions(val)
- }
- }
+ },
+ deep: true
+ },
},
- mounted() {
+ mounted () {
this.$nextTick(() => {
this.initChart()
})
},
- beforeDestroy() {
+ beforeDestroy () {
if (!this.chart) {
return
}
@@ -64,108 +67,128 @@
this.chart = null
},
methods: {
- initChart() {
+ initChart () {
this.chart = echarts.init(this.$el, 'macarons')
- this.setOptions(this.chartData)
+ 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
+ setOptions (val) {
+ console.log('val,val', val)
+ // val.series.forEach(element => {
+ // element.data = element.data.map(item => item === 0 ? 0.1 : item)
+ // })
+ if (this.chart) {
+ this.chart.clear()
+ }
+ 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: val.yAxis,
+ 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