export default function createDialogFun (Component) {
return (options) => {
return new Promise((resolve, reject) => {
const ComponentConstructor = Vue.extend(Component);
ComponentConstructor.prototype.$resolve = function (params) {
destroyInstance();
resolve(params);
};
ComponentConstructor.prototype.$reject = function (params) {
destroyInstance();
reject(params);
};
let instance = new ComponentConstructor(Object.assign({ el: document.createElement('div'), i18n }, options));
function destroyInstance () {
document.body.removeChild(instance.$el);
instance.$destroy();
instance = null;
}
document.body.appendChild(instance.$el);
});
}
}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…