From 8641c0431a7d020e5c8b825f7a623301793bba1c Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Mon, 24 Aug 2026 10:11:01 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20sourceEditPlanId=20=E4=B8=8D=E5=86=8D?= =?UTF-8?q?=E7=94=A8=E6=A8=A1=E6=9D=BFID=E5=86=92=E5=85=85plan=5Fid?= =?UTF-8?q?=EF=BC=8C=E6=94=B9=E7=94=B1=E5=90=8E=E7=AB=AF=E5=85=9C=E5=BA=95?= =?UTF-8?q?=E5=85=B3=E8=81=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - useGenerateFormState: sourceEditPlanId = editPlanId || null 移除 || selectedTemplate 回退,selectedTemplate 是模板ID不是edit_plan_id - useStep6Cover: createPreview 不再传 source_edit_plan_id: selectedTemplate 后端预览/正式生成API均通过 template_id+user_id 兜底查找正确plan - 更新 JSDoc 和行内注释说明设计意图 --- .../generate/hooks/useGenerateFormState/index.ts | 13 +++++++------ apps/web/src/pages/generate/hooks/useStep6Cover.ts | 1 - 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/apps/web/src/pages/generate/hooks/useGenerateFormState/index.ts b/apps/web/src/pages/generate/hooks/useGenerateFormState/index.ts index e251cc25f..d1cffd1ff 100755 --- a/apps/web/src/pages/generate/hooks/useGenerateFormState/index.ts +++ b/apps/web/src/pages/generate/hooks/useGenerateFormState/index.ts @@ -84,8 +84,9 @@ export interface GenerateFormState { /** * 传给 Worker 的 source_edit_plan_id。 - * 优先使用 URL 中的 edit_plan_id;URL 没有时回退为 selectedTemplate(模板 ID), - * 因为 Step2 的 clips 就是用 selectedTemplate 作为 plan_id 写入的。 + * 仅使用 URL 中的 edit_plan_id(从剪辑模板编辑器跳转时携带)。 + * URL 没有时传 null,后端正式生成 API 会通过 template_id+user_id 兜底查找正确的 plan。 + * 注意:selectedTemplate 是模板 ID,不是 edit_plan_id,不能作为此值传递。 */ sourceEditPlanId: string | null @@ -107,10 +108,10 @@ export const useGenerateFormState = (): GenerateFormState => { /* ── 模板选择 ── */ const { selectedTemplate, setSelectedTemplate, userTemplates } = useTemplateSelection() - /* ── source_edit_plan_id:URL 优先,否则回退到 selectedTemplate ── */ - // selectedTemplate 是异步加载的(react-query),组件重新渲染时此值会自动更新, - // 因此最终传给 useGenerateVideo 的 sourceEditPlanId 能在模板就绪后拿到正确值。 - const sourceEditPlanId = editPlanId || selectedTemplate || null + /* ── source_edit_plan_id:仅取 URL 参数,无则 null 让后端兜底 ── */ + // selectedTemplate 是模板 ID 而非 edit_plan_id,不能混淆; + // 后端正式生成 API 会在 source_edit_plan_id 为空时通过 template_id+user_id 自动关联。 + const sourceEditPlanId = editPlanId || null /* ── 素材 ── */ const [selectedMaterials, setSelectedMaterials] = useState([]) diff --git a/apps/web/src/pages/generate/hooks/useStep6Cover.ts b/apps/web/src/pages/generate/hooks/useStep6Cover.ts index 3786e499c..f86141680 100644 --- a/apps/web/src/pages/generate/hooks/useStep6Cover.ts +++ b/apps/web/src/pages/generate/hooks/useStep6Cover.ts @@ -154,7 +154,6 @@ export function useStep6Cover({ const previewResp = await createPreview({ template_id: selectedTemplate, asset_ids: assetIds, - source_edit_plan_id: selectedTemplate, duration: duration || 30, ...(titleSettings?.title ? { -- 2.54.0