From b2cf1d1eb2e09ce27d517fda81e97ad29f12301d Mon Sep 17 00:00:00 2001 From: cookfront Date: Fri, 10 Mar 2017 17:16:22 +0800 Subject: [PATCH] fix popup --- src/mixins/popup/index.js | 16 ++++++++++++++-- src/mixins/popup/popup-manager.js | 20 ++++++++++++-------- 2 files changed, 26 insertions(+), 10 deletions(-) diff --git a/src/mixins/popup/index.js b/src/mixins/popup/index.js index db8870947..b7a9a7741 100644 --- a/src/mixins/popup/index.js +++ b/src/mixins/popup/index.js @@ -1,7 +1,19 @@ +import Vue from 'vue'; import merge from 'src/utils/merge'; import PopupManager from './popup-manager'; -let idSeed = 1; +let popupContext; +if (Vue.prototype.$isServer) { + popupContext = global.popupContext || {}; + global.popupContext = popupContext; +} else { + popupContext = window.popupContext || {}; + window.popupContext = popupContext; +} + +popupContext = merge(popupContext, { + idSeed: 1 +}); const getDOM = function(dom) { if (dom.nodeType === 3) { @@ -58,7 +70,7 @@ export default { }, beforeMount() { - this._popupId = 'popup-' + idSeed++; + this._popupId = 'popup-' + popupContext.idSeed++; PopupManager.register(this._popupId, this); }, diff --git a/src/mixins/popup/popup-manager.js b/src/mixins/popup/popup-manager.js index 7cdbf0f42..4fea88a08 100644 --- a/src/mixins/popup/popup-manager.js +++ b/src/mixins/popup/popup-manager.js @@ -1,17 +1,21 @@ import Vue from 'vue'; +import merge from 'src/utils/merge'; import { addClass } from 'src/utils/dom'; -let popupContext = { +let popupContext; +if (Vue.prototype.$isServer) { + popupContext = global.popupContext || {}; + global.popupContext = popupContext; +} else { + popupContext = window.popupContext || {}; + window.popupContext = popupContext; +} + +popupContext = merge(popupContext, { hasModal: false, instances: {}, modalStack: [] -}; - -if (Vue.prototype.$isServer) { - global.popupContext = popupContext; -} else { - window.popupContext = popupContext; -} +}); const getModal = function() { let modalDom = PopupManager.modalDom;