From 3e95cf208de67a90cdfe00b1f7bcbf18736a6b35 Mon Sep 17 00:00:00 2001 From: yml2213 Date: Sat, 1 Aug 2026 13:06:34 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=88=B7=E6=96=B0=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E5=90=8E=E5=81=9C=E6=AD=A2=E6=8C=89=E9=92=AE=E6=B6=88?= =?UTF-8?q?=E5=A4=B1=EF=BC=9A=E4=BB=8E=E5=90=8E=E7=AB=AF=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E6=B4=BE=E7=94=9F=20activeBatchIds=20=E9=A9=B1=E5=8A=A8?= =?UTF-8?q?=E5=81=9C=E6=AD=A2=E6=8C=89=E9=92=AE=E6=98=BE=E7=A4=BA=E4=B8=8E?= =?UTF-8?q?=E5=81=9C=E6=AD=A2=E7=9B=AE=E6=A0=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/frontend/src/pages/DouyuTasksPage.tsx | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/web/frontend/src/pages/DouyuTasksPage.tsx b/web/frontend/src/pages/DouyuTasksPage.tsx index 3fc5cf3..ba06338 100644 --- a/web/frontend/src/pages/DouyuTasksPage.tsx +++ b/web/frontend/src/pages/DouyuTasksPage.tsx @@ -447,6 +447,17 @@ export default function DouyuTasksPage({ handbook }: { handbook: HandbookKind }) return set; }, [visibleTasks]); + // 从后端任务派生正在运行的批次 ID(刷新页面后仍可恢复,用于显示停止按钮) + const activeBatchIds = useMemo(() => { + const set = new Set(); + for (const task of visibleTasks) { + if (['pending', 'running', 'planned'].includes(task.status) && task.batch_id) { + set.add(task.batch_id); + } + } + return set; + }, [visibleTasks]); + const selectedHasRunning = selectedIds.some((id) => runningAccountIds.has(id)); // 有活跃任务或 WS 连接时 3 秒刷 tasks;空闲 15 秒轻量刷新 @@ -595,9 +606,10 @@ export default function DouyuTasksPage({ handbook }: { handbook: HandbookKind }) }; const stopBatch = async () => { - if (runningBatchIds.size === 0) return; + const ids = Array.from(new Set([...runningBatchIds, ...activeBatchIds])); + if (ids.length === 0) return; try { - await Promise.all(Array.from(runningBatchIds).map((id) => douyuApi.stopBatch(id))); + await Promise.all(ids.map((id) => douyuApi.stopBatch(id))); message.success('已停止'); } catch (error) { message.error(getErrorMessage(error)); @@ -1122,7 +1134,7 @@ export default function DouyuTasksPage({ handbook }: { handbook: HandbookKind }) {canConfig && } - {runningBatchIds.size > 0 && } + {(activeBatchIds.size > 0 || runningBatchIds.size > 0) && }