dear-toast
Version:
一个基于Vue的通用Toast组件
32 lines (28 loc) • 910 B
JavaScript
export default {
install: (Vue, config = {}) => {
let toastId = 1
const ToastConstructor = Vue.extend(require('./toast.vue').default)
Object.defineProperty(Vue.prototype, config.prefix || '$toast', {
value: options => {
if (typeof options === 'string' || typeof options === 'number') {
options = {
content: options
}
}
const ToastInstance = new ToastConstructor({
data: Object.assign({}, {
show: true,
duration: config.duration || 1400,
}, options)
})
ToastInstance.id = `dear-toast-${toastId}`
ToastInstance.vm = ToastInstance.$mount()
ToastInstance.dom = ToastInstance.vm.$el
ToastInstance.dom.style.zIndex = 1000 + toastId
document.body.appendChild(ToastInstance.dom)
toastId++
return ToastInstance
}
})
}
}