Commit 4ef853eb authored by 高滢's avatar 高滢

feat(资金计划): 资金来源表格六列

parent b3dd25b9
......@@ -59,3 +59,6 @@ ul {
.tableshow {
display: revert;
}
.vben-editable-cell__action{
display: none;
}
......@@ -219,8 +219,6 @@ import {onMounted, ref, unref} from 'vue';
dataIndex: 'totalOwnFunds',
width: 180,
},
],
},
{
title: '资金缺口',
dataIndex: 'fundingGap',
......@@ -228,6 +226,8 @@ import {onMounted, ref, unref} from 'vue';
},
],
},
],
},
];
} else {
return [
......@@ -295,8 +295,6 @@ import {onMounted, ref, unref} from 'vue';
dataIndex: 'totalOwnFunds',
width: 180,
},
],
},
{
title: '资金缺口',
dataIndex: 'fundingGap',
......@@ -304,6 +302,8 @@ import {onMounted, ref, unref} from 'vue';
},
],
},
],
},
];
}
}
......
......@@ -31,29 +31,10 @@
</CollapseContainer>
<BasicForm :loading="loading" @register="item.Form[0]" />
<div style="display: flex; align-items: flex-start">
<div style="width: 500px; height: 400px">
<div style="width: 100%; height: 400px">
<div style="padding: 0 30px">
<span style="color: #ed6f6f">{{ '* ' }}</span>
<span>{{ item.year + '资金来源' }}</span>
</div>
<BasicTable
@register="item.table"
@edit-change="
(e) => {
beforeEditSubmit(item, index);
}
"
:beforeEditSubmit="
(e) => {
beforeEditSubmit(item, index);
}
"
/>
</div>
<div style="width: 800px; height: 400px">
<div style="padding: 0 30px">
<span style="color: #ed6f6f">{{ '* ' }}</span>
<span>{{ item.year + '年资金计划额' }}</span>
<span>{{ item.year + '年资金来源' }}</span>
</div>
<BasicTable
@register="item.tableTwo"
......@@ -67,6 +48,7 @@
beforeEditSubmitTwo(item, index);
}
"
:scroll="{ x: 2000, y:400}"
/>
</div>
</div>
......@@ -91,9 +73,7 @@
import { router } from '@/router';
import { BasicTable, useTable } from '@/components/Table';
import {
getBasicColumns,
getBasicColumnsTwo,
basicColumnsDisabled,
basicColumnsTwoDisabled,
} from './tableData';
import { ref, nextTick, onMounted, unref, reactive } from 'vue';
......@@ -117,24 +97,6 @@
const engineerId = ref('');
const routeId = ref('');
let show = ref<Recordable[]>([]);
function beforeEditSubmit(item, index) {
let { getDataSource } = item.table[1];
const res = getDataSource();
const totalNo = res.reduce((prev, next) => {
prev += Number(next.value);
return prev;
}, 0);
tabsFormSchema[index].table[1].setProps({
summaryData: [
{
quarter: '合计',
value: totalNo,
},
],
});
return true;
}
function beforeEditSubmitTwo(item, index) {
let { getDataSource } = item.tableTwo[1];
const res = getDataSource();
......@@ -154,6 +116,14 @@
prev += Number(next.governmentGrant);
return prev;
}, 0);
const totalNofiv = res.reduce((prev, next) => {
prev += Number(next.fundingGap);
return prev;
}, 0);
const totalNosix = res.reduce((prev, next) => {
prev += Number(next.totalValue);
return prev;
}, 0);
tabsFormSchema[index].tableTwo[1].setProps({
summaryData: [
{
......@@ -162,6 +132,8 @@
bankFinancing: totalNoTwo,
ownFunds: totalNoThree,
governmentGrant: totalNofour,
fundingGap: totalNofiv,
totalValue: totalNosix,
},
],
});
......@@ -203,21 +175,25 @@
let res = await getItem({ id });
console.log('后端返回的数据', res);
for (let i = 0; i < res.length; i++) {
const amountList = res[i].amountList;
let num = 0;
for (let a = 0; a < amountList.length; a++) {
num += Number(amountList[a].value);
}
// const amountList = res[i].amountList;
// let num = 0;
// for (let a = 0; a < amountList.length; a++) {
// num += Number(amountList[a].value);
// }
const sourceList = res[i].sourceList;
let specialBondNum = 0;
let bankFinancingNum = 0;
let ownFundsNum = 0;
let governmentGrantNum = 0;
let totalValueNum = 0;
let fundingGapNum = 0;
for (let a = 0; a < sourceList.length; a++) {
specialBondNum += Number(sourceList[a].specialBond);
bankFinancingNum += Number(sourceList[a].bankFinancing);
ownFundsNum += Number(sourceList[a].ownFunds);
governmentGrantNum += Number(sourceList[a].governmentGrant);
totalValueNum += Number(sourceList[a].totalValue);
fundingGapNum += Number(sourceList[a].fundingGap);
}
const item = {
proId: res[i].proId,
......@@ -231,16 +207,6 @@
baseFormConfig,
) as FormProps,
),
table: useTable({
title: '表尾行合计示例',
columns: disabled.value == 1 ? basicColumnsDisabled() : getBasicColumns(),
showSummary: true,
summaryData: [{ quarter: '合计', value: num }],
maxHeight: 180,
maxWidth: 200,
showIndexColumn: false,
pagination: false,
}),
tableTwo: useTable({
title: '表尾行合计示例',
columns: disabled.value == 1 ? basicColumnsTwoDisabled() : getBasicColumnsTwo(),
......@@ -252,6 +218,8 @@
bankFinancing: bankFinancingNum,
ownFunds: ownFundsNum,
governmentGrant: governmentGrantNum,
totalValue: totalValueNum,
fundingGap: fundingGapNum,
},
],
maxHeight: 180,
......@@ -267,7 +235,7 @@
if (formData.value.subList === undefined) {
formData.value.subList = [];
}
setTable(item.table[1], info.amountList);
// setTable(item.table[1], info.amountList);
setTable(item.tableTwo[1], info.sourceList);
nextTick(() => {
setFieldsValue(info);
......@@ -286,7 +254,7 @@
proId: string;
name: string;
show?: boolean;
sumData?: any;
// sumData?: any;
sumDatatwo?: any;
forceRender?: boolean;
Form: UseFormReturnType;
......@@ -336,12 +304,6 @@
baseFormConfig,
) as FormProps,
),
sumData: [
{
quarter: '合计',
value: 0,
},
],
sumDataTwo: [
{
quarter: '合计',
......@@ -349,21 +311,13 @@
bankFinancing: 0,
ownFunds: 0,
governmentGrant: 0,
fundingGap: 0,
totalValue: 0,
},
],
table: [],
// table: [],
tableTwo: [],
};
item.table = useTable({
title: '表尾行合计示例',
columns: getBasicColumns(),
showSummary: true,
summaryData: item.sumData,
maxHeight: 180,
maxWidth: 200,
showIndexColumn: false,
pagination: false,
});
item.tableTwo = useTable({
title: '表尾行合计示例',
columns: getBasicColumnsTwo(),
......@@ -377,24 +331,6 @@
const { setFieldsValue } = item.Form[1];
tabsFormSchema.push(item);
setTable(item.table[1], [
{
quarter: '一季度',
value: '',
},
{
quarter: '二季度',
value: '',
},
{
quarter: '三季度',
value: '',
},
{
quarter: '四季度',
value: '',
},
]);
setTable(item.tableTwo[1], [
{
quarter: '一季度',
......@@ -402,6 +338,8 @@
bankFinancing: '',
ownFunds: '',
governmentGrant: '',
fundingGap: '',
totalValue: '',
},
{
quarter: '二季度',
......@@ -409,6 +347,8 @@
bankFinancing: '',
ownFunds: '',
governmentGrant: '',
fundingGap: '',
totalValue: '',
},
{
quarter: '三季度',
......@@ -416,6 +356,8 @@
bankFinancing: '',
ownFunds: '',
governmentGrant: '',
fundingGap: '',
totalValue: '',
},
{
quarter: '四季度',
......@@ -423,6 +365,8 @@
bankFinancing: '',
ownFunds: '',
governmentGrant: '',
fundingGap: '',
totalValue: '',
},
]);
nextTick(() => {
......@@ -435,6 +379,7 @@
projectOverview: info.projectOverview,
fundingSource: info.fundingSource,
implementingEntity: info.implementingEntity,
projectInvestment: info.projectInvestment,
});
});
// }
......@@ -474,7 +419,6 @@
{ field: 'constructionNature', required: false },
{ field: 'time', required: false },
{ field: 'imageProgress', required: false },
{ field: 'fundingGap', required: false },
]);
} else {
updateSchema([
......@@ -491,7 +435,6 @@
{ field: 'constructionNature', required: planType.value === '计划投资项目' },
{ field: 'time', required: planType.value === '计划投资项目' },
{ field: 'imageProgress', required: planType.value === '计划投资项目' },
{ field: 'fundingGap', required: true },
]);
}
}
......@@ -504,25 +447,23 @@
let item = tabsFormSchema[i];
if (item.show) {
const { validate, getFieldsValue } = item.Form[1];
let data = getData(item.table[1]);
// let data = getData(item.table[1]);
let dataTwo = getData(item.tableTwo[1]);
await validate();
let res = getFieldsValue();
console.log('表单的数据', res);
for (let a = 0; a < data.length; a++) {
data[a].value = Number(data[a].value);
}
for (let j = 0; j < dataTwo.length; j++) {
dataTwo[j].governmentGrant = Number(dataTwo[j].governmentGrant);
dataTwo[j].specialBond = Number(dataTwo[j].specialBond);
dataTwo[j].bankFinancing = Number(dataTwo[j].bankFinancing);
dataTwo[j].ownFunds = Number(dataTwo[j].ownFunds);
dataTwo[j].totalValue = Number(dataTwo[j].totalValue);
dataTwo[j].fundingGap = Number(dataTwo[j].fundingGap);
}
var obj = {
startTime: res.time ? res.time[0] : '',
endTime: res.time ? res.time[1] : '',
proId: item.proId,
amountList: data,
sourceList: dataTwo,
};
obj = deepMerge(obj, res);
......@@ -541,11 +482,7 @@
addItemData.businessType = '已竣工验收项目陈欠资金计划';
await addItemApi(addItemData);
} else if (!isUpdate.value) {
const res = await addItem(unref(formData));
addItemData.operateType = operateType.add;
addItemData.businessId = res;
addItemData.businessType = '已竣工验收项目陈欠资金计划';
await addItemApi(addItemData);
await addItem(unref(formData));
}
loading.value = true;
if (isSubmit === '1') {
......
import { FormProps, FormSchema, BasicColumn } from '@/components/Table';
import { FormSchema, BasicColumn } from '@/components/Table';
export function getBasicColumns(): BasicColumn[] {
return [
......@@ -10,9 +10,7 @@ export function getBasicColumns(): BasicColumn[] {
{
title: '数值(万元)',
dataIndex: 'value',
width: 150,
// sorter: true,
// defaultHidden: true,
width: 80,
edit: true,
editable: true,
editRule: true,
......@@ -31,9 +29,7 @@ export function basicColumnsDisabled(): BasicColumn[] {
{
title: '数值(万元)',
dataIndex: 'value',
width: 150,
// sorter: true,
// defaultHidden: true,
width: 80,
editComponent: 'InputNumber',
},
];
......@@ -44,52 +40,69 @@ export function getBasicColumnsTwo(): BasicColumn[] {
{
title: '季度',
dataIndex: 'quarter',
width: 80,
width: 50,
fixed: 'left',
},
{
title: '政府拨款',
title: '政府拨款(万元)',
dataIndex: 'governmentGrant',
width: 150,
// sorter: true,
// defaultHidden: true,
width: 50,
edit: true,
editable: true,
editRule: true,
editComponent: 'InputNumber',
},
{
title: '专项债拨款',
title: '专项债拨款(万元)',
dataIndex: 'specialBond',
width: 150,
// sorter: true,
// defaultHidden: true,
width: 50,
edit: true,
editable: true,
editRule: true,
editComponent: 'InputNumber',
},
{
title: '银行融资',
title: '银行融资(万元)',
dataIndex: 'bankFinancing',
width: 150,
// sorter: true,
// defaultHidden: true,
width: 50,
edit: true,
editable: true,
editRule: true,
editComponent: 'InputNumber',
},
{
title: '自有资金',
title: '自有资金(万元)',
dataIndex: 'ownFunds',
width: 150,
// sorter: true,
// defaultHidden: true,
width: 50,
edit: true,
editable: true,
editRule: true,
editComponent: 'InputNumber',
},
{
title: '资金缺口(万元)',
dataIndex: 'fundingGap',
width: 50,
edit: true,
editable: true,
editRule: true,
editComponent: 'InputNumber',
},
{
title: '资金计划额(万元)',
dataIndex: 'totalValue',
width: 50,
customRender: ({ record }) => {
// 这里可以根据record的其他字段计算值
record.totalValue =
record.ownFunds +
record.specialBond +
record.bankFinancing +
record.governmentGrant +
record.fundingGap; // 计算新值
return record.totalValue; // 返回计算后的值
},
},
];
}
......@@ -104,32 +117,36 @@ export function basicColumnsTwoDisabled(): BasicColumn[] {
title: '政府拨款',
dataIndex: 'governmentGrant',
width: 150,
// sorter: true,
// defaultHidden: true,
editComponent: 'InputNumber',
},
{
title: '专项债拨款',
dataIndex: 'specialBond',
width: 150,
// sorter: true,
// defaultHidden: true,
editComponent: 'InputNumber',
},
{
title: '银行融资',
dataIndex: 'bankFinancing',
width: 150,
// sorter: true,
// defaultHidden: true,
editComponent: 'InputNumber',
},
{
title: '自有资金',
dataIndex: 'ownFunds',
width: 150,
// sorter: true,
// defaultHidden: true,
editComponent: 'InputNumber',
},
{
title: '资金缺口(万元)',
dataIndex: 'fundingGap',
width: 50,
editComponent: 'InputNumber',
},
{
title: '资金计划额(万元)',
dataIndex: 'totalValue',
width: 50,
editComponent: 'InputNumber',
},
];
......@@ -262,6 +279,21 @@ export function formSchema(year, planType): FormSchema[] {
},
colProps: { span: 7, offset: 1 },
},
{
field: 'fundSource',
label: '资金来源',
required: true,
component: 'Select',
componentProps: {
options: [
{ label: '政府投资项目', value: '政府投资项目' },
{ label: '公司投资项目', value: '公司投资项目' },
{ label: '专项债项目', value: '专项债项目' },
{ label: '承建项目', value: '承建项目' },
],
},
colProps: { span: 7, offset: 1 },
},
{
field: 'time',
component: 'RangePicker',
......@@ -303,17 +335,17 @@ export function formSchema(year, planType): FormSchema[] {
component: 'Input',
colProps: { span: 7, offset: 1 },
},
{
field: 'fundingGap',
label: '2024资金缺口:',
labelWidth: 200,
required: true,
component: 'InputNumber',
componentProps: {
addonAfter: '万元',
},
colProps: { span: 7, offset: 1 },
},
// {
// field: 'fundingGap',
// label: '2024资金缺口:',
// labelWidth: 200,
// required: true,
// component: 'InputNumber',
// componentProps: {
// addonAfter: '万元',
// },
// colProps: { span: 7, offset: 1 },
// },
{
label: '备注',
field: 'remarks',
......
......@@ -49,6 +49,16 @@ export let formSchema: FormSchema[] = [
style: { width: '100%' },
},
},
{
field: 'projectInvestment',
label: '立项总投资',
required: true,
component: 'InputNumber',
componentProps: {
addonAfter: '万元',
},
labelWidth: '140px',
},
{
field: 'isReserveProject',
label: '储备项目',
......
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