前言
基于echarts5.x和vue2实现
记录以便日后查阅
实现效果

代码实现
<template>
<div class="chart-wrap">
<ul class="legend-list">
<li
v-for="(item, index) in yData"
:key="index"
:class="['legend', item.selected ? '': 'un-active']"
@mouseenter="enterHandler(item)"
@mouseleave="leaveHandler(item)"
@click="clickHandler(item)"
>
<i class="rect" :style="{ backgroundColor: item.color1 }" />
<span>{{ item.name }}span>
li>
ul>
<div id="chart09" class="chart" />
div>
template>
<script>
import echarts from '@/utils/echarts'
export default {
name: 'Index',
data () {
return {
chart: null,
yData: [
{ name: '居民', color1: 'rgba(0, 145, 255, 1)', color2: 'rgba(36, 220, 240, 0)', value: [280, 180, 30, 230, 240, 50], selected: true },
{ name: '临时车牌', color1: 'rgba(247, 181, 0, 1)', color2: 'rgba(247, 181, 0, 0)', value: [220, 180, 30, 230, 240, 50], selected: true }
],
xData: ['7-2', '7-3', '7-4', '7-5', '7-6']
}
},
mounted() {
this.createChartHandler()
},
methods: {
createChartHandler () {
this.chart = this.$echarts.init(document.getElementById('chart09'))
this.chart.setOption(this.getChartOption(this.yData, this.xData))
window.addEventListener('resize', () => {
setTimeout(() => {
this.chart.resize()
})
})
},
getChartOption (yData, xData) {
return {
tooltip: {
axisPointer: {
type: 'shadow'
},
position: 'top',
extraCssText:
'color:#fff;background: rgba(0, 38, 118, 0.5);border:none; box-shadow: 0px 0px 8px 1px rgba(0, 145, 255, 0.5);border-radius: 2px;z-index:99',
formatter: function (e) {
let str = ''
const item
= e
.value
if (e
.seriesName
=== '临时车牌') {
const d
= `${yData[1].name}: ${item}`
str
+= d
str
+= ' '
return str
} else {
const d = `${yData[0].name}: ${item}`
str += d
str += '