From e73f1ffe8d06da3192e6312a65e0699483f11579 Mon Sep 17 00:00:00 2001 From: hub-gif <2487812171@qq.com> Date: Tue, 14 Apr 2026 14:56:20 +0800 Subject: [PATCH] fix(ui): add clear local lock for regenerate-report button Made-with: Cursor --- .../src/composables/useGenerationInFlight.js | 20 ++++++++++++++++ frontend/src/views/jd/JdAnalysisBuildView.vue | 23 +++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/frontend/src/composables/useGenerationInFlight.js b/frontend/src/composables/useGenerationInFlight.js index d9d9b44..28c12d4 100644 --- a/frontend/src/composables/useGenerationInFlight.js +++ b/frontend/src/composables/useGenerationInFlight.js @@ -70,6 +70,26 @@ export function generationInFlightKey() { return inFlightKeys } +/** + * 清空本地「进行中」标记(sessionStorage + 内存)。 + * 用于断网/关页后误锁导致按钮长期灰显时手动恢复;若服务端仍在跑请勿点。 + */ +export function clearGenerationInFlightState() { + inFlightKeys.value = [] + writePersistedKeys([]) +} + +const REGEN_REPORT_PREFIX = 'regenerate-report:' + +/** + * 仅移除「重新生成报告」相关的进行中 key,不影响策略生成、报告预览等其它并行锁。 + */ +export function clearRegenerateReportInFlightOnly() { + const next = inFlightKeys.value.filter((k) => !String(k).startsWith(REGEN_REPORT_PREFIX)) + inFlightKeys.value = next + writePersistedKeys(next) +} + function addInFlightKey(key) { const cur = inFlightKeys.value if (cur.includes(key)) return diff --git a/frontend/src/views/jd/JdAnalysisBuildView.vue b/frontend/src/views/jd/JdAnalysisBuildView.vue index 5f8c95e..492dd87 100644 --- a/frontend/src/views/jd/JdAnalysisBuildView.vue +++ b/frontend/src/views/jd/JdAnalysisBuildView.vue @@ -1,6 +1,7 @@