import Vue from 'vue'; import toastOptions from './toast.vue'; const Toast = Vue.extend(toastOptions); export default function (c, i) { const isString = (v) => Object.prototype.toString.call(v) === '[object String]'; const fixOptios = (optios) => isString(optios) ? { message: optios, } : optios; // 插入到app组件下 const getParent = () => c?.$vuetify?.app ?? window?.$nuxt; const toast = (optios) => { optios = fixOptios(optios); return new Toast({ parent: getParent(), propsData: { // message: optios.message, // icon: optios.icon, ...optios, }, }).$mount(); }; ['error', 'success', 'warning', 'info'].forEach((key) => { toast[key] = (optios) => { optios = fixOptios(optios); return toast({ ...optios, icon: '$' + key, }); }; }); i('toast', toast); }