feat(ui): 营销站 UI/UE/UX 治理 P0→P3 收官
复评(impeccable critique)全部 Priority Issues 与 Minor Observations 落地: - P0 数字口径:MetricsBasisNote 单一真源 + metrics-basis.test fs 防线,接入 products/solutions/services/home/about;纯渲染端加角注,不动 DB/seed 值 - P1 转化断头路:敬请期待态 + 404 语境出口 + services 空态双出口 - P1 首页并卡:TrustSection 早鸟横幅并入 CasesSection 单张深色共创卡 - P2 CTA 治理:CONSULT_CTA_ALLOWLIST 白名单 + 逐字符扫描器,/contact CTA 全归一 - P3 polish:footer 补 服务/公司列、contact 死三元/空槽/toast、GlobalErrorTracker 幂等日志 - 文档同源:PRODUCT/CONTEXT 动效带统一 180–280ms;DESIGN.md 立 The 10px Floor; font-floor.test 守卫禁止再引入 <10px(保留 10/11px 有意 Bain 微标签) Gates: type-check 0 · jest 1581/132 · lint 0e/126w · contrast 7/7 · headings 10/10
This commit is contained in:
@@ -27,9 +27,10 @@ NEXT_PUBLIC_GA_MEASUREMENT_ID=G-LGTLCR15KM
|
||||
文件位置: `src/components/analytics/GoogleAnalytics.tsx`
|
||||
|
||||
**功能:**
|
||||
- 自动初始化 GA4
|
||||
- 配置全局追踪
|
||||
- 在所有页面启用追踪
|
||||
- 单次初始化 GA4:inline snippet 内唯一一次 `gtag('config')` 负责首屏 pageview(含 consent default)
|
||||
- SPA 路由追踪:仅当 pathname/searchParams 变化且 URL 与上次不同时,effect 再发 `config`(Google SPA 文档口径)
|
||||
- 禁止在 snippet 与 effect 中重复 config(复评曾检出「GA4 初始化 2 次」,勿回退;有单测防线)
|
||||
- 在所有页面启用追踪(根布局 `GoogleAnalyticsWrapper` 动态挂载,SSR 关闭)
|
||||
|
||||
### 3. 根布局集成
|
||||
|
||||
|
||||
@@ -103,7 +103,6 @@ src/components/
|
||||
├── layout/ # 布局组件
|
||||
│ ├── header.tsx # 页头导航
|
||||
│ ├── footer.tsx # 页脚
|
||||
│ ├── mobile-menu.tsx # 移动端菜单
|
||||
│ ├── mobile-tab-bar.tsx # 移动端底部导航
|
||||
│ └── breadcrumb.tsx # 面包屑
|
||||
│
|
||||
|
||||
@@ -184,14 +184,6 @@ import { Footer } from '@/components/layout/footer';
|
||||
- 联系方式
|
||||
- 微信公众号二维码
|
||||
|
||||
#### MobileMenu 移动端菜单
|
||||
|
||||
```tsx
|
||||
import { MobileMenu } from '@/components/layout/mobile-menu';
|
||||
|
||||
// 由 Header 内部调用
|
||||
```
|
||||
|
||||
#### MobileTabBar 移动端底部导航
|
||||
|
||||
```tsx
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
| `src/lib/analytics.ts` | **新建** | Analytics 核心模块,包含所有追踪函数 |
|
||||
| `src/components/analytics/GlobalErrorTracker.tsx` | **新建** | 全局错误追踪器组件 |
|
||||
| `src/app/layout.tsx` | **修改** | 集成 GlobalErrorTracker |
|
||||
| `src/app/test-error-tracking/page.tsx` | **新建** | 错误监控测试页面 |
|
||||
| `src/app/test-error-tracking/page.tsx` | **新建** | 错误监控测试页面(后于 2026-09-19 polish 删除) |
|
||||
|
||||
### 辅助文件
|
||||
| 文件 | 操作 | 说明 |
|
||||
@@ -93,7 +93,7 @@ componentDidCatch(error: Error, errorInfo: React.ErrorInfo) {
|
||||
npm run dev
|
||||
```
|
||||
|
||||
2. **访问测试页面**
|
||||
2. **访问测试页面**(⚠️ `/test-error-tracking` 调试路由已于 2026-09-19 polish 批次删除,本地验证可临时自建同名路由或用控制台 `throw` 触发)
|
||||
```
|
||||
http://localhost:3000/test-error-tracking
|
||||
```
|
||||
@@ -330,7 +330,7 @@ A: GA4 免费版每个属性每月最多 1000 万次事件。如果超出:
|
||||
|
||||
✅ **已完成**:GA4 错误监控完全集成
|
||||
✅ **已验证**:TypeScript 检查通过,构建成功
|
||||
✅ **可测试**:提供专用测试页面 `/test-error-tracking`
|
||||
✅ **可测试**:曾提供专用测试页面 `/test-error-tracking`(2026-09-19 polish 已删除,防线上暴露)
|
||||
✅ **可扩展**:支持自定义错误过滤和上下文
|
||||
✅ **零成本**:利用现有 GA4 账户,无需额外费用
|
||||
|
||||
|
||||
Reference in New Issue
Block a user