Chart.vue 2.13 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) {
                console.log("params11", 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;",
            },
            series: [
              {
                name: "Access From",
                type: "pie",
                radius: '60%',
                avoidLabelOverlap: true,
                label: {
                  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>