mirror of
https://github.com/fastapiadmin/FastapiAdmin.git
synced 2026-10-17 06:55:38 +00:00
62 lines
1.8 KiB
TypeScript
62 lines
1.8 KiB
TypeScript
import type { ToastOptions } from '@wot-ui/ui/components/wd-toast/types'
|
|
import { defineStore } from 'pinia'
|
|
|
|
interface GlobalToast {
|
|
toastOptions: ToastOptions
|
|
currentPage: string
|
|
}
|
|
|
|
const defaultOptions: ToastOptions = {
|
|
duration: 2000,
|
|
show: false,
|
|
}
|
|
export const useGlobalToast = defineStore('global-toast', {
|
|
state: (): GlobalToast => ({
|
|
toastOptions: defaultOptions,
|
|
currentPage: '',
|
|
}),
|
|
getters: {},
|
|
actions: {
|
|
// 打开Toast
|
|
show(option: ToastOptions | string) {
|
|
this.currentPage = getCurrentPath()
|
|
const options = CommonUtil.deepMerge(defaultOptions, typeof option === 'string' ? { msg: option } : option) as ToastOptions
|
|
this.toastOptions = CommonUtil.deepMerge(options, {
|
|
show: true,
|
|
position: options.position || 'middle',
|
|
}) as ToastOptions
|
|
},
|
|
// 成功提示
|
|
success(option: ToastOptions | string) {
|
|
this.show(CommonUtil.deepMerge({
|
|
iconName: 'success',
|
|
duration: 1500,
|
|
}, typeof option === 'string' ? { msg: option } : option) as ToastOptions)
|
|
},
|
|
// 关闭提示
|
|
error(option: ToastOptions | string) {
|
|
this.show(CommonUtil.deepMerge({
|
|
iconName: 'error',
|
|
direction: 'vertical',
|
|
}, typeof option === 'string' ? { msg: option } : option) as ToastOptions)
|
|
},
|
|
// 常规提示
|
|
info(option: ToastOptions | string) {
|
|
this.show(CommonUtil.deepMerge({
|
|
iconName: 'info',
|
|
}, typeof option === 'string' ? { msg: option } : option) as ToastOptions)
|
|
},
|
|
// 警告提示
|
|
warning(option: ToastOptions | string) {
|
|
this.show(CommonUtil.deepMerge({
|
|
iconName: 'warning',
|
|
}, typeof option === 'string' ? { msg: option } : option) as ToastOptions)
|
|
},
|
|
// 关闭Toast
|
|
close() {
|
|
this.toastOptions = defaultOptions
|
|
this.currentPage = ''
|
|
},
|
|
},
|
|
})
|