Newer
Older
CloudBrainNew / src / views / cityConstruction / components / projects / components / investmentPie.vue
<!--
 * @Description:投资占比
 * @Author: 王晓颖
 * @Date: 2020-12-01 11:18:41
 -->
<template>
  <single-layout title="投资占比">
    <div style="width: 100%;height:100%;box-sizing:border-box;padding:0.05rem">
      <simple-pie-chart
        :id="data.id"
        :width="data.width"
        :height="data.height"
        :seriesData="data.data">
      </simple-pie-chart>
    </div>
  </single-layout>
</template>

<script>
import SimplePieChart from '@/components/pieChart/simplePieChart'
import SingleLayout from '@/components/layout/singleLayout'
import {getYear} from '@/utils/formatDate'
import {fetchProjectInvestmentByType} from '@/api/projectManage'
import mockData from '../../../../../../static/plan.json'
export default {
  name: 'InvestmentPie',
  components: {SingleLayout, SimplePieChart},
  data () {
    return {
      year: getYear(),
      data: {
        id: 'investment-pie',
        width: '100%',
        height: '100%',
        legend: ['园林项目', '市政项目', '建筑项目', '交通项目', '水利项目'],
        data: [
          {value: 0, name: '园林项目'},
          {value: 0, name: '市政项目'},
          {value: 0, name: '建筑项目'},
          {value: 0, name: '交通项目'},
          {value: 0, name: '水利项目'}
        ]
      }
    }
  },
  created () {
    // this.getData()
    this.data.data = mockData.investment.pie
  },
  methods: {
    getData () {
      fetchProjectInvestmentByType(this.year).then(response => {
        if (response.code === 200) {
          this.data.legend = response.data.map(item => item.type)
          const data = response.data.map(item => {
            return {
              name: item.type,
              value: item.value
            }
          })
          this.data.data = data
        }
      })
    }
  }
}
</script>

<style rel="stylesheet/scss" lang="scss" scoped>

</style>