// dialogPlugin.js
import Vue from 'vue';
import { Dialog } from 'element-ui';
let DialogConstructor = Vue.extend(Dialog);
let dialogInstance = null;
function showDialog(options) {
// 如果已经存在一个Dialog实例,则先关闭它
if (dialogInstance && dialogInstance.close) {
dialogInstance.close();
}
dialogInstance = new DialogConstructor({
propsData: {
title: options.title || '提示',
visible: true,
width: options.width || '50%',
// 其他你需要的props属性...
},
});
// 挂载到body上
let div = document.createElement('div');
document.body.appendChild(div);
dialogInstance.$mount(div);
// 添加关闭事件监听,以便在关闭后销毁实例
dialogInstance.$once('update:visible', (newVal) => {
if (!newVal) {
dialogInstance.$destroy();
document.body.removeChild(div);
dialogInstance = null;
封装一个函数式调用的el-dialog弹窗组件
最新推荐文章于 2025-04-29 18:30:36 发布