Files
lingniu-vehicle-ingest/vehicle-data-platform/docs/design/history-query-density-audit-20260723

历史数据查询入口审计

审计日期2026-07-23

结论

  • 原入口只提供车牌/VIN 自由文本框,首次查询依赖用户记忆车辆标识;空状态的“选择车辆并查询”实际没有车辆选择能力。
  • 新入口直接查询账号授权车辆,支持车牌/VIN 模糊搜索与最多 5 辆多选;相同 VIN 的多个协议合并为一个候选,数据源与车辆查询共用 api.vehicles
  • 批量粘贴仍然保留,点选候选会规范化为 VIN避免同一车辆以车牌和 VIN 重复进入查询。
  • 修改车辆、时间、数据类型或协议后,下方结果继续保留但明确标记为上次查询结果,并提供“恢复已应用条件”,避免把旧数据误认为新条件的结果。
  • 移动端候选列表在筛选面板内独立滚动,固定底栏的“应用并查询”始终可见。

证据

  1. 01-before-history-start-desktop.png优化前首次查询状态1440 × 900。
  2. 02-before-history-results-desktop.png优化前已有结果状态1440 × 900。
  3. 03-after-history-vehicle-picker-desktop.png已有结果上展开授权车辆候选1440 × 900。
  4. 04-after-history-draft-notice-desktop.png添加第二辆车后旧结果与未应用条件被明确区分1440 × 900。
  5. 05-after-history-picker-mobile.png移动端候选列表与固定应用按钮390 × 844。
  6. 06-after-history-start-picker-desktop.png优化后首次查询即可选择授权车辆1440 × 900。
  7. 07-before-after-history-entry-comparison.jpg:同视口首次查询状态前后并排比较。

验证

  • HistoryPage.test.tsx42/42。
  • Web 正式测试506/506。
  • Go APIgo test ./... 全部通过。
  • 生产构建:web_build_gate=ok,开放平台前端及三个 Go 二进制同时构建通过。
  • 真实交互:直接添加第二辆授权车辆后,查询条件提示出现且原 36 条结果保持可辨识;恢复后第二辆车和提示均消失。

无障碍边界

  • 车辆输入保留显式文本标签,并通过 aria-expandedaria-controlslistbox / option 语义暴露候选状态。
  • 未应用条件提示使用 role="status",恢复动作是可聚焦按钮;移动端主要操作保持在固定底栏。
  • 本轮通过 DOM 无障碍快照、语义角色与可达控件检查;尚未执行独立读屏软件的端到端人工朗读测试。