fix: sourceEditPlanId 不再用模板ID冒充plan_id,改由后端兜底关联 #1475
@@ -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<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
|
||||
? {
|
||||
|
||||
Reference in New Issue
Block a user