Commit 636fba53 authored by jiaxu.yan's avatar jiaxu.yan

feat: 项目详情

parent 48d2a013
...@@ -11,28 +11,28 @@ ...@@ -11,28 +11,28 @@
</div> </div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { BasicTable, useTable } from '@/components/Table'; import { BasicTable, useTable } from '@/components/Table';
import { getBasicColumns, getTreeTableData } from './tableData'; import { getBasicColumns, getTreeTableData } from './tableData';
const [register, { expandAll, collapseAll, expandRows, collapseRows }] = useTable({ const [register, { expandAll, collapseAll, expandRows, collapseRows }] = useTable({
title: '树形表格', title: '树形表格',
isTreeTable: true, isTreeTable: true,
accordion: true, // 手风琴效果 accordion: true, // 手风琴效果
rowSelection: { rowSelection: {
type: 'checkbox', type: 'checkbox',
getCheckboxProps(record: Recordable) { getCheckboxProps(record: Recordable) {
// Demo: 第一行(id为0)的选择框禁用 // Demo: 第一行(id为0)的选择框禁用
if (record.id === '0') { if (record.id === '0') {
return { disabled: true }; return { disabled: true };
} else { } else {
return { disabled: false }; return { disabled: false };
} }
},
}, },
}, titleHelpMessage: '树形组件不能和序列号列同时存在',
titleHelpMessage: '树形组件不能和序列号列同时存在', columns: getBasicColumns(),
columns: getBasicColumns(), dataSource: getTreeTableData(),
dataSource: getTreeTableData(), rowKey: 'id',
rowKey: 'id', showSelectionBar: true, // 显示多选状态栏
showSelectionBar: true, // 显示多选状态栏 });
});
</script> </script>
...@@ -185,6 +185,9 @@ export const formSchema: FormSchema[] = [ ...@@ -185,6 +185,9 @@ export const formSchema: FormSchema[] = [
label: '预计控制价', label: '预计控制价',
required: true, required: true,
component: 'Input', component: 'Input',
componentProps: {
addonAfter: '万元',
},
colProps: { span: 7, offset: 1 }, colProps: { span: 7, offset: 1 },
}, },
{ {
......
...@@ -635,27 +635,27 @@ export const formSchema2: FormSchema[] = [ ...@@ -635,27 +635,27 @@ export const formSchema2: FormSchema[] = [
}, },
colProps: { span: 7, offset: 1 }, colProps: { span: 7, offset: 1 },
}, },
{ // {
field: 'planNum', // field: 'planNum',
label: '2024年计划产值', // label: '2024年计划产值',
required: true, // required: true,
component: 'Input', // component: 'Input',
componentProps: { // componentProps: {
readonly: true, // readonly: true,
style: { border: 'none' }, // style: { border: 'none' },
}, // },
colProps: { span: 7, offset: 1 }, // colProps: { span: 7, offset: 1 },
}, // },
{ // {
field: 'actualOutputValue', // field: 'actualOutputValue',
label: ' 2024年实际产值', // label: ' 2024年实际产值',
required: true, // required: true,
component: 'Input', // component: 'Input',
componentProps: { // componentProps: {
addonAfter: '万元', // addonAfter: '万元',
}, // },
colProps: { span: 7, offset: 1 }, // colProps: { span: 7, offset: 1 },
}, // },
{ {
field: 'planFunds', field: 'planFunds',
label: ' 2024年计划资金', label: ' 2024年计划资金',
......
...@@ -184,56 +184,71 @@ export const performanceColumns: BasicColumn[] = [ ...@@ -184,56 +184,71 @@ export const performanceColumns: BasicColumn[] = [
dataIndex: 'constructionMode', dataIndex: 'constructionMode',
width: 180, width: 180,
}, },
{
title: '资金来源',
dataIndex: 'constructionMode',
width: 180,
},
{ {
title: '项目类型', title: '项目类型',
dataIndex: 'projectType', dataIndex: 'projectType',
width: 180, width: 180,
}, },
{ {
title: '年实际产值合计', title: '总投资',
dataIndex: 'totalInvestment',
width: 180,
},
{
title: '该年之前总投资额(不含该年)',
dataIndex: 'totalInvestment',
width: 180,
},
{
title: '该年计划投资额',
dataIndex: 'totalInvestment',
width: 180,
},
{
title: '该年实际完成投资额',
dataIndex: 'outputValue', dataIndex: 'outputValue',
width: 180, width: 180,
}, },
{ {
title: '年实付资金合计', title: '该年计划资金',
dataIndex: 'payment', dataIndex: 'payment',
width: 180, width: 180,
}, },
{ {
title: '项目数量', title: '建设性质',
dataIndex: 'totalProject', dataIndex: 'totalProject',
width: 180, width: 180,
}, },
{ {
title: '公司名称', title: '开工竣工时间',
dataIndex: 'company', dataIndex: 'company',
width: 180, width: 180,
}, },
{ {
title: '最新更新人', title: '该年底形象进度',
dataIndex: 'updateBy', dataIndex: 'updateBy',
width: 180, width: 180,
}, },
{ {
title: '最新更新时间', title: '实施主体',
dataIndex: 'updateTime', dataIndex: 'updateTime',
width: 180, width: 180,
}, },
{ {
title: '审核状态', title: '项目主管部门',
dataIndex: 'completionResult', dataIndex: 'completionResult',
width: 180, width: 180,
}, },
{ {
title: '审核人', title: '备注',
dataIndex: 'auditingBy', dataIndex: 'auditingBy',
width: 180, width: 180,
}, },
{
title: '审核时间',
dataIndex: 'auditingTime',
width: 180,
},
]; ];
export const annualPlanColumns: BasicColumn[] = [ export const annualPlanColumns: BasicColumn[] = [
{ {
...@@ -243,123 +258,218 @@ export const annualPlanColumns: BasicColumn[] = [ ...@@ -243,123 +258,218 @@ export const annualPlanColumns: BasicColumn[] = [
scopedSlots: { customRender: 'bodyCell' }, // 对应模板中的具名插槽 scopedSlots: { customRender: 'bodyCell' }, // 对应模板中的具名插槽
}, },
{ {
title: '年度', title: '填报周期',
dataIndex: 'year', dataIndex: 'filingCycle',
width: 200, width: 200,
}, },
// {
// title: '类型',
// dataIndex: 'type',
// width: 180,
// },
{ {
title: '年计划投资', title: '公司名称',
dataIndex: 'planInvestment', dataIndex: 'projectName',
width: 180, width: 180,
}, },
{ {
title: '年资金计划额合计', title: '项目名称',
dataIndex: 'totalPlan', dataIndex: 'projectName',
width: 180, width: 180,
}, },
{ {
title: '年资金缺口合计', title: '建设地点',
dataIndex: 'gapTotal', dataIndex: 'constructionSite',
width: 180, width: 180,
}, },
{ {
title: '公司名称', title: '立项总投资',
dataIndex: 'companyName', dataIndex: 'totalInvestment',
width: 180, width: 180,
}, },
{ {
title: '最新更新人', title: '年资金计划额合计',
dataIndex: 'updateBy', dataIndex: 'totalplan',
width: 180, width: 180,
}, },
{ {
title: '最新更新时间', title: '政府拨款合计',
dataIndex: 'updateTime', dataIndex: 'updateTime',
width: 180, width: 180,
}, },
{ {
title: '审核状态', title: '专项拨款合计',
dataIndex: 'reviewStatus', dataIndex: 'reviewStatus',
width: 180, width: 180,
}, },
{ {
title: '审核人', title: '银行融资合计',
dataIndex: 'revieweUser', dataIndex: 'revieweUser',
width: 180, width: 180,
}, },
{ {
title: '审核时间', title: '自有资金合计',
dataIndex: 'reviewTime', dataIndex: 'reviewTime',
width: 180, width: 180,
}, },
];
export const monthlyPlanColumns: BasicColumn[] = [
{ {
title: '序号', title: '当年资金缺口',
dataIndex: 'serialNumber', // 这个dataIndex仅作为标识,不对应实际数据字段 dataIndex: 'reviewTime',
width: 50, // 可以自定义宽度 width: 180,
scopedSlots: { customRender: 'bodyCell' }, // 对应模板中的具名插槽
}, },
{ {
title: '月份', title: '建设性质',
dataIndex: 'monthYear', dataIndex: 'reviewTime',
width: 200, width: 180,
}, },
// {
// title: '类型',
// dataIndex: 'implementingEntity',
// width: 180,
// },
{ {
title: '合同额总计', title: '开竣工时间',
dataIndex: 'totalcontractamount', dataIndex: 'reviewTime',
width: 180, width: 180,
}, },
{ {
title: '资金缺口总计', title: '当年底预计形象进度',
dataIndex: 'totalfundgap', dataIndex: 'reviewTime',
width: 180, width: 180,
}, },
{ {
title: '年资金缺口', title: '项目主管部门',
dataIndex: 'totalfundgapyear', dataIndex: 'reviewTime',
width: 180, width: 180,
}, },
{ {
title: '公司名称', title: '备注',
dataIndex: 'companyName', dataIndex: 'reviewTime',
width: 180, width: 180,
}, },
];
export const monthlyPlanColumns: BasicColumn[] = [
{ {
title: '最新更新人', title: '',
dataIndex: 'createBy', dataIndex: '',
width: 180, children: [
{
title: '序号',
dataIndex: 'serialNumber', // 这个dataIndex仅作为标识,不对应实际数据字段
width: 50, // 可以自定义宽度
scopedSlots: { customRender: 'bodyCell' }, // 对应模板中的具名插槽
},
{
title: '填报周期',
dataIndex: 'projectName',
width: 200,
},
{
title: '公司名称',
dataIndex: 'projectName',
width: 180,
},
{
title: '项目名称',
dataIndex: 'projectName',
width: 180,
},
{
title: '收款单位',
dataIndex: 'projectName',
width: 180,
},
{
title: '合同额',
dataIndex: 'projectName',
width: 180,
},
],
}, },
{ {
title: '最新更新时间', title: '产值完成情况',
dataIndex: 'createTime', dataIndex: '',
width: 180, children: [
{
title: '上月实际完成值',
dataIndex: 'projectName',
width: 180,
},
{
title: '累计完成值',
dataIndex: 'projectName',
width: 180,
},
{
title: '本月计划完成值',
dataIndex: 'projectName',
width: 180,
},
{
title: '上月计划数',
dataIndex: 'projectName',
width: 180,
},
],
}, },
{ {
title: '审核状态', title: '资金支付情况',
dataIndex: 'revieweStatus', dataIndex: '',
width: 180, children: [
{
title: '上月实付数',
dataIndex: 'projectName',
width: 180,
},
{
title: '累计支付数',
dataIndex: 'projectName',
width: 180,
},
{
title: '本月计划数',
dataIndex: 'projectName',
width: 180,
},
],
}, },
{ {
title: '审核人', title: '资金来源',
dataIndex: 'revieweUser', dataIndex: '',
width: 180, children: [
{
title: '专项债拨款',
dataIndex: 'projectName',
width: 180,
},
{
title: '政府拨款',
dataIndex: 'projectName',
width: 180,
},
{
title: '银行融资',
dataIndex: 'projectName',
width: 180,
},
{
title: '自有资金',
dataIndex: 'projectName',
width: 180,
},
],
}, },
{ {
title: '审核时间', title: '',
dataIndex: 'reviewTime', dataIndex: '',
width: 180, children: [
{
title: '资金缺口',
dataIndex: 'projectName',
width: 180,
},
{
title: '支付等级',
dataIndex: 'projectName',
width: 180,
},
{
title: '备注',
dataIndex: 'projectName',
width: 180,
},
],
}, },
]; ];
export const completedColumns: BasicColumn[] = [ export const completedColumns: BasicColumn[] = [
...@@ -370,17 +480,32 @@ export const completedColumns: BasicColumn[] = [ ...@@ -370,17 +480,32 @@ export const completedColumns: BasicColumn[] = [
scopedSlots: { customRender: 'bodyCell' }, // 对应模板中的具名插槽 scopedSlots: { customRender: 'bodyCell' }, // 对应模板中的具名插槽
}, },
{ {
title: '年度', title: '填报周期',
dataIndex: 'filingCycle', dataIndex: 'projectName',
width: 200, width: 200,
}, },
{ {
title: '类型', title: '公司名称',
dataIndex: 'projectName',
width: 180,
},
{
title: '项目名称',
dataIndex: 'projectName',
width: 180,
},
{
title: '建设地点',
dataIndex: 'projectName',
width: 180,
},
{
title: '立项总投资合计',
dataIndex: 'planType', dataIndex: 'planType',
width: 180, width: 180,
}, },
{ {
title: '合同额合计', title: '上一年底前累计实付额',
dataIndex: 'contractAmount', dataIndex: 'contractAmount',
width: 180, width: 180,
}, },
...@@ -390,45 +515,40 @@ export const completedColumns: BasicColumn[] = [ ...@@ -390,45 +515,40 @@ export const completedColumns: BasicColumn[] = [
width: 180, width: 180,
}, },
{ {
title: '竣工结算额合计', title: '政府拨款合计',
dataIndex: 'completionSettlement', dataIndex: 'completionSettlement',
width: 180, width: 180,
}, },
{ {
title: '年资金缺口合计', title: '专项拨款合计',
dataIndex: 'fundingGap', dataIndex: 'fundingGap',
width: 180, width: 180,
}, },
{ {
title: '公司名称', title: '银行融资合计',
dataIndex: 'company', dataIndex: 'company',
width: 180, width: 180,
}, },
{ {
title: '最新更新人', title: '自有资金合计',
dataIndex: 'updateBy', dataIndex: 'updateBy',
width: 180, width: 180,
}, },
{ {
title: '最新更新时间', title: '当年资金缺口',
dataIndex: 'updateTime', dataIndex: 'updateTime',
width: 180, width: 180,
}, },
{ {
title: '审核状态', title: '项目主管部门',
dataIndex: 'auditResult', dataIndex: 'auditResult',
width: 180, width: 180,
}, },
{ {
title: '审核人', title: '备注',
dataIndex: 'auditingBy', dataIndex: 'auditingBy',
width: 180, width: 180,
}, },
{
title: '审核时间',
dataIndex: 'auditingTime',
width: 180,
},
]; ];
export const biddingPlanColumns = [ export const biddingPlanColumns = [
...@@ -443,30 +563,65 @@ export const biddingPlanColumns = [ ...@@ -443,30 +563,65 @@ export const biddingPlanColumns = [
width: 200, width: 200,
}, },
{ {
title: '项目数量', title: '项目名称',
sort: true,
dataIndex: 'proNumber', dataIndex: 'proNumber',
width: 180, width: 180,
}, },
{ {
title: '公司名称', title: '立项主体',
sort: true,
dataIndex: 'companyName', dataIndex: 'companyName',
width: 180, width: 180,
}, },
{ {
title: '最新更新人', title: '资金来源',
sort: true,
dataIndex: 'updateBy', dataIndex: 'updateBy',
width: 180, width: 180,
}, },
{ {
title: '审核人', title: '立项投资额(万元) ',
sort: true,
dataIndex: 'revieweUser', dataIndex: 'revieweUser',
width: 180, width: 180,
}, },
{ {
title: '审核时间', title: '招标类型',
dataIndex: 'reviewTime', dataIndex: 'reviewTime',
width: 180, width: 180,
}, },
{
title: '招标内容',
sort: true,
dataIndex: 'revieweUser',
width: 180,
},
{
title: '预计控制价(万元)',
dataIndex: 'revieweUser',
width: 180,
},
{
title: '计划工期',
dataIndex: 'revieweUser',
width: 180,
},
{
title: '招标方式',
dataIndex: 'revieweUser',
width: 180,
},
{
title: '计划招标周期',
dataIndex: 'revieweUser',
width: 180,
},
{
title: '备注',
dataIndex: 'revieweUser',
width: 180,
},
]; ];
export const biddingManagementColumns = [ export const biddingManagementColumns = [
...@@ -481,27 +636,108 @@ export const biddingManagementColumns = [ ...@@ -481,27 +636,108 @@ export const biddingManagementColumns = [
width: 200, width: 200,
}, },
{ {
title: '项目数量', title: '项目名称 ',
sort: true,
dataIndex: 'proNumber', dataIndex: 'proNumber',
width: 180, width: 180,
}, },
{ {
title: '公司名称', title: '立项投资额(万元)',
dataIndex: 'companyName', dataIndex: 'companyName',
width: 180, width: 180,
}, },
{ {
title: '最新更新人', title: '资金来源',
dataIndex: 'updateBy', dataIndex: 'updateBy',
width: 180, width: 180,
}, },
{ {
title: '审核人', title: '招标类型',
dataIndex: 'revieweUser', dataIndex: 'revieweUser',
width: 180, width: 180,
}, },
{ {
title: '审核时间', title: '招标内容',
dataIndex: 'reviewTime',
width: 180,
},
{
title: '招标控制(元)',
dataIndex: 'reviewTime',
width: 180,
},
{
title: '建设模式',
dataIndex: 'reviewTime',
width: 180,
},
{
title: '招标采购方式',
dataIndex: 'reviewTime',
width: 180,
},
{
title: '招标完成情况',
dataIndex: 'reviewTime',
width: 180,
},
{
title: '开标时间',
dataIndex: 'reviewTime',
width: 180,
},
{
title: '中标单位',
dataIndex: 'reviewTime',
width: 180,
},
{
title: '中标单位',
dataIndex: 'reviewTime',
width: 180,
},
{
title: '中标金额(元)',
dataIndex: 'winningAmount',
width: 150,
},
{
title: '中标工期',
dataIndex: 'winningDuration',
width: 150,
},
{
title: '合同签订日期',
dataIndex: 'reviewTime',
width: 180,
},
{
title: '招标信息发布渠道',
dataIndex: 'reviewTime',
width: 180,
},
{
title: '招标公告发布网址',
dataIndex: 'reviewTime',
width: 180,
},
{
title: '中标结果公示网址',
dataIndex: 'reviewTime',
width: 180,
},
{
title: '是否存在投诉举报情况',
dataIndex: 'reviewTime',
width: 180,
},
{
title: '投诉举报解决处理情况',
dataIndex: 'reviewTime',
width: 180,
},
{
title: '备注',
dataIndex: 'reviewTime', dataIndex: 'reviewTime',
width: 180, width: 180,
}, },
...@@ -513,37 +749,92 @@ export const settlementManagementColumns = [ ...@@ -513,37 +749,92 @@ export const settlementManagementColumns = [
width: 140, width: 140,
}, },
{ {
title: '项目数量', title: '立项投资额(万元',
dataIndex: 'uniqueProjectCount', dataIndex: 'uniqueProjectCount',
width: 140, width: 140,
}, },
{ {
title: '公司名称', title: '资金来源',
dataIndex: 'companyName', dataIndex: 'companyName',
width: 140, width: 140,
}, },
{ {
title: '最新更新人', title: '招标方式',
dataIndex: 'updateBy', dataIndex: 'updateBy',
width: 140, width: 140,
}, },
{ {
title: '最新更新时间', title: '合同类型',
dataIndex: 'updateTime', dataIndex: 'updateTime',
width: 140, width: 140,
}, },
{ {
title: '审核状态', title: '合同名称',
dataIndex: 'statusResult', dataIndex: 'statusResult',
width: 140, width: 140,
}, },
{ {
title: '审核人', title: '甲方单位名称',
dataIndex: 'auditor', dataIndex: 'auditor',
width: 180, width: 180,
}, },
{ {
title: '审核时间', title: '乙方单位名称',
dataIndex: 'auditTime',
width: 140,
},
{
title: '合同形式',
dataIndex: 'auditTime',
width: 140,
},
{
title: '合同签订时间',
dataIndex: 'auditTime',
width: 140,
},
{
title: '竣工时间',
dataIndex: 'auditTime',
width: 140,
},
{
title: '结算完成时间',
dataIndex: 'auditTime',
width: 140,
},
{
title: '合同金额(元)',
dataIndex: 'auditTime',
width: 140,
},
{
title: '签证、变更金额(元)',
dataIndex: 'auditTime',
width: 140,
},
{
title: '结算报送金额(元)',
dataIndex: 'auditTime',
width: 140,
},
{
title: '结算审定金额(元)',
dataIndex: 'auditTime',
width: 140,
},
{
title: '结算审核金额超合同额比例',
dataIndex: 'auditTime',
width: 140,
},
{
title: '会议纪要',
dataIndex: 'auditTime',
width: 140,
},
{
title: '备注',
dataIndex: 'auditTime', dataIndex: 'auditTime',
width: 140, width: 140,
}, },
...@@ -561,32 +852,57 @@ export const changeSignatureColumns = [ ...@@ -561,32 +852,57 @@ export const changeSignatureColumns = [
width: 180, width: 180,
}, },
{ {
title: '公司名称', title: '合同名称',
dataIndex: 'companyName', dataIndex: 'companyName',
width: 180, width: 180,
}, },
{ {
title: '最新更新人', title: '合同金额',
dataIndex: 'updateBy', dataIndex: 'updateBy',
width: 180, width: 180,
}, },
{ {
title: '最新更新时间', title: '合同累计签证、变更金额(含本次)(元)',
dataIndex: 'updateTime', dataIndex: 'updateTime',
width: 180, width: 180,
}, },
{ {
title: '审核状态', title: '累计变更签证金额占合同金额比例',
dataIndex: 'status', dataIndex: 'status',
width: 180, width: 180,
}, },
{ {
title: '审核人', title: '变更编号',
dataIndex: 'auditor', dataIndex: 'auditor',
width: 180, width: 180,
}, },
{ {
title: '审核时间', title: '变更类型',
dataIndex: 'auditTime',
width: 180,
},
{
title: '责任方',
dataIndex: 'auditTime',
width: 180,
},
{
title: '变更内容',
dataIndex: 'auditTime',
width: 180,
},
{
title: '预估变更金额(元)',
dataIndex: 'auditTime',
width: 180,
},
{
title: '预估变更金额占合同金额比例',
dataIndex: 'auditTime',
width: 180,
},
{
title: '签证编号',
dataIndex: 'auditTime', dataIndex: 'auditTime',
width: 180, width: 180,
}, },
......
...@@ -31,8 +31,25 @@ ...@@ -31,8 +31,25 @@
const [registerTable, { reload }] = useTable({ const [registerTable, { reload }] = useTable({
api: getAnnualPlanList, api: getAnnualPlanList,
columns: monthlyPlanColumns, columns: monthlyPlanColumns,
isTreeTable: true,
accordion: true, // 手风琴效果
// rowSelection: {
// type: 'checkbox',
// getCheckboxProps(record: Recordable) {
// // Demo: 第一行(id为0)的选择框禁用
// if (record.id === '0') {
// return { disabled: true };
// } else {
// return { disabled: false };
// }
// },
// },
rowKey: 'id',
showSelectionBar: true, // 显示多选状态栏
titleHelpMessage: '树形组件不能和序列号列同时存在',
formConfig: { formConfig: {
labelWidth: 120, labelWidth: 120,
schemas: searchFormSchema, schemas: searchFormSchema,
}, },
searchInfo: { searchInfo: {
......
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