diff --git a/src/mixins/popup/context.ts b/src/mixins/popup/context.ts index 6ab98f914..9935a3768 100644 --- a/src/mixins/popup/context.ts +++ b/src/mixins/popup/context.ts @@ -13,4 +13,12 @@ export const context = { find(vm: any): StackItem | undefined { return this.stack.filter((item) => item.vm === vm)[0]; }, + remove: function remove(vm: any) { + const item = this.find(vm); + if(!item) return; + item.vm = null; + item.overlay = null; + const index = this.stack.indexOf(item); + this.stack.splice(index, 1); + }, }; diff --git a/src/mixins/popup/overlay.ts b/src/mixins/popup/overlay.ts index 1d5d86f6a..c4345d4f9 100644 --- a/src/mixins/popup/overlay.ts +++ b/src/mixins/popup/overlay.ts @@ -73,5 +73,6 @@ export function removeOverlay(vm: any) { const item = context.find(vm); if (item) { removeNode(item.overlay.$el); + context.remove(vm); } }