Ver código fonte

docs: 全站页面美化方案 V1.0(审计数据 + 五批推进)

回答"还有哪些要美化的小程序页面":333 个页面文件中已重制 5 页,
余 328 页归因为 3 个根因而非 328 个独立任务:
1. 品牌分裂——旧蓝还锁在全局令牌层($uni-primary / --color-primary),
   新品牌橙 $brand-primary 与之并存;9 处 var() 运行时仍是蓝
2. 五维生态断裂——5 个 index 重制、36 个兄弟页旧样(心13/行8/身6/智4/财富子链5)
3. 长尾硬编码——10,353 处,health 模块 46 页占债务 36%

五批:A 门面 6 页(4 个 TabBar 每次启动必见)→ B 维度生态 36 页
→ C 品牌收敛(令牌翻转 + 旧蓝 121 处分流 + transition:all 37 处)
→ D 高债务业务模块 → E 长尾 119 页只补漏。

验收沿用五维阶段四件套 + 门面同族性/生态连贯性两项新增。
liaoxg 1 semana atrás
pai
commit
534591149d
1 arquivos alterados com 175 adições e 0 exclusões
  1. 175 0
      cfc-frontend/docs/beautification-plan.md

+ 175 - 0
cfc-frontend/docs/beautification-plan.md

@@ -0,0 +1,175 @@
+# 全站页面美化方案 V1.0(UniForge 取证结论 + 分批推进)
+
+> 范围:`pages/**` 全部 333 个页面文件(pages.json 注册 276 页 + 页面级组件),不含 `components/` 全局库
+> 前置:五维主页面(body-detail / mind-detail / wisdom-detail / wealth / action-detail 的 index)已完成阶段一~四重制 + 成员标签,**不在本方案范围**
+> 性质:**只读审计 + 分批方案**,本文不含代码改动
+> 数据底座:`scripts/audit-beautify-debt.js`(2026-10-17 全仓实跑)
+
+---
+
+## 一、现状总账
+
+| 指标 | 数值 | 说明 |
+|---|---|---|
+| 页面文件总数 | 333 | 注册 276(主包 7 + 56 分包 269)+ 页面级组件 |
+| 硬编码色值总数 | **10,353** | 与品牌令牌体系脱钩的直接证据 |
+| 旧品牌蓝 `#5B9BD5` | **121** | 旧品牌残留,分布在 ~40 个文件 |
+| `transition: all` | **37** | AGENTS.md 明令禁止 |
+| `getSystemInfoSync` | **0** | 已清零(外部提交修复),无需处理 |
+| 债务分层(已重制 5 页除外) | P0 77 / P1 132 / P2 91 / P3 28 | 债务分 = 硬编码色×3 + 旧蓝×5 + transitionAll×2 + px×0.1 |
+
+**结论先行:这不是 328 个独立的美化任务,而是 3 个根因。** 按根因分批,每批内部是同质工作,可批量、可回归、可验收。
+
+---
+
+## 二、三个根因
+
+### 根因 1 · 品牌分裂(最优先,一行令牌带动全站)
+
+新品牌橙 `$brand-primary: #F97316`(uni.scss §12)与旧品牌蓝两套并存,且**旧蓝还锁在全局令牌层**:
+
+| 层 | 位置 | 现状 |
+|---|---|---|
+| SCSS 变量 | uni.scss §2 `$uni-primary/-light/-dark/-pale` | 仍是 `#5B9BD5` 蓝系 |
+| CSS 自定义属性 | uni.scss §7 `:root { --color-primary... }` | 仍是 `#5B9BD5` 蓝系 |
+| 语义色 | `$uni-info` 注释写明"复用了品牌蓝" | 蓝 = 品牌 = info 三合一 |
+| 运行时引用 | 9 处 `var(--color-primary, #5B9BD5)` | ai/chat(4)、child/tasks(2)、home-pages/child-index(2)、parent-index(1) |
+| 工具类 | `.text-primary` / `.bg-primary` / `flat-button` mixin | 默认值全是旧蓝 |
+| 页面硬编码 | 121 处 | 绕过令牌直写 |
+
+**关键事实**:`$uni-primary` 系目前**零页面直接引用**(引用数 0),说明页面早就用脚投票抛弃了它——令牌层翻转的回归面比想象中小得多,主要影响面是 9 处 `var()` + 工具类兜底值。
+
+### 根因 2 · 五维生态断裂(用户旅程的视觉断崖)
+
+5 个维度 index 页已重制,但其**兄弟页全部是旧样式**。用户从重制页点进子页即"穿越":
+
+| 模块 | 总页数 | 已重制 | 待重制 | 最高债务兄弟页 |
+|---|---|---|---|---|
+| mind-detail | 14 | 1 | **13** | emotion-checkin (311) |
+| action-detail | 9 | 1 | **8** | interaction-log (108) |
+| body-detail | 7 | 1 | **6** | health-report (264) |
+| wisdom-detail | 5 | 1 | **4** | cognitive-report (261) |
+| wealth-sub + wealth-detail | 5 | 0 | **5** | insurance-list (~80) |
+| **合计** | **40** | **4** | **36** | —— |
+
+另注意 `mind-detail/components/FamilyTianpanCard.vue`(debt 210)是**页面级组件**,与 index 页同屏出现,断崖更明显。
+
+### 根因 3 · 长尾硬编码(10,353 处的慢性病)
+
+模块级债务分布(已重制页除外):
+
+| 模块 | 页数 | 硬编码色 | 旧蓝 | 债务 |
+|---|---|---|---|---|
+| pages/health | 46 | 1,785 | 44 | **5,583** |
+| pages/mind-detail | 15 | 628 | 2 | 1,898 |
+| pages/shop | 16 | 590 | 0 | 1,770 |
+| pages/action-detail | 12 | 359 | 0 | 1,077 |
+| pages/family | 11 | 356 | 0 | 1,072 |
+| pages/diet | 7 | 333 | 11 | 1,062 |
+| pages/growth | 12 | 346 | 0 | 1,050 |
+| pages/home-pages | 15 | 299 | 10 | 949 |
+| pages/tianpan | 7 | 280 | 0 | 840 |
+| pages/promotion | 8 | 272 | 0 | 818 |
+
+单页债务 TOP10:health/report-detail (564)、report-confirm (552)、gut-flora-detail (441)、index-home (423)、home-pages/parent-index (341)、health/challenge-manage (329)、shop/checkout (327)、health/health-plan-summary (325)、mind-detail/emotion-checkin (311)、health-main (288)。
+
+---
+
+## 三、待美化页面清单(五批,按依赖排序)
+
+### A 批 · 门面批(6 页)——每次启动必见,优先级最高
+
+| 页面 | Tab | 债务 | 核心问题 |
+|---|---|---|---|
+| `pages/index-home/index` | 首页 | **423** | 141 硬编码色、2,931 行、13 处内联样式 |
+| `pages/health-main/index` | 健康 | **288** | 96 硬编码色 |
+| `pages/profile-main/profile` | 我的 | **249** | 83 硬编码色、10 处内联样式 |
+| `pages/growth-main/index` | 成长 | **219** | 73 硬编码色 |
+| `pages/cognitive-hall` | — | 60 | 20 硬编码色 |
+| `pages/service-center/index` | — | 60 | 20 硬编码色 |
+
+`splash`(21)已够轻,不动。**做法**:沿用五维 index 的阶段一~四路径(语义基座 → 灰阶归一 → 状态色阶 → 局部调色板),四页共用同一套门面令牌,保证四个 Tab 视觉同族。
+
+### B 批 · 维度生态一致性批(36 页)——消除"点进去就穿越"
+
+见根因 2 表格。**做法**:每页只做"对齐已重制 index 的视觉语言"——复用该维度已有局部调色板 + 全局令牌,不重新发明配色;`member-*-detail` 页(member-body-detail / member-mind-detail / member-wisdom-detail / member-action-detail / member-wealth-detail)额外接入 `DimensionMemberTabs`,与 index 页成员切换体验一致。
+
+### C 批 · 品牌收敛批(令牌层 + 121 + 37,跨 ~45 文件)——性价比最高
+
+三个子任务,按序:
+
+1. **令牌翻转**(uni.scss,1 个文件):`$uni-primary` 系与 `--color-primary` 系由旧蓝改为品牌橙系(`#F97316` / `#FB923C` / `#EA580C` / 淡橙底),`$uni-info` 从"复用品牌蓝"独立为真 info 蓝(对齐 §13 状态体系)。**一行改,全站 9 处 var() + 工具类自动归队**。
+2. **旧蓝 121 处按角色分流**(~40 个页面文件):
+   - 链接/信息提示 → info 蓝(新 `$uni-info`)
+   - 主行动按钮/选中态 → 品牌橙
+   - 装饰性描边/底纹 → 最近语义令牌
+3. **`transition: all` 37 处**(22 个文件):改为具体属性(`transition: background-color, color, transform` 等),同时是 AGENTS.md 合规修复。
+
+TOP 旧蓝文件:health/report-detail(15)、report-confirm(15)、diet/meal-config(11)、article-center/article-detail(7)、wishes/index(7)、discover/index(7)、reminder-config(7)、health/report-list(6)、home-pages/parent-index(4)、ai/chat(4)。
+
+### D 批 · 高债务业务模块批(按模块整批推进)
+
+| 模块 | 页数 | 债务 | 切入页 |
+|---|---|---|---|
+| health | 46 | 5,583 | report-detail / report-confirm / gut-flora-detail |
+| shop | 16 | 1,770 | checkout / cart |
+| family | 11 | 1,072 | self-check-result |
+| diet | 7 | 1,062 | meal-config / records |
+| growth | 12 | 1,050 | exercise-checkin / diet-checkin |
+| home-pages | 15 | 949 | parent-index / child-index |
+| tianpan / promotion / membership / activity / discover / article-center | 34 | 4,207 | 各模块 index |
+
+**做法**:每模块先打"最高债务 1~2 页"立标杆,同模块其余页复制标杆的令牌结构。health 模块(46 页 / 债务占全站 36%)建议单独成大战役,内部再分报告线 / 菌群线 / 计划线 / 挑战线四条小线。
+
+### E 批 · 长尾批(P2+P3 共 119 页,债务 < 60)
+
+只做两项轻处置:(a) 旧蓝残留(若 C 批按角色分流后仍有漏网);(b) 与同模块标杆明显冲突的孤立色。**不做全量重制**——债务 <60 的页面单页硬编码色通常 <20,改造收益低于风险。
+
+---
+
+## 四、验收标准(每批统一)
+
+沿用五维阶段的验证四件套,外加本方案新增两项:
+
+| 检查项 | 工具 / 方法 | 合格线 |
+|---|---|---|
+| SCSS 编译 | dart-sass 逐页编译 | ALL PASS |
+| 旧蓝残留 | `scripts/audit-beautify-debt.js` | 目标页 0 |
+| `transition: all` | 同上 | 目标页 0 |
+| 硬编码色(style 区块) | 同上 | 目标页 ≤ 令牌声明行 |
+| 渐变退化 | 编译后 CSS `linear-gradient` 内 `new Set(colors).size === 1` | 0(首尾同色中间不同的 shimmer 合法,不误报) |
+| 数值等价回归 | `git show HEAD:<file>` → dart-sass → 与当前版逐字节比对 | 仅剩刻意语义收敛 |
+| **门面同族性**(A 批新增) | 四个 Tab 页的卡片圆角/间距/字号/按压反馈取自同一组令牌 | 人工走查一致 |
+| **生态连贯性**(B 批新增) | 从 index 页点进每个子页,无品牌色/字体/卡片样式跳变 | 人工走查 |
+
+---
+
+## 五、推进顺序与依赖
+
+```
+C-1 令牌翻转(无页面依赖,先行)
+ ├─→ A 批 门面 6 页(站在新令牌上做,避免二次返工)
+ ├─→ B 批 维度生态 36 页(依赖 A 批立下的门面令牌 + 已有维度调色板)
+ └─→ C-2/C-3 旧蓝分流 + transition:all(可与 A/B 并行,按文件不冲突)
+D 批 业务模块(依赖 C-1 令牌;各模块独立可并行)
+E 批 长尾(最后,只做补漏)
+```
+
+**建议实际执行序列**:C-1 → A → B(按 心/身/智/行/财富子链 分 5 次)→ C-2/C-3 → D(health 单独战役)→ E。
+
+---
+
+## 六、风险与红线
+
+1. **构建必须走 HBuilderX**:AGENTS.md 明令 Agent 禁止执行 `npm run build:mp-weixin`。本方案所有"构建验证"由人工在 HBuilderX 完成,Agent 侧只用 dart-sass 做页级编译回归。
+2. **外部进程并发写工作区**:本轮已发生 4+ 次(截断文件、还原 HEAD、代为提交)。对策不变:**每完成一个页面立即 commit**,不信赖工作区跨轮次存活。
+3. **`:root` 作用域待真机确认**:`--color-primary` 定义在 uni.scss `:root`,微信 wxss 的标准根选择器是 `page`。C-1 令牌翻转时需真机确认 9 处 `var()` 实际取值;若 `:root` 不生效,这些页面现在渲染的是**兜底值旧蓝**,翻转后兜底值也要同步改。
+4. **health 模块 46 页体量**:单批过大,必须分四条小线推进,每线独立 commit、独立验收。
+5. **不做没有数据支撑的"顺手美化"**:每批动哪些页,以 `audit-beautify-debt.js` 输出为准,不凭印象扩范围。
+
+---
+
+## 七、本方案附带的已完成修复
+
+- `pages/profile/components/ProfileMenu.vue`:外部提交 722ef3a86 在纯 CSS style 块写入 `// 字体大小弹窗`(CSS 不支持 `//` 行注释)导致 webpack style 编译失败 → 已改 `/* */`。全仓扫描确认此为唯一实例。
+- `scripts/audit-beautify-debt.js`:本方案的数据底座,可重复运行跟踪债务下降曲线。