diff --git a/packages/@core/ui-kit/popup-ui/src/drawer/use-drawer.ts b/packages/@core/ui-kit/popup-ui/src/drawer/use-drawer.ts index ee99ca72..35294758 100644 --- a/packages/@core/ui-kit/popup-ui/src/drawer/use-drawer.ts +++ b/packages/@core/ui-kit/popup-ui/src/drawer/use-drawer.ts @@ -9,6 +9,7 @@ import { h, inject, nextTick, + onDeactivated, provide, reactive, ref, @@ -70,6 +71,14 @@ export function useVbenDrawer< inheritAttrs: false, }, ); + + /** + * 在开启keepAlive情况下 直接通过浏览器按钮/手势等返回 不会关闭弹窗 + */ + onDeactivated(() => { + (extendedApi as ExtendedDrawerApi)?.close?.(); + }); + return [Drawer, extendedApi as ExtendedDrawerApi] as const; } diff --git a/packages/@core/ui-kit/popup-ui/src/modal/use-modal.ts b/packages/@core/ui-kit/popup-ui/src/modal/use-modal.ts index 8726b556..048243da 100644 --- a/packages/@core/ui-kit/popup-ui/src/modal/use-modal.ts +++ b/packages/@core/ui-kit/popup-ui/src/modal/use-modal.ts @@ -5,6 +5,7 @@ import { h, inject, nextTick, + onDeactivated, provide, reactive, ref, @@ -69,6 +70,14 @@ export function useVbenModal( inheritAttrs: false, }, ); + + /** + * 在开启keepAlive情况下 直接通过浏览器按钮/手势等返回 不会关闭弹窗 + */ + onDeactivated(() => { + (extendedApi as ExtendedModalApi)?.close?.(); + }); + return [Modal, extendedApi as ExtendedModalApi] as const; }