From 74381aa8c1ba043b56d97227397fc95fa17bf6b0 Mon Sep 17 00:00:00 2001 From: yuhengshen Date: Thu, 22 Jan 2026 20:07:13 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=B5=8C=E5=A5=97=E5=BC=B9=E7=AA=97?= =?UTF-8?q?=EF=BC=8C=E9=94=99=E8=AF=AF=20merge=20options=20(#7126)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/@core/ui-kit/popup-ui/src/modal/use-modal.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) 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 0af484767..5385b2157 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 @@ -41,6 +41,7 @@ export function useVbenModal( // 不能用 Object.assign,会丢失 api 的原型函数 Object.setPrototypeOf(extendedApi, api); }, + consumed: false, options, async reCreateModal() { isModalReady.value = false; @@ -73,7 +74,13 @@ export function useVbenModal( return [Modal, extendedApi as ExtendedModalApi] as const; } - const injectData = inject(USER_MODAL_INJECT_KEY, {}); + let injectData = inject(USER_MODAL_INJECT_KEY, {}); + // 这个数据已经被使用了,说明这个弹窗是嵌套的弹窗,不应该merge上层的配置 + if (injectData.consumed) { + injectData = {}; + } else { + injectData.consumed = true; + } const mergedOptions = { ...DEFAULT_MODAL_PROPS,