vivo-ui
Version:
vivo ui component lib for vue
50 lines (43 loc) • 1.24 kB
JavaScript
import Toast from '../../components/toast/index.vue'
export default {
install (Vue) {
const list = []
Toast.mixins = [...Toast.mixins, {
created () {
list.push(this.list)
}
}]
const vm = new Vue({
el: document.body.appendChild(document.createElement('div')),
data: {
slot: '',
...(function () {
const defaults = {}
Object.keys(Toast.props).forEach(function (key) {
defaults[key] = Toast.props[key].default
})
return defaults
}())
},
template: `<toast ref="toast" :class-name="className" :time="time" :position="position" :single="single" class="vui-toast-plugin"><div v-html="slot"></div></toast>`,
components: {
Toast
}
})
Vue.$vui = Vue.prototype.$vui = Vue.prototype.$vui || {}
Vue.prototype.$vui.toast = {
show (option) {
Object.keys(Toast.props).forEach(function (key) {
vm[key] = option[key] !== undefined ? option[key] : Toast.props[key].default
})
vm.slot = option.slot
vm.$refs.toast.show()
},
hide () {
list.forEach(function (item) {
item.splice(0)
})
}
}
}
}