From 52a85e8be32a595fbebf2b5962fead9ff55cfc10 Mon Sep 17 00:00:00 2001 From: xujun <271087757@qq.com> Date: Fri, 28 Mar 2025 12:01:59 +0800 Subject: [PATCH] xujun --- .../report/talent/components/budgetEdit.vue | 4 +- .../talent/components/budgetFiveEdit.vue | 8 +- .../talent/components/budgetFiveInfo.vue | 257 ++++++++++++++++++ .../report/talent/components/budgetInfo.vue | 254 ++--------------- .../talent/components/budgetThreeEdit.vue | 8 +- .../talent/components/budgetThreeInfo.vue | 213 +++++++++++++++ .../report/talent/components/talentInfo.vue | 39 ++- 7 files changed, 536 insertions(+), 247 deletions(-) create mode 100644 src/views/report/talent/components/budgetFiveInfo.vue create mode 100644 src/views/report/talent/components/budgetThreeInfo.vue diff --git a/src/views/report/talent/components/budgetEdit.vue b/src/views/report/talent/components/budgetEdit.vue index 92f911d..42fdab2 100644 --- a/src/views/report/talent/components/budgetEdit.vue +++ b/src/views/report/talent/components/budgetEdit.vue @@ -1,10 +1,10 @@ <template> <div> <div v-if="budgetCategory"> - <budget-five-edit ref="talentBudgetA" :budgetList.sync="budgetList" :budgetType.sync="budgetType"></budget-five-edit> + <budget-five-edit ref="talentBudgetA" :budgetList.sync="budgetList"></budget-five-edit> </div> <div v-else> - <budget-three-edit ref="talentBudgetB" :budgetList.sync="budgetList" :budgetType.sync="budgetType"></budget-three-edit> + <budget-three-edit ref="talentBudgetB" :budgetList.sync="budgetList"></budget-three-edit> </div> </div> </template> diff --git a/src/views/report/talent/components/budgetFiveEdit.vue b/src/views/report/talent/components/budgetFiveEdit.vue index 4481560..086ede2 100644 --- a/src/views/report/talent/components/budgetFiveEdit.vue +++ b/src/views/report/talent/components/budgetFiveEdit.vue @@ -169,12 +169,6 @@ export default { default: () => { return [{ ...Budget }]; }, - }, - budgetType: { - type: Object, - default: () => { - return null - } } }, data() { @@ -230,7 +224,7 @@ export default { 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 + this.totalFee = this.totalYearValue1 + this.totalYearValue2 + this.totalYearValue3 + this.totalYearValue4 + this.totalYearValue5 }, //一、国内外进修费用 educationFee () { diff --git a/src/views/report/talent/components/budgetFiveInfo.vue b/src/views/report/talent/components/budgetFiveInfo.vue new file mode 100644 index 0000000..04d72b0 --- /dev/null +++ b/src/views/report/talent/components/budgetFiveInfo.vue @@ -0,0 +1,257 @@ +<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> diff --git a/src/views/report/talent/components/budgetInfo.vue b/src/views/report/talent/components/budgetInfo.vue index ccc2ffb..6722b3b 100644 --- a/src/views/report/talent/components/budgetInfo.vue +++ b/src/views/report/talent/components/budgetInfo.vue @@ -1,257 +1,53 @@ <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 v-if="budgetCategory"> + <budget-five-info :budgetList.sync="budgetList"></budget-five-info> + </div> + <div v-else> + <budget-three-info :budgetList.sync="budgetList"></budget-three-info> + </div> </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 } +import budgetFiveInfo from '@/views/report/talent/components/budgetFiveInfo' +import budgetThreeInfo from '@/views/report/talent/components/budgetThreeInfo' export default { name: "budgetInfo", + components: { + budgetFiveInfo, budgetThreeInfo, + }, props: { budgetList: { type: Array, default: () => { return [{ ...Budget }]; }, + }, + budgetType: { + type: Object, + default: () => { + return null + } } }, 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 ], + budgetCategory: null, } }, created() { - //this.calTotalFee() + if (!this.budgetType) { + if (this.budgetType.type === 'HTTalent') { + this.budgetCategory = true + } else { + this.budgetCategory = false + } + } }, 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> diff --git a/src/views/report/talent/components/budgetThreeEdit.vue b/src/views/report/talent/components/budgetThreeEdit.vue index 83e8936..c3c45e7 100644 --- a/src/views/report/talent/components/budgetThreeEdit.vue +++ b/src/views/report/talent/components/budgetThreeEdit.vue @@ -133,12 +133,6 @@ export default { default: () => { return [{ ...Budget }]; }, - }, - budgetType: { - type: Object, - default: () => { - return null - } } }, data() { @@ -192,7 +186,7 @@ export default { 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.totalFee = this.totalYearValue1 + this.totalYearValue2 + this.totalYearValue3 //+ + this.totalYearValue4 + this.totalYearValue5 + this.totalFee = this.totalYearValue1 + this.totalYearValue2 + this.totalYearValue3 }, //一、国内外进修费用 educationFee () { diff --git a/src/views/report/talent/components/budgetThreeInfo.vue b/src/views/report/talent/components/budgetThreeInfo.vue new file mode 100644 index 0000000..0168587 --- /dev/null +++ b/src/views/report/talent/components/budgetThreeInfo.vue @@ -0,0 +1,213 @@ +<template> + <div> + <a-row type="flex" class="row_center"> + <a-col :span="8" class="bg-gray"> + <div class="special-middle"> + <div class="required">申请资助的预算支出科目</div> + </div> + </a-col> + <a-col :span="4" class="bg-gray"> + <div class="special-middle"> + <div class="required">第一年</div> + </div> + </a-col> + <a-col :span="4" class="bg-gray"> + <div class="special-middle"> + <div class="required">第二年</div> + </div> + </a-col> + <a-col :span="4" class="bg-gray"> + <div class="special-middle"> + <div class="required">第三年</div> + </div> + </a-col> + <a-col :span="4" class="bg-gray"> + <div class="special-middle"> + <div class="required">费用</div> + </div> + </a-col> + </a-row> + <a-row v-for="(item, index) in budgetList" :key="index" type="flex" class="row_center"> + <a-col :span="8" style="text-align: left;" > + <div class="special-middle">{{ item.budgetName }}</div> + </a-col> + <a-col :span="4"> + <div class="special-middle"> + <div>{{parseFloat(item.yearValue1).toFixed(2)}}</div> + </div> + </a-col> + <a-col :span="4"> + <div class="special-middle"> + <div>{{parseFloat(item.yearValue2).toFixed(2)}}</div> + </div> + </a-col> + <a-col :span="4"> + <div class="special-middle"> + <div>{{parseFloat(item.yearValue3).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="8" class="bg-gray"> + <div class="special-middle"> + <div>合计</div> + </div> + </a-col> + <a-col :span="4" class="bg-gray"> + <div class="special-middle"> + <div>{{ parseFloat(totalYearValue1).toFixed(2) }}</div> + </div> + </a-col> + <a-col :span="4" class="bg-gray"> + <div class="special-middle"> + <div>{{ parseFloat(totalYearValue2).toFixed(2) }}</div> + </div> + </a-col> + <a-col :span="4" class="bg-gray"> + <div class="special-middle"> + <div>{{ parseFloat(totalYearValue3).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: "budgetThreeInfo", + 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.totalFee = this.totalYearValue1 + this.totalYearValue2 + this.totalYearValue3 + }, + //一、国内外进修费用 + educationFee () { + this.budgetList[0].amountFee = this.budgetList[0].yearValue1 + this.budgetList[0].yearValue2 + this.budgetList[0].yearValue3 + }, + //二、学术交流费用 + scienceFee () { + this.budgetList[1].amountFee = this.budgetList[1].yearValue1 + this.budgetList[1].yearValue2 + this.budgetList[1].yearValue3 + }, + //三、研究费用 + researchFee (index) { + this.budgetList[index].amountFee = this.budgetList[index].yearValue1 + this.budgetList[index].yearValue2 + this.budgetList[index].yearValue3 + + this.budgetList[2].yearValue1 = 0.00 + this.budgetList[2].yearValue2 = 0.00 + this.budgetList[2].yearValue3 = 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].amountFee = this.budgetList[2].yearValue1 + this.budgetList[2].yearValue2 + this.budgetList[2].yearValue3 + }, + //四、其他费用 + otherFee (index) { + this.budgetList[index].amountFee = this.budgetList[index].yearValue1 + this.budgetList[index].yearValue2 + this.budgetList[index].yearValue3 + + this.budgetList[8].yearValue1 = 0.00 + this.budgetList[8].yearValue2 = 0.00 + this.budgetList[8].yearValue3 = 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].amountFee = this.budgetList[8].yearValue1 + this.budgetList[8].yearValue2 + this.budgetList[8].yearValue3 + }, + 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> diff --git a/src/views/report/talent/components/talentInfo.vue b/src/views/report/talent/components/talentInfo.vue index 26a0df3..463f23f 100644 --- a/src/views/report/talent/components/talentInfo.vue +++ b/src/views/report/talent/components/talentInfo.vue @@ -407,7 +407,7 @@ </div> </a-col> </a-row> - <budget-info :budgetList.sync="value.budgetList" /> + <budget-info :budgetList.sync="value.budgetList" :budgetType.sync="budgetType" /> <a-row> <a-col :span="24" style="border-top: 0px; text-align: center"> <div class="main-title"> @@ -475,7 +475,20 @@ export default { }, }, data() { - return {}; + return { + talentTraningInfo: { + HTTalent: null, + ALTalent: null, + RTTalent: null, + ALTrainingYear: null, + ALEveryYearFee: null, + HTTrainingYear: null, + HTEveryYearFee: null, + RTTrainingYear: null, + RTEveryYearFee: null, + }, + budgetType: { type: 'HTTalent', trainingYear: 5, EveryYearFee: 10 }, + }; }, created () { if (!!!this.tabsData || this.tabsData.length == 0) @@ -489,9 +502,31 @@ export default { { title: '附件', key: '6', isShow: true }, { title: '项目审核记录', key: '7', isShow: true }, ] + if (!!!this.value) { + this.getTalentTraningInfo() + } }, methods: { moment, toTextarea, + getTalentTraningInfo () { + this.$api.systemSet.getTalentTraningInfo().then(({ data = {} }) => { + if (data) { + this.talentTraningInfo = data + this.processBudgetType() + } + }) + }, + processBudgetType() { + if (this.value.talentCategory === this.talentTraningInfo.HTTalent) { + this.budgetType = { type: 'HTTalent', trainingYear: this.talentTraningInfo.HTTrainingYear, EveryYearFee: this.talentTraningInfo.HTEveryYearFee } + } else if (this.formData.talentCategory === this.talentTraningInfo.ALTalent) { + this.budgetType = { type: 'ALTalent', trainingYear: this.talentTraningInfo.ALTrainingYear, EveryYearFee: this.talentTraningInfo.ALEveryYearFee } + } else { + this.budgetType = { type: 'RTTalent', trainingYear: this.talentTraningInfo.RTTrainingYear, EveryYearFee: this.talentTraningInfo.RTEveryYearFee } + } + if (!!!this.formData.applyFund || this.formData.applyFund == 0) + this.formData.applyFund = this.budgetType.trainingYear * this.budgetType.EveryYearFee + } } }; </script> \ No newline at end of file -- 2.18.0