用vue 和echarts 写一个echarts饼图点击图例,图例不会失去选中
时间: 2023-10-19 19:11:01 浏览: 117
可以使用 echarts 的 legendselectedchanged 事件来实现:
1. 在 Vue 组件中引入 echarts:
```javascript
import echarts from 'echarts'
```
2. 在组件的 mounted 钩子函数中初始化 echarts,并绑定事件:
```javascript
mounted() {
const chartDom = this.$refs.chart
const myChart = echarts.init(chartDom)
// echarts 配置项
const options = {
// 省略其他配置项
legend: {
// 点击图例不取消选中状态
selectedMode: false,
data: ['分类一', '分类二', '分类三']
},
series: [{
// 饼图系列数据
data: [
{value: 335, name: '分类一'},
{value: 310, name: '分类二'},
{value: 234, name: '分类三'}
],
type: 'pie'
}]
}
// 设置 echarts 配置项
myChart.setOption(options)
// 添加图例选中事件
myChart.on('legendselectedchanged', function(params) {
// 获取当前选中的图例名称
const name = params.name
// 获取当前图例的选中状态
const isSelected = params.selected[name]
// 如果当前选中了该图例,则将其选中状态设为 true,否则设为 false
myChart.dispatchAction({
type: 'legendSelect',
name: name,
selected: isSelected
})
})
}
```
3. 在组件的模板中添加一个 div 作为 echarts 的容器,并设置 ref 属性:
```html
<template>
<div class="chart-container" ref="chart"></div>
</template>
<style scoped>
.chart-container {
width: 100%;
height: 400px;
}
</style>
```
这样,当用户点击图例时,图例不会失去选中状态。
阅读全文