5.8 KiB
5.8 KiB
全项目数据驱动布局审计(2026-07-20)
审计基线
- 权威基线:
main/01d246c 保存视觉审核与文档流迁移进度。 - 范围:
pages/、components/、活动路由与封存 A06;当前只验证 H5,不接接口,不宣称 Android 完成。 - 首次容量合同发现 279 项待解释风险。修正“固定网格容量”规则后为 276 项:普通
repeat(2/3/4, ...)是响应式列数,不等于数据容量上限;只有 12 列及以上的固定重复网格才按固定容量画布拦截。 - 当前截图证据:G01 切换家谱弹层在 412×915、6 条数据下可以自然增高并滚动,作为弹层容量参考;这不代表其他页面已经通过。
统一五方案决策
每个确认问题均评估以下五种方案:
- 扩大固定尺寸:改动小,但只推迟溢出,淘汰。
- 增加响应式断点:只解决设备宽高差异,不能解决未知数据量;仅作补充。
max-height加内部滚动:适合弹层、独立列表和结构化画布,不用于普通内容卡片。- 正常文档流自然撑高:适合普通页面、列表卡、表单、状态说明和长文案,作为默认最优方案。
- 由数据计算布局边界:适合世系树、可变列媒体和结构化关系画布。
已确认问题与选择
| 类别 | 已确认风险 | 五方案结论 | 最优方案 |
|---|---|---|---|
共享 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-audit与repository-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 可见效果,不替代真实入口、适用状态和整页流程验收。