chore: sync marketing pages, CMS extensions, tests and project docs

同步工作区剩余变更,主要包括:
- 营销页面组件与布局持续优化(about/news/services/solutions/team 等)
- 详情页四层叙事组件、布局组件、UI 组件调整
- CMS 数据模型、API 路由、权限、工作流、站内通知、媒体管理扩展
- 新增/补充单元测试与 E2E 测试(cms-workflow.spec.ts 等)
- ESLint 9 迁移、jest/tsconfig 配置更新、依赖调整
- 新增 ADR、CMS 评估文档、Release Review / Acceptance 报告
- 移除水墨装饰组件与大体积未使用字体文件
This commit is contained in:
张翔
2026-07-25 08:04:01 +08:00
parent e35090b914
commit 10404dbb36
208 changed files with 18107 additions and 8330 deletions
+6 -99
View File
@@ -1,103 +1,10 @@
'use client';
import type { Metadata } from 'next';
import { NotFoundContent } from './not-found-content';
import { useEffect } from 'react';
import { StaticLink } from '@/components/ui/static-link';
import { Button } from '@/components/ui/button';
import { Home, ArrowLeft, Search } from 'lucide-react';
export const metadata: Metadata = {
title: '页面未找到',
};
export default function NotFound() {
useEffect(() => {
document.title = '页面未找到 - 睿新致远';
}, []);
return (
<div className="min-h-screen bg-[var(--color-bg-primary)] flex items-center justify-center">
<div className="container-wide px-4 py-20">
<div className="max-w-xl mx-auto text-center">
<div className="mb-8">
<h1 className="text-8xl sm:text-[120px] font-bold text-[var(--color-brand)] leading-none mb-4 opacity-20">
404
</h1>
</div>
<h2 className="text-2xl sm:text-3xl font-bold text-[var(--color-text-primary)] mb-4">
页面未找到
</h2>
<p className="text-base text-[var(--color-text-muted)] mb-8 leading-relaxed">
您访问的页面不存在或已被移动。请检查网址,或返回首页继续浏览。
</p>
<div className="flex flex-col sm:flex-row gap-4 justify-center mb-12">
<Button
size="lg"
asChild
>
<StaticLink href="/">
<Home className="w-5 h-5 mr-2" />
返回首页
</StaticLink>
</Button>
<Button
size="lg"
variant="outline"
onClick={() => window.history.back()}
>
<ArrowLeft className="w-5 h-5 mr-2" />
返回上一页
</Button>
</div>
<div className="bg-[var(--color-bg-section)] rounded-xl p-6 sm:p-8">
<h3 className="text-lg font-semibold text-[var(--color-text-primary)] mb-5">
您可能在寻找
</h3>
<div className="grid grid-cols-2 gap-3">
<StaticLink
href="/products"
className="flex flex-col items-center p-4 bg-[var(--color-bg-primary)] rounded-lg hover:shadow-md transition-shadow group"
>
<div className="w-9 h-9 bg-[var(--color-brand-bg)] rounded-lg flex items-center justify-center mb-2 group-hover:bg-[var(--color-challenge-isolation-hover)] transition-colors">
<Search className="w-4 h-4 text-[var(--color-brand)]" />
</div>
<span className="font-medium text-sm text-[var(--color-text-primary)]">产品</span>
</StaticLink>
<StaticLink
href="/solutions"
className="flex flex-col items-center p-4 bg-[var(--color-bg-primary)] rounded-lg hover:shadow-md transition-shadow group"
>
<div className="w-9 h-9 bg-[var(--color-brand-bg)] rounded-lg flex items-center justify-center mb-2 group-hover:bg-[var(--color-challenge-isolation-hover)] transition-colors">
<Search className="w-4 h-4 text-[var(--color-brand)]" />
</div>
<span className="font-medium text-sm text-[var(--color-text-primary)]">解决方案</span>
</StaticLink>
<StaticLink
href="/about"
className="flex flex-col items-center p-4 bg-[var(--color-bg-primary)] rounded-lg hover:shadow-md transition-shadow group"
>
<div className="w-9 h-9 bg-[var(--color-brand-bg)] rounded-lg flex items-center justify-center mb-2 group-hover:bg-[var(--color-challenge-isolation-hover)] transition-colors">
<Search className="w-4 h-4 text-[var(--color-brand)]" />
</div>
<span className="font-medium text-sm text-[var(--color-text-primary)]">关于我们</span>
</StaticLink>
<StaticLink
href="/contact"
className="flex flex-col items-center p-4 bg-[var(--color-bg-primary)] rounded-lg hover:shadow-md transition-shadow group"
>
<div className="w-9 h-9 bg-[var(--color-brand-bg)] rounded-lg flex items-center justify-center mb-2 group-hover:bg-[var(--color-challenge-isolation-hover)] transition-colors">
<Search className="w-4 h-4 text-[var(--color-brand)]" />
</div>
<span className="font-medium text-sm text-[var(--color-text-primary)]">联系我们</span>
</StaticLink>
</div>
</div>
</div>
</div>
</div>
);
return <NotFoundContent />;
}