From b742b80abe561a11610a94c7fc449532b4b5e047 Mon Sep 17 00:00:00 2001 From: yuance <182865460@qq.com> Date: Fri, 16 Jan 2026 17:42:52 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E9=A1=B9=E7=9B=AE=E7=AE=A1=E7=90=86-?= =?UTF-8?q?=E5=AE=A1=E8=AE=A1=E5=86=85=E5=AE=B9-=E5=8F=96=E8=AF=81?= =?UTF-8?q?=E5=8D=95=E7=94=9F=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/ai/auditContent/index.ts | 36 ++++ .../components/components/EvidenceModal.vue | 70 ++++++-- .../pwlProject/components/reportContent.vue | 162 ++++++++++++++++++ 3 files changed, 255 insertions(+), 13 deletions(-) diff --git a/src/api/ai/auditContent/index.ts b/src/api/ai/auditContent/index.ts index d65078b..2b36fb8 100644 --- a/src/api/ai/auditContent/index.ts +++ b/src/api/ai/auditContent/index.ts @@ -741,4 +741,40 @@ export async function exportDefault1Table(data: { return res.data; } return Promise.reject(new Error('导出失败')); +} + +/** + * 生成取证单 + */ +export async function generateAuditEvidence(data: { + // 基础信息 + caseIndex?: string; // 案引号 + projectName?: string; // 项目名称 + auditedTarget?: string; // 被审计单位或个人 + auditMatter?: string; // 审计事项 + summaryTitle?: string; // 标题 + auditRecord?: string; // 审计记录 + auditFinding?: string; // 审计发现 + evidenceBasis?: string; // 定性依据 + handling?: string; // 处理 + suggestion?: string; // 建议 + attachment?: string; // 附件 + auditors?: string; // 审计人员 + compileDate?: string; // 编制日期 + providerOpinion?: string; // 证据提供单位意见 + providerDate?: string; // 证据提供日期 + attachmentPages?: string; // 附件页数 + feedbackDeadline?: string; // 反馈期限 + + history?: string; // 历史内容(用于工作流生成) +}) { + const res = await request.post>( + MODULES_API_URL + '/ai/auditEvidence/generate', + data + ); + + if (res.data.code === 0) { + return res.data; + } + return Promise.reject(new Error(res.data.message)); } \ No newline at end of file diff --git a/src/views/pwl/pwlProject/components/components/EvidenceModal.vue b/src/views/pwl/pwlProject/components/components/EvidenceModal.vue index 4d486ad..8519b06 100644 --- a/src/views/pwl/pwlProject/components/components/EvidenceModal.vue +++ b/src/views/pwl/pwlProject/components/components/EvidenceModal.vue @@ -295,28 +295,61 @@ const form = reactive(defaultForm()); const applyBaseInfo = () => { + console.log('applyBaseInfo called, selectedRows:', props.selectedRows); + console.log('baseInfo:', props.baseInfo); + + // 重置表单为默认值 Object.assign(form, defaultForm(), props.baseInfo || {}); + // 如果有传入的selectedRows,直接使用第一个对象的数据(生成取证单时通常只有一个) if (props.selectedRows && props.selectedRows.length > 0) { - const firstRow: any = props.selectedRows[0] || {}; - form.summaryTitle = - firstRow.title || firstRow.name || form.summaryTitle || ''; - form.auditRecord = - firstRow.auditRecord || - firstRow.auditContent || - firstRow.content || - form.auditRecord || - ''; - form.auditFinding = - firstRow.auditFinding || firstRow.testResult || form.auditFinding || ''; + const evidenceData = props.selectedRows[0] || {}; + console.log('Evidence data from selectedRows:', evidenceData); + + // 直接将后端返回的数据映射到表单字段 + form.caseIndex = evidenceData.caseIndex || form.caseIndex || ''; + form.projectName = evidenceData.projectName || form.projectName || ''; + form.auditedTarget = evidenceData.auditedTarget || form.auditedTarget || ''; + form.auditMatter = evidenceData.auditMatter || form.auditMatter || ''; + form.summaryTitle = evidenceData.summaryTitle || form.summaryTitle || ''; + form.auditRecord = evidenceData.auditRecord || form.auditRecord || ''; + form.auditFinding = evidenceData.auditFinding || form.auditFinding || ''; + form.evidenceBasis = evidenceData.evidenceBasis || form.evidenceBasis || ''; + form.handling = evidenceData.handling || form.handling || ''; + form.suggestion = evidenceData.suggestion || form.suggestion || ''; + form.auditors = evidenceData.auditors || form.auditors || ''; + form.compileDate = evidenceData.compileDate || form.compileDate || ''; + form.providerOpinion = evidenceData.providerOpinion || form.providerOpinion || ''; + form.providerDate = evidenceData.providerDate || form.providerDate || ''; + form.attachmentPages = evidenceData.attachmentPages || form.attachmentPages || ''; + form.feedbackDeadline = evidenceData.feedbackDeadline || form.feedbackDeadline || ''; + + // 处理attachment字段(数组转字符串) + if (evidenceData.attachment) { + form.attachment = Array.isArray(evidenceData.attachment) + ? evidenceData.attachment.join('\n') + : evidenceData.attachment; + } + + // 特殊处理:如果evidenceData中有title字段,也填充到summaryTitle + if (evidenceData.title && !form.summaryTitle) { + form.summaryTitle = evidenceData.title; + } } + // 设置默认编制日期(如果没有的话) if (!form.compileDate) { const now = new Date(); form.compileDate = `${now.getFullYear()}-${String( - now.getMonth() + 1 + now.getMonth() + 1 ).padStart(2, '0')}-${String(now.getDate()).padStart(2, '0')}`; } + + // 确保页码字段有值 + if (!form.pageIndex) form.pageIndex = '1'; + if (!form.pageTotal) form.pageTotal = '1'; + + console.log('Form data after applyBaseInfo:', JSON.stringify(form, null, 2)); }; watch( @@ -329,7 +362,18 @@ ); watch( - () => props.baseInfo, + () => props.baseInfo, + () => { + if (props.visible) { + applyBaseInfo(); + } + }, + { deep: true } + ); + + + watch( + () => props.selectedRows, () => { if (props.visible) { applyBaseInfo(); diff --git a/src/views/pwl/pwlProject/components/reportContent.vue b/src/views/pwl/pwlProject/components/reportContent.vue index e79ecf2..ec757cd 100644 --- a/src/views/pwl/pwlProject/components/reportContent.vue +++ b/src/views/pwl/pwlProject/components/reportContent.vue @@ -218,6 +218,13 @@ 导出取证单 + + 生成取证单 +