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 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 = () => {
console.log('applyBaseInfo called, selectedRows:', props.selectedRows);
console.log('baseInfo:', props.baseInfo);
@@ -322,7 +341,8 @@
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.auditedTarget =
evidenceData.auditedTarget || form.auditedTarget || '';
@@ -353,9 +373,10 @@
form.feedbackDeadline = 'XX年XX月XX日';
// 处理attachment字段数组转字符串
if (evidenceData.attachment) {
form.attachment = Array.isArray(evidenceData.attachment)
const rawAttachment = Array.isArray(evidenceData.attachment)
? evidenceData.attachment.join('\n')
: evidenceData.attachment;
form.attachment = formatAttachmentText(form.caseIndex, rawAttachment);
}
// 特殊处理如果evidenceData中有title字段也填充到summaryTitle

View File

@@ -768,7 +768,7 @@
const section: any = navigationItems.value[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.auditedTarget =
(form as any).nickname || (props.data as any)?.nickname || '';
@@ -975,9 +975,10 @@
}
// 调用generateAuditEvidence API
const projectCaseIndex = (form as any).caseIndex || props.data?.caseIndex || '';
const requestData = {
// 基础信息
caseIndex: (form as any).code || props.data?.code || '',
caseIndex: projectCaseIndex,
projectName: form.name || props.data?.name || '',
auditedTarget: (form as any).nickname || (props.data as any)?.nickname || '',
auditMatter: currentTable.title || section?.title || section?.name || '',
@@ -1031,7 +1032,7 @@
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.auditedTarget = apiResult.data.auditedTarget || (form as any).nickname || (props.data as any)?.nickname || '';
evidenceBaseInfo.auditMatter = apiResult.data.auditMatter || currentTable.title || section?.title || section?.name || '';
@@ -1039,7 +1040,7 @@
// 将生成的取证单数据作为选中的行数据传入,包含所有字段
const evidenceData = {
// 基础信息字段
caseIndex: apiResult.data.caseIndex || '',
caseIndex: projectCaseIndex,
projectName: apiResult.data.projectName || '',
auditedTarget: apiResult.data.auditedTarget || '',
auditMatter: apiResult.data.auditMatter || '',