遇到一个需求,就是如何保证echarts折线图里至少显示一个图例的数据(也就是点击最后一个图例时不能变成空状态)
下图是最初加载时的状态
当所有图例被点击取消后,如下图所示,太难看了
解决方案:
通过监听图表中的legend,由于选中状态为true,未选中状态为false,使用数组高级函数every遍历图表中数据,判断当所有数据状态都为false时,设置最后取消的状态为true,代码如下
hintmap.on('legendselectchanged', function (params) {
let option = this.getOption()
let select_value = Object.values(params.selected)
if (select_value.every(val => !val)) {
option.legend[0].selected[params.name] = true
}
this.setOption(option)
})