|
@@ -100,12 +100,15 @@ export const unSetModelUpdate = (run: () => void) => {
|
|
|
nextTick(() => isUnset = false)
|
|
|
}
|
|
|
export const autoSetModeCallback = <T extends object>(current: T, setting: AutoSetModeSetting<T>, last = true) => {
|
|
|
+ let isLeaveIng = false
|
|
|
let isSave = false
|
|
|
const leaveCallback = (setting.recovery || setting.backup)
|
|
|
- && (() => {
|
|
|
- setting.recovery && setting.recovery()
|
|
|
- setting.backup && setting.backup()
|
|
|
- setting.leave && setting.leave()
|
|
|
+ && (async () => {
|
|
|
+ isLeaveIng = true
|
|
|
+ setting.recovery && await setting.recovery()
|
|
|
+ setting.backup && await setting.backup()
|
|
|
+ setting.leave && await setting.leave()
|
|
|
+ isLeaveIng = false
|
|
|
})
|
|
|
|
|
|
const saveCallback = async () => {
|
|
@@ -117,7 +120,7 @@ export const autoSetModeCallback = <T extends object>(current: T, setting: AutoS
|
|
|
}
|
|
|
|
|
|
const handler = (newv: UnwrapRef<T>, oldv?: UnwrapRef<T>) => {
|
|
|
- if (isSave || isUnset) return
|
|
|
+ if (isSave || isUnset || isLeaveIng) return
|
|
|
if (!setting.isUpdate || setting.isUpdate(newv, oldv)) {
|
|
|
isEdit.value || enterEdit()
|
|
|
isOld.value || enterOld()
|