页面混显三种来源却只有 goodsId 和状态两个筛选,批量取消时无法限定范围。 - 服务端 AdminList 增加 source 过滤,非法值报参数错误而非静默忽略。 - 前端增加来源筛选与来源列;状态补 cancelled(info 色,取消不是错误,不与 failed 共用红色)。 - 「取消未开始的任务」按钮带实时数量,确认框列出将被取消的任务,并写明范围是 整个筛选条件而非当前页。hasMore 时提示还有未处理的任务。 `[必须]` 取消范围包含 goodsId。少了这一维,按 goods_id 筛出两条、按钮却取消 三十几条——那正是当初放弃「两个固定按钮」、改用「筛选 + 一个按钮」想避免的事。 BatchCancel 的 goodsId 与 AdminList 用同一种匹配方式,否则两边范围会悄悄错开。 实施:sonnet 子代理;goodsId 范围一致性由复核补入。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NTDbDcwbDw1TSAcE6wfh2F