diff --git a/apps/web/src/pages/generate/GeneratePage.tsx b/apps/web/src/pages/generate/GeneratePage.tsx index 36428a7e0..b130a0684 100644 --- a/apps/web/src/pages/generate/GeneratePage.tsx +++ b/apps/web/src/pages/generate/GeneratePage.tsx @@ -107,6 +107,7 @@ const GeneratePage: React.FC = () => { setPreviewCovers, selectedVariantIds, setSelectedVariantIds, + setSelectedTemplate, } = formState const isBatch = previewCount > 1 @@ -577,6 +578,8 @@ const GeneratePage: React.FC = () => { previewCovers={previewCovers} onPreviewCoversChange={setPreviewCovers} selectedVariantIds={selectedVariantIds} + selectedCoverTemplate={selectedTemplate} + onSelectedCoverTemplateChange={setSelectedTemplate} /> {/* ════ 步骤4(单视频):成片播放器 ════ */} diff --git a/apps/web/src/pages/generate/components/GenerateStepContent.tsx b/apps/web/src/pages/generate/components/GenerateStepContent.tsx index cebdbd309..8822160d8 100644 --- a/apps/web/src/pages/generate/components/GenerateStepContent.tsx +++ b/apps/web/src/pages/generate/components/GenerateStepContent.tsx @@ -89,6 +89,8 @@ export interface GenerateStepContentProps { previewCovers: string[] onPreviewCoversChange: (urls: string[]) => void selectedVariantIds?: number[] + selectedCoverTemplate?: string + onSelectedCoverTemplateChange?: (templateId: string) => void } export const GenerateStepContent: React.FC = (props) => { @@ -142,6 +144,8 @@ export const GenerateStepContent: React.FC = (props) = previewCovers, onPreviewCoversChange, selectedVariantIds, + selectedCoverTemplate, + onSelectedCoverTemplateChange, } = props switch (currentStep) { @@ -250,6 +254,8 @@ export const GenerateStepContent: React.FC = (props) = previewCovers={previewCovers} onPreviewCoversChange={onPreviewCoversChange} selectedVariantIndexes={selectedVariantIds} + selectedTemplate={selectedCoverTemplate} + onTemplateChange={onSelectedCoverTemplateChange} /> ) default: diff --git a/apps/web/src/pages/generate/components/Step6CoverSettings.tsx b/apps/web/src/pages/generate/components/Step6CoverSettings.tsx index cd447d4db..a99b38db8 100755 --- a/apps/web/src/pages/generate/components/Step6CoverSettings.tsx +++ b/apps/web/src/pages/generate/components/Step6CoverSettings.tsx @@ -98,6 +98,12 @@ const Step6CoverSettings: React.FC = (props) => { // 选中模板变化时通知父组件(用于批量生成时透传 template_id) const { onTemplateChange, selectedTemplate: parentSelectedTemplate } = props + // 父组件 selectedTemplate 变化时同步到子(例如从 Step1/Step4 切换到 Step6 时) + useEffect(() => { + if (parentSelectedTemplate && parentSelectedTemplate !== shared.selectedTemplateId) { + shared.handleSelectTemplate(parentSelectedTemplate) + } + }, [parentSelectedTemplate]) // eslint-disable-line react-hooks/exhaustive-deps useEffect(() => { if (isBatch && onTemplateChange && shared.selectedTemplateId !== parentSelectedTemplate) { onTemplateChange(shared.selectedTemplateId)