Files
jiapuapp/docs/data-driven-layout-audit_2026-07-20.md
T
2026-07-21 07:53:08 +08:00

5.8 KiB
Raw Blame History

全项目数据驱动布局审计(2026-07-20)

审计基线

  • 权威基线:main / 01d246c 保存视觉审核与文档流迁移进度
  • 范围:pages/components/、活动路由与封存 A06;当前只验证 H5,不接接口,不宣称 Android 完成。
  • 首次容量合同发现 279 项待解释风险。修正“固定网格容量”规则后为 276 项:普通 repeat(2/3/4, ...) 是响应式列数,不等于数据容量上限;只有 12 列及以上的固定重复网格才按固定容量画布拦截。
  • 当前截图证据:G01 切换家谱弹层在 412×915、6 条数据下可以自然增高并滚动,作为弹层容量参考;这不代表其他页面已经通过。

统一五方案决策

每个确认问题均评估以下五种方案:

  1. 扩大固定尺寸:改动小,但只推迟溢出,淘汰。
  2. 增加响应式断点:只解决设备宽高差异,不能解决未知数据量;仅作补充。
  3. max-height 加内部滚动:适合弹层、独立列表和结构化画布,不用于普通内容卡片。
  4. 正常文档流自然撑高:适合普通页面、列表卡、表单、状态说明和长文案,作为默认最优方案。
  5. 由数据计算布局边界:适合世系树、可变列媒体和结构化关系画布。

已确认问题与选择

类别 已确认风险 五方案结论 最优方案
共享 GenealogyCard 谱名省略、地点/人数/角色/更新时间不换行 1 不能覆盖未知长度;2 只能缓解窄屏;3 不应让普通卡片内部滚动;4 可保持完整数据并自然撑高;5 无结构坐标需求 4
T07 成员目录 成员卡固定 192/196rpx,姓名和元信息强制单行省略 1 仍有上限;2 仍依赖样本;3 破坏页面主滚动;4 与普通列表语义一致;5 无结构坐标需求 4
G06 搜索结果 结果卡虽有 min-height,仍用 overflow: hidden 裁切增长内容 1 无法解决裁切;2 无法覆盖长字段;3 普通结果卡不应独立滚动;4 删除裁切后由内容撑高;5 无结构坐标需求 4
G05 家谱概览 内容区使用百分比/固定 grid 行,长标题与详情可能互相挤压 1/2 只能推迟;3 不适合普通概览正文;4 可让各段按内容增长;5 当前无坐标关系 4
T01 世系树 固定 900rpx 画布、180×180 网格和固定世代轨道隐含容量上限 1/2 仍有容量上限;3 只能承担视口滚动;4 无法表达节点坐标与连线;5 可由世代数、单代节点数和间距推导画布 5,外层配合方案 3

保留边界

下列固定视觉边界不会因合同扫描被机械删除:图标尺寸、媒体缩略图比例与必要裁切、固定导航、真实弹窗/遮罩/Toast、装饰背景槽位。它们必须进入精确白名单并说明理由;普通正文、按钮文案、表单、列表卡和状态说明不得借白名单隐藏容量问题。

再审核要求

修复后必须重新运行全局容量合同、聚焦合同和压力数据 smoke,并在 320×568、360×640、360×800、412×915 下检查横向溢出、文本裁切、末项可达和滚动所有权。凡产生可见变化的既有 [x] 页面,只能作为新的视觉候选,必须由用户再次明确说“通过”后才能维持或新增 [x]

实施与二次审核结果

  • 容量合同从初始 279 项、规则纠正后的 276 项,收敛为 0 个未解释风险和 0 个失效白名单。最终 103 个白名单键均精确到文件、选择器和风险类型,只保留图标/印章/装饰分隔、固定导航、媒体缩略图裁切、G01/F01/T01 明确内部滚动壳及 T01 结构化节点边界。
  • 共享 GenealogyCard、T07、G06、F01、N01、M01、R01/R02、表单控件、状态卡与 G08—G12/T03/T08 的普通内容改为 min-height、换行和自然撑高;根容器不再用 overflow-x: hidden 掩盖横向问题。
  • G08/G11/G12 文本域使用 auto-height;G09 状态与操作分为独立数据行。二次截图发现的 G08/G11 原生 textarea 固有高度和 G09 状态操作重叠均已再次修正并复核。
  • T01 的画布宽高、行列数、世代轨、节点和关系线全部由成员数据计算。外层纵向滚动与内层横向滚动分工明确;120 节点(10 世代×每代 12 人)压力通过。
  • G01 弹层已验证 2/6/12/50 条:少量内容自然增长,达到安全上限后仅列表区滚动,50 条末项可达。
  • data-driven-layout-runtime-smoke.js 已验证:T07 50 条、G09 50 条、F09 30 项、3 倍长中文与 1.3 倍字号压力、四档视口、末项可达、横向溢出和表单自动增高。
  • 二次视觉对比覆盖 G05、T01、G08—G12、T03、T07、T08;对照长期 handoff 图检查了边框、装饰资产、间距和内容区。当前结果只能作为新的 H5 视觉候选,不能代替用户重新确认。

验证边界

  • 相关静态合同(排除已知独立失败/缺失生成物项)全通过;21 个既有核心 runtime smoke、G01 50 条弹层压力和新增数据容量 smoke 通过。
  • foundation-asset-auditrepository-handoff-size-contract 的既有失败未通过删资料或放宽阈值处理;G06 runtime 截图一致性脚本因已授权清理 docs/design/screens/runtime/ 不计入通过项。
  • 未运行会恢复长期目录外短期截图且含旧行为断言的 t07-module-baseline-runtime-smoke.js;T03—T08 核心流程由独立 smoke 通过。
  • 没有新的 Android/HBuilderX、系统字体缩放或真实接口证据;A06 仍为封存静态检查。

用户复核结论

  • 用户已明确说“通过”,确认 G05、T01、G08—G12、T03、T07、T08 的本轮数据驱动布局迁移候选。
  • T01、T07 原有 [x] 可以维持;其他页面的本次确认只覆盖迁移后的 H5 可见效果,不替代真实入口、适用状态和整页流程验收。