echart 通用设置

<template>
  <div class="echarts" :id="id"></div>
</template>
<script>
import echarts from 'echarts'
export default {
  props: {
    id: {
      type: String
    },
    width: {
      type: String
    },
    height: {
      type: String
    },
    option: {
      type: Object
    },
  },
  data() {
    return {
      echartsElement: "", //echarts实例,
    };
  },
  computed: {
    style() {
      return {
        height: this.height,
        width: this.width
      };
    }
  },
  watch: {
    //要监听的对象 option
    //由于echarts采用的数据驱动,所以需要监听数据的变化来重绘图表
    option: {
      handler(newVal, oldVal) {
        if (this.echartsElement) {
          if (newVal) {
            this.echartsElement.setOption(newVal, true);
          } else {
            this.echartsElement.setOption(oldVal, true); 
          }
        } else {
          this.initCharts();
        }
      },
      deep: true //对象内部属性的监听,关键。
    },
    getOverData: {
      handler() {
        this.initCharts();
      },
      deep: true //对象内部属性的监听,关键。
    }
  },
  methods: {
    initCharts() {
      this.echartsElement = echarts.init(document.getElementById(this.id));
      this.echartsElement.clear();
      this.echartsElement.setOption(this.option, true); //设置为true可以是图表切换数据时重新渲染
      let _this = this;
      window.addEventListener("resize", function() {
        _this.echartsElement.resize();
      });
      this.echartsElement.off("click");
      this.echartsElement.on("click", (params) => {
        console.log(params);
      });
    }
  },
  mounted() {
    this.initCharts();
  }
};
</script>

<style lang="scss" scoped>
.echarts {
  width: 100%;
  height: 100%;
}
</style>
`
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值