fix: sourceEditPlanId 不再用模板ID冒充plan_id,改由后端兜底关联 #1475

Merged
auto-approve-bot merged 1 commits from fix/source-edit-plan-id-fallback into develop 2026-08-24 10:24:54 +08:00
2 changed files with 7 additions and 7 deletions
@@ -84,8 +84,9 @@ export interface GenerateFormState {
/**
* 传给 Worker 的 source_edit_plan_id。
* 优先使用 URL 中的 edit_plan_idURL 没有时回退为 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_idURL 优先,否则回退到 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<string[]>([])
@@ -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
? {