在vue3中使用全局弹窗 样式比较简单 一左一右两个按钮 确认取消 支持传参 用this.$pop()这样的形式调用 就像uni中的一样
建一个工具js
import PopTemplate from '../plugins/pop/Template'
import {
createApp} from 'vue'
export default{
install: (app) => {
// 弹窗
app.config.globalProperties.$pop = function (content, options) {
// 默认配置
var defaultConfig = {
// 标题
title: "",
// 左侧按钮信息
left: {
// 是否显示
show: true,
// 内容
text: '取消',
// 回调
callback: null
},
// 右侧按钮信息
right: {
// 是否显示
show: true,
// 内容
text: '确认',
// 回调
callback: null
},
// 传参
params: {
}
}
if (typeof options != "undefined") {
options.left = Object.assign(defaultConfig.left, options.left)
options.right = Object.assign(defaultConfig.right, options.right)
}
const mountNode = document.createElement('div')
document.body.appendChild(mountNode)
var config = Object.assign(defaultConfig, options)
var pop = createApp(PopTemplate)
pop.mixin({
data() {
return {
content: content,
title: config.title,
left: config.left,
right: config.right,
params: config.params
}
},
methods: {