5.6 KiB
5.6 KiB
历史任务取消与自动化复制连续性
目标与结论
本轮沿用车辆数据中台现有的白色工作区、蓝色主操作、SideSheet / Dialog 和移动端 bottom sheet 体系,没有引入新的视觉语言。核心结果是:历史大任务不再只能等待,值守人员可以安全取消并释放单并发执行位;自动化不再需要重复录入相似规则,可以从既有规则创建默认停用的副本,并在发布前看到版本来源与实质差异。
整体健康度:通过。桌面 1440 × 900 与移动端 390 × 844 均完成真实交互验收,取消和复制请求都在本地真实页面中执行成功。
当前流程审计
审计前证据位于 audit-before/:
- 历史任务只有进度、下载和失败重试,排队/执行中任务没有终止入口。
- 自动化详情只有启停与编辑,相似规则必须重新录入。
- 发布页只有样例测试,没有线上版本对比、变更数或副本安全状态。
实现结果
历史导出
- 排队中和执行中的任务提供明确“取消”操作,先展示任务、已处理行数、不生成文件、释放执行位等影响。
- API 新增
POST /api/v2/exports/{id}/cancel;仅任务 owner 或管理员可取消,重复取消幂等。 - 取消后保留原范围、处理进度、取消人、取消时间和审计证据,不生成下载地址,也不会被后台进度更新重新改写。
- 排队任务取消后不会启动;执行中任务会停止后续批次并清理临时文件。
- 任务筛选支持
cancelled,桌面和移动端都能清楚区分“已取消”和“失败”。
事件自动化
- 桌面详情和移动端规则卡片都提供复制入口;移动端复制按钮为 42 × 42px,并有完整可访问名称。
- 副本继承事件、范围、动作、恢复和冷却配置,自动加“(副本)”,版本从 0 创建,默认停用且不改变源规则。
- 发布页显示源规则版本、发布后版本、实质变更数,以及旧值 → 新值;线上配置未变化时不允许发布空版本。
- 移动端发布页改为单一连续滚动流,配置摘要、样例测试和执行跟踪都能到达,底部操作固定。
- 复制按钮的屏幕阅读器名称从图标混入的“copy 复制自动化”收敛为稳定的“复制自动化”。
真实工作流与健康度
- 查看活动导出任务 — 通过:入口与原 SideSheet 信息结构一致,新增取消按钮没有挤压任务名称、进度和下载操作。
- 确认取消影响 — 通过:二次确认同时回答“取消谁、停止什么、队列如何变化、审计是否保留”。
- 完成取消并追溯 — 通过:任务原位变成“已取消”,处理进度与取消人继续可见,下载入口消失。
- 从现有自动化创建副本 — 通过:桌面和移动端均可直接复制;源 v7 规则保持启用,新副本保持停用。
- 审阅、测试并创建 — 通过:发布影响先展示,样例测试成功后才启用“创建副本”;真实创建后列表由 2 条变为 3 条。
截图证据
| 状态 | 桌面 | 移动端 |
|---|---|---|
| 历史取消入口 / 结果 | 取消入口、影响确认 | 已取消状态 |
| 自动化复制入口 | 详情入口 | 卡片入口 |
| 发布差异与样例测试 | 桌面发布审阅 | 移动端发布审阅 |
视觉一致性记录
对照已接受的审计前截图和本轮实现截图逐项检查:
- 布局:保留历史右侧 SideSheet 与自动化“列表 + 详情”骨架;新增信息只进入已有动作区和近全屏编辑器。
- 组件:继续使用现有 Button、Tag、Switch、Dialog、SideSheet、Card 与确认摘要组件。
- 视觉:蓝色代表主要操作,绿色代表成功/启用,暖红代表取消风险,灰色代表已取消终态。
- 密度:桌面发布页一屏展示步骤、发布影响、摘要与测试;移动端采用一个内容滚动区和固定底部操作,不产生嵌套页面滚动。
- 响应式: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。