dimension-pages-stage4-audit.md 5.7 KB

五维主页面 · 阶段四审计报告(UniForge verify)

范围:pages/body-detail / wisdom-detail / mind-detail / wealth / action-detail 五页 前置:阶段一(语义基座)→ 阶段二(灰阶归一 + 旧蓝清零)→ 阶段三(状态色阶 + 页面级局部调色板)均已合入 git 性质:只读审计 + 方案待确认,本报告不含代码改动


一、阶段一~三 已完成项(复核通过)

项 结果
SCSS 令牌编译(dart-sass 逐页) ALL 5 PASS
全量 npm run build:mp-weixin DONE Build complete
transition: all 五页 0(阶段一修 3 处)
五页 #5B9BD5 旧品牌蓝 0
硬编码色值(style 区块) 0(仅存于令牌声明行)
渐变退化(全同色) 0(修复 6 处,见 §四)
未解析 $ 变量残留(产物 wxss) 0
尺寸左条规范 8rpx 已统一

二、审计发现

2.1 触摸目标不足(微信建议 ≥ 88rpx ≈ 44px)

方法:提取带 @tap/@click 的元素 class,累加其 height + padding 估算。这是上限估计——flex 子项靠内容撑开的会被低估。

A 级 · 确认过小(文字/图标型,无内容撑开)

元素 页 估算高度 性质
.section-more body / wisdom / mind / wealth ~24–40rpx 纯文字「更多」
.help-icon action ~36rpx 帮助图标
.help-dialog-close action ~48rpx 弹窗关闭
.overview-nav-btn / -secondary body ~20rpx 概览双按钮(核心入口)
.insurance-item wealth ~16rpx 列表行(靠内容撑开,可能误判)

B 级 · 疑似误判(flex 列布局,靠内容撑开,需真机核对)

.indicator-card(3 页)、.dan-card(2 页)、.func-item(2 页)、.disc-sub-card、.insight-btn、.gut-upload-btn、.section-link、.overview-card-item

2.2 加载态缺失(5/5 页)

五页 loading 关键字命中 0。而项目侧资产是现成的:

  • uni.scss §11 已定义骨架屏令牌
  • 五页编译产物中已有 15 处合法 shimmer 渐变(#E2E8F0 25%, #F5F9FC 50%, #E2E8F0 75%)——但均在 mind 页局部使用,未形成统一加载态
  • components/BaseLoading.vue 已存在

结论:数据请求期间页面是「空白→内容」跳变,无过渡。

2.3 空态覆盖不全

页 空态关键词命中 备注
body 4 部分分区有空态
wisdom 16 覆盖最好
mind 7 中等
wealth 6 中等
action 0 完全无空态

2.4 错误态基本缺失

五页仅 1–2 处 error 命中,且多在 catch 内。无统一「加载失败 + 重试」入口。


三、修复方案(需廖总拍板范围)

方案对比

方案 做法 观感影响 工作量
甲 · 零观感 伪元素扩展触摸区(position:relative + ::after 外扩) 完全不变 中(17 处 × 2 行)
乙 · 标准高度 A 级加 min-height:88rpx + flex 居中 按钮/「更多」变高,header 行高变化 小
丙 · 分级 A 级用乙、B 级不动,加载态补骨架屏,action 补空态 局部变高 + 加载过渡 中大

我的建议:丙。 理由:

  • A 级里 overview-nav-btn 是概览区核心入口,20rpx 触摸区在真机上几乎点不中,属可用性缺陷而非审美问题,应修;
  • section-more 这类文字链用伪元素(甲)处理即可,不必撑高 header;
  • 加载态补骨架屏是纯增益(请求期间有占位,不改变稳态视觉);
  • action 页空态补齐是功能完整性问题。

加载态方案(细化)

抽取页面级 dim-skeleton 原子类(复用 §11 令牌 + 已有 shimmer 渐变),五页 <template> 数据容器外加 v-if="pageLoading" 骨架分支。稳态视觉零变化。


四、阶段三遗留修复记录(已合入 git,备查)

文件 问题 修复
action-detail #34D399/#6EE7B7(行主色亮阶)被误映射到同值的 $status-success,4 处渐变退化成纯色 补 $c-action-light/$c-action-lighter 局部变量还原
body-detail #FFF3E8/#FFF9F5 被并入 $dim-body-tint,2 处渐变同色退化 补 $c-tint-peach/$c-tint-blush 还原
body-detail 另 1 处 $dim-body-tint, $dim-body-tint 同法还原

等价回归结论:HEAD 前后 CSS 逐字节对比,全项目仅剩 29 处刻意语义收敛(灰阶归一化 12 / 危险色 #FF6B6B→#EF4444 4 / 财富 tint #FFF7ED→#FFFBEB 10 / 其他 tint 3),无功能缺陷。


五、环境异常警告(重要)

本轮发现 pages/action-detail/index.vue 在工作区被截断为 145 行(</style> 丢失、阶段三改动全失),已从 git HEAD 完整恢复(1300 行,锚点复核通过)。

同期异常:

  • HEAD 从 407e91da5 变为 a51bb8682,五维页阶段三改动被外部提交(d89ad7c24 feat(web): Phase 2,本属 cfc-web 改动)顺带合入;
  • UserContentWeightService.java 等非本项目文件也出现改动。

这与历史异常同源(docs/ 被清空、DimensionVisitorCard.vue 消失、wealth 页被截断)。建议排查是否有外部进程/清理脚本/多会话并发写入本工作区。


六、待办

  • 廖总确认 §三 修复范围(甲 / 乙 / 丙)
  • 加载态骨架屏落地(方案丙)
  • action 页空态补齐(方案丙)
  • B 级触摸目标真机核对(模拟器/开发者工具元素面板)
  • SectionCard 共用卡片原语抽取(需动五页模板,改动面大,单独确认后再做)