You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
99 lines
2.8 KiB
99 lines
2.8 KiB
11 months ago
|
import Taro, { clearStorage } from '@tarojs/taro';
|
||
|
import { CommonRes } from '../services/common';
|
||
|
import { showModal } from './wechat-ui';
|
||
|
import { getGlobalData, setGlobalData } from './global-data';
|
||
|
// export const BASE_URL = 'http://i100c.3322.org:31233';
|
||
|
export const BASE_URL = 'https://ylt.ikbvip.com';
|
||
|
// export const BASE_URL = 'https://wechatapps.test-ylt.ikbvip.com/';
|
||
|
|
||
|
// export const BASE_URL =
|
||
|
// process.env.NODE_ENV === 'development'
|
||
|
// ? 'http://i100c.3322.org:30701'
|
||
|
// : 'https://ylt.ikbvip.com'; //测试线
|
||
|
|
||
|
type Method =
|
||
|
| 'OPTIONS'
|
||
|
| 'GET'
|
||
|
| 'HEAD'
|
||
|
| 'POST'
|
||
|
| 'PUT'
|
||
|
| 'DELETE'
|
||
|
| 'TRACE'
|
||
|
| 'CONNECT';
|
||
|
export const RzRequestEnhance = <T>(
|
||
|
url: string,
|
||
|
data?: unknown,
|
||
|
method: Method = 'POST',
|
||
|
headers = {},
|
||
|
isShowLoading = true
|
||
|
): Promise<T> => {
|
||
|
const option = {
|
||
|
url: BASE_URL + url,
|
||
|
data,
|
||
|
method,
|
||
|
header: {
|
||
|
Authorization: Taro.getStorageSync('authorization'),
|
||
|
...headers,
|
||
|
},
|
||
|
};
|
||
|
|
||
|
if (isShowLoading) {
|
||
|
Taro.showLoading({ title: '加载中..' });
|
||
|
}
|
||
|
|
||
|
return new Promise((resolve, reject) => {
|
||
|
Taro.request(option)
|
||
|
.then(({ statusCode, data }: { statusCode: number; data: CommonRes }) => {
|
||
|
console.log('response data', data);
|
||
|
if (isShowLoading) {
|
||
|
Taro.hideLoading();
|
||
|
}
|
||
|
if (statusCode >= 200 && statusCode < 300) {
|
||
|
if (data.code === 1000) {
|
||
|
resolve(data.data);
|
||
|
} else if (data.code === 1002) {
|
||
|
clearStorage();
|
||
|
if (!getGlobalData('isNavToLogin')) {
|
||
|
setGlobalData('isNavToLogin', true);
|
||
|
showModal(
|
||
|
'提示',
|
||
|
'凭证过期需要重新登录以访问更多功能,是否需要登录?'
|
||
|
).then((res) => {
|
||
|
if (res.confirm) {
|
||
|
Taro.navigateTo({ url: '/pages/login/login' }).then(() => {
|
||
|
setTimeout(() => {
|
||
|
setGlobalData('isNavToLogin', false);
|
||
|
}, 3000);
|
||
|
});
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
reject({ msg: data.msg, code: 1002 });
|
||
|
} else if (data.code === 1007) {
|
||
|
reject({ msg: data.msg, code: 1007 });
|
||
|
} else if (data.code === 1009) {
|
||
|
reject({ msg: data.msg, code: 1009 });
|
||
|
} else {
|
||
|
console.log('data.msg', data.msg);
|
||
|
reject(data.msg);
|
||
|
}
|
||
|
} else {
|
||
|
const msg = `Error: code ${statusCode}`;
|
||
|
reject(msg);
|
||
|
}
|
||
|
})
|
||
|
.catch((error) => {
|
||
|
if (isShowLoading) {
|
||
|
Taro.hideLoading();
|
||
|
}
|
||
|
Taro.showToast({
|
||
|
title: JSON.stringify(error),
|
||
|
icon: 'none',
|
||
|
duration: 1500,
|
||
|
mask: true,
|
||
|
});
|
||
|
reject(error);
|
||
|
});
|
||
|
});
|
||
|
};
|