# 美化治理修改计划(2026-10-20) > 基于 `docs/beautification-audit-2026-10-20.md`,按 A→F 六批推进,每批独立可提交。 --- ## 先决:补令令牌(A 批前必做) 以下 3 个令牌审计报告中已确认缺失或需核对,先补到 `uni.scss` 再进 A 批。 | 新令牌名 | 目标值 | 用途 | 位置 | |---|---|---|---| | `$status-disabled` | `#CCC` / `#DDDDDD`(待定,取 `#E0E0E0` 或 `#CCCCCC`) | 灰阶替换占位 | `uni.scss` §13 后 | | `$facade-hairline-3` | `#EEE` | 对应灰阶硬编码 | `uni.scss` §15 后 | | `$status-danger-strong-2` | `#C62828` | 已在 §15 末尾定义,但需核对 `status-danger-strong` vs `strong-2` 关系 | 已存在,仅核对 | > **注意**:`$status-danger-strong-2: #C62828` 已在 uni.scss L622 定义,可直接使用;`$facade-hairline-2: #EEE` 已在 L625 定义,`#EEE` 灰可直接映射;`$facade-hairline-3` 暂无,按需新建为 `#DDDDDD` 或映射已有 `#DDD` 近值。**建议先不新建**,直接用 `$facade-hairline-2: #EEE` 覆盖,`#CCC` 用 `$facade-hairline: #E0E0E0`(L624)。 --- ## A 批 · 中性灰阶 + 品牌/状态色令牌化 ### 目标 将约 **4,000 处**硬编码灰阶/品牌色替换为等值 SCSS 令牌,零视觉风险。 ### 替换对照表 | 硬编码值 | 令牌 | 处数 | 涉及文件(估算) | |---|---|---|---| | `#FFF` / `#FFFFFF` | `$app-surface` | 1,203 | 302 | | `#333` | `$facade-text-strong` | 655 | 202 | | `#666` | `$facade-text-body` | 273 | 147 | | `#999` | `$facade-text-muted` | 582 | 186 | | `#F5F5F5` | `$facade-fill-2` | 212 | 101 | | `#F0F0F0` | `$facade-fill` | 152 | 96 | | `#FAFAFA` | `$facade-fill-ghost` | ~60 | 22+ | | `#F9FAFB` | `$facade-fill-gray-50` | ~60 | 22+ | | `#CCC` | `$facade-hairline` (`#E0E0E0`) ⚠️ | 95 | 69 | | `#DDD` | `$facade-hairline-2` (`#EEE`) ⚠️ | 74 | 41 | | `#EEE` | `$facade-hairline-2` (`#EEE`) ✅ | 71 | 42 | | `#F97316` | `$brand-primary` | 689 | 166 | | `#FF8C42` | `$dim-body` | 133 | 37 | | `#FFF7ED` | `$uni-primary-pale` | 123 | 77 | | `#FB923C` | `$brand-primary-light` | 92 | 58 | | `#10B981` | `$status-success` | 108 | 51 | | `#EF4444` | `$status-danger` | 69 | 43 | | `#6366F1` | `$dim-wisdom` | 72 | 25 | | `#C62828` | `$status-danger-strong-2` | 63 | 15 | ### 实施策略 #### 灰阶(#FFF ~ #EEE 共 ~3,100 处) 按分包切片,每片一提交: 1. **切片顺序**(文件数少的先): - 主包 5 个 TabBar 页(index/body/wisdom/mind/wealth) - `pages/login` - `pages/profile` / `pages/profile-extra` - `pages/guide`(11 文件) - `pages/tasks`(4 文件) - `pages/rewards`(2 文件) - `pages/wishes`(3 文件) - `pages/games`(5 文件) - `pages/assessment`(5 文件) - `pages/growth`(6 文件) - `pages/activity`(3 文件) - `pages/promotion`(6 文件) - `pages/membership`(3 文件) - `pages/shop`(15 文件,较大,单开) - `pages/teacher`(7 文件) - `pages/parent`(3 文件) - `pages/child`(2 文件) - `pages/dan-assessment`、`pages/share` - `pages/mind-detail`、`pages/body-detail`、`pages/wisdom-detail`、`pages/action-detail` - `pages/tianpan`(7 文件,单独 B 批处理) - `pages/article-center`、`pages/health`(18 文件,较大,单开) - `components/`(公共组件,单独切片) 2. **灰阶替换脚本**:用 `scripts/audit-beautify-debt.js` 生成 CSV,提取各值分布,写替换脚本。 #### 品牌/状态色(~1,300 处) 同上分包切片,注意: - `#F97316 → $brand-primary` 是最优先项(166 文件,689 处),一次全切完 - `#FFF7ED → $uni-primary-pale`(77 文件)紧随其后 ### 验证方法 - 每个文件替换后用 `node --check` 验证语法(若脚本能提取 script 块) - 用 `scripts/tmp_c2_verify.js` before+预期替换==after 逐字节验证(如有工具) - 审计前后跑 `scripts/audit-beautify-debt.js` 看硬编码色总数下降曲线 --- ## B 批 · tianpan 家族 px→rpx(7 文件) ### 目标 将 387 处 CSS px 按 `px × 2 = rpx`(375px 基准)转换,7 处 canvas 字号保留。 ### 涉及文件(CSS px 由高到低) | 文件 | CSS px 处数 | |---|---| | `pages/tianpan/index.vue` | 85 | | `pages/tianpan/relation-detail.vue` | 71 | | `pages/tianpan/member-detail.vue` | 69 | | `pages/tianpan/traditional.vue` | 60 | | `pages/tianpan/daily-fortune.vue` | 38 | | `pages/tianpan/annual-energy.vue` | 36 | | `pages/tianpan/related-items.vue` | 28 | | **其余 24 文件** | ~73 | ### 实施步骤 1. 对每个文件,在 `