Newer
Older
dcms_front / src / views / assessRegion / accessOverChart1.vue
<template>
  <div class="chart-container">
    <div ref="chart" class="chart-body" />
  </div>
</template>

<script>
import echarts from 'echarts'
export default {
  name: 'AccessOverChart',
  props: {
    list: {
      type: Array,
      default() {
        return []
      }
    }
  },
  computed: {
    pieData() {
      const tmp = []
      this.list.forEach(item => {
        const obj = {}
        obj.name = '总上报数'
        obj.value = item.report
        tmp.push(obj)
        const obj1 = {}
        obj1.name = '立案数'
        obj1.value = item.register
        tmp.push(obj1)
        const obj2 = {}
        obj2.name = '处理数'
        obj2.value = item.process
        tmp.push(obj2)
        const obj3 = {}
        obj3.name = '结案数'
        obj3.value = item.close
        tmp.push(obj3)
      })
      return tmp
    }
  },
  watch: {
    list() {
      this.initChart()
    }
  },
  activated() {
    this.initChart()
  },
  methods: {
    initChart() {
      this.chart = echarts.init(this.$refs.chart)
      this.chart.setOption({
        tooltip: {
          show: true
        },
        // toolbox: {
        //   show: true,
        //   right: '20',
        //   feature: {
        //     saveAsImage: {
        //       show: true
        //     }
        //   }
        // },
        color: [
          '#19d4ae', '#5ab1ef', '#fa6e86',
          '#ffb980', '#0067a6', '#c4b4e4',
          '#d87a80', '#9cbbff', '#d9d0c7',
          '#87a997', '#d49ea2', '#5b4947',
          '#7ba3a8'
        ],
        legend: {
          orient: 'vertical',
          right: 0,
          data: this.pieData.map(item => item.name)
        },
        series: [{
          name: '整体概况',
          type: 'pie',
          data: this.pieData,
          label: {
            // formatter: '{b} : {d}%'
            show: false
          },
          tooltip: {
            formatter: '{b}<br/>数量: {c}({d}%)'
          }
        }]
      })
    }
  }
}
</script>

<style scoped>
  .chart-container{
    /*text-align: center;*/
  }
  .chart-body{
    height: 80vh;
    width: 90%;
    margin-right: auto;
    margin-left: auto;
  }
</style>