echarts饼状图共用组件

本文介绍如何使用ECharts库在Vue应用中创建动态大小的饼图,通过'pieShowId'参数传递图表区域,并实现数据配置和响应式调整。重点在于`initdata`方法中的选项设置和`resize`事件监听。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<template>
  <div style="width: 100%;height:100%;text-align: center;">
    <div :id="pieShowId" class="pie" style="width: 100%;height: 100%"></div>
  </div>
</template>

<script>
//import NProgress from 'nprogress'
export default {
  props: ["optionData", "pieShowId", "titleText"], //传递的参数数组,id区分,名字区分
  data() {
    return {
      myChart: {}
    };
  },
  mounted() {
    this.initdata();
    window.addEventListener("resize", () => {
      this.myChart.resize();            //动态计算大小
    });
  },
  methods: {
    initdata() {
      this.myChart = this.$echarts.init(
        document.getElementById(this.pieShowId)
      );
      this.myChart.setOption({
        color: ["#0FCCD7", "#F57140", "#FBB307", "#B665B7", "#5488F1"],
        title: {
          text: this.titleText ? this.titleText : "",
          left: "center"
        },
        tooltip: {
          trigger: "item",
          formatter: function (params, ticket, callback) {                    //处理数据函数
            if(params.data.custom){                   
              return `${params.data.name}:${params.data.customValue}`
            }else{
              return `${params.data.name}:${params.data.value}`
            }
          }
        },
        series: [
          {
            name: "",
            type: "pie",
            center: ["50%", "50%"],
            radius: ["30%", "80%"],
            label: {
              normal: {
                position: "inner"
              }
            },
            data: this.optionData,
            itemStyle: {
              normal: {
                borderWidth: 0,
                borderColor: "#fff"
              },
              emphasis: {
                shadowBlur: 10,
                shadowOffsetX: 0
                // shadowColor: "rgba(0, 0, 0, 0.8)"
              }
            }
          }
        ]
      });
    }
  }
};
</script>

<style scoped>
</style>

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值