feat: expand vehicle data platform capabilities
|
After Width: | Height: | Size: 83 KiB |
|
After Width: | Height: | Size: 141 KiB |
|
After Width: | Height: | Size: 140 KiB |
|
After Width: | Height: | Size: 131 KiB |
|
After Width: | Height: | Size: 38 KiB |
|
After Width: | Height: | Size: 89 KiB |
|
After Width: | Height: | Size: 213 KiB |
@@ -0,0 +1,35 @@
|
||||
# 历史数据查询入口审计
|
||||
|
||||
审计日期: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.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 无障碍快照、语义角色与可达控件检查;尚未执行独立读屏软件的端到端人工朗读测试。
|
||||