| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- import type { ToastOptions } from 'wot-design-uni/components/wd-toast/types'
- import { defineStore } from 'pinia'
- interface GlobalToast {
- toastOptions: ToastOptions
- currentPage: string
- }
- const defaultOptions: ToastOptions = {
- duration: 2000,
- show: false,
- zIndex: 99999999999,
- }
- 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 = ''
- },
- },
- })
|