用vue 和echarts 写一个echarts柱状图 点击某个柱子, 对应的x轴标签变色 再次点击同一柱子回复
时间: 2023-11-07 12:58:19 浏览: 117
【JavaScript源代码】vue基于echarts实现立体柱形图.docx
可以在Vue组件中引入ECharts并绑定数据和事件。下面是一个简单的例子,点击柱子时会改变标签的颜色,再次点击则恢复原来的颜色。
```html
<template>
<div ref="chart" style="width: 100%; height: 400px;"></div>
</template>
<script>
import * as echarts from 'echarts';
export default {
data() {
return {
chartData: {
xAxis: {
type: 'category',
data: ['A', 'B', 'C', 'D', 'E'],
},
yAxis: {
type: 'value',
},
series: [
{
type: 'bar',
data: [10, 20, 30, 40, 50],
},
],
},
activeIndex: -1,
};
},
mounted() {
const chart = echarts.init(this.$refs.chart);
chart.setOption(this.chartData);
chart.on('click', this.handleClick);
},
methods: {
handleClick(params) {
const { dataIndex } = params;
if (dataIndex === this.activeIndex) {
this.activeIndex = -1;
} else {
this.activeIndex = dataIndex;
}
const chart = echarts.init(this.$refs.chart);
const option = chart.getOption();
option.xAxis[0].data.forEach((item, index) => {
option.xAxis[0].axisLabel[index].color = index === this.activeIndex ? 'red' : 'black';
});
chart.setOption(option);
},
},
};
</script>
```
这里的`chartData`就是ECharts的配置项,包括x轴数据、y轴数据和系列数据等。`activeIndex`用来记录当前选中的柱子的索引,初始化为-1表示没有选中任何柱子。在`mounted`钩子中初始化ECharts实例,并绑定点击事件`handleClick`。`handleClick`方法中首先判断当前点击的柱子是否与之前选中的柱子相同,若相同则将`activeIndex`重置为-1,否则将`activeIndex`设置为当前柱子的索引。然后重新获取ECharts实例和配置项,遍历x轴的标签,将选中的标签颜色改为红色,未选中的标签颜色改为黑色,最后重新设置配置项即可。
阅读全文