历史数据查询入口审计
审计日期:2026-07-23
结论
- 原入口只提供车牌/VIN 自由文本框,首次查询依赖用户记忆车辆标识;空状态的“选择车辆并查询”实际没有车辆选择能力。
- 新入口直接查询账号授权车辆,支持车牌/VIN 模糊搜索与最多 5 辆多选;相同 VIN 的多个协议合并为一个候选,数据源与车辆查询共用
api.vehicles。 - 批量粘贴仍然保留,点选候选会规范化为 VIN,避免同一车辆以车牌和 VIN 重复进入查询。
- 修改车辆、时间、数据类型或协议后,下方结果继续保留但明确标记为上次查询结果,并提供“恢复已应用条件”,避免把旧数据误认为新条件的结果。
- 移动端候选列表在筛选面板内独立滚动,固定底栏的“应用并查询”始终可见。
证据
01-before-history-start-desktop.png:优化前首次查询状态,1440 × 900。02-before-history-results-desktop.png:优化前已有结果状态,1440 × 900。03-after-history-vehicle-picker-desktop.png:已有结果上展开授权车辆候选,1440 × 900。04-after-history-draft-notice-desktop.png:添加第二辆车后,旧结果与未应用条件被明确区分,1440 × 900。05-after-history-picker-mobile.png:移动端候选列表与固定应用按钮,390 × 844。06-after-history-start-picker-desktop.png:优化后首次查询即可选择授权车辆,1440 × 900。07-before-after-history-entry-comparison.jpg:同视口首次查询状态前后并排比较。
验证
HistoryPage.test.tsx:42/42。- Web 正式测试:506/506。
- Go API:
go test ./...全部通过。 - 生产构建:
web_build_gate=ok,开放平台前端及三个 Go 二进制同时构建通过。 - 真实交互:直接添加第二辆授权车辆后,查询条件提示出现且原 36 条结果保持可辨识;恢复后第二辆车和提示均消失。
无障碍边界
- 车辆输入保留显式文本标签,并通过
aria-expanded、aria-controls与listbox/option语义暴露候选状态。 - 未应用条件提示使用
role="status",恢复动作是可聚焦按钮;移动端主要操作保持在固定底栏。 - 本轮通过 DOM 无障碍快照、语义角色与可达控件检查;尚未执行独立读屏软件的端到端人工朗读测试。