drip-ui
Version:
Lightweight Mobile UI Components built on Vue
75 lines (60 loc) • 1.28 kB
JavaScript
import Vue from 'vue'
import DirpConfirm from './Confirm'
import {
isServer
} from '../utils'
let instance
const initInstance = () => {
instance = new(Vue.extend(DirpConfirm))({
el: document.createElement('div')
})
document.body.appendChild(instance.$el)
}
const Confirm = (options) => {
/* istanbul ignore if */
if (isServer) {
return
}
if (!instance) {
initInstance()
}
return Object.assign(instance, ...options)
}
Confirm.defaultOptions = {
visible: '',
content: '',
hideCancel: false,
hideConfirm: false,
cancelText: '取消',
confirmText: '确定',
textAlign: 'center',
fontWeight: '500',
confirm: () => {
instance.visible = false
},
cancel: () => {
instance.visible = false
},
}
Confirm.show = options => Confirm({
...Confirm.currentOptions,
visible: true,
...options
})
Confirm.hide = () => {
if (instance) {
instance.visible = false
}
}
Confirm.setDefaultOptions = options => {
Object.assign(Confirm.currentOptions, options)
}
Confirm.resetDefaultOptions = () => {
Confirm.currentOptions = { ...Confirm.defaultOptions}
}
Confirm.install = () => {
Vue.use(DirpConfirm)
}
Vue.confirm = Vue.prototype.$confirm = Confirm
Confirm.resetDefaultOptions()
export default Confirm