From 47b3d0bf03a645628b725be7143eb0270839c95c Mon Sep 17 00:00:00 2001 From: butubb <1422726308@qq.com> Date: Sat, 8 Aug 2026 16:57:40 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=9B=91=E6=8E=A7=E8=BF=9B=E5=BA=A6?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E4=BC=98=E5=8C=96=20-=20=E9=80=9A=E7=94=A8?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E6=94=B9=E4=B8=BA"=E5=B7=B2=E6=89=A7?= =?UTF-8?q?=E8=A1=8C=E6=93=8D=E4=BD=9C=E6=95=B0"=EF=BC=8C=E6=93=8D?= =?UTF-8?q?=E4=BD=9C=E8=AE=A1=E6=95=B0=E7=B4=A7=E5=87=91=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 通用步骤任务进度语义:done=累计执行操作次数,不再配固定 total(原来显示 33/2 步骤 无意义) - 前端操作计数徽章按数量降序、最多显示6个,超出折叠为 +N - 移除无意义的百分比进度条(无固定总数时不显示) --- tasks/generic/task.py | 5 +++-- templates/admin/monitor.html | 15 +++++++++++---- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/tasks/generic/task.py b/tasks/generic/task.py index fada0e5..959b62f 100644 --- a/tasks/generic/task.py +++ b/tasks/generic/task.py @@ -88,7 +88,7 @@ class GenericStepsWorker(BaseWorker): """按 steps 顺序执行。loop 步骤递归执行其 children。""" self._start_timer() self.set_action("开始执行步骤链") - self.set_progress(done=0, total=len(self.steps), unit="步骤", + self.set_progress(done=0, total=0, unit="操作", action_counts=dict(self._action_counts)) try: @@ -131,8 +131,9 @@ class GenericStepsWorker(BaseWorker): _log.warning(f"[{self.serial}] 未知步骤类型: {stype}") self._action_counts[label] = self._action_counts.get(label, 0) + 1 elapsed = self.elapsed() + # done=累计执行的操作次数(无固定总数),前端显示"已执行 N 次操作" self.set_progress(done=sum(self._action_counts.values()), - total=len(self.steps), unit="步骤", + total=0, unit="操作", action_counts=dict(self._action_counts), elapsed=elapsed) # ================== 步骤执行器 ================== diff --git a/templates/admin/monitor.html b/templates/admin/monitor.html index 7368402..8561516 100644 --- a/templates/admin/monitor.html +++ b/templates/admin/monitor.html @@ -953,10 +953,17 @@ function fmtProgress(progress, workerStatus){ const m=Math.floor(elapsed/60), s=elapsed%60; timeHtml=' '+m+'m'+s+'s'; } - // 操作计数徽章(仅显示 >0 的) - const countParts=Object.entries(counts).filter(([_,v])=>v>0).map(([k,v])=> - ''+(ACTION_LABELS[k]||esc(k))+' '+v+''); - const countsHtml=countParts.length?'