<template>
  <div class="plant-type-charts">
    <custom-echart-pie :chart-data="chartsData.valData" height="100%" :option="chartsData.option" />
  </div>
</template>
<script setup>
import { ref, reactive, onMounted } from 'vue';

const chartsData = reactive({
  option: {
    color: ['#3685fe', '#41b879', '#ffd500'],
    title: {
      text: ' ',
      textStyle: {
        color: '#333',
      },
    },
    legend: {
      data: ['甘蔗', '菠萝', '土豆', '番茄', '白菜', '其他'],
      right: '0', // 距离左侧10%的位置
      top: 'middle', // 垂直居中
      orient: 'vertical', // 图例垂直排列
      itemWidth: 15, // 图例标记的宽度
      itemHeight: 8, // 图例标记的高度
      textStyle: {
        fontSize: 10, // 图例文字的字体大小
        color: '#fff', // 图例文字的颜色
      },
    },
    label: {
      color: '#333',
    },
    series: [
      {
        type: 'pie',
        radius: [20, 80],
        roseType: 'area',
        center: ['40%', '50%'],
        label: {
          show: false,
        },
        itemStyle: {
          borderRadius: 5,
        },
        // animationDuration: 15000,
        // // 可选：设置动画缓动效果
        // animationEasing: 'elasticOut',
      },
    ],
  },
  valData: [
    { value: 205.6, name: '甘蔗' },
    { value: 308.7, name: '菠萝' },
    { value: 359.6, name: '土豆' },
    { value: 452.6, name: '番茄' },
    { value: 388.9, name: '白菜' },
    { value: 512.5, name: '其他' },
  ],
});

onMounted(() => {
  if (chartsData.valData && chartsData.valData.length) {
    chartsData.valData.forEach((m, index) => {
      let num = 100;
      m.value = (Number(m.value) + Math.random() + num).toFixed(2);
    });
  }
});
</script>
<style lang="scss" scoped>
.plant-type-charts {
  height: 100%;
}
</style>
