diff --git a/apps/web/src/pages/ai-avatar/components/PanelTitleConfig.tsx b/apps/web/src/pages/ai-avatar/components/PanelTitleConfig.tsx index 5411d7efa..d7e48410c 100644 --- a/apps/web/src/pages/ai-avatar/components/PanelTitleConfig.tsx +++ b/apps/web/src/pages/ai-avatar/components/PanelTitleConfig.tsx @@ -33,6 +33,14 @@ const PanelTitleConfig: React.FC = ({ titleConfig, onUpda /** TitleStylePanel 内部高亮的预设 key(面板本地状态) */ const [activePreset, setActivePreset] = useState(null) + /** 标题库选项(复用智能剪辑的标题库) */ + const [titleOptions, setTitleOptions] = useState([]) + useEffect(() => { + getTitles() + .then((items) => setTitleOptions(items.map((t) => ({ label: t.content, value: t.content })))) + .catch(() => setTitleOptions([])) + }, []) + /** AiAvatarTitleConfig → TitleSettings(补齐 aiAutoSelect / 自由坐标字段) */ const titleSettings: TitleSettings = useMemo( () => ({ @@ -66,52 +74,32 @@ const PanelTitleConfig: React.FC = ({ titleConfig, onUpda }) } - const [showTitleLibrary, setShowTitleLibrary] = useState(false) - return (
- {/* 主标题输入 */} + {/* 主标题输入 — TextArea 多行 + 标题库选择 */}
-
- onUpdate({ title: e.target.value })} + style={{ fontSize: 15 }} + /> +
+ 📚 标题库 + { if (val) onUpdate({ title: val }) }} + options={titleOptions} + maxLength={200} style={{ flex: 1 }} - type="text" - placeholder="输入视频标题(留空则不显示标题)" - value={titleConfig.title} - maxLength={30} - onChange={(e) => onUpdate({ title: e.target.value })} /> -
- {titleConfig.title && ( -
- {titleConfig.title} -
- )}
{/* 标题样式:直接复用智能剪辑 TitleStylePanel(位置/字体/字号/样式/预设) */} @@ -142,8 +130,6 @@ const PanelTitleConfig: React.FC = ({ titleConfig, onUpda 自动生成字幕
- -
) }