• wangxl's avatar
    3333 · 5b9364e2
    wangxl authored
    5b9364e2
fundEdit.vue 4.27 KB
<template>
  <div>
    <a-row>
      <a-col :span="24">
        <div class="tb-title">
          <span>项目经费 <strong>(单位:万元)</strong></span>
        </div>
      </a-col>
    </a-row>
    <a-row>
      <a-col :span="6" class="bg-gray">
        预算科目
      </a-col>
      <a-col :span="3" class="bg-gray">
        总预算数
      </a-col>
      <a-col :span="5" class="bg-gray">
        省级财政资金
      </a-col>
      <a-col :span="5" class="bg-gray">
        自筹资金
      </a-col>
      <a-col :span="5" class="bg-gray">
        备注
      </a-col>
    </a-row>

    <div v-for="(item, index) in budget" :key="'budget' + index" class="row_center">
      <a-row v-if="item.type ==='count'" type="flex">
        <a-col :span="6" :style="'text-align: left;padding-left:'+left(item.level)+'px'">
          <div class="special-middle">
            {{item.budgetName}}
          </div>
        </a-col>
        <a-col :span="3">
          <div class="special-middle">
            {{Count(item.source,'totalBudget',index)}}
          </div>
        </a-col>
        <a-col :span="5">
          <div class="special-middle">
            <span v-if="!!!item.code||item.code === 'applyFunds'">{{Count(item.source,'applyFunds',index)}}</span>
          </div>
        </a-col>
        <a-col :span="5">
          <div class="special-middle">
            {{Count(item.source,'selfFunds',index)}}
          </div>
        </a-col>
        <a-col :span="5">
          <div class="special-middle">
            <a-input v-model="item.calculationBasis" :maxLength="100" style="width: 80%;" />
          </div>
        </a-col>
      </a-row>
      <a-row v-else type="flex">
        <a-col :span="6" :style="'text-align: left;padding-left:'+left(item.level)+'px'">
          <div class="special-middle">
            {{item.budgetName}}
          </div>
        </a-col>
        <a-col :span="3">
          <div class="special-middle">
            {{Count1(index, item.applyFunds, item.selfFunds)}}
          </div>
        </a-col>
        <a-col :span="5">
          <div class="special-middle">
            <a-input-number v-model="item.applyFunds" :min="0" :step="0.01" style="width: 80%" v-if="!!!item.code||item.code === 'applyFunds'" />
          </div>
        </a-col>
        <a-col :span="5">
          <div class="special-middle">
            <a-input-number v-model="item.selfFunds" :min="0" :step="0.01" style="width: 80%" v-if="!!!item.code||item.code === 'selfFunds'" />
          </div>
        </a-col>
        <a-col :span="5">
          <div class="special-middle">
            <a-input v-model="item.calculationBasis" :maxLength="100" style="width: 80%;" />
          </div>
        </a-col>
      </a-row>
    </div>
  </div>
</template>
<script>

import { budgetList } from "@/views/report/project/config"
export default {
  name: "fundEdit",
  data () {
    return {

    };
  },
  props: {
    budget: {
      type: Array,
      default: () => {
        return []
      }
    },
  },
  created () {
  },
  methods: {
    Count (source, type, index) {
      if (!source || !source.length) {
        return 0.00
      }
      let applyFunds = 0.00
      let selfFunds = 0.00
      source.forEach(i => {
        applyFunds = parseFloat(applyFunds + this.budget[i].applyFunds)
        selfFunds = parseFloat(selfFunds + this.budget[i].selfFunds)
      })
      if (type === 'applyFunds') {
        this.budget[index].applyFunds = applyFunds.toFixed(2)
        return applyFunds.toFixed(2)
      } else if (type === 'selfFunds') {
        this.budget[index].selfFunds = selfFunds.toFixed(2)
        return selfFunds.toFixed(2)
      } else {
        this.budget[index].totalBudget = (applyFunds + selfFunds).toFixed(2)
        return parseFloat(applyFunds + selfFunds).toFixed(2)
      }
    },
    Count1 (index, applyFunds, selfFunds) {
      let apply = 0.00
      let self = 0.00
      if (!!applyFunds)
        apply = applyFunds
      if (!!selfFunds)
        self = selfFunds
      this.budget[index].totalBudget = (apply + self).toFixed(2)
      return (apply + self).toFixed(2)
    },
    left (l) {
      switch (l) {
        case '1':
          return 4;
        case '2':
          return 12;
        case '3':
          return 20;
        case '4':
          return 30;
      }
      return 0;
    }
  },
};
</script>