From 87d812e520a6ea2cf2873e679083ca1418c9b4a1 Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Sun, 27 Sep 2026 10:27:00 +0800 Subject: [PATCH] =?UTF-8?q?fix(generate):=20Step6=E5=B0=81=E9=9D=A2?= =?UTF-8?q?=E5=AE=8C=E6=88=90=E6=8C=89=E9=92=AE=E5=9C=A8awaiting=5Fcover?= =?UTF-8?q?=E9=98=B6=E6=AE=B5=E5=8F=AF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 问题:视频已生成(awaiting_cover状态)、封面操作也能正常进行(已用 currentTaskId兜底),但点「完成」按钮时被「请等待视频生成完成」拦截。 根因:handleFinish单视频分支校验 if(!finalVideo) 拦截过严。 当后端/results接口在awaiting_cover阶段暂未返回GeneratedVideo记录时, generatedVideos=[]→finalVideo=undefined,但currentTaskId已在创建任务时 保存且下面singleTaskId兜底逻辑会使用它调finalize,不应被拦截。 封面按钮自身canGenerateCover判断用的是(!!finalVideo||!!effectiveTaskId) 已经做了正确兜底,这里漏了同步。 修复:单视频分支校验改为 !finalVideo && !currentTaskId 才拦截,和 Step6CoverSettings/封面按钮的判断逻辑保持一致。批量分支保持原逻辑。 验证:tsc/eslint/prettier/vitest 620 passed。 --- apps/web/src/pages/generate/GeneratePage.tsx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/apps/web/src/pages/generate/GeneratePage.tsx b/apps/web/src/pages/generate/GeneratePage.tsx index 8cc5f4045..002eb241b 100644 --- a/apps/web/src/pages/generate/GeneratePage.tsx +++ b/apps/web/src/pages/generate/GeneratePage.tsx @@ -421,7 +421,10 @@ const GeneratePage: React.FC = () => { return } } else { - if (!finalVideo) { + // 单视频:finalVideo 可能因 /results 接口在 awaiting_cover 阶段暂未返回 + // GeneratedVideo 记录而为 undefined;此时 currentTaskId 已在创建任务时保存, + // 下面 singleTaskId 兜底逻辑会用 currentTaskId 调 finalize,不应拦截 + if (!finalVideo && !currentTaskId) { message.warning("请等待视频生成完成") return }