feat: 统一全站设计风格、导航组件与文案逻辑自洽性修复

- 新增 InkGlowCard 墨韵流光卡片组件,统一全站卡片交互风格
- 新增 PageNav 面包屑组件,统一全站页面导航
- 统一色彩体系、排版层级、间距节奏和动画风格
- 修复 CTA 区品牌名称错误(诺瓦隆→睿新致遠)
- 修复 ERP 产品卖点与年费制定价矛盾
- 导航下拉补充 SDS 和 OA 产品
- 统一全站数据指标为 12+年核心团队经验、6自研产品、10+团队成员
- 移除不可靠的 100%客户满意度和 30+行业专家指标
- 修复新闻时间线不合理问题,调整里程碑节奏
- 统一响应承诺为工作日快速响应
- 服务第4项重命名为行业方案实施,厘清概念
- 服务详情页效果数据改为定性描述
- 删除 cases 模块,精简代码库
This commit is contained in:
张翔
2026-05-02 08:11:47 +08:00
parent 307e0a654e
commit a272e58aaa
64 changed files with 1934 additions and 2995 deletions
+15 -43
View File
@@ -2,17 +2,16 @@
import { StaticLink } from '@/components/ui/static-link';
import { Button } from '@/components/ui/button';
import { BackButton } from '@/components/ui/back-button';
import { PageNav } from '@/components/layout/page-nav';
import {
CheckCircle2,
TrendingUp,
Users,
Target,
Clock,
MessageCircle,
ArrowRight,
} from 'lucide-react';
import { SERVICES, CASES } from '@/lib/constants';
import { SERVICES } from '@/lib/constants';
interface ServiceDetailClientProps {
service: typeof SERVICES[number];
@@ -47,39 +46,38 @@ const challenges: Record<string, { title: string; description: string }[]> = {
const outcomes: Record<string, { value: string; label: string }[]> = {
software: [
{ value: '30%', label: '开发效率提升' },
{ value: '50%', label: '返工率降低' },
{ value: '100%', label: '按时交付率' },
{ value: '30%+', label: '预期开发效率提升' },
{ value: '50%+', label: '预期返工率降低' },
{ value: '严格', label: '交付质量把控' },
],
data: [
{ value: '70%', label: '决策效率提升' },
{ value: '实时', label: '数据更新' },
{ value: '100+', label: '可视化报表' },
{ value: '自助式', label: '分析模式' },
{ value: '多维度', label: '可视化报表' },
],
consulting: [
{ value: '60%', label: '方向明确度' },
{ value: '40%', label: '试错成本降低' },
{ value: '3x', label: '转型速度提升' },
{ value: '清晰', label: '转型方向规划' },
{ value: '系统化', label: '技术选型评估' },
{ value: '可落地', label: '实施路径设计' },
],
solutions: [
{ value: '50%', label: '实施周期缩短' },
{ value: '30%', label: '成本降低' },
{ value: '95%', label: '客户满意度' },
{ value: '标准化', label: '行业方案交付' },
{ value: '端到端', label: '全流程实施' },
{ value: '持续化', label: '运维优化支持' },
],
};
export function ServiceDetailClient({ service }: ServiceDetailClientProps) {
const serviceChallenges = challenges[service.id] ?? [];
const serviceOutcomes = outcomes[service.id] ?? [];
const relatedCases = CASES.slice(0, 2);
return (
<div className="min-h-screen bg-white">
<div className="pt-32 pb-16">
<div className="container-wide">
<BackButton />
<PageNav items={[{ label: '服务', href: '/services' }, { label: service.title }]} />
<div className="max-w-4xl mt-8">
<p className="text-sm font-medium text-[#C41E3A] mb-4 tracking-wide uppercase"></p>
<p className="text-sm font-medium text-[#C41E3A] mb-4 tracking-wide uppercase">Services</p>
<h1 className="text-4xl md:text-5xl font-bold text-[#1C1C1C] mb-6 tracking-tight">
{service.title}
</h1>
@@ -178,32 +176,6 @@ export function ServiceDetailClient({ service }: ServiceDetailClientProps) {
</div>
</section>
<section>
<div className="flex items-center gap-3 mb-6">
<div className="w-10 h-10 bg-[#FEF2F4] rounded-lg flex items-center justify-center">
<Users className="w-5 h-5 text-[#C41E3A]" />
</div>
<h2 className="text-2xl font-bold text-[#1C1C1C]"></h2>
</div>
<div className="grid md:grid-cols-2 gap-4">
{relatedCases.map((caseItem) => (
<StaticLink
key={caseItem.id}
href={`/cases/${caseItem.id}`}
className="group p-4 bg-[#F5F5F5] rounded-lg hover:bg-[#FEF2F4] transition-colors"
>
<p className="text-xs text-[#C41E3A] font-medium mb-1">{caseItem.industry}</p>
<h3 className="font-semibold text-[#1C1C1C] group-hover:text-[#C41E3A] transition-colors text-sm">
{caseItem.title}
</h3>
<p className="text-sm text-[#595959] mt-2 line-clamp-2">
{caseItem.description}
</p>
</StaticLink>
))}
</div>
</section>
<div className="flex justify-center gap-4 pt-8 border-t border-[#E5E5E5]">
<StaticLink href="/services">
<Button variant="outline" size="lg"></Button>