feat: 本次提交更新内容如下
store 和 router 封装完毕
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user