york-demo-ui
Version:
36 lines (31 loc) • 844 B
JavaScript
import Dialog from './src/Dialog'
let Confirm = {}
const getInstance = (() => {
let instance = null
return function (Confirm, options ) {
if(!instance) {
instance = new Confirm({ options })
}
return instance
}
})()
Confirm.install = function (Vue, options) {
let DialogCtor = Vue.extend(Dialog)
Vue.prototype.$confirm = ({ title }, el) => {
let instance = getInstance(DialogCtor, { propsData: { title:'哈哈哈' } })
document.body.appendChild(instance.$mount().$el)
instance.visible = true
return new Promise((resolve,reject) => {
instance.$on('confirm', (text) => {
console.log(text)
instance.visible = false
resolve()
})
instance.$on('cancel', () => {
instance.visible = false
reject('')
})
})
}
}
export default Confirm