fix: 监控页任务概况去掉「编辑/删除」,只留执行/停用 + 显示覆盖设备

监控页的任务卡片原来带「编辑」,但 openTaskModal 依赖 _taskTypes/_groupsList/
_devicesList,这三个列表只在任务 Tab 的 loadTasks() 里加载——从监控页直接点编辑,
下拉框是空的(这就是"编辑有问题")。按需求把编辑/删除从监控页移除(编辑统一去任务 Tab),
每张卡片只留:执行任务 + 停用任务/启用任务。

并给卡片加「覆盖设备」一行:
- 后端 /api/jobs(含 POST/PUT 返回的 job)新增 coverage = {mode, serials, total}:
  按 target 定义解析(all=设备池全量 / group=分组∩设备池 / serial=该设备),
  不做离线过滤、不写调度日志(该接口每 5s 轮询),与调度用的 resolve_serials 口径差异已写入文档
- 前端用已在手的 /api/status 标注在线状态,渲染成彩色 chip:
  在线=蓝、运行中=黄+⏳、离线或不在池=灰划线+✕,完整 serial/型号放 tooltip
- 文档:API.md §5 补 coverage 字段与三种模式口径、ARCHITECTURE §5.1 补卡片说明

自测:coverage 三种模式端到端(含分组过滤池外 serial)全通过;Edge headless 验卡片
(2 个按钮、无编辑/删除、chip 文案/样式/tooltip)全通过;离线分支与任务 Tab 编辑器回归通过
This commit is contained in:
2026-09-10 21:15:23 +08:00
parent d40c867d6f
commit 86c65236a2
5 changed files with 98 additions and 5 deletions
+16 -1
View File
@@ -266,12 +266,27 @@
{
"ok": true,
"jobs": [{"id": "abc123", "name": "抖音养号", "task_type": "douyin_nurture",
"next_run": "2026-08-12 09:00", "...": "..."}],
"next_run": "2026-08-12 09:00",
"coverage": {"mode": "all", "total": 3,
"serials": ["192.168.20.206:5555", "..."]},
"...": "..."}],
"task_types": [...]
}
```
`next_run`:下次真正执行时间(已按运行窗口跳过窗口外触发点,格式 `YYYY-MM-DD HH:MM`);手动任务/已停用为 `null`。
`coverage`:**任务覆盖的设备**(监控页「任务运行概况」展示用,每次请求现算)。按 `target` 定义解析,
不因设备当前是否空闲而变(在线/运行中由前端拿 `/api/status` 标注),也不做离线过滤、不写调度日志:
| target.mode | coverage.serials |
|------|------|
| `all` | 设备池全部启用设备 |
| `group` | 该分组的 serial ∩ 设备池启用设备(池外的手填 IP 不计入,与调度口径一致) |
| `serial` | 仅该 serial(即使不在池中也照实返回) |
> 口径差异:真正调度时走 `TaskJob.resolve_serials()`(`all` 取"池内∩在线"、并跳过离线设备);
> `coverage` 是**定义层**的覆盖面,供人看"这台任务管哪些设备"。POST/PUT 的 `job` 里同样带 `coverage`。
### POST /api/jobs
创建任务计划。
+7
View File
@@ -320,6 +320,13 @@ tasks/douyin/actions/like.py — @register_action(ACTIONS) LikeAction
- **数据获取**:`fetch()` 调 JSON API,5 秒轮询 `/api/status`
- **状态渲染**:设备表格、任务卡片、进度条、徽章,纯 DOM 操作
**监控页「任务运行概况」卡片(2026-09-10 收敛)**:每张卡片只保留两个操作——**执行任务**(`POST /api/jobs/:id/run`)
与**停用任务/启用任务**(`POST /api/jobs/:id/toggle`,按当前状态切换文案);原"编辑/删除"已移除
(编辑与删除统一去「任务」Tab 操作,避免监控页误删)。卡片新增**覆盖设备**一行:设备清单来自
`/api/jobs` 的 `coverage`(后端按 target 定义解析,见 [API.md](API.md) §5),在线/运行中状态由前端
用已在手的 `/api/status` 数据标注成彩色 chip(在线=蓝、运行中=黄+⏳、离线或不在池=灰划线+✕,
完整 serial 与型号放 tooltip)。
### 5.2 步骤编辑器
`generic_steps` 任务的步骤编辑器(任务弹窗已加宽到 1000px):