From 2746c7bdf0a13bda6dd2886cf4324f5aefb6656c Mon Sep 17 00:00:00 2001 From: dap <15891557205@163.com> Date: Tue, 27 Jan 2026 21:26:58 +0800 Subject: [PATCH] =?UTF-8?q?fix(workflow):=20=E4=BF=AE=E5=A4=8D=E5=AE=A1?= =?UTF-8?q?=E6=89=B9=E9=9D=A2=E6=9D=BF=E5=8A=A0=E8=BD=BD=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E9=97=AA=E7=83=81=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 引入防抖延迟设置 loading 状态,避免快速切换任务时出现闪烁 --- .../src/views/workflow/components/approval-panel.vue | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/apps/web-antd/src/views/workflow/components/approval-panel.vue b/apps/web-antd/src/views/workflow/components/approval-panel.vue index 4a067fdb..4d336ebe 100644 --- a/apps/web-antd/src/views/workflow/components/approval-panel.vue +++ b/apps/web-antd/src/views/workflow/components/approval-panel.vue @@ -89,12 +89,19 @@ const loading = ref(false); // 存放所有请求取消函数 const abortList: (() => void)[] = []; +let loadingTimer: ReturnType; + async function handleLoadInfo(task: TaskInfo | undefined) { + currentFlowInfo.value = undefined; + onlyForBtnPermissionTask.value = undefined; if (!task) { return null; } + clearTimeout(loadingTimer); try { - loading.value = true; + loadingTimer = setTimeout(() => { + loading.value = true; + }, 300); // 取消之前的请求 & 清空数组 abortList.forEach((abort) => abort()); abortList.length = 0; @@ -128,6 +135,7 @@ async function handleLoadInfo(task: TaskInfo | undefined) { } catch (error) { console.error(error); } finally { + clearTimeout(loadingTimer); loading.value = false; } }