美文网首页
vue 中Echart的简单使用

vue 中Echart的简单使用

作者: wxw_威 | 来源:发表于2022-07-04 14:38 被阅读0次

公司有图表需求,简单记录一下echart使用方法。

把Echart稍微简单封装成一个组件

<template>
  <div class="echarts-base">
    <div :id="echartsData.id" :style="echartsData.style || defaultStyle"></div>
  </div>
</template>

<script>
import * as echarts from 'echarts';
export default {
  props: {
    echartsData: {
      type: Object,
      default: () => {
        return {
          id: '',
          style: null,
          option: null,
        }
      }
    }
  },
  data() {
    return {
      defaultStyle: {width: '300px', height: '300px'}
    }
  },
  created() {

  },
  mounted() {
    this.drawEchart()
  },
  methods: {
    // 获取echart节点
    getElementEchart() {
      return echarts.init(document.getElementById(this.echartsData.id))
    },
    // 绘制
    drawEchart() {
      let baseEchart = this.getElementEchart()
      baseEchart.setOption(this.echartsData.option)        
    },
    // 显示loading
    showLoading() {
      let baseEchart = this.getElementEchart()
      baseEchart.showLoading()
    },
    // 隐藏loading
    hiddenLoading() {
      let baseEchart = this.getElementEchart()
      baseEchart.hideLoading()
    }
  }
}
</script>

<style scoped lang="scss">
.echarts-base {
  display: flex;
  justify-content: center;
  align-items: center;
}
</style>

调用组件

<template>
  <div id="app">
    <echarts-base ref="firstEchart" :echartsData="echartData"></echarts-base>
  </div>
</template>

<script>
import EchartsBase from "@/components/EchartsBase/index.vue"
export default {
  name: 'App',
  components: {EchartsBase},
  data() {
    return {
      echartData: {
        id: 'firstEchart',
        style: {width: '600px', height: '500px'},
        option: {
          title: {
            text: 'ECharts 入门示例'
          },
          tooltip: {},
          legend: {
            data: ['销量']
          },
          xAxis: {
            data: []
          },
          yAxis: {},
          series: [
            {
              name: '销量',
              type: 'bar',
              data: []
            }
          ]
        }
      }
    }
  },
  mounted() {
    this.getList()
  },
  methods: {
    getList() {
      this.$refs.firstEchart.showLoading()
      setTimeout(() => {
        let title = {
            text: '哈哈哈哈'
          }
        let xAxisData = ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子', '帽子', '军大衣']
        let seriesData = [
          {
            name: '销量',
            type: 'bar',
            data: [10, 20, 30, 40, 50 , 60 ,70, 15]
          }
        ]
        this.$set(this.echartData.option, 'series', seriesData)
        this.$set(this.echartData.option.xAxis, 'data', xAxisData)
        this.$set(this.echartData.option, 'title', title)
        this.$refs.firstEchart.drawEchart()
        this.$refs.firstEchart.hiddenLoading()
      }, 2000);
    }
  }
}
</script>

相关文章

网友评论

      本文标题:vue 中Echart的简单使用

      本文链接:https://www.haomeiwen.com/subject/herfbrtx.html