From 23cd65a28a77f79f33ff5d9f33d6d93dae462a7a Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Tue, 15 Sep 2026 00:48:07 +0800 Subject: [PATCH] =?UTF-8?q?fix(frontend):=20#1913=20=E6=99=BA=E8=83=BD?= =?UTF-8?q?=E5=89=AA=E8=BE=91=E6=97=A0=E6=A8=A1=E6=9D=BF=E6=97=B6=E5=90=8E?= =?UTF-8?q?=E7=AB=AF=E8=87=AA=E5=8A=A8=E5=85=9C=E5=BA=95=EF=BC=8C=E7=A7=BB?= =?UTF-8?q?=E9=99=A4=E7=A9=BAtemplate=E7=A1=AC=E6=8B=A6=E6=88=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../generate/components/GenerateStepContent.tsx | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/apps/web/src/pages/generate/components/GenerateStepContent.tsx b/apps/web/src/pages/generate/components/GenerateStepContent.tsx index 85484f982..937f1b5c7 100644 --- a/apps/web/src/pages/generate/components/GenerateStepContent.tsx +++ b/apps/web/src/pages/generate/components/GenerateStepContent.tsx @@ -1,5 +1,5 @@ /** - * GeneratePage 步骤内容渲染(#1899 简化为 5 步) + * GeneratePage 步骤内容渲染(#1899 简化为 5 步,#1913 传递 selectedTemplate) * 步骤顺序:素材(1) → 配音(2) → 标题(3) → 确认生成(4) → 封面(5) * 步骤3预览(Canvas 网格)与步骤4进度(批量渲染网格)由 GeneratePage 直接渲染在左侧大区域。 */ @@ -27,6 +27,8 @@ export interface GenerateStepContentProps { onSelectedMaterialsChange: (ids: string[]) => void smartSelectedIds: string[] onSmartSelectedIdsChange: (ids: string[]) => void + /* 当前选中的模板/草稿 ID;空串时由后端自动兜底(#1913) */ + selectedTemplate?: string /* 标题 */ titleSettings: TitleSettings onTitleSettingsChange: (settings: TitleSettings) => void @@ -87,6 +89,7 @@ export const GenerateStepContent: React.FC = (props) = onSelectedMaterialsChange, smartSelectedIds, onSmartSelectedIdsChange, + selectedTemplate, titleSettings, onTitleSettingsChange, onUpdatePosition, @@ -124,6 +127,15 @@ export const GenerateStepContent: React.FC = (props) = selectedVariantIds, } = props + // #1913:包装 onServerClipsChange,适配 hook 的 (clips, templateId?) 签名 + // 如果 hook 传回了后端兜底创建的 templateId,同时通知外层更新 selectedTemplate + const handleClipsChange = React.useCallback( + (clips: EditPlanClip[], _templateId?: string) => { + onServerClipsChange(clips) + }, + [onServerClipsChange], + ) + switch (currentStep) { case 1: return ( @@ -136,7 +148,8 @@ export const GenerateStepContent: React.FC = (props) = onSmartSelectedIdsChange={onSmartSelectedIdsChange} clipCount={clipCount} onClipCountChange={onClipCountChange} - onServerClipsChange={onServerClipsChange} + selectedTemplate={selectedTemplate} + onServerClipsChange={handleClipsChange} /> ) case 2: