productIncome.vue 1.94 KB
<template>
  <div>
      <div class="d-flex search-box jc-end">
        <el-select v-model="selectYear" size="mini" style="width:1.5rem;" @change="getProject">
            <el-option
                v-for="item in yearList"
                :key="item"
                :label="item"
                :value="item">
            </el-option>
            </el-select>
        </div>
        <div class="d-flex heightCut68">
            <div class="flex-1 ball">
                <waterBall :message="acutalBall.charts" idstr="ball1" class="heightCut68"></waterBall>
                <p>预算收入 {{acutalBall.budgetCost}}万元</p>
                <p>实际收入 {{acutalBall.actualCost}}万元</p>
            </div>
            <div class="flex-1 ball">
                <waterBall :message="budgetBall.charts" idstr="ball2" class="heightCut68"></waterBall>
                <p>预算成本 {{budgetBall.budgetIncome}}万元</p>
                <p>实际成本 {{budgetBall.realIncome}}万元</p>
            </div>
        </div>
  </div>
</template>

<script>
import waterBall from '@/components/echarts/waterBallChart' // 项目收入 水球图
import * as API_OPERATION from '@/api/con.operation'
export default {
  components: { waterBall },
  data () {
    return {
      selectYear: '',
      yearList: [],
      acutalBall: {},
      budgetBall: {}
    }
  },
  mounted () {
    this.getProjectYear()
  },
  methods: {
    async getProjectYear () {
      const _data = await API_OPERATION.getProjectYear()
      if (!_data.data) { return false }
      this.yearList = _data.data
      this.selectYear = _data.data[0]
      this.getProject()
    },
    async getProject () {
      const _data = await API_OPERATION.getProject({ date: this.selectYear })
      if (!_data.data) { return false }
      this.budgetBall = _data.data.budgetBall
      this.acutalBall = _data.data.acutalBall
    }
  }
}
</script>

<style lang="scss" scoped>
@import '~@/assets/style/operation.scss';
</style>