From 30e07a8939303e282bed340f2254d6df31ecb54a Mon Sep 17 00:00:00 2001 From: saas-backend Date: Tue, 22 Sep 2026 21:11:20 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E7=BB=9F=E4=B8=80=E5=AD=97?= =?UTF-8?q?=E4=BD=93=E5=B8=B8=E9=87=8F=EF=BC=8C=E6=B6=88=E9=99=A4=20genera?= =?UTF-8?q?te/constants.ts=20=E4=B8=8E=20components/title/constants.ts=20?= =?UTF-8?q?=E7=9A=84=E9=87=8D=E5=A4=8D=E5=AE=9A=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 删除 generate/constants.ts 中旧的 FONT_OPTIONS(string[])、FONT_FAMILY_MAP 和 getFontFamily - 改为 re-export getFontFamily from @/components/title/constants(单一数据源) - 更新 TitleMiniPreview/TitlePresetsGrid/FrontendPreviewPlayer 的 import 路径 - 修复 font-family CSS 值不一致问题(优设标题黑顺序、抖音美好体Bold/Sans、思源黑体Heavy Noto变体) --- .../components/FrontendPreviewPlayer.tsx | 2 +- .../components/title/TitleMiniPreview.tsx | 2 +- .../components/title/TitlePresetsGrid.tsx | 2 +- apps/web/src/pages/generate/constants.ts | 35 ++----------------- 4 files changed, 5 insertions(+), 36 deletions(-) diff --git a/apps/web/src/pages/generate/components/FrontendPreviewPlayer.tsx b/apps/web/src/pages/generate/components/FrontendPreviewPlayer.tsx index c0ca9a43a..238a68f01 100644 --- a/apps/web/src/pages/generate/components/FrontendPreviewPlayer.tsx +++ b/apps/web/src/pages/generate/components/FrontendPreviewPlayer.tsx @@ -17,7 +17,7 @@ import type { EditPlanClip } from "@/api/template-editor" import { useSegmentScheduler, type PlaybackSegment } from "../hooks/useSegmentScheduler" import { usePreviewAudio } from "../hooks/usePreviewAudio" import { PreviewControls } from "./PreviewControls" -import { getFontFamily } from "../constants" +import { getFontFamily } from "@/components/title/constants" interface FrontendPreviewPlayerProps { assets: AssetItem[] diff --git a/apps/web/src/pages/generate/components/title/TitleMiniPreview.tsx b/apps/web/src/pages/generate/components/title/TitleMiniPreview.tsx index f89c22744..9611c0743 100644 --- a/apps/web/src/pages/generate/components/title/TitleMiniPreview.tsx +++ b/apps/web/src/pages/generate/components/title/TitleMiniPreview.tsx @@ -12,7 +12,7 @@ */ import React, { useEffect, useRef } from "react" import type { TitleSettings } from "../../types" -import { getFontFamily } from "../../constants" +import { getFontFamily } from "@/components/title/constants" interface Props { settings: TitleSettings diff --git a/apps/web/src/pages/generate/components/title/TitlePresetsGrid.tsx b/apps/web/src/pages/generate/components/title/TitlePresetsGrid.tsx index 6293a8d94..07c1efa57 100644 --- a/apps/web/src/pages/generate/components/title/TitlePresetsGrid.tsx +++ b/apps/web/src/pages/generate/components/title/TitlePresetsGrid.tsx @@ -4,7 +4,7 @@ * 避免 -webkit-text-stroke 在 Chromium 中吞掉填充色的问题 */ import React from "react" -import { getFontFamily } from "../../constants" +import { getFontFamily } from "@/components/title/constants" interface TitlePresetItem { key: string diff --git a/apps/web/src/pages/generate/constants.ts b/apps/web/src/pages/generate/constants.ts index a35004088..31dd48b48 100644 --- a/apps/web/src/pages/generate/constants.ts +++ b/apps/web/src/pages/generate/constants.ts @@ -54,39 +54,8 @@ export const POSITION_OPTIONS = [ { value: "custom", label: "自定义" }, ] -/* ── 标题字体选项(#2001:新增 4 款爆款字体) ── */ -export const FONT_OPTIONS = [ - "优设标题黑", - "阿里普惠体Bold", - "抖音美好体", - "思源黑体Heavy", - "思源黑体", - "思源宋体", - "苹方", - "微软雅黑", - "楷体", -] - -/* ── 标题字体 CSS font-family 映射(中文显示名 → 浏览器可识别的字体栈) ── */ -export const FONT_FAMILY_MAP: Record = { - 优设标题黑: - '"YouSheBiaoTiHei","YouShe Title Black","Source Han Sans SC Heavy","Noto Sans SC","PingFang SC",sans-serif', - 阿里普惠体Bold: - '"Alibaba PuHuiTi Bold","Alibaba PuHuiTi","Source Han Sans SC","PingFang SC",sans-serif', - 抖音美好体: '"Douyin Sans","DouyinSansBold","Source Han Sans SC Heavy","PingFang SC",sans-serif', - 思源黑体Heavy: - '"Source Han Sans SC Heavy","Noto Sans SC Heavy","Source Han Sans CN Heavy","PingFang SC",sans-serif', - 思源黑体: '"Source Han Sans SC", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif', - 思源宋体: '"Source Han Serif SC", "Noto Serif SC", "Songti SC", "SimSun", serif', - 苹方: '"PingFang SC", -apple-system, "Helvetica Neue", sans-serif', - PingFang: '"PingFang SC", -apple-system, "Helvetica Neue", sans-serif', - 微软雅黑: '"Microsoft YaHei", "PingFang SC", sans-serif', - 楷体: '"KaiTi", "STKaiti", "DFKai-SB", serif', -} - -export function getFontFamily(font: string): string { - return FONT_FAMILY_MAP[font] || FONT_FAMILY_MAP["思源黑体"] -} +/* ── 标题字体:统一使用公共层定义(#2001) ── */ +export { getFontFamily } from "@/components/title/constants" /* ── 标题样式预设 ── */ export const TITLE_PRESETS = [