diff --git a/apps/web/src/pages/generate/hooks/useStep6Cover.ts b/apps/web/src/pages/generate/hooks/useStep6Cover.ts index 1b5f44ff6..60dd281bb 100644 --- a/apps/web/src/pages/generate/hooks/useStep6Cover.ts +++ b/apps/web/src/pages/generate/hooks/useStep6Cover.ts @@ -3,6 +3,7 @@ * 封装封面设置的交互逻辑,对接后端封面模板 CRUD API */ import { useCallback, useEffect, useRef, useState } from "react" +import { message } from "antd" import type { CoverConfig, CoverTemplate } from "../../editing-planner/types" import { generateCover } from "@/api/template-editor" import { @@ -66,7 +67,21 @@ export function useStep6Cover({ /** 调用后端智能封面 API,生成封面并更新预览 */ const generateAutoCover = useCallback(async () => { - if (!selectedTemplate || assetIds.length === 0 || generatingRef.current) return + if (generatingRef.current) { + message.warning("封面正在生成中,请稍候...") + return + } + + if (!selectedTemplate) { + message.error("请先选择模板") + return + } + + if (assetIds.length === 0) { + message.error("请先选择素材") + return + } + generatingRef.current = true try { const response = await generateCover(selectedTemplate, { @@ -80,9 +95,13 @@ export function useStep6Cover({ thumbnail_url: thumbnailUrl, ai_suggested_time: response.cover?.frame_time ?? null, }) + message.success("封面生成成功") + } else { + message.warning("封面生成未返回图片,请重试") } } catch (err) { console.warn("[Step6] 智能封面生成失败:", err) + message.error("封面生成失败,请稍后重试") } finally { generatingRef.current = false }