今天写项目的时候遇到一个问题:vue项目里需要自定义toolbox工具按钮,实现控制图表上是否显示数值,即来回切换show的值为true或false。
实现代码比较简单,就是找起来麻烦了点。废话不多说,代码如下。
//………………………………
// 自定义工具按钮
myTool1: {
show: true,
title: "显示数值",
icon:
"path://M469.333333 469.333333v85.333334h85.333334V469.333333H469.333333z m0-85.333333h85.333334V256a42.666667 42.666667 0 1 1 85.333333 0v128h128a42.666667 42.666667 0 0 1 0 85.333333h-128v85.333334h128a42.666667 42.666667 0 0 1 0 85.333333h-128v128a42.666667 42.666667 0 0 1-85.333333 0v-128H469.333333v128a42.666667 42.666667 0 0 1-85.333333 0v-128H256a42.666667 42.666667 0 1 1 0-85.333333h128V469.333333H256a42.666667 42.666667 0 1 1 0-85.333333h128V256a42.666667 42.666667 0 1 1 85.333333 0v128z",
//给这个工具自定义一个点击事件
onclick: (e) => {
//每次点击都把show的值取反
e.option.series[0].label.show = !e.option.series[0].label.show;
// 关键在于****重新渲染*****
let myChart = this.$echarts.init(this.$refs.echarts);
myChart.setOption(e.getOption());
},
}
}
},
series: [
{
name: "确诊人数",
type: "bar",
data: [74386, 27017, 49515, 37323, 10897, 25233, 69223, 9529, 9241],
// 让数字显示在柱状图上面
label: {
//show值控制是否显示数值
show: true,
position: "top",
color: "#888",
}
},
],
};
console.log(this.$echarts);
//初始渲染
let myChart = this.$echarts.init(this.$refs.echarts);
myChart.setOption(option);
OK 更多内容参考echarts官网https://echarts.apache.org/zh/api.html#echarts