diff --git a/src/stores/modules/uiStore.js b/src/stores/modules/uiStore.js index 3b31f28..3011f47 100644 --- a/src/stores/modules/uiStore.js +++ b/src/stores/modules/uiStore.js @@ -13,6 +13,13 @@ export const useUiStore = defineStore('ui', () => { checks = ['设备在线', '无活动告警', '指令互斥检查'] ) { return new Promise((resolve) => { + let settled = false + const settle = (value) => { + if (settled) return + settled = true + resolve(value) + } + const list = Array.isArray(checks) ? checks.filter(Boolean) : [] const body = list.length ? () => @@ -32,18 +39,23 @@ export const useUiStore = defineStore('ui', () => { confirmBtn: '确认执行', cancelBtn: '取消', theme: 'warning', + destroyOnClose: true, onConfirm: () => { dialog.hide() - resolve(true) + settle(true) }, + // 自定义 onClose 会覆盖插件默认关窗;取消/关闭都必须自行 hide onClose: () => { - resolve(false) + dialog.hide() + settle(false) }, onCloseBtnClick: () => { - resolve(false) + dialog.hide() + settle(false) }, onCancel: () => { - resolve(false) + dialog.hide() + settle(false) }, }) })