• 徐俊's avatar
    xujun · 52a85e8b
    徐俊 authored
    52a85e8b
budgetFiveInfo.vue 9.15 KB
<template>
  <div>
    <a-row type="flex" class="row_center">
      <a-col :span="5" class="bg-gray">
        <div class="special-middle">
          <div class="required">申请资助的预算支出科目</div>
        </div>
      </a-col>
      <a-col :span="3" class="bg-gray">
        <div class="special-middle">
          <div class="required">第一年</div>
        </div>
      </a-col>
      <a-col :span="3" class="bg-gray">
        <div class="special-middle">
          <div class="required">第二年</div>
        </div>
      </a-col>
      <a-col :span="3" class="bg-gray">
        <div class="special-middle">
          <div class="required">第三年</div>
        </div>
      </a-col>
      <a-col :span="3" class="bg-gray">
        <div class="special-middle">
          <div class="required">第四年</div>
        </div>
      </a-col>
      <a-col :span="3" class="bg-gray">
        <div class="special-middle">
          <div class="required">第五年</div>
        </div>
      </a-col>
      <a-col :span="2" class="bg-gray">
        <div class="special-middle">
          <div class="required">费用</div>
        </div>
      </a-col>
      <a-col :span="2" class="bg-gray">
        <div class="special-middle">
          <div>操作</div>
        </div>
      </a-col>
    </a-row>
    <a-row v-for="(item, index) in budgetList" :key="index" type="flex" class="row_center">
      <a-col :span="5" style="text-align: left;" >
        <div class="special-middle">{{ item.budgetName }}</div>
      </a-col>
      <a-col :span="3">
        <div class="special-middle">
          <div>{{parseFloat(item.yearValue1).toFixed(2)}}</div>
        </div>
      </a-col>
      <a-col :span="3">
        <div class="special-middle">
          <div>{{parseFloat(item.yearValue2).toFixed(2)}}</div>
        </div>
      </a-col>
      <a-col :span="3">
        <div class="special-middle">
          <div>{{parseFloat(item.yearValue3).toFixed(2)}}</div>
        </div>
      </a-col>
      <a-col :span="3">
        <div class="special-middle">
          <div>{{parseFloat(item.yearValue4).toFixed(2)}}</div>
        </div>
      </a-col>
      <a-col :span="3">
        <div class="special-middle">
          <div>{{parseFloat(item.yearValue5).toFixed(2)}}</div>
        </div>
      </a-col>
      <a-col :span="4">
        <div class="special-middle">
          <div>{{ parseFloat(item.amountFee).toFixed(2) }}</div>
        </div>
      </a-col>
    </a-row>
    <a-row type="flex" class="row_center">
      <a-col :span="5" class="bg-gray">
        <div class="special-middle">
          <div>合计</div>
        </div>
      </a-col>
      <a-col :span="3" class="bg-gray">
        <div class="special-middle">
          <div>{{ parseFloat(totalYearValue1).toFixed(2) }}</div>
        </div>
      </a-col>
      <a-col :span="3" class="bg-gray">
        <div class="special-middle">
          <div>{{ parseFloat(totalYearValue2).toFixed(2) }}</div>
        </div>
      </a-col>
      <a-col :span="3" class="bg-gray">
        <div class="special-middle">
          <div>{{ parseFloat(totalYearValue3).toFixed(2) }}</div>
        </div>
      </a-col>
      <a-col :span="3" class="bg-gray">
        <div class="special-middle">
          <div>{{ parseFloat(totalYearValue4).toFixed(2) }}</div>
        </div>
      </a-col>
      <a-col :span="3" class="bg-gray">
        <div class="special-middle">
          <div>{{ parseFloat(totalYearValue5).toFixed(2) }}</div>
        </div>
      </a-col>
      <a-col :span="4" class="bg-gray">
        <div class="special-middle">
          <div>{{ parseFloat(totalFee).toFixed(2) }}</div>
        </div>
      </a-col>
    </a-row>
  </div>
</template>

<script>
const Budget = { id: null, talentId: null, budgetId: "00000000-0000-0000-0000-000000000000", yearValue1: 0.00, yearValue2: 0.00, yearValue3: 0.00, yearValue4: 0.00, yearValue5: 0.00, amountFee: 0.00, showIndex: null, isRequired: false }

export default {
  name: "budgetFiveInfo",
  props: {
    budgetList: {
      type: Array,
      default: () => {
        return [{ ...Budget }];
      },
    }
  },
  data() {
    return {
      totalYearValue1: 0.00,
      totalYearValue2: 0.00,
      totalYearValue3: 0.00,
      totalYearValue4: 0.00,
      totalYearValue5: 0.00,
      totalFee: 0.00,
      invisibleYearValue1: [ 2, 8 ],
      invisibleYearValue2: [ 2, 8 ],
      invisibleYearValue3: [ 2, 8 ],
      invisibleYearValue4: [ 2, 8 ],
      invisibleYearValue5: [ 2, 8 ],
    }
  },
  created() {
    //this.calTotalFee()
  },
  methods: {
    FeeChange (index) {
      if (index == 0)
        this.educationFee()
      else if (index == 1)
        this.scienceFee()
      else if (index > 2 && index < 8)
        this.researchFee(index)
      else if (this.budgetList.length > 8)
        this.otherFee(index)

      this.calTotalFee()
    },
    YearValue1Change (index) {
      this.FeeChange(index)
    },
    YearValue2Change (index) {
      this.FeeChange(index)
    },
    YearValue3Change (index) {
      this.FeeChange(index)
    },
    YearValue4Change (index) {
      this.FeeChange(index)
    },
    YearValue5Change (index) {
      this.FeeChange(index)
    },
    calTotalFee() {
      this.totalYearValue1 = this.budgetList[0].yearValue1 + this.budgetList[1].yearValue1 + this.budgetList[2].yearValue1 + this.budgetList[8].yearValue1
      this.totalYearValue2 = this.budgetList[0].yearValue2 + this.budgetList[1].yearValue2 + this.budgetList[2].yearValue2 + this.budgetList[8].yearValue2
      this.totalYearValue3 = this.budgetList[0].yearValue3 + this.budgetList[1].yearValue3 + this.budgetList[2].yearValue3 + this.budgetList[8].yearValue3
      this.totalYearValue4 = this.budgetList[0].yearValue4 + this.budgetList[1].yearValue4 + this.budgetList[2].yearValue4 + this.budgetList[8].yearValue4
      this.totalYearValue5 = this.budgetList[0].yearValue5 + this.budgetList[1].yearValue5 + this.budgetList[2].yearValue5 + this.budgetList[8].yearValue5

      this.totalFee = this.totalYearValue1 + this.totalYearValue2 + this.totalYearValue3 + + this.totalYearValue4 + this.totalYearValue5
    },
    //一、国内外进修费用
    educationFee () {
      this.budgetList[0].amountFee = this.budgetList[0].yearValue1 + this.budgetList[0].yearValue2 + this.budgetList[0].yearValue3 + this.budgetList[0].yearValue4 + this.budgetList[0].yearValue5
    },
    //二、学术交流费用
    scienceFee () {
      this.budgetList[1].amountFee = this.budgetList[1].yearValue1 + this.budgetList[1].yearValue2 + this.budgetList[1].yearValue3 + this.budgetList[1].yearValue4 + this.budgetList[1].yearValue5
    },
    //三、研究费用
    researchFee (index) {
      this.budgetList[index].amountFee = this.budgetList[index].yearValue1 + this.budgetList[index].yearValue2 + this.budgetList[index].yearValue3 + this.budgetList[index].yearValue4 + this.budgetList[index].yearValue5

      this.budgetList[2].yearValue1 = 0.00
      this.budgetList[2].yearValue2 = 0.00
      this.budgetList[2].yearValue3 = 0.00
      this.budgetList[2].yearValue4 = 0.00
      this.budgetList[2].yearValue5 = 0.00
      for (let i = 3; i <= 7; i++) {
        this.budgetList[2].yearValue1 += this.budgetList[i].yearValue1
        this.budgetList[2].yearValue2 += this.budgetList[i].yearValue2
        this.budgetList[2].yearValue3 += this.budgetList[i].yearValue3
        this.budgetList[2].yearValue4 += this.budgetList[i].yearValue4
        this.budgetList[2].yearValue5 += this.budgetList[i].yearValue5
      }
      this.budgetList[2].amountFee = this.budgetList[2].yearValue1 + this.budgetList[2].yearValue2 + this.budgetList[2].yearValue3 + this.budgetList[2].yearValue4 + this.budgetList[2].yearValue5
    },
    //四、其他费用
    otherFee (index) {
      this.budgetList[index].amountFee = this.budgetList[index].yearValue1 + this.budgetList[index].yearValue2 + this.budgetList[index].yearValue3 + this.budgetList[index].yearValue4 + this.budgetList[index].yearValue5

      this.budgetList[8].yearValue1 = 0.00
      this.budgetList[8].yearValue2 = 0.00
      this.budgetList[8].yearValue3 = 0.00
      this.budgetList[8].yearValue4 = 0.00
      this.budgetList[8].yearValue5 = 0.00
      for (let i = 9; i < this.budgetList.length; i++) {
        this.budgetList[8].yearValue1 += this.budgetList[i].yearValue1
        this.budgetList[8].yearValue2 += this.budgetList[i].yearValue2
        this.budgetList[8].yearValue3 += this.budgetList[i].yearValue3
        this.budgetList[8].yearValue4 += this.budgetList[i].yearValue4
        this.budgetList[8].yearValue5 += this.budgetList[i].yearValue5
      }
      this.budgetList[8].amountFee = this.budgetList[8].yearValue1 + this.budgetList[8].yearValue2 + this.budgetList[8].yearValue3 + this.budgetList[8].yearValue4 + this.budgetList[8].yearValue5
    },
    addBudgetArray () {
      const newItem = { 
        ...Budget,
        showIndex: this.budgetList.length + 1
      }
      this.budgetList.push(newItem)
    },
    deleteBudgetArray (item) {
      let index = this.budgetList.indexOf(item)
      if (index !== -1) {
        this.budgetList.splice(index, 1)
      }
    },
    getTotalFee() {
      return parseFloat(this.totalFee);
    }
  },
  watch: {
    budgetList: {
      handler(budgetList) {
        this.calTotalFee()
      }
    }
  }
}
</script>