Chart.vue 2.28 KB
<template>
  <Echart :options="options" id="centreLeft1Chart" :key="key" height="1.0417rem" width="80%"></Echart>
</template>
<script>
  import Echart from "@/common/echart";
  export default {
    components: {
      Echart,
    },
    data () {
      return {
        key: 0,
      };
    },
    props: {
      cdata: {
        type: Array,
        default: () => ([]),
      },
    },
    watch: {
      cdata: {
        handler (newData) {

          this.options = {
            color: [
              "#37a2da",
              "#32c5e9",
              "#9fe6b8",
              "#ffdb5c",
              "#ff9f7f",
              "#fb7293",
              "#e7bcf3",
              "#8378ea"

            ],
            tooltip: {
              trigger: "item",
              formatter: function (params) {
                let html = "";
                html += `<div style="font-size: 14px;line-height: 24px >
                <span style="display:inline-block;"></span>
                ${params.name}
                <span style="color:blue;font-weight:700;font-size: 18px">${params.value}</span>
                个`;
                return html;
              },
              extraCssText:
                "background: #85a2eb; border-radius: 0;box-shadow: 0 0 3px rgba(0, 0, 0, 0.2);color: #333;",
            },
            label: {
              color: 'inherit',
            },
            series: [
              {
                name: "Access From",
                type: "pie",
                radius: '60%',
                avoidLabelOverlap: true,
                label: {
                  color: 'inherit',
                  formatter: (params) => {
                    return `${params.name}`;
                  },
                  position: "outer",
                  alignTo: "edge",
                  margin: 10,

                  normal: {
                    show: true,
                    textStyle: {
                      fontSize: 12,
                    }
                  },
                },


                data: newData,
              }
            ],
          };
          this.key++;
        },
        immediate: true,
        deep: true,
      },
    },
  };
</script>

<style lang="scss" scoped>
  #centreLeft1Chart {
    margin-bottom: 0.0521rem;
    margin-left: 0.3125rem;
  }
</style>