Vue中实现通过外部的CheckedBox对echarts(legend)进行动态显示/隐藏

Posted 萌萌的DDD

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue中实现通过外部的CheckedBox对echarts(legend)进行动态显示/隐藏相关的知识,希望对你有一定的参考价值。

需求原型

 开发工作中有一项,需使用复选框控制echarts的显隐,找了很多办法没有实现

直到看到一篇文章,echarts配置项中自带legend可以控制图标的数据显示隐藏

因此我们可以通过checkBox的来对selected对象进行操作来修改图标的状态

首先配置legend并让他不显示 

  legend: {
          data: ['水位', '流量', '温度'],
          show: false
        },

其次通过组件的checkBox组件的click方法获得所有选中内容

  legendToggle(names) {
      const legendSelects = {}
      //如果包含相应选中值则配置为true
      this.options.legend.data.forEach(item => {
        if (names.includes(item)) {
          legendSelects.[item] = true
        } else {
          legendSelects.[item] = false
        }
      })
      // 添加到echarts中
      this.options.legend.selected = legendSelects
      // 渲染刷新
      this.$nextTick(() => {
        setTimeout(() => {
          this.init()
        }, 500)
      })
    }

需求不难,但是可能对配置项了解较少得人,会找不到实现的方法

以上是关于Vue中实现通过外部的CheckedBox对echarts(legend)进行动态显示/隐藏的主要内容,如果未能解决你的问题,请参考以下文章

Vue中实现token验证

vue中实现全屏以及对退出全屏的监听

[decorator]react中实现vue watch

如何在没有外部库的情况下在 React 中实现 Google Maps JS API?

vue中实现刷新路由

如何从封闭的外部类调用与匿名类中实现的方法同名的方法?