Files
2026-07-27 16:46:15 +08:00

77 lines
5.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 历史任务取消与自动化复制连续性
## 目标与结论
本轮沿用车辆数据中台现有的白色工作区、蓝色主操作、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`