This commit is contained in:
oneao committed 2025-09-18 17:28:22 +08:00
1 parent 8eedf281fd
commit 35bc29f356
13 files changed
+675 -171

No files matched your search

@@ -21,7 +21,9 @@ export default defineComponent({
required: false,
},
beforeConfirm: {
type: Function as PropType<() => boolean | Promise<boolean>>,
type: Function as PropType<
(done: (ok: boolean) => void) => void | boolean | Promise<boolean>
>,
},
confirmBtn: {
type: null,
@@ -68,11 +70,27 @@ export default defineComponent({
}
const handleConfirm = async () => {
confirmLoading.value = true
let allow = true
if (props.beforeConfirm) {
allow = await Promise.resolve(props.beforeConfirm())
confirmLoading.value = true
try {
allow = await new Promise<boolean>((resolve) => {
const result = props.beforeConfirm!(ok => resolve(ok))
if (typeof result === 'boolean') {
resolve(result)
}
else if (result instanceof Promise) {
result.then(ok => resolve(ok)).catch(() => resolve(false))
}
// 如果是用 done 回调,就等调用方触发 resolve
})
}
catch {
allow = false
}
}
if (allow) {