UNPKG

vivo-ui

Version:

vivo ui component lib for vue

50 lines (43 loc) 1.24 kB
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) }) } } } }