fix: update patrol delete progress handling

This commit is contained in:
koko
2026-05-02 02:03:49 +08:00
parent 34148b5d8a
commit 7968cef8c3
45 changed files with 373 additions and 218 deletions

View File

@@ -60,7 +60,12 @@
</el-table>
</div>
<div class="section-title">删除条件</div>
<div class="section-title condition-title">
<span>删除条件</span>
<span class="condition-title-hint">
注意删除条件的描述需要和页面描述一致
</span>
</div>
<div class="condition-panel">
<div class="condition-input-row">
<el-input
@@ -823,13 +828,14 @@ async function refreshActiveTaskProgress(taskIds?: number[]) {
),
);
if (!ids.length) {
return;
return [];
}
const batch = await getPatrolDeleteTaskProgressBatch(ids);
mergeHistoryProgressItems(batch.items || []);
if ((batch.missingTaskIds || []).length) {
await loadHistory();
}
return batch.missingTaskIds || [];
}
function startHistoryPolling() {
@@ -1029,7 +1035,11 @@ async function waitForTaskTerminal(taskId: number) {
if (disposed) return "STOPPED";
if (activeTaskId.value !== taskId) return "DELETED";
try {
await refreshActiveTaskProgress([taskId]);
const missingTaskIds = await refreshActiveTaskProgress([taskId]);
if (missingTaskIds.includes(taskId)) {
clearActiveQueueTask();
return "DELETED";
}
if (activeTaskId.value !== taskId) return "DELETED";
if (transientErrorCount > 0) {
queuePushResult.value = `任务 ${taskId} 后端已恢复,继续等待执行结果...`;
@@ -1236,6 +1246,8 @@ onUnmounted(() => {
.left-panel { width: 400px; background: #1e1e1e; padding: 20px; overflow-y: auto; border-right: 1px solid #2a2a2a; }
.right-panel { flex: 1; display: flex; flex-direction: column; min-width: 0; background: #1a1a1a; }
.section-title { font-size: 13px; color: #bbb; margin-bottom: 10px; }
.condition-title { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.condition-title-hint { flex: 1; min-width: 0; color: #d6a95a; font-size: 12px; text-align: right; line-height: 1.35; }
.input-zone { border: 1px dashed #3a3a3a; border-radius: 10px; padding: 16px; background: #252525; margin-bottom: 20px; }
.hint { color: #888; font-size: 12px; margin-bottom: 12px; line-height: 1.5; text-align: left; }
.input-row { display: flex; gap: 10px; align-items: center; }