Commit 0c10b184 authored by wangxl's avatar wangxl
parents 5d76244e 1dfac4eb
......@@ -7,7 +7,7 @@
</div>
</a-col>
</a-row>
<a-row type="flex" class="item_inner">
<a-row type="flex" class="row_center">
<a-col :span="6" class="bg-gray">
<div class="special-middle">
<div>预算科目</div>
......@@ -35,7 +35,7 @@
</a-col>
</a-row>
<a-row v-for="(item, index) in budget" :key="index" type="flex" class="item_inner">
<a-row v-for="(item, index) in budget" :key="index" type="flex" class="row_center">
<a-col :span="6" style="text-align: right;">
<div class="special-middle">{{ item.budgetName }}</div>
</a-col>
......
......@@ -7,7 +7,7 @@
</div>
</a-col>
</a-row>
<a-row type="flex" class="item_inner">
<a-row type="flex" class="row_center">
<a-col :span="6" class="bg-gray">
<div class="special-middle">
<div>预算科目</div>
......@@ -35,7 +35,7 @@
</a-col>
</a-row>
<a-row v-for="(item, index) in budget" :key="index" type="flex" class="item_inner">
<a-row v-for="(item, index) in budget" :key="index" type="flex" class="row_center">
<a-col :span="6" style="text-align: right;">
<div class="special-middle">{{ item.budgetName }}</div>
</a-col>
......
<template>
<div>
<a-row type="flex" class="item_inner">
<a-col :span="24" class="bg-gray">
<a-row>
<a-col :span="24">
<div class="tb-title">
<span>设备费-购置设备预算明细表<strong>(金额单位:万元)</strong></span>
</div>
</a-col>
</a-row>
<a-row type="flex" class="row_center">
<a-col :span="1" class="bg-gray">
<div class="special-middle">
<div>序号</div>
</div>
</a-col>
<a-col :span="2" class="bg-gray">
<div class="special-middle">
<div>设备名称</div>
</div>
</a-col>
<a-col :span="2" class="bg-gray">
<div class="special-middle">
<div>功能和技术指标</div>
</div>
</a-col>
<a-col :span="2" class="bg-gray">
<div class="special-middle">
<div>单价(万元/套台)</div>
</div>
</a-col>
<a-col :span="1" class="bg-gray">
<div class="special-middle">
<div>数量(套台)</div>
</div>
</a-col>
<a-col :span="2" class="bg-gray">
<div class="special-middle">
<div>金额(万元)</div>
</div>
</a-col>
<a-col :span="2" class="bg-gray">
<div class="special-middle">
<div>购置单位</div>
</div>
</a-col>
<a-col :span="2" class="bg-gray">
<div class="special-middle">
<div>存放单位(地点)</div>
</div>
</a-col>
<a-col :span="2" class="bg-gray">
<div class="special-middle">
<div>设备费-购置设备预算明细表</div>
<div>设备类型</div>
</div>
</a-col>
<a-col :span="2" class="bg-gray">
<div class="special-middle">
<div>主要生产<br />厂家及国别</div>
</div>
</a-col>
<a-col :span="2" class="bg-gray">
<div class="special-middle">
<div>规格型号</div>
</div>
</a-col>
<a-col :span="2" class="bg-gray">
<div class="special-middle">
<div>拟开发共享范围</div>
</div>
</a-col>
<a-col :span="2" class="bg-gray">
<div class="special-middle">
<div>购置必要性及<br />对项目研究的<br />作用和用途</div>
</div>
</a-col>
</a-row>
<a-row v-for="(item, index) in equipments" :key="'equipments' + index" type="flex" class="row_center">
<a-col :span="1">
<div class="special-middle"><a-button icon="close" type="primary" shape="circle" size="small" @click="deleteEquipment(item)"></a-button>&nbsp;{{ index + 1 }}</div>
</a-col>
<a-col :span="2">
<a-form-model-item :prop="'equipments.' + index + '.name'" :rules="{required: true, message: '*', trigger: 'blur',}">
<a-input v-model="item.name" :maxLength="100" style="width: 90%;" />
</a-form-model-item>
</a-col>
<a-col :span="2">
<a-form-model-item :prop="'equipments.' + index + '.functionTarget'" :rules="{required: true, message: '*', trigger: 'blur',}">
<a-input v-model="item.functionTarget" :maxLength="200" style="width: 90%;" />
</a-form-model-item>
</a-col>
<a-col :span="2">
<a-form-model-item :prop="'equipments.' + index + '.unitPrice'" :rules="{required: true, message: '*', trigger: 'blur',}">
<a-input-number v-model="item.unitPrice" @change="outUnitPriceChange(index)" :min="0" :step="0.01" style="width: 80%" />
</a-form-model-item>
</a-col>
<a-col :span="1">
<a-form-model-item :prop="'equipments.' + index + '.quantity'" :rules="{required: true, message: '*', trigger: 'blur',}">
<a-input-number v-model="item.quantity" @change="outNumberChange(index)" :min="1" :step="1" style="width: 80%" />
</a-form-model-item>
</a-col>
<a-col :span="2">
<div class="special-middle">
<div>{{ parseFloat(item.totalBudget).toFixed(2) }}</div>
</div>
</a-col>
<a-col :span="2">
<a-form-model-item :prop="'equipments.' + index + '.buyUnit'" :rules="{required: true, message: '*', trigger: 'blur',}">
<a-input v-model="item.buyUnit" :maxLength="100" style="width: 90%;" />
</a-form-model-item>
</a-col>
<a-col :span="2">
<a-form-model-item :prop="'equipments.' + index + '.storageLocation'" :rules="{required: true, message: '*', trigger: 'blur',}">
<a-input v-model="item.storageLocation" :maxLength="200" style="width: 90%;" />
</a-form-model-item>
</a-col>
<a-col :span="2">
<a-form-model-item :prop="'equipments.' + index + '.equipmentType'" :rules="{required: true, message: '*', trigger: 'blur',}">
<a-input v-model="item.equipmentType" :maxLength="100" style="width: 90%;" />
</a-form-model-item>
</a-col>
<a-col :span="2">
<a-form-model-item :prop="'equipments.' + index + '.manufacturer'" :rules="{required: true, message: '*', trigger: 'blur',}">
<a-input v-model="item.manufacturer" :maxLength="100" style="width: 90%;" />
</a-form-model-item>
</a-col>
<a-col :span="2">
<a-form-model-item :prop="'equipments.' + index + '.specificationType'" :rules="{required: true, message: '*', trigger: 'blur',}">
<a-input v-model="item.specificationType" :maxLength="100" style="width: 90%;" />
</a-form-model-item>
</a-col>
<a-col :span="2">
<a-form-model-item :prop="'equipments.' + index + '.sharedScope'" :rules="{required: true, message: '*', trigger: 'blur',}">
<a-input v-model="item.sharedScope" :maxLength="100" style="width: 90%;" />
</a-form-model-item>
</a-col>
<a-col :span="2">
<a-form-model-item :prop="'equipments.' + index + '.useFrom'" :rules="{required: true, message: '*', trigger: 'blur',}">
<a-input v-model="item.useFrom" :maxLength="200" style="width: 90%;" />
</a-form-model-item>
</a-col>
</a-row>
<a-row type="flex" class="row_center">
<a-col :span="5">
<div class="special-middle"><div>单价50万元及以上购置设备合计</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>/</div></div>
</a-col>
<a-col :span="1">
<div class="special-middle"><div>{{ fiftyUpNumber }}</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>{{ parseFloat(fiftyUpAmount).toFixed(2) }}</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>/</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>/</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>/</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>/</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>/</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>/</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>/</div></div>
</a-col>
</a-row>
<a-row type="flex" class="row_center">
<a-col :span="5">
<div class="special-middle"><div>单价50万元以下购置设备合计</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>/</div></div>
</a-col>
<a-col :span="1">
<div class="special-middle"><div>{{ fiftyDownNumber }}</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>{{ parseFloat(fiftyDownAmount).toFixed(2) }}</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>/</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>/</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>/</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>/</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>/</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>/</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>/</div></div>
</a-col>
</a-row>
<a-row type="flex" class="row_center">
<a-col :span="5">
<div class="special-middle"><div>累计</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>/</div></div>
</a-col>
<a-col :span="1">
<div class="special-middle"><div>{{ totalNumber }}</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>{{ parseFloat(totalAmount).toFixed(2) }}</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>/</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>/</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>/</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>/</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>/</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>/</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>/</div></div>
</a-col>
</a-row>
<a-row type="flex">
<a-col :span="24" style="text-align: center">
<div class="special-middle">
<a-button type="dashed" style="width: 20%" @click="addArrey()">
<a-icon type="plus" /> 添加 <span style="color:red;margin-left:10px"></span>
</a-button>
</div>
</a-col>
</a-row>
<a-row type="flex" class="item_inner">
<a-col :span="24">
<span style="color: red;">注:1.本表只填写省级财政科技资金购置的设备;涉及自筹经费购买的设备,请在资金预算编制说明中说明。<br />
2.单价50万元以下的设备不填写明细。</span>
</a-col>
</a-row>
</div>
</template>
<script>
const Equipment = {
id: "",
objectId: "",
name: "",
functionTarget: "",
specificationType: "",
quantity: 1,
totalBudget: 0.00,
useFrom: "",
buyUnit: "",
storageLocation: "",
equipmentType: "",
manufacturer: "",
sharedScope: "",
unitPrice: 0.00,
};
export default {
name: "EquipmentEdit",
data() {
return {};
return {
fiftyUpNumber: 0,
fiftyUpAmount: 0.00,
fiftyDownNumber: 0,
fiftyDownAmount: 0.00,
totalNumber: 0,
totalAmount: 0.00,
};
},
props: {
equipments: {
......@@ -24,6 +302,45 @@ export default {
},
},
},
methods: {},
created () {
},
methods: {
calNumberAmount() {
this.fiftyUpAmount = 0.00
this.fiftyDownAmount = 0.00
this.fiftyUpNumber = 0
this.fiftyDownNumber = 0
this.equipments.forEach(e => {
if (e.unitPrice >= 50) {
this.fiftyUpAmount += e.unitPrice * e.quantity
this.fiftyUpNumber += e.quantity
} else {
this.fiftyDownAmount += e.unitPrice * e.quantity
this.fiftyDownNumber += e.quantity
}
})
this.totalNumber = this.fiftyUpNumber + this.fiftyDownNumber
this.totalAmount = this.fiftyUpAmount + this.fiftyDownAmount
},
outUnitPriceChange(index) {
this.equipments[index].totalBudget = this.equipments[index].unitPrice * this.equipments[index].quantity
this.calNumberAmount()
},
outNumberChange(index) {
this.equipments[index].totalBudget = this.equipments[index].unitPrice * this.equipments[index].quantity
this.calNumberAmount()
},
addArrey() {
this.equipments.push(Object.assign({ ...Equipment }))
this.calNumberAmount()
},
deleteEquipment(item) {
let index = this.equipments.indexOf(item)
if (index !== -1) {
this.equipments.splice(index, 1)
}
this.calNumberAmount()
},
},
};
</script>
\ No newline at end of file
<template>
<div>
<a-row>
<a-col :span="24">
<div class="tb-title">
<span>设备费-购置设备预算明细表<strong>(金额单位:万元)</strong></span>
</div>
</a-col>
</a-row>
<a-row type="flex" class="row_center">
<a-col :span="1" class="bg-gray">
<div class="special-middle">
<div>序号</div>
</div>
</a-col>
<a-col :span="2" class="bg-gray">
<div class="special-middle">
<div>设备名称</div>
</div>
</a-col>
<a-col :span="2" class="bg-gray">
<div class="special-middle">
<div>功能和技术指标</div>
</div>
</a-col>
<a-col :span="2" class="bg-gray">
<div class="special-middle">
<div>单价(万元/套台)</div>
</div>
</a-col>
<a-col :span="1" class="bg-gray">
<div class="special-middle">
<div>数量(套台)</div>
</div>
</a-col>
<a-col :span="2" class="bg-gray">
<div class="special-middle">
<div>金额(万元)</div>
</div>
</a-col>
<a-col :span="2" class="bg-gray">
<div class="special-middle">
<div>购置单位</div>
</div>
</a-col>
<a-col :span="2" class="bg-gray">
<div class="special-middle">
<div>存放单位(地点)</div>
</div>
</a-col>
<a-col :span="2" class="bg-gray">
<div class="special-middle">
<div>设备类型</div>
</div>
</a-col>
<a-col :span="2" class="bg-gray">
<div class="special-middle">
<div>主要生产<br />厂家及国别</div>
</div>
</a-col>
<a-col :span="2" class="bg-gray">
<div class="special-middle">
<div>规格型号</div>
</div>
</a-col>
<a-col :span="2" class="bg-gray">
<div class="special-middle">
<div>拟开发共享范围</div>
</div>
</a-col>
<a-col :span="2" class="bg-gray">
<div class="special-middle">
<div>购置必要性及<br />对项目研究的<br />作用和用途</div>
</div>
</a-col>
</a-row>
<a-row v-for="(item, index) in equipments" :key="'equipments' + index" type="flex" class="row_center">
<a-col :span="1">
<div class="special-middle">{{ index + 1 }}</div>
</a-col>
<a-col :span="2">
<div class="special-middle">{{ item.name }}</div>
</a-col>
<a-col :span="2">
<div class="special-middle">{{ item.functionTarget }}</div>
</a-col>
<a-col :span="2">
<div class="special-middle">{{parseFloat(item.unitPrice).toFixed(2)}}</div>
</a-col>
<a-col :span="1">
<div class="special-middle">{{ item.quantity }}</div>
</a-col>
<a-col :span="2">
<div class="special-middle">{{ parseFloat(item.totalBudget).toFixed(2) }}</div>
</a-col>
<a-col :span="2">
<div class="special-middle">{{ item.buyUnit }}</div>
</a-col>
<a-col :span="2">
<div class="special-middle">{{ item.storageLocation }}</div>
</a-col>
<a-col :span="2">
<div class="special-middle">{{ item.equipmentType }}</div>
</a-col>
<a-col :span="2">
<div class="special-middle">{{ item.manufacturer }}</div>
</a-col>
<a-col :span="2">
<div class="special-middle">{{ item.specificationType }}</div>
</a-col>
<a-col :span="2">
<div class="special-middle">{{ item.sharedScope }}</div>
</a-col>
<a-col :span="2">
<div class="special-middle">{{ item.useFrom }}</div>
</a-col>
</a-row>
<a-row type="flex" class="row_center">
<a-col :span="5">
<div class="special-middle"><div>单价50万元及以上购置设备合计</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>/</div></div>
</a-col>
<a-col :span="1">
<div class="special-middle"><div>{{ fiftyUpNumber }}</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>{{ parseFloat(fiftyUpAmount).toFixed(2) }}</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>/</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>/</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>/</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>/</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>/</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>/</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>/</div></div>
</a-col>
</a-row>
<a-row type="flex" class="row_center">
<a-col :span="5">
<div class="special-middle"><div>单价50万元以下购置设备合计</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>/</div></div>
</a-col>
<a-col :span="1">
<div class="special-middle"><div>{{ fiftyDownNumber }}</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>{{ parseFloat(fiftyDownAmount).toFixed(2) }}</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>/</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>/</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>/</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>/</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>/</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>/</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>/</div></div>
</a-col>
</a-row>
<a-row type="flex" class="row_center">
<a-col :span="5">
<div class="special-middle"><div>累计</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>/</div></div>
</a-col>
<a-col :span="1">
<div class="special-middle"><div>{{ totalNumber }}</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>{{ parseFloat(totalAmount).toFixed(2) }}</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>/</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>/</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>/</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>/</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>/</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>/</div></div>
</a-col>
<a-col :span="2">
<div class="special-middle"><div>/</div></div>
</a-col>
</a-row>
<a-row type="flex" class="item_inner">
<a-col :span="24">
<span style="color: red;">注:1.本表只填写省级财政科技资金购置的设备;涉及自筹经费购买的设备,请在资金预算编制说明中说明。<br />
2.单价50万元以下的设备不填写明细。</span>
</a-col>
</a-row>
</div>
</template>
<script>
const Equipment = {
id: "",
objectId: "",
name: "",
functionTarget: "",
specificationType: "",
quantity: 1,
totalBudget: 0.00,
useFrom: "",
buyUnit: "",
storageLocation: "",
equipmentType: "",
manufacturer: "",
sharedScope: "",
unitPrice: 0.00,
};
export default {
name: "EquipmentInfo",
data() {
return {
fiftyUpNumber: 0,
fiftyUpAmount: 0.00,
fiftyDownNumber: 0,
fiftyDownAmount: 0.00,
totalNumber: 0,
totalAmount: 0.00,
};
},
props: {
equipments: {
type: Array,
default: () => {
return [];
},
},
},
created () {
},
methods: {
calNumberAmount() {
this.fiftyUpAmount = 0.00
this.fiftyDownAmount = 0.00
this.fiftyUpNumber = 0
this.fiftyDownNumber = 0
this.equipments.forEach(e => {
if (e.unitPrice >= 50) {
this.fiftyUpAmount += e.unitPrice * e.quantity
this.fiftyUpNumber += e.quantity
} else {
this.fiftyDownAmount += e.unitPrice * e.quantity
this.fiftyDownNumber += e.quantity
}
})
this.totalNumber = this.fiftyUpNumber + this.fiftyDownNumber
this.totalAmount = this.fiftyUpAmount + this.fiftyDownAmount
},
outUnitPriceChange(index) {
this.equipments[index].totalBudget = this.equipments[index].unitPrice * this.equipments[index].quantity
this.calNumberAmount()
},
outNumberChange(index) {
this.equipments[index].totalBudget = this.equipments[index].unitPrice * this.equipments[index].quantity
this.calNumberAmount()
},
},
};
</script>
\ No newline at end of file
<template>
<div>
<a-row type="flex" class="item_inner">
<a-row type="flex" class="row_center">
<a-col :span="6" class="bg-gray">
<div class="special-middle" style="text-align: right;">
<div>三、分年度用款计划</div>
......@@ -12,7 +12,7 @@
</div>
</a-col>
</a-row>
<a-row type="flex" class="item_inner">
<a-row type="flex" class="row_center">
<a-col :span="6" class="bg-gray">
<div class="special-middle" style="text-align: right;">
<div>年度</div>
......@@ -50,7 +50,7 @@
</a-col>
</a-row>
<a-row v-for="(item, index) in fundPlan" :key="index" type="flex" class="item_inner">
<a-row v-for="(item, index) in fundPlan" :key="index" type="flex" class="row_center">
<a-col :span="6" style="text-align: right;">
<div class="special-middle">{{ item.fundName }}</div>
</a-col>
......
<template>
<div>
<a-row type="flex" class="item_inner">
<a-row type="flex" class="row_center">
<a-col :span="6" class="bg-gray">
<div class="special-middle" style="text-align: right;">
<div>三、分年度用款计划</div>
......@@ -12,7 +12,7 @@
</div>
</a-col>
</a-row>
<a-row type="flex" class="item_inner">
<a-row type="flex" class="row_center">
<a-col :span="6" class="bg-gray">
<div class="special-middle" style="text-align: right;">
<div>年度</div>
......@@ -50,7 +50,7 @@
</a-col>
</a-row>
<a-row v-for="(item, index) in fundPlan" :key="index" type="flex" class="item_inner">
<a-row v-for="(item, index) in fundPlan" :key="index" type="flex" class="row_center">
<a-col :span="6" style="text-align: right;">
<div class="special-middle">{{ item.fundName }}</div>
</a-col>
......
......@@ -602,6 +602,8 @@
<fund-plan-edit :fundPlan.sync="formData.fundPlan"/>
<!-- 设备费-购置设备预算明细表 -->
<equipments-edit :equipments.sync="formData.equipments"/>
<!-- 设备费-购置设备预算明细表 -->
<unit-payment-edit :unitPayment.sync="formData.unitPayment"/>
<!-- 项目课题设置 -->
<project-sub-edit :projectSubList.sync="formData.projectSubList" />
......@@ -625,6 +627,7 @@ import cooperativeUnits from '@/views/report/project/components/cooperativeUnits
import budgetEdit from '@/views/report/project/components/budgetEdit'
import fundPlanEdit from '@/views/report/project/components/fundPlanEdit'
import equipmentsEdit from '@/views/report/project/components/equipmentsEdit.vue'
import unitPaymentEdit from '@/views/report/project/components/unitPaymentEdit.vue'
import projectSubEdit from '@/views/report/project/components/projectSubEdit'
import managementRuleEdit from '@/views/report/project/components/managementRuleEdit'
import fileEdit from '@/views/report/project/components/fileEdit'
......@@ -635,13 +638,13 @@ const ManagementRule = { policyName: null, releaseDate: null, documentNumber: nu
const ProjectSub = { projName: null, undertakingUnit: null, address: null, director: null, totalBudget: null, govBudget: null, selfBudget: null, cooperativeUnits: null, fileId: null, downloadId: null, fileName: null, downloadUrl: null }
const Cooperative = { id: null, unitName: null, unitCountry: null, unitAddress: null, organizationCode: null, projectWork: null }
const Members = { name: null, sex: null, birthday: null, certificateType: null, certId: null, nation: null, country: null, workUnit: null, title: null, degree: null, email: null, mobile: null, telephone: null, fax: null, projWork: null, forMonths: null, spec: null }
const Equipments = { name: null, specificationType: null, quantity: null, totalBudget: null, useFrom: null }
const Equipment = { id: "", objectId: "", name: "", functionTarget: "", specificationType: "", quantity: 1, totalBudget: 0.00, useFrom: "", buyUnit: "", storageLocation: "", equipmentType: "", manufacturer: "", sharedScope: "", unitPrice: 0.00, }
const File = { fileName: '', downloadUrl: '', fileExplain: '', downloadId: '' }
export default {
name: 'projectEdit',
components: {
paraMultiSelect, paraSelect, baseSelect, projectMemberEdit, cooperativeUnits, budgetEdit, fundPlanEdit, equipmentsEdit, projectSubEdit, managementRuleEdit, fileEdit
paraMultiSelect, paraSelect, baseSelect, projectMemberEdit, cooperativeUnits, budgetEdit, fundPlanEdit, equipmentsEdit, unitPaymentEdit, projectSubEdit, managementRuleEdit, fileEdit
},
props: {
value: {
......@@ -793,8 +796,10 @@ export default {
this.formData.cooperativeUnits = [{ ...Cooperative }]
if (!!!this.formData.members || this.formData.members.length == 0)
this.formData.members = [{ ...Members }]
if (!!!this.formData.equipments || this.formData.equipments.length == 0)
this.formData.equipments = [{ ...Equipments }]
if (!!!this.formData.equipments || !this.formData.equipments.length || this.formData.equipments.length == 0)
this.formData.equipments = []
if (!!!this.formData.unitPayment || !this.formData.unitPayment.length || this.formData.unitPayment.length == 0)
this.formData.unitPayment = []
if (!!!!this.formData.fileList || !this.formData.fileList.length || this.formData.fileList.length == 0) {
this.formData.fileList = []
}
......
<template>
<div>
<a-row>
<a-col :span="24">
<div class="tb-title">
<span>科技计划项目承担单位研究资金支出预算明细表<strong>(金额单位:万元)</strong></span>
</div>
</a-col>
</a-row>
<a-row type="flex" class="row_center">
<a-col :span="2" class="bg-gray">
<div class="special-middle">
<div>序号</div>
</div>
</a-col>
<a-col :span="3" class="bg-gray">
<div class="special-middle">
<div>单位名称</div>
</div>
</a-col>
<a-col :span="2" class="bg-gray">
<div class="special-middle">
<div>单位国别</div>
</div>
</a-col>
<a-col :span="2" class="bg-gray">
<div class="special-middle">
<div>统一社会信用代码</div>
</div>
</a-col>
<a-col :span="2" class="bg-gray">
<div class="special-middle">
<div>单位类型</div>
</div>
</a-col>
<a-col :span="4" class="bg-gray">
<div class="special-middle">
<div>任务分工</div>
</div>
</a-col>
<a-col :span="2" class="bg-gray">
<div class="special-middle">
<div>研究任务负责人</div>
</div>
</a-col>
<a-col :span="1" class="bg-gray">
<div class="special-middle">
<div>合计</div>
</div>
</a-col>
<a-col :span="4" class="bg-gray">
<div style="height: 30px;">
<div>省级财政资金</div>
</div>
<div style="padding-bottom: 5px;">
<div class="special-middle" style="float:left;width: 50%;height: 20px;">
<div>小计</div>
</div>
<div class="special-middle" style="float:right;width: 50%;height: 20px;">
<div>其中:间接费用</div>
</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 unitPayment" :key="'unitPayment' + index" type="flex" class="row_center">
<a-col :span="2">
<div class="special-middle"><a-button icon="close" type="primary" shape="circle" size="small" @click="deleteUnitPayment(item)"></a-button>&nbsp;{{ index + 1 }}</div>
</a-col>
<a-col :span="3">
<a-form-model-item :prop="'unitPayment.' + index + '.unitName'" :rules="{required: true, message: '*', trigger: 'blur',}">
<a-input v-model="item.unitName" :maxLength="100" style="width: 90%;" />
</a-form-model-item>
</a-col>
<a-col :span="2">
<a-form-model-item :prop="'unitPayment.' + index + '.countryName'" :rules="{required: true, message: '*', trigger: 'blur',}">
<a-input v-model="item.countryName" :maxLength="100" style="width: 90%;" />
</a-form-model-item>
</a-col>
<a-col :span="2">
<a-form-model-item :prop="'unitPayment.' + index + '.socialCode'" :rules="{required: true, message: '*', trigger: 'blur',}">
<a-input v-model="item.socialCode" :maxLength="50" style="width: 90%;" />
</a-form-model-item>
</a-col>
<a-col :span="2">
<a-form-model-item :prop="'unitPayment.' + index + '.unitRole'" :rules="{required: true, message: '*', trigger: 'blur',}">
<a-input v-model="item.unitRole" :maxLength="100" style="width: 90%;" />
</a-form-model-item>
</a-col>
<a-col :span="4">
<a-form-model-item :prop="'unitPayment.' + index + '.taskDivision'" :rules="{required: true, message: '*', trigger: 'blur',}">
<a-input v-model="item.taskDivision" :maxLength="300" style="width: 90%;" />
</a-form-model-item>
</a-col>
<a-col :span="2">
<a-form-model-item :prop="'unitPayment.' + index + '.taskLeader'" :rules="{required: true, message: '*', trigger: 'blur',}">
<a-input v-model="item.taskLeader" :maxLength="60" style="width: 90%;" />
</a-form-model-item>
</a-col>
<a-col :span="1">
<div class="special-middle">
<div>{{ parseFloat(item.totalAmount).toFixed(2) }}</div>
</div>
</a-col>
<a-col :span="2">
<a-form-model-item :prop="'unitPayment.' + index + '.fundAmount'" :rules="{required: true, message: '*', trigger: 'blur',}">
<a-input-number v-model="item.fundAmount" @change="outAmountChange(index)" :min="0" :step="0.01" style="width: 90%" />
</a-form-model-item>
</a-col>
<a-col :span="2">
<a-form-model-item :prop="'unitPayment.' + index + '.indirectFee'" :rules="{required: true, message: '*', trigger: 'blur',}">
<a-input-number v-model="item.indirectFee" @change="outFundAmountChange(index)" :min="0" :step="0.01" style="width: 90%" />
</a-form-model-item>
</a-col>
<a-col :span="2">
<a-form-model-item :prop="'unitPayment.' + index + '.selfAmount'" :rules="{required: true, message: '*', trigger: 'blur',}">
<a-input-number v-model="item.selfAmount" @change="outAmountChange(index)" :min="0" :step="0.01" style="width: 90%" />
</a-form-model-item>
</a-col>
</a-row>
<a-row type="flex" class="row_center">
<a-col :span="17">
<div class="special-middle">累计</div>
</a-col>
<a-col :span="1"><div class="special-middle">{{ parseFloat(TtotalAmount).toFixed(2) }}</div></a-col>
<a-col :span="2"><div class="special-middle">{{ parseFloat(TfundAmount).toFixed(2) }}</div></a-col>
<a-col :span="2"><div class="special-middle">{{ parseFloat(TindirectFee).toFixed(2) }}</div></a-col>
<a-col :span="2"><div class="special-middle">{{ parseFloat(TselfAmount).toFixed(2) }}</div></a-col>
</a-row>
<a-row type="flex">
<a-col :span="24" style="text-align: center">
<div class="special-middle">
<a-button type="dashed" style="width: 20%" @click="addArrey()">
<a-icon type="plus" /> 添加 <span style="color:red;margin-left:10px"></span>
</a-button>
</div>
</a-col>
</a-row>
<a-row type="flex" class="item_inner">
<a-col :span="24">
<span style="color: red;">注:1.单位类型为项目承担单位、项目参加单位。<br />
2.任务分工的描述应简洁,不超过300字。</span>
</a-col>
</a-row>
</div>
</template>
<script>
const Payment = {
id: "",
objectId: "",
unitName: "",
countryName: "",
socialCode: "",
unitRole: null,
taskDivision: "",
taskLeader: "",
totalAmount: 0.00,
indirectFee: 0.00,
fundAmount: 0.00,
selfAmount: 0.00,
}
export default {
name: "UnitPaymentEdit",
props: {
unitPayment: {
type: Array,
default: () => {
return [{ ...Payment }];
},
},
},
data() {
return {
TtotalAmount: 0.00,
TindirectFee: 0.00,
TfundAmount: 0.00,
TselfAmount: 0.00,
};
},
methods: {
addArrey() {
this.unitPayment.push(Object.assign({ ...Payment }))
},
deleteUnitPayment(item) {
let index = this.unitPayment.indexOf(item)
if (index !== -1) {
this.unitPayment.splice(index, 1)
}
},
outAmountChange(index) {
this.unitPayment[index].totalAmount = this.unitPayment[index].fundAmount + this.unitPayment[index].selfAmount
this.calTotalAmount()
},
outFundAmountChange(index) {
if (this.unitPayment[index].indirectFee > this.unitPayment[index].fundAmount) {
this.$message.error("间接费用不能超过小计!")
this.unitPayment[index].indirectFee = 0.00
}
this.calTotalAmount()
},
calTotalAmount() {
this.TfundAmount = 0.00
this.TindirectFee = 0.00
this.TselfAmount = 0.00
this.TtotalAmount = 0.00
this.unitPayment.forEach(e => {
this.TfundAmount += e.fundAmount
this.TindirectFee += e.indirectFee
this.TselfAmount += e.selfAmount
this.TtotalAmount += e.totalAmount
})
}
},
};
</script>
\ No newline at end of file
<template>
<div>
<a-row>
<a-col :span="24">
<div class="tb-title">
<span>科技计划项目承担单位研究资金支出预算明细表<strong>(金额单位:万元)</strong></span>
</div>
</a-col>
</a-row>
<a-row type="flex" class="row_center">
<a-col :span="2" class="bg-gray">
<div class="special-middle">
<div>序号</div>
</div>
</a-col>
<a-col :span="3" class="bg-gray">
<div class="special-middle">
<div>单位名称</div>
</div>
</a-col>
<a-col :span="2" class="bg-gray">
<div class="special-middle">
<div>单位国别</div>
</div>
</a-col>
<a-col :span="2" class="bg-gray">
<div class="special-middle">
<div>统一社会信用代码</div>
</div>
</a-col>
<a-col :span="2" class="bg-gray">
<div class="special-middle">
<div>单位类型</div>
</div>
</a-col>
<a-col :span="4" class="bg-gray">
<div class="special-middle">
<div>任务分工</div>
</div>
</a-col>
<a-col :span="2" class="bg-gray">
<div class="special-middle">
<div>研究任务负责人</div>
</div>
</a-col>
<a-col :span="1" class="bg-gray">
<div class="special-middle">
<div>合计</div>
</div>
</a-col>
<a-col :span="4" class="bg-gray">
<div style="height: 30px;">
<div>省级财政资金</div>
</div>
<div style="padding-bottom: 5px;">
<div class="special-middle" style="float:left;width: 50%;height: 20px;">
<div>小计</div>
</div>
<div class="special-middle" style="float:right;width: 50%;height: 20px;">
<div>其中:间接费用</div>
</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 unitPayment" :key="'unitPayment' + index" type="flex" class="row_center">
<a-col :span="2">
<div class="special-middle">{{ index + 1 }}</div>
</a-col>
<a-col :span="3">
<div class="special-middle">{{ item.unitName }}</div>
</a-col>
<a-col :span="2">
<div class="special-middle">{{ item.countryName }}</div>
</a-col>
<a-col :span="2">
<div class="special-middle">{{ item.socialCode }}</div>
</a-col>
<a-col :span="2">
<div class="special-middle">{{ item.unitRole }}</div>
</a-col>
<a-col :span="4">
<div class="special-middle">{{ item.taskDivision }}</div>
</a-col>
<a-col :span="2">
<div class="special-middle">{{ item.taskLeader }}</div>
</a-col>
<a-col :span="1">
<div class="special-middle">
<div>{{ parseFloat(item.totalAmount).toFixed(2) }}</div>
</div>
</a-col>
<a-col :span="2">
<div class="special-middle">
<div>{{ parseFloat(item.fundAmount).toFixed(2) }}</div>
</div>
</a-col>
<a-col :span="2">
<div class="special-middle">
<div>{{ parseFloat(item.indirectFee).toFixed(2) }}</div>
</div>
</a-col>
<a-col :span="2">
<div class="special-middle">
<div>{{ parseFloat(item.selfAmount).toFixed(2) }}</div>
</div>
</a-col>
</a-row>
<a-row type="flex" class="row_center">
<a-col :span="17">
<div class="special-middle">累计</div>
</a-col>
<a-col :span="1"><div class="special-middle">{{ parseFloat(TtotalAmount).toFixed(2) }}</div></a-col>
<a-col :span="2"><div class="special-middle">{{ parseFloat(TfundAmount).toFixed(2) }}</div></a-col>
<a-col :span="2"><div class="special-middle">{{ parseFloat(TindirectFee).toFixed(2) }}</div></a-col>
<a-col :span="2"><div class="special-middle">{{ parseFloat(TselfAmount).toFixed(2) }}</div></a-col>
</a-row>
<a-row type="flex" class="item_inner">
<a-col :span="24">
<span style="color: red;">注:1.单位类型为项目承担单位、项目参加单位。<br />
2.任务分工的描述应简洁,不超过300字。</span>
</a-col>
</a-row>
</div>
</template>
<script>
const Payment = {
id: "",
objectId: "",
unitName: "",
countryName: "",
socialCode: "",
unitRole: null,
taskDivision: "",
taskLeader: "",
totalAmount: 0.00,
indirectFee: 0.00,
fundAmount: 0.00,
selfAmount: 0.00,
}
export default {
name: "UnitPaymentInfo",
props: {
unitPayment: {
type: Array,
default: () => {
return [];
},
},
},
data() {
return {
TtotalAmount: 0.00,
TindirectFee: 0.00,
TfundAmount: 0.00,
TselfAmount: 0.00,
};
},
methods: {
outAmountChange(index) {
this.unitPayment[index].totalAmount = this.unitPayment[index].fundAmount + this.unitPayment[index].selfAmount
this.calTotalAmount()
},
outFundAmountChange(index) {
if (this.unitPayment[index].indirectFee > this.unitPayment[index].fundAmount) {
this.$message.error("间接费用不能超过小计!")
this.unitPayment[index].indirectFee = 0.00
}
this.calTotalAmount()
},
calTotalAmount() {
this.TfundAmount = 0.00
this.TindirectFee = 0.00
this.TselfAmount = 0.00
this.TtotalAmount = 0.00
this.unitPayment.forEach(e => {
this.TfundAmount += e.fundAmount
this.TindirectFee += e.indirectFee
this.TselfAmount += e.selfAmount
this.TtotalAmount += e.totalAmount
})
}
},
};
</script>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment