@58fe/p5
Version:
pc端vue组件
53 lines (49 loc) • 1.22 kB
JavaScript
import Vue from 'vue';
import Message from './../../components/message';
const plugin = {
install(vue, props = {}) {
const MessagePlugin = Vue.extend(Message);
let $vm = new MessagePlugin({
el: document.createElement('div')
});
document.body.appendChild($vm.$el);
const message = {
info(content, duration, top) {
message.common({ msgtype: 'info', content, duration, top });
},
warning(content, duration) {
message.common({ msgtype: 'warning', content, duration, top });
},
success(content, duration) {
message.common({ msgtype: 'success', content, duration, top });
},
error(content, duration) {
message.common({ msgtype: 'error', content, duration, top });
},
common({ msgtype = null, content = null, duration = null, top = 0 }) {
if ($vm.show) return;
$vm.msgtype = msgtype;
$vm.duration = duration;
$vm.content = content;
$vm.top = top;
$vm.value = true;
setTimeout(function() {
$vm.value = false;
}, duration);
}
};
if (!vue.$p5) {
vue.$p5 = {
message
};
} else {
vue.$p5.message = message;
}
vue.mixin({
created: function() {
this.$p5 = vue.$p5;
}
});
}
};
export default plugin;