manual save(2026-01-22 18:52)

This commit is contained in:
SiteAgent Bot
2026-01-22 18:52:48 +08:00
parent bbd53cbba7
commit 3b8a84d0d6
11 changed files with 687 additions and 48 deletions

View File

@@ -1,48 +1,122 @@
import React, { useEffect, useState } from 'react'
import { Header } from '../components/Header'
import { Footer } from '../components/Footer'
import { PostCard } from '../components/PostCard'
import { PostCardSkeleton } from '../components/PostCardSkeleton'
import { Posts } from '../clientsdk/sdk.gen'
import { createClient } from '../clientsdk/client'
import { customQuerySerializer } from '../clientsdk/querySerializer'
import { TENANT_SLUG, TENANT_API_KEY, API_URL } from '../config'
import React from 'react'
import { SectionShell } from '../components/SectionShell'
const client = createClient({
baseUrl: API_URL,
querySerializer: customQuerySerializer,
headers: {
'X-Tenant-Slug': TENANT_SLUG,
'X-API-Key': TENANT_API_KEY,
},
})
const HeroWorldView: React.FC = () => {
return (
<SectionShell
sectionKey="HeroWorldView"
title="HeroWorldView世界观判断"
headingAs="h1"
lead="一个思想驱动型官网的开场:先定义全球化决策的世界观与判断框架。"
notes={['边界:世界观与主张,不展示产品 UI', '连接:引出决策不可控的问题']}
/>
)
}
const DecisionProblem: React.FC = () => {
return (
<SectionShell
sectionKey="DecisionProblem"
title="DecisionProblem决策不可控"
lead="说明决策在信息噪音、约束冲突与时间压力下为何不可控。"
notes={['边界:问题机制与代价', '输出:决策痛点的共同语言']}
/>
)
}
const CoreThesis: React.FC = () => {
return (
<SectionShell
sectionKey="CoreThesis"
title="CoreThesis反常识观点"
lead="用一句核心论断把读者拉到同一认知:合规与增长是同一件事的两面。"
notes={['边界:只讲主张与论证线索', '可扩展:对比式表达与关键证据']}
/>
)
}
const Methodology: React.FC = () => {
return (
<SectionShell
sectionKey="Methodology"
title="Methodology方法论来源"
lead="交代方法论来自哪些实践与验证路径,为 How 页面做铺垫。"
notes={['边界:来源与原则', '连接:跳转到 How']}
/>
)
}
const SystemOverview: React.FC = () => {
return (
<SectionShell
sectionKey="SystemOverview"
title="SystemOverview系统级解法"
lead="用系统视角解释:不是功能堆叠,而是可复用的决策-执行系统。"
notes={['边界:系统全景,不拆到模块细节', '连接:跳转到 System']}
/>
)
}
const DiscoveryIntro: React.FC = () => {
return (
<SectionShell
sectionKey="DiscoveryIntro"
title="DiscoveryIntro决策雷达"
lead="Discovery 作为持续的决策输入:思想、框架与证据的入口。"
notes={['边界:内容入口,不做博客化归档', '连接:跳转到 Discovery']}
/>
)
}
const MeasurableOutcome: React.FC = () => {
return (
<SectionShell
sectionKey="MeasurableOutcome"
title="MeasurableOutcome可度量结果"
lead="强调可验证:输出物、指标、复盘机制,而非宏大叙事。"
notes={['边界:指标与结果类型,不披露敏感数据', '可扩展:指标卡片/结果对照']}
/>
)
}
const TrustProof: React.FC = () => {
return (
<SectionShell
sectionKey="TrustProof"
title="TrustProof权威背书"
lead="放置信任材料:客户类型、合作方式、第三方背书(占位)。"
notes={['边界:信任材料分类与呈现方式', '连接:跳转到 Proof']}
/>
)
}
const SoftCTA: React.FC = () => {
return (
<SectionShell
sectionKey="SoftCTA"
title="SoftCTA行动入口"
lead="提供低压力行动入口:先对齐问题,再进入下一步。"
notes={['边界:弱 CTA避免硬销售', '连接:跳转到 Contact']}
/>
)
}
export const Home: React.FC = () => {
const [posts, setPosts] = useState<any[]>([])
const [loading, setLoading] = useState(true)
const [error, setError] = useState<string | null>(null)
return (
<div>
<HeroWorldView />
<DecisionProblem />
<CoreThesis />
<Methodology />
<SystemOverview />
<DiscoveryIntro />
<MeasurableOutcome />
<TrustProof />
<SoftCTA />
</div>
)
}
useEffect(() => {
const fetchPosts = async () => {
try {
setLoading(true)
setError(null)
const response = await Posts.listPosts({
client,
query: {
limit: 10,
sort: '-createdAt',
},
})
setPosts((response as any)?.data?.docs || [])
} catch (err) {
setError(err instanceof Error ? err.message : '加载失败')
console.error('获取文章失败:', err)
} finally {
setLoading(false)
}
}
fetchPosts()