修复: CR-31 useConfirm 并发覆盖 resolve+ToolCardList 对称清 expandedTools

①useConfirm confirmDialog 进入时先 resolve?.(false) 打断前一个(连点删除/confirm 交错时前一个 Promise 永挂,resolve 被覆盖静默中断+内存泄漏),视为取消;②ToolCardList collapseInactive 对称过滤 expandedTools(原只清 expandedCards,expandedTools 残留致已完成卡片折叠后内容展开态)。cron 巡检捕获走查第8轮 CR-31,vue-tsc 0
This commit is contained in:
2026-06-15 09:17:21 +08:00
parent 6116c9bb4a
commit 2ddd2940cc
2 changed files with 7 additions and 0 deletions

View File

@@ -34,6 +34,9 @@ export function useConfirm() {
function confirmDialog(msg: string): Promise<boolean> {
return new Promise(resolve => {
// CR-260615-31:并发覆盖前一个 confirmDialog(连点删除/confirm 交错)时,
// 前一个 Promise 永挂(resolve 被覆盖)→ 先 resolve?.(false) 打断前一个视为取消
confirmState.value.resolve?.(false)
confirmState.value.msg = msg
confirmState.value.visible = true
confirmState.value.resolve = resolve