diff --git a/src/http/alova.ts b/src/http/alova.ts index 06b7f2f..52aaf61 100644 --- a/src/http/alova.ts +++ b/src/http/alova.ts @@ -4,7 +4,6 @@ import AdapterUniapp from '@alova/adapter-uniapp' import { createAlova } from 'alova' import { createServerTokenAuthentication } from 'alova/client' import VueHook from 'alova/vue' -import { toast } from '@/utils/toast' import { ContentTypeEnum, ResultEnum, ShowMessage } from './tools/enum' // 配置动态Tag @@ -91,7 +90,10 @@ const alovaInstance = createAlova({ if (statusCode !== 200) { const errorMessage = ShowMessage(statusCode) || `HTTP请求错误[${statusCode}]` console.error('errorMessage===>', errorMessage) - toast.error(errorMessage) + uni.showToast({ + title: errorMessage, + icon: 'error', + }) throw new Error(`${errorMessage}:${errMsg}`) } @@ -99,7 +101,10 @@ const alovaInstance = createAlova({ const { code, message, data } = rawData as IResponse if (code !== ResultEnum.Success) { if (config.meta?.toast !== false) { - toast.warning(message) + uni.showToast({ + title: message, + icon: 'none', + }) } throw new Error(`请求错误[${code}]:${message}`) } diff --git a/src/store/user.ts b/src/store/user.ts index cebd232..af4c103 100644 --- a/src/store/user.ts +++ b/src/store/user.ts @@ -9,7 +9,6 @@ import { wxLogin as _wxLogin, getWxCode, } from '@/api/login' -import { toast } from '@/utils/toast' // 初始化状态 const userInfoState: IUserInfoVo = { @@ -72,7 +71,10 @@ export const useUserStore = defineStore( }) => { const res = await _login(credentials) console.log('登录信息', res) - toast.success('登录成功') + uni.showToast({ + title: '登录成功', + icon: 'success', + }) await getUserInfo() return res } diff --git a/src/utils/toast.ts b/src/utils/toast.ts deleted file mode 100644 index 1584335..0000000 --- a/src/utils/toast.ts +++ /dev/null @@ -1,77 +0,0 @@ -/** - * toast 弹窗组件 - * 支持 success/error/warning/info 四种状态 - * 可配置 duration, position 等参数 - */ - -type ToastType = 'success' | 'error' | 'warning' | 'info' - -interface ToastOptions { - type?: ToastType - duration?: number - position?: 'top' | 'middle' | 'bottom' - icon?: 'success' | 'error' | 'none' | 'loading' | 'fail' | 'exception' - message: string - /** - * 是否显示透明蒙层,防止触摸穿透 - * @default true - */ - mask?: boolean -} -/** - * 显示 toast - */ -export function showToast(message: string): void -export function showToast(options: ToastOptions): void -export function showToast(options: ToastOptions | string): void { - const defaultOptions: ToastOptions = { - type: 'info', - duration: 2000, - position: 'middle', - message: '', - mask: true, - } - const mergedOptions - = typeof options === 'string' - ? { ...defaultOptions, message: options } - : { ...defaultOptions, ...options } - // 映射position到uniapp支持的格式 - const positionMap: Record = { - top: 'top', - middle: 'center', - bottom: 'bottom', - } - - // 映射图标类型 - const iconMap: Record< - ToastType, - 'success' | 'error' | 'none' | 'loading' | 'fail' | 'exception' - > = { - success: 'success', - error: 'error', - warning: 'fail', - info: 'none', - } - - // 调用uni.showToast显示提示 - uni.showToast({ - title: mergedOptions.message, - duration: mergedOptions.duration, - position: positionMap[mergedOptions.position], - icon: mergedOptions.icon || iconMap[mergedOptions.type], - mask: mergedOptions.mask, - }) -} - -type _ToastOptions = Omit - -export const toast = { - success: (message: string, options?: _ToastOptions) => - showToast({ ...options, type: 'success', message }), - error: (message: string, options?: _ToastOptions) => - showToast({ ...options, type: 'error', message }), - warning: (message: string, options?: _ToastOptions) => - showToast({ ...options, type: 'warning', message }), - info: (message: string, options?: _ToastOptions) => - showToast({ ...options, type: 'info', message }), -} diff --git a/src/utils/updateManager.wx.ts b/src/utils/updateManager.wx.ts new file mode 100644 index 0000000..20b8b50 --- /dev/null +++ b/src/utils/updateManager.wx.ts @@ -0,0 +1,29 @@ +export default () => { + if (!wx.canIUse('getUpdateManager')) { + return + } + + const updateManager = wx.getUpdateManager() + + updateManager.onCheckForUpdate((res) => { + // 请求完新版本信息的回调 + console.log('版本信息', res) + }) + + updateManager.onUpdateReady(() => { + wx.showModal({ + title: '更新提示', + content: '新版本已经准备好,是否重启应用?', + success(res) { + if (res.confirm) { + // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启 + updateManager.applyUpdate() + } + }, + }) + }) + + updateManager.onUpdateFailed(() => { + // 新版本下载失败 + }) +}