范围:
pages/**335 个页面文件 +components/**(审计数据含 global 组件)+custom-tab-bar/数据底座:scripts/audit-beautify-debt.js(2026-10-20 实跑)+ 分类深扫(JS 色值 / px / 内联样式 / 图片) 性质:审计 + 分批建议。上一版方案见beautification-plan.md(2026-10-17,V1.0),本文是其进度对账与增量建议。
#5B9BD5 121 → 0(C-2 阶段,63 文件 285 处);transition: all 37 → 0(C-3 阶段,22 文件 35 处 + 2 处补漏)。#F97316 一色就被 166 个页面硬编码 689 次,令牌体系已形同虚设,品牌换色将变成 166 文件的手工人匠。| 指标 | 10-17 基线 | 10-20 现状 | 说明 |
|---|---|---|---|
| 页面文件总数 | 333 | 335 | 外部新增 2 页 |
| 硬编码色值总数 | 10,353 | 8,490 | C-2 批次 + 外部 token 化共收敛 ~1,860 处 |
旧品牌蓝 #5B9BD5 |
121 | 0 | ✅ C-2 收官(含 uni.scss 令牌族删除) |
transition: all |
37 | 0 | ✅ C-3 收官(35 处 + service-role-apply / custom-tab-bar 补漏 3 处) |
getSystemInfoSync |
0 | 0 | ✅ 维持 |
| 债务分层 | P0 77 / P1 132 / P2 91 / P3 28 | P0 59 / P1 114 / P2 84 / P3 73 | P0 -18 页;P3 页数上升是债务下降后分层阈值效应,非恶化 |
债务分公式(audit 脚本):硬编码色×3 + 旧蓝×5 + transitionAll×2 + px×0.1
| 硬编码值 | 处数 | 涉及文件 | 对应令牌(等值或近值) |
|---|---|---|---|
#FFF / #FFFFFF |
999 + 204 | 243 + 59 | $app-surface(#FFFFFF,等值) |
#333 |
655 | 202 | $facade-text-strong |
#999 |
582 | 186 | $facade-text-muted |
#666 |
273 | 147 | $facade-text-body |
#F5F5F5 / #F0F0F0 |
212 + 152 | 101 + 96 | $facade-fill 系 |
#CCC / #DDD / #EEE |
95 + 74 + 71 | 69 + 41 + 42 | 禁用灰/描边灰(需补 2 个语义令牌,见建议) |
#FAFAFA / #F9FAFB |
60+ | 22+ | $facade-fill-ghost / gray-50 浅底 |
判断:灰阶与品牌色完全解耦,替换不涉任何品牌决策,是「无脑执行区」。
| 硬编码值 | 处数 | 涉及文件 | 对应令牌 |
|---|---|---|---|
#F97316 |
689 | 166 | $brand-primary |
#FF8C42 |
133 | 37 | $dim-body(五维身色) |
#FFF7ED |
123 | 77 | $uni-primary-pale |
#FB923C |
92 | 58 | $brand-primary-light |
#10B981 |
108 | 51 | $status-success |
#EF4444 |
69 | 43 | $status-danger |
#6366F1 |
72 | 25 | $dim-wisdom |
#C62828 |
63 | 15 | $status-danger-strong 深档 |
判断:这是「令牌体系空转」——令牌建了但页面用脚投票直写 hex。危害不在视觉,在品牌换色时 166 文件的手工回归面。
TOP:ContentSharePoster 67、emotion-checkin 36、PearlDiagram 34、energy/index 34、ArticleBookshelf 30、index-home 30、FamilyTianpanCard 29、SharePoster 29、PageBanner 26、tianpan/index 24。
判断:canvas / 海报 / 动态色板场景,SCSS 变量编译期不可达(C-2 阶段已验证:JS 内写 $var 会原样输出成无效值)。需建 JS 侧色板常量模块收编,不可与 SCSS 批混处理。
| 文件 | CSS px | canvas px(保留) |
|---|---|---|
| tianpan/index | 85 | 7 |
| tianpan/relation-detail | 71 | 0 |
| tianpan/member-detail | 69 | 0 |
| tianpan/traditional | 60 | 0 |
| tianpan/daily-fortune | 38 | 0 |
| tianpan/annual-energy | 36 | 0 |
| tianpan/related-items | 28 | 0 |
| 其余 24 文件 | ~73 | — |
判断:tianpan/index.vue L748 width: 375px 证实全族按 375px 逻辑宽设计 → CSS px ×2 = rpx 等值;canvas 字号必须保留 px。转完后 tianpan 家族才真正自适应。
TOP:FamilyEnergyBar 6、parent-index 5、emotion-trend 5、create-task 4。多为动态宽度/渐变/定位,部分必要(数据驱动),部分可收敛为 class。
<image>,仅 2 个文件用 lazy-load → 长列表(discover / article-center / 商品列表)滚动卡顿风险。objectFit,其余走默认(scaleToFill 拉伸)→ 非等比图变形风险。保原图比例应显式 mode="aspectFit"(适应)或 aspectFill(裁切)。| 页 | debt | 行数 | 硬编码色 | 聚类 |
|---|---|---|---|---|
| health/report-detail | 432 | 2,232 | 144 | health 报告链 |
| health/report-confirm | 420 | 1,826 | 140 | health 报告链 |
| health/gut-flora-detail | 417 | 1,490 | 139 | health 报告链 |
| health/health-plan-summary | 351 | 1,913 | 117 | health 报告链 |
| shop/checkout/checkout | 330 | 1,927 | 110 | 交易链 |
| home-pages/parent-index | 321 | 2,257 | 107 | 首页系 |
| health/challenge-manage | 321 | 1,322 | 107 | health |
| profile-extra/family-members | 291 | 1,324 | 97 | 家庭管理 |
| activity/activity-detail | 282 | 1,461 | 94 | 活动 |
| discover-detail/product-detail | 252 | 1,183 | 84 | 交易链 |
| growth/sleep-checkin | 246 | 834 | 82 | 成长记录 |
| membership/upgrade | 246 | 843 | 82 | 会员 |
特征:health 报告链占 4/12 且包揽前三——与 10-17 方案「D 批 health 46 页」判断一致,仍是最大重债区。
#FFF → $app-surface 已确认等值(#FFFFFF)。#CCC/#DDD/#EEE 建议先在 uni.scss 补 $status-disabled / $facade-hairline-3 两个语义令牌再翻,避免直接映射到近值令牌造成 1-2 像素灰度偏差。#C62828 → $status-danger-strong-2 需先核对令牌值一致性。utils/brand-colors.js(JS 侧单一事实源,禁依赖 SCSS 变量),按色板簇分批替换:
node --check + canvas 渲染抽查。lazy-load(discover / article-center / shop 列表 / member 列表优先)。mode(保比例 aspectFit,裁切 aspectFill)——与知识库「保原图比例」口径一致。static/ 33 张 png 是否有未压缩大图(本轮未做体积分析,列为待办)。已识别的重复样式簇:
| 模式 | 重复位置 | 建议 |
|---|---|---|
tag-btn / tag-active 选择标签 |
diet-checkin、exercise-checkin | 抽 TagChip 组件 |
role-card / 选择卡(透明边+选中变橙) |
user-edit、service-role-apply | 抽 SelectableCard |
step-dot / 步骤圆点 |
health-plan-summary、self-quiz | 抽 StepDots |
submit-btn 渐变主按钮 |
3 个 checkin 页 | 收敛到 PlayfulButton primary |
#FFF → $app-surface 全量(999 处,等值机械替换,预计 2-3 个提交切片)。$c-* 色板 hoist(1 文件 73 处,含 $c-indigo 等 20+ 局部声明,统一收编 uni.scss 或 JS 色板)。$status-disabled、$facade-hairline-3)为 A 批清障。#8FC5E8 + rgba(143,197,232,x)(C-2a 已登记)。#42A5F5、五行水行 #42A5F5 语义色。#24243E(logic-test / psych-assessment 暗色测评场景,属场景色非债务)。| 手段 | 用途 |
|---|---|
scripts/tmp_c2_verify.js(before+预期替换==after 逐字节) |
每文件颜色类替换的零漂移证明 |
scripts/audit-beautify-debt.js |
批次前后债务曲线对比(硬编码色应单调下降) |
dart-sass 页级编译 + node --check |
语法与令牌悬空检查 |
| 三大硬指标门禁 | 旧蓝 = 0 / transition:all = 0 / getSystemInfoSync = 0(已达成,保持) |
| HBuilderX 真机打包 | B/D/E 批的最终视觉验收(Agent 侧禁跑 build:mp-weixin) |
报告生成:2026-10-20 · 数据为当日全仓实跑 · 建议批次可按资源按序启动,每批独立提交可回滚