feat: 本次提交更新内容如下

store 和 router 封装完毕
This commit is contained in:
2025-07-17 22:19:37 +08:00
parent 6a4e99885d
commit 9d18af22f1
9 changed files with 137 additions and 14 deletions

View File

@@ -1,4 +1,5 @@
import axios, { AxiosInstance, AxiosRequestConfig, Method, AxiosResponse } from 'axios';
import { Toast } from 'antd-mobile';
const DEBOUNCE_GAP = 1000;
const debounceMap = new Map<string, number>();
@@ -22,14 +23,28 @@ instance.interceptors.request.use(config => {
instance.interceptors.response.use(
(res: AxiosResponse) => {
if (res.data && (res.data.code === 200 || res.data.success)) {
const { code, success, msg } = res.data || {};
if (code === 200 || success) {
return res.data.data ?? res.data;
}
window?.alert?.(res.data?.msg || '接口错误');
return Promise.reject(res.data?.msg || '接口错误');
// 业务错误统一提示
Toast.show({ content: msg || '接口错误', position: 'top' });
// 分类处理
if (code === 401) {
// 未登录或登录失效
// 可跳转登录页或清除 token
localStorage.removeItem('token');
} else if (code === 403) {
// 无权限
// 可做特殊处理
} else if (code === 500) {
// 服务端异常
}
return Promise.reject(msg || '接口错误');
},
err => {
window?.alert?.(err.message || '网络异常');
// 网络错误、超时等
Toast.show({ content: err.message || '网络异常', position: 'top' });
return Promise.reject(err);
}
);
@@ -44,6 +59,7 @@ export function request(
const now = Date.now();
const last = debounceMap.get(key) || 0;
if (now - last < DEBOUNCE_GAP) {
Toast.show({ content: '请求过于频繁,请稍后再试', position: 'top' });
return Promise.reject('请求过于频繁,请稍后再试');
}
debounceMap.set(key, now);