feat:项目管理-取证单-附件优化

This commit is contained in:
2026-02-02 11:08:18 +08:00
parent 79db6cbcc9
commit f2c726c5c6
2 changed files with 28 additions and 6 deletions

View File

@@ -309,6 +309,25 @@
const form = reactive(defaultForm()); const form = reactive(defaultForm());
const formatAttachmentText = (caseIndex: string, raw: string) => {
const safeCaseIndex = (caseIndex || '').trim();
const items = (raw || '')
.split(/[\n,]/)
.map((s) => s.trim())
.filter(Boolean);
if (!safeCaseIndex || items.length === 0) return raw || '';
const escaped = safeCaseIndex.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
const prefixRe = new RegExp(`^${escaped}-\\d{3}-`);
return items
.map((name, idx) => {
const no = String(idx + 1).padStart(3, '0');
const baseName = name.replace(prefixRe, '');
return `${safeCaseIndex}-${no}-${baseName}`;
})
.join('\n');
};
const applyBaseInfo = () => { const applyBaseInfo = () => {
console.log('applyBaseInfo called, selectedRows:', props.selectedRows); console.log('applyBaseInfo called, selectedRows:', props.selectedRows);
console.log('baseInfo:', props.baseInfo); console.log('baseInfo:', props.baseInfo);
@@ -322,7 +341,8 @@
console.log('Evidence data from selectedRows:', evidenceData); console.log('Evidence data from selectedRows:', evidenceData);
// 直接将后端返回的数据映射到表单字段 // 直接将后端返回的数据映射到表单字段
form.caseIndex = evidenceData.caseIndex || form.caseIndex || ''; form.caseIndex =
props.baseInfo?.caseIndex || props.project?.caseIndex || form.caseIndex || '';
form.projectName = evidenceData.projectName || form.projectName || ''; form.projectName = evidenceData.projectName || form.projectName || '';
form.auditedTarget = form.auditedTarget =
evidenceData.auditedTarget || form.auditedTarget || ''; evidenceData.auditedTarget || form.auditedTarget || '';
@@ -353,9 +373,10 @@
form.feedbackDeadline = 'XX年XX月XX日'; form.feedbackDeadline = 'XX年XX月XX日';
// 处理attachment字段数组转字符串 // 处理attachment字段数组转字符串
if (evidenceData.attachment) { if (evidenceData.attachment) {
form.attachment = Array.isArray(evidenceData.attachment) const rawAttachment = Array.isArray(evidenceData.attachment)
? evidenceData.attachment.join('\n') ? evidenceData.attachment.join('\n')
: evidenceData.attachment; : evidenceData.attachment;
form.attachment = formatAttachmentText(form.caseIndex, rawAttachment);
} }
// 特殊处理如果evidenceData中有title字段也填充到summaryTitle // 特殊处理如果evidenceData中有title字段也填充到summaryTitle

View File

@@ -768,7 +768,7 @@
const section: any = navigationItems.value[sectionIndex]; const section: any = navigationItems.value[sectionIndex];
const tableInfo = getTableInfo(sectionIndex); const tableInfo = getTableInfo(sectionIndex);
evidenceBaseInfo.caseIndex = (form as any).code || props.data?.code || ''; evidenceBaseInfo.caseIndex = (form as any).caseIndex || props.data?.caseIndex || '';
evidenceBaseInfo.projectName = form.name || props.data?.name || ''; evidenceBaseInfo.projectName = form.name || props.data?.name || '';
evidenceBaseInfo.auditedTarget = evidenceBaseInfo.auditedTarget =
(form as any).nickname || (props.data as any)?.nickname || ''; (form as any).nickname || (props.data as any)?.nickname || '';
@@ -975,9 +975,10 @@
} }
// 调用generateAuditEvidence API // 调用generateAuditEvidence API
const projectCaseIndex = (form as any).caseIndex || props.data?.caseIndex || '';
const requestData = { const requestData = {
// 基础信息 // 基础信息
caseIndex: (form as any).code || props.data?.code || '', caseIndex: projectCaseIndex,
projectName: form.name || props.data?.name || '', projectName: form.name || props.data?.name || '',
auditedTarget: (form as any).nickname || (props.data as any)?.nickname || '', auditedTarget: (form as any).nickname || (props.data as any)?.nickname || '',
auditMatter: currentTable.title || section?.title || section?.name || '', auditMatter: currentTable.title || section?.title || section?.name || '',
@@ -1031,7 +1032,7 @@
console.log('生成的取证单数据:', apiResult.data); console.log('生成的取证单数据:', apiResult.data);
// 自动打开取证单预览弹窗并填充数据 // 自动打开取证单预览弹窗并填充数据
evidenceBaseInfo.caseIndex = apiResult.data.caseIndex || (form as any).code || props.data?.code || ''; evidenceBaseInfo.caseIndex = projectCaseIndex;
evidenceBaseInfo.projectName = apiResult.data.projectName || form.name || props.data?.name || ''; evidenceBaseInfo.projectName = apiResult.data.projectName || form.name || props.data?.name || '';
evidenceBaseInfo.auditedTarget = apiResult.data.auditedTarget || (form as any).nickname || (props.data as any)?.nickname || ''; evidenceBaseInfo.auditedTarget = apiResult.data.auditedTarget || (form as any).nickname || (props.data as any)?.nickname || '';
evidenceBaseInfo.auditMatter = apiResult.data.auditMatter || currentTable.title || section?.title || section?.name || ''; evidenceBaseInfo.auditMatter = apiResult.data.auditMatter || currentTable.title || section?.title || section?.name || '';
@@ -1039,7 +1040,7 @@
// 将生成的取证单数据作为选中的行数据传入,包含所有字段 // 将生成的取证单数据作为选中的行数据传入,包含所有字段
const evidenceData = { const evidenceData = {
// 基础信息字段 // 基础信息字段
caseIndex: apiResult.data.caseIndex || '', caseIndex: projectCaseIndex,
projectName: apiResult.data.projectName || '', projectName: apiResult.data.projectName || '',
auditedTarget: apiResult.data.auditedTarget || '', auditedTarget: apiResult.data.auditedTarget || '',
auditMatter: apiResult.data.auditMatter || '', auditMatter: apiResult.data.auditMatter || '',