export const tableConfigs = { // 审计内容1表格配置 auditContent1: { type: 'auditContent1', title: '贯彻决策部署情况', options: [ // { title: '贯彻决策部署', value: 'default1', columns: () => import('./table1Columns').then(m => m.default1Columns) }, { title: '领导班子名单', value: 'leaderList', columns: () => import('./table1Columns').then(m => m.leaderListColumns) }, { title: '决策支出表', value: 'expense', columns: () => import('./table1Columns').then(m => m.expenseColumns) }, { title: '八项规定', value: 'eightReg', columns: () => import('./table1Columns').then(m => m.eightRegColumns) } ], // 接口映射 interfaceMap: { default1: '/api/ai/auditContent1/generateDefault1Table', leaderList: '/api/ai/auditContent1/generateLeaderListTable', expense: '/api/ai/auditContent1/generateExpenseTable', eightReg: '/api/ai/auditContent1/generateEightRegTable' } }, // 审计内容2表格配置 auditContent2: { type: 'auditContent2', title: '单位发展战略执行', options: [ { title: '单位发展战略执行', value: 'strategyAudit', columns: () => import('./table2Columns').then(m => m.strategyAuditColumns) } ], interfaceMap: { strategyAudit: '/api/ai/auditContent2/generateStrategyAuditTable' } }, // 审计内容3表格配置 auditContent3: { type: 'auditContent3', title: '重大经济决策调查', options: [ { title: '重大经济决策调查表', value: 'decisionTable', columns: () => import('./table3Columns').then(m => m.decisionTableColumns) }, { title: '三重一大', value: 'tripleOne', columns: () => import('./table3Columns').then(m => m.tripleOneColumns) } ], interfaceMap: { tripleOne: '/api/ai/auditContent3/generateTripleOneTable', decisionTable: '/api/ai/auditContent3/generateDecisionTable' } }, // 审计内容4表格配置 auditContent4: { type: 'auditContent4', title: '目标完成情况', options: [ { title: '目标责任完成情况表', value: 'target', columns: () => import('./table4Columns').then(m => m.columns0) } ], interfaceMap: { target: '/api/ai/auditContent4/generateTargetTable' } }, // 审计内容5表格配置 auditContent5: { type: 'auditContent5', title: '财务管理情况', options: [ { title: '预算管理审计', value: 'budgetManage', columns: () => import('./table5Columns').then(m => m.budgetManageColumns) }, { title: '预算执行情况审计', value: 'budgetExecution', columns: () => import('./table5Columns').then(m => m.budgetExecutionColumns) } ], interfaceMap: { budgetManage: '/api/ai/auditContent5/generateBudgetManageTable', budgetExecution: '/api/ai/auditContent5/generateBudgetExecutionTable' } }, // 审计内容6表格配置 auditContent6: { type: 'auditContent6', title: '国资管理情况', options: [ { title: '国有资产管理审计', value: 'assets', columns: () => import('./table6Columns').then(m => m.stateAssetsManageColumns) } ], interfaceMap: { assets: '/api/ai/auditContent6/generateAssetsTable' } }, auditContent7: { type: 'auditContent7', title: '重大投资情况', options: [ { title: '重大投资情况审计', value: 'investmentSituation', columns: () => import('./table7Columns').then(m => m.investmentSituationColumns) }, ], interfaceMap: { investmentSituation: '/api/ai/auditContent7/generateInvestmentSituationTable' } }, auditContent8: { type: 'auditContent8', title: '治理结构与内部控制', options: [ { title: '内部控制测试', value: 'internalControl', columns: () => import('./table8Columns').then(m => m.internalControlTestColumns) } ], interfaceMap: { internalControl: '/api/ai/auditContent8/generateInternalControlTable' } }, auditContent9: { type: 'auditContent9', title: '人员编制管理', options: [ { title: '人员编制管理审计', value: 'personnel', columns: () => import('./table9Columns').then(m => m.personnelEstablishmentColumns) } ], interfaceMap: { personnel: '/api/ai/auditContent9/generatePersonnelTable' } }, auditContent10: { type: 'auditContent10', title: '廉政情况', options: [ { title: '党风廉政建设责任制审计', value: 'partyConduct', columns: () => import('./table10Columns').then(m => m.partyConductColumns) } ], interfaceMap: { partyConduct: '/api/ai/auditContent10/generatePartyConductTable' } }, auditContent11: { type: 'auditContent11', title: '历史审计问题整改', options: [ { title: '历史审计问题整改', value: 'history', columns: () => import('./table11Columns').then(m => m.auditHistoryColumns) } ], interfaceMap: { history: '/api/ai/auditContent11/generateHistoryTable' } } }; // 获取表格配置 export function getTableConfig(sectionIndex: number) { const configKeys = Object.keys(tableConfigs); if (sectionIndex >= 0 && sectionIndex < configKeys.length) { return tableConfigs[configKeys[sectionIndex]]; } return null; } // 获取所有表格配置 export function getAllTableConfigs() { return tableConfigs; } // 通过接口名称查找表格配置 export function findTableConfigByInterface(interfaceName: string) { for (const [key, config] of Object.entries(tableConfigs)) { for (const [tableValue, tableInterface] of Object.entries(config.interfaceMap || {})) { if (tableInterface === interfaceName) { return { sectionType: key, tableValue, config }; } } } return null; } // 解析workPaperIndex字符串为对象数组 function parseWorkPaperIndex(workPaperIndex) { if (!workPaperIndex || !Array.isArray(workPaperIndex)) return []; return workPaperIndex.map(item => { if (typeof item === 'string') { const parts = item.split('||'); if (parts.length >= 3) { return { fileId: parts[0] || '', fileName: parts[1] || '', fileUrl: parts[2] || '' }; } } // 兼容旧格式 return { fileId: '', fileName: typeof item === 'string' ? item : '', fileUrl: '' }; }); } // 通用数据映射函数 export function createDataMapper(type: string) { const mappers = { default1: (data) => data.map((item, index) => ({ key: index, index: index + 1, ...item, workPaperIndex: parseWorkPaperIndex(item.workPaperIndex) })), leaderList: (data) => data.map((item, index) => ({ key: index, ...item, workPaperIndex: parseWorkPaperIndex(item.workPaperIndex) })), expense: (data) => data.map((item, index) => ({ key: index, ...item, finalStatementAmount: formatAmount(item.finalStatementAmount), initialBudgetAmount: formatAmount(item.initialBudgetAmount), workPaperIndex: parseWorkPaperIndex(item.workPaperIndex) })), eightReg: (data) => data.map((item, index) => ({ key: index, ...item, workPaperIndex: parseWorkPaperIndex(item.workPaperIndex) })), strategyAudit: (data) => data.map((item, index) => ({ key: index, index: index + 1, ...item, workPaperIndex: parseWorkPaperIndex(item.workPaperIndex) })), tripleOne: (data) => data.map((item, index) => ({ key: index, ...item, workPaperIndex: parseWorkPaperIndex(item.workPaperIndex) })), decisionTable: (data) => data.map((item, index) => ({ key: index, index: index + 1, goods: item.executionEffect?.good || item.goods || '否', normal: item.executionEffect?.normal || item.normal || '否', bad: item.executionEffect?.bad || item.bad || '否', ...item, workPaperIndex: parseWorkPaperIndex(item.workPaperIndex) })), budgetManage: (data) => data.map((item, index) => ({ key: index, index: index + 1, budgetSubject: item.budgetSubject || '-', // 指标来源部分字段映射 indicatorSource: item.indicatorSource, // 指标来源 total: formatAmount(item.indicatorSourceTotal), // 指标来源-合计 lastYearBalance: formatAmount(item.indicatorSourceLastYearBalance), // 指标来源-上年结余 initialBudget: formatAmount(item.indicatorSourceInitialBudget), // 指标来源-年初部门预算 additionalBudget: formatAmount(item.indicatorSourceAdditionalBudget), // 指标来源-追加(减)预算 // 指标运用部分字段映射 indicatorUseTotal: formatAmount(item.indicatorUseTotal), // 指标运用-合计 appropriationSubtotal: formatAmount(item.indicatorUseAppropriationSubtotal), // 指标运用-拨款小计 appropriation: formatAmount(item.indicatorUseAppropriation), // 指标运用-拨款 salaryPayment: formatAmount(item.indicatorUseSalaryPayment), // 指标运用-工资统发 govProcurement: formatAmount(item.indicatorUseGovProcurement), // 指标运用-政府采购 // 其他字段 indicatorBalance: formatAmount(item.indicatorBalance), // 指标结余 workPaperIndex: parseWorkPaperIndex(item.workPaperIndex), // 工作底稿索引 })), investmentSituation: (data) => data.map((item, index) => ({ key: index, index: index + 1, category: item.category || '未分类', auditContent: item.auditContent || item.content || '', checkEvidence: item.checkEvidence || item.evidence || '', testResult: item.testResult || '待检查', workPaperIndex: parseWorkPaperIndex(item.workPaperIndex), ...item })), // 其他类型的映射... default: (data) => data.map((item, index) => ({ key: index, index: index + 1, ...item, workPaperIndex: parseWorkPaperIndex(item.workPaperIndex) })) }; return mappers[type] || mappers.default; } // 格式化金额 function formatAmount(amount) { if (!amount) return '0.00'; if (typeof amount === 'string' && amount.includes(',')) return amount; const num = parseFloat(amount); return isNaN(num) ? '0.00' : num.toLocaleString('zh-CN', { minimumFractionDigits: 2, maximumFractionDigits: 2 }); } // 生成接口映射 export const apiMethodMap = { // 审计内容1 default1: { generate: 'generateDefault1Table', export: 'exportDefault1Table' }, leaderList: { generate: 'generateLeaderListTable', export: 'exportLeaderListTable' }, expense: { generate: 'generateExpenseTable', export: 'exportExpenseTable' }, eightReg: { generate: 'generateEightRegTable', export: 'exportEightRegTable' }, // 审计内容2 strategyAudit: { generate: 'generateStrategyAuditTable', export: 'exportStrategyAuditTable' }, // 审计内容3 tripleOne: { generate: 'generateTripleOneTable', export: 'exportTripleOneTable' }, decisionTable: { generate: 'generateDecisionTable', export: 'exportDecisionTable' }, // 审计内容4 target: { generate: 'generateTargetTable', export: 'exportTargetTable' }, // 审计内容5 budgetManage: { generate: 'generateBudgetManageTable', export: 'exportBudgetManageTable' }, budgetExecution: { generate: 'generateBudgetExecutionTable', export: 'exportBudgetExecutionTable' }, // 审计内容6 assets: { generate: 'generateAssetsTable', export: 'exportAssetsTable' }, // 审计内容7 investmentSituation: { generate: 'generateInvestmentSituationTable', export: 'exportInvestmentSituationTable' }, // 审计内容8 internalControl: { generate: 'generateInternalControlTable', export: 'exportInternalControlTable' }, // 审计内容9 personnel: { generate: 'generatePersonnelTable', export: 'exportPersonnelTable' }, // 审计内容10 partyConduct: { generate: 'generatePartyConductTable', export: 'exportPartyConductTable' }, // 审计内容11 history: { generate: 'generateHistoryTable', export: 'exportHistoryTable' }, // 默认 default: { generate: 'generateDefaultTable', export: 'exportDefaultTable' } }; export default { tableConfigs, getTableConfig, getAllTableConfigs, findTableConfigByInterface, createDataMapper, apiMethodMap };