vue3 封装Echarts

1.创建Wcharts 文件

<template>
  <div class="echart_size" :id="props.id"></div>
</template>

<script setup>
import { ref, nextTick, onMounted, markRaw } from "vue";
import luannan from "@/assets/json/luannan.json";

const props = defineProps({
  id: {
    type: String,
    required: "myecharts",
  },
  datas: {
    type: Object,
    required: {},
  },
  mapData: {
    type: Boolean,
    required: false,
  },
});

const emit = defineEmits();

const GetEchar = () => {
  const myCharts = ref();

  nextTick(() => {
    echarts.init(document.getElementById(props.id)).dispose();
    myCharts.value = markRaw(echarts.init(document.getElementById(props.id)));
    if (props.mapData) {
      echarts.registerMap("滦南", luannan);
    }

    let option = props.datas;
    myCharts.value.setOption(option, true);

    myCharts.value.on('legendselectchanged', function (params) {
      if(params.name == '超额取水户'){
        emit('handelUsers')
      } 
    });

    window.addEventListener("resize", function () {
      myCharts.value.resize();
    });
  });
};

onMounted(() => {
  GetEchar();
});
</script>

<style lang="scss" scoped>
.echart_size {
  width: 100%;
  height: 100%;
}
</style>

2.引入 

import EchartsCustom from "@/components/Echarts";

app.component("EchartsCustom", EchartsCustom);

3.使用 

<EchartsCustom    
  class="chartContainer"            
  :id="'riverChiefChartHe'"
  :datas="riverChiefOptions"
  :key="riverChiefKey"
/>

datas:数据 options   key状态

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值