feat(cms): 品牌叙事与结构性文案全站 CMS 化并补齐信任证据阶段 0

- 品牌叙事内核(价值主张/定位/承诺/三支柱/语气)下沉 site-config,经 SiteConfigProvider 注入全站
- 新增 page-copy 内容模型承载结构性文案(章节标题/眉标/描述/CTA/空状态),覆盖首页+服务/方案/产品/案例/新闻列表页,「CMS 优先 + 硬编码兜底」不白屏
- 首页「首批客户共创计划」板块(earlyAccessTitle/CtaLabel/Status 驱动)替代单行标签,如实呈现共创/内测/授权公开三档状态
- 关于页资质区数据空时如实展示「建设中」空态
- 零编造:不虚构客户/数据/资质
This commit is contained in:
2026-08-20 09:25:12 +08:00
parent 56be17b0ba
commit 337e1e60c0
34 changed files with 848 additions and 152 deletions
+6 -1
View File
@@ -15,7 +15,7 @@ import { BackToTop } from "@/components/ui/back-to-top";
import { ClientLayout } from "@/components/layout/client-layout";
import { getPublishedItems } from "@/lib/cms/data-server";
import { SiteConfigProvider, type SiteConfig, type NavigationItem, type MegaDropdownGroup, type MegaDropdownItem } from "@/lib/site-config";
import { COMPANY_INFO } from "@/lib/constants/company";
import { COMPANY_INFO, BRAND_NARRATIVE, type BrandPillar } from "@/lib/constants/company";
import { NAVIGATION_V2, MEGA_DROPDOWN_DATA } from "@/lib/constants/navigation";
export const metadata: Metadata = {
@@ -127,6 +127,11 @@ export default async function RootLayout({
displayName: (configData?.displayName as string) || COMPANY_INFO.displayName,
slogan: (configData?.slogan as string) || COMPANY_INFO.slogan,
description: (configData?.description as string) || COMPANY_INFO.description,
valueProposition: (configData?.valueProposition as string) || BRAND_NARRATIVE.valueProposition,
positioningStatement: (configData?.positioningStatement as string) || BRAND_NARRATIVE.positioningStatement,
brandPromise: (configData?.brandPromise as string) || BRAND_NARRATIVE.brandPromise,
toneOfVoice: (configData?.toneOfVoice as string) || BRAND_NARRATIVE.toneOfVoice,
pillars: (Array.isArray(configData?.pillars) ? configData.pillars : BRAND_NARRATIVE.pillars) as BrandPillar[],
founded: (configData?.founded as string) || COMPANY_INFO.founded,
location: (configData?.location as string) || COMPANY_INFO.location,
email: (configData?.email as string) || COMPANY_INFO.email,