diff --git a/components/upload/ProductPackageUploader.tsx b/components/upload/ProductPackageUploader.tsx index 6878eab..ccd10db 100644 --- a/components/upload/ProductPackageUploader.tsx +++ b/components/upload/ProductPackageUploader.tsx @@ -290,6 +290,19 @@ export function stripTrailingImageExtensions(fileName: string): string { return result; } +// 后台处理阶段的用户话术;未知阶段一律兜底中文,内部 stage 常量绝不直接上屏。 +const JOB_STAGE_LABELS: Record = { + queued: '后台排队中...', + validating: '正在校验素材信息...', + assembling: '正在合并上传文件...', + previews: '正在生成预览图...', + zips: '正在打包下载文件...', + database: '正在保存素材信息...', + cleanup: '正在清理临时文件...', + completed: '完成!', + failed: '后台处理失败', +} + function AssetThumbnail({ asset, alt, @@ -1261,7 +1274,8 @@ export default function ProductPackageUploader({ if (!mountedRef.current) return; const backendProgress = Number.isFinite(status.progress) ? Math.max(0, Math.min(100, status.progress || 0)) : 0; setProgress(90 + backendProgress * 0.1); - setProcessingStep(status.stage || (status.status === 'queued' ? '后台排队处理中...' : '后台处理中...')); + const stageLabel = status.stage ? JOB_STAGE_LABELS[status.stage] : undefined; + setProcessingStep(stageLabel || (status.status === 'queued' ? JOB_STAGE_LABELS.queued : '后台处理中...')); }, }); }