base-ui
Version:
A component library for Better Vue developmemt
55 lines (40 loc) • 1.23 kB
JavaScript
import {createVueInstanceEle} from '../helper/helper';
import BToast from './component/b-toast';
import ToastType from './constant/ToastType';
const ToastEleId = 'toast';
export const Toast = class Toast {
constructor(Vue) {
const self = this;
createVueInstanceEle(ToastEleId);
self.toastInstance = new Vue(BToast);
self.toastInstance.$mount(`#${ToastEleId}`);
}
toast(type, message = '', duration = 2000) {
const self = this;
self.toastInstance.visible = true;
self.toastInstance.message = message;
self.toastInstance.type = type;
if (self.toastTimer) clearTimeout(self.toastTimer);
self.toastTimer = setTimeout(() => {
self.toastInstance.visible = false;
}, duration);
}
info(...arg) {
const self = this;
self.toast(ToastType.INFO, ...arg);
}
success(...arg) {
const self = this;
self.toast(ToastType.SUCCESS, ...arg);
}
error(...arg) {
const self = this;
self.toast(ToastType.ERROR, ...arg);
}
};
export default {
install(Vue) {
const $toast = new Toast(Vue);
Object.assign(Vue.prototype, {$toast});
}
};