Files
jdt-user/src/utils/request.ts
YuanHuakk e1c00d6bb1
All checks were successful
continuous-integration/drone/push Build is passing
style(custom): ok
2025-06-20 07:52:00 +08:00

68 lines
1.5 KiB
TypeScript

import Taro from '@tarojs/taro';
export const BASE_URL = process.env.TARO_APP_API;
interface Res<T> {
code: number;
data: T;
msg: string;
}
type Method = 'GET' | 'POST' | 'PUT' | 'DELETE';
// 忽略系统提示白名单
const IGNORED_TIPS = ['/user/find/phone', '/user/check/payPassword'];
const request = (
url: string,
data: object = {},
method: Method = 'GET',
): Promise<Res<any>> => {
return new Promise((resolve, reject) => {
Taro.request({
url: BASE_URL + url,
data: data,
method: method,
header: {
'content-type': 'application/json',
token: Taro.getStorageSync('token') || '',
},
success: ({ data }) => {
if (data.code !== 200 && data.code !== 401) {
if (!IGNORED_TIPS.includes(url)) {
Taro.showToast({
title: data.msg,
icon: 'none',
});
}
reject(data);
return;
}
if (data.code === 401) {
Taro.showModal({
title: '提示',
content: '你当前未登录,是否前往登录?',
confirmText: '去登录',
cancelText: '先逛逛',
success: ({ confirm }) => {
if (confirm) {
Taro.reLaunch({
url: '/pages/users/login/index',
});
}
},
});
reject(data);
return;
}
resolve(data);
},
fail: err => {
reject(err);
},
});
});
};
export default request;