feat(detail): Layer 3 信任层空数据兜底骨架(L3SignalsSlot + L3EmptyFallback + EarlyAccessNotice)
- 新增 L3SignalsSlot:4 类可验证替代信号卡(方法论/团队/历程/服务承诺), 服务承诺卡 disabled 占位待业务确认;零编造约束下替代真实案例/认证 - 新增 EarlyAccessNotice:首批客户共创状态条(单一真源 company.ts EARLY_ACCESS) - 新增 L3EmptyFallback:caseStudies/certifications/dataProofs 三者全空时渲染兜底, 任一非空 return null 保留本地真实 section 视觉 - 接入 5 处详情页:solution v3 / service v4 / product v3 / erp-upgrade-v3 / standalone/[id] - 修复 StaggerReveal 网格布局:grid 类须挂在 StaggerReveal 自身(否则卡片堆单列) - 更新 solution 测试至新行为(空数据→兜底渲染)+ 补 lucide 图标 mock - 修复 header.test.tsx 双 logo 断言(2593599 遗留) - 新增 scripts/audit/l3-fallback-verify.mjs 运行时验证(浅/深双版 PASS) 注:必须用 localhost 而非 127.0.0.1 —— Next dev allowedDevOrigins 默认白名单 不含 127.0.0.1,chunk 请求带该 Origin 被 403 → hydration 不发生 → 动画全冻结 验证:type-check 0 错 · lint 0 错(127 既有 warnings) · 单测 129 套件/1628 通过 · L3 兜底浅深双版渲染截图 PASS
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
'use client';
|
||||
|
||||
/**
|
||||
* EarlyAccessNotice — L3 信任层「首批客户共创」透明状态条
|
||||
*
|
||||
* 设计意图:
|
||||
* - 数据真实性优先:客户案例 / 资质认证需获得授权后才能公开;
|
||||
* 与其让 L3 整段 `return null` 制造「信任真空」,不如显式标注公司当前阶段。
|
||||
* - 内容源于 `EARLY_ACCESS` 常量(company.ts L119),单一真源。
|
||||
*
|
||||
* 与 L3SignalsSlot 关系:EarlyAccessNotice 是 L3EmptyFallback 的次要兜底块,
|
||||
* 在 signals(4 类信号卡)下方呈现——回答「为什么没有真实客户案例」这个问题。
|
||||
*/
|
||||
|
||||
import Link from 'next/link';
|
||||
import { ScrollReveal } from '@/components/ui/scroll-reveal';
|
||||
import { EARLY_ACCESS } from '@/lib/constants/company';
|
||||
|
||||
export function EarlyAccessNotice() {
|
||||
return (
|
||||
<section
|
||||
aria-labelledby="early-access-notice-heading"
|
||||
className="py-12 sm:py-16 bg-bg-secondary"
|
||||
>
|
||||
<div className="max-w-container mx-auto px-4 sm:px-6 lg:px-10">
|
||||
<ScrollReveal>
|
||||
<aside
|
||||
role="note"
|
||||
aria-label="首批客户共创状态"
|
||||
className="p-5 sm:p-6 rounded-lg border border-dashed border-brand/40 bg-brand-soft/30"
|
||||
>
|
||||
<p
|
||||
id="early-access-notice-heading"
|
||||
className="text-sm font-semibold text-brand mb-1"
|
||||
>
|
||||
{EARLY_ACCESS.label}
|
||||
</p>
|
||||
<p className="text-sm text-text-secondary leading-relaxed mb-3">
|
||||
{EARLY_ACCESS.desc}
|
||||
</p>
|
||||
<Link
|
||||
href="/contact"
|
||||
className="inline-flex items-center gap-1 text-sm font-medium text-brand underline-offset-4 hover:underline focus:outline-none focus-visible:ring-2 focus-visible:ring-brand focus-visible:ring-offset-2 focus-visible:ring-offset-bg-secondary rounded"
|
||||
>
|
||||
了解共创合作
|
||||
<span aria-hidden="true">→</span>
|
||||
</Link>
|
||||
</aside>
|
||||
</ScrollReveal>
|
||||
</div>
|
||||
</section>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user