feat: expand vehicle data platform capabilities

This commit is contained in:
lingniu
2026-07-27 16:46:15 +08:00
parent e3a1f80f86
commit 3c4bece72c
650 changed files with 62155 additions and 2552 deletions

View File

@@ -0,0 +1,76 @@
# 历史任务取消与自动化复制连续性
## 目标与结论
本轮沿用车辆数据中台现有的白色工作区、蓝色主操作、SideSheet / Dialog 和移动端 bottom sheet 体系,没有引入新的视觉语言。核心结果是:历史大任务不再只能等待,值守人员可以安全取消并释放单并发执行位;自动化不再需要重复录入相似规则,可以从既有规则创建默认停用的副本,并在发布前看到版本来源与实质差异。
整体健康度:**通过**。桌面 1440 × 900 与移动端 390 × 844 均完成真实交互验收,取消和复制请求都在本地真实页面中执行成功。
## 当前流程审计
审计前证据位于 [`audit-before/`](./audit-before/)
- 历史任务只有进度、下载和失败重试,排队/执行中任务没有终止入口。
- 自动化详情只有启停与编辑,相似规则必须重新录入。
- 发布页只有样例测试,没有线上版本对比、变更数或副本安全状态。
## 实现结果
### 历史导出
- 排队中和执行中的任务提供明确“取消”操作,先展示任务、已处理行数、不生成文件、释放执行位等影响。
- API 新增 `POST /api/v2/exports/{id}/cancel`;仅任务 owner 或管理员可取消,重复取消幂等。
- 取消后保留原范围、处理进度、取消人、取消时间和审计证据,不生成下载地址,也不会被后台进度更新重新改写。
- 排队任务取消后不会启动;执行中任务会停止后续批次并清理临时文件。
- 任务筛选支持 `cancelled`,桌面和移动端都能清楚区分“已取消”和“失败”。
### 事件自动化
- 桌面详情和移动端规则卡片都提供复制入口;移动端复制按钮为 42 × 42px并有完整可访问名称。
- 副本继承事件、范围、动作、恢复和冷却配置,自动加“(副本)”,版本从 0 创建,默认停用且不改变源规则。
- 发布页显示源规则版本、发布后版本、实质变更数,以及旧值 → 新值;线上配置未变化时不允许发布空版本。
- 移动端发布页改为单一连续滚动流,配置摘要、样例测试和执行跟踪都能到达,底部操作固定。
- 复制按钮的屏幕阅读器名称从图标混入的“copy 复制自动化”收敛为稳定的“复制自动化”。
## 真实工作流与健康度
1. **查看活动导出任务 — 通过**:入口与原 SideSheet 信息结构一致,新增取消按钮没有挤压任务名称、进度和下载操作。
2. **确认取消影响 — 通过**:二次确认同时回答“取消谁、停止什么、队列如何变化、审计是否保留”。
3. **完成取消并追溯 — 通过**:任务原位变成“已取消”,处理进度与取消人继续可见,下载入口消失。
4. **从现有自动化创建副本 — 通过**:桌面和移动端均可直接复制;源 v7 规则保持启用,新副本保持停用。
5. **审阅、测试并创建 — 通过**:发布影响先展示,样例测试成功后才启用“创建副本”;真实创建后列表由 2 条变为 3 条。
## 截图证据
| 状态 | 桌面 | 移动端 |
| --- | --- | --- |
| 历史取消入口 / 结果 | [取消入口](./01-history-cancel-entry-desktop.jpg)、[影响确认](./02-history-cancel-confirm-desktop.jpg) | [已取消状态](./03-history-cancelled-mobile.jpg) |
| 自动化复制入口 | [详情入口](./04-automation-copy-entry-desktop.jpg) | [卡片入口](./06-automation-copy-entry-mobile.jpg) |
| 发布差异与样例测试 | [桌面发布审阅](./05-automation-copy-review-desktop.jpg) | [移动端发布审阅](./07-automation-copy-review-mobile.jpg) |
## 视觉一致性记录
对照已接受的审计前截图和本轮实现截图逐项检查:
1. **布局**:保留历史右侧 SideSheet 与自动化“列表 + 详情”骨架;新增信息只进入已有动作区和近全屏编辑器。
2. **组件**:继续使用现有 Button、Tag、Switch、Dialog、SideSheet、Card 与确认摘要组件。
3. **视觉**:蓝色代表主要操作,绿色代表成功/启用,暖红代表取消风险,灰色代表已取消终态。
4. **密度**:桌面发布页一屏展示步骤、发布影响、摘要与测试;移动端采用一个内容滚动区和固定底部操作,不产生嵌套页面滚动。
5. **响应式**1440 × 900 保留完整详情390 × 844 将复制动作收敛为带可访问名称的 42px 图标按钮。
首屏文案变化仅限任务动作:历史任务新增“取消 / 已取消”,自动化新增“复制自动化 / 发布影响 / 副本将保持停用”。全局标题、导航、模块说明和原有查询文案均未改写。
## 无障碍与限制
- 新增取消、复制、关闭、测试和发布动作均具备可访问名称;危险操作有独立确认对话框。
- 移动端新增操作满足至少 42px 触控目标;固定底部主操作避免长内容后难以提交。
- 当前截图未发现明显截断、横向溢出或不可见主要操作。
- 自动化测试和浏览器 DOM 验收覆盖角色、名称与状态,但截图无法证明所有颜色均达到 WCAG 对比度,也不能替代完整的键盘遍历、焦点顺序和真实读屏器人工测试。
## 验证
- 前端定向回归:`HistoryPage` + `AlertsPage`70 / 70 通过。
- 前端全量回归75 个文件452 / 452 通过。
- API 全量回归:`go test ./...` 通过;包含 owner 范围、幂等取消、排队任务不启动、下载禁止、审计与重启持久化。
- 生产构建TypeScript、Vite、发布资产校验全部通过`web_build_gate=ok`