vivo-ui
Version:
vivo ui component lib for vue
54 lines (46 loc) • 1.55 kB
JavaScript
import _Object$keys from 'babel-runtime/core-js/object/keys';
import _extends from 'babel-runtime/helpers/extends';
import _toConsumableArray from 'babel-runtime/helpers/toConsumableArray';
import Toast from '../../components/toast/index';
var index = {
install: function install(Vue) {
var list = [];
Toast.mixins = [].concat(_toConsumableArray(Toast.mixins), [{
created: function created() {
list.push(this.list);
}
}]);
var vm = new Vue({
el: document.body.appendChild(document.createElement('div')),
data: _extends({
slot: ''
}, function () {
var 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: Toast
}
});
Vue.$vui = Vue.prototype.$vui = Vue.prototype.$vui || {};
Vue.prototype.$vui.toast = {
show: function 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: function hide() {
list.forEach(function (item) {
item.splice(0);
});
}
};
}
};
export default index;