From 915424730f27445da2e8de13b62e77179cc1a15a Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期一, 18 八月 2025 17:07:39 +0800
Subject: [PATCH] fix: 关闭移动充值渠道,打开电信充值渠道
---
apps/h5/src/utils/request/index.ts | 131 ++++++++++++++++++++++++-------------------
1 files changed, 73 insertions(+), 58 deletions(-)
diff --git a/apps/h5/src/utils/request/index.ts b/apps/h5/src/utils/request/index.ts
index 5842e65..3ebb819 100644
--- a/apps/h5/src/utils/request/index.ts
+++ b/apps/h5/src/utils/request/index.ts
@@ -1,30 +1,36 @@
-import { type IRequestOptions, Request, type RequestConfig } from 'senior-request';
+import { type IRequestOptions, BoleRequest, type RequestConfig } from '@bole-core/core';
import { type AxiosRequestConfig, type AxiosError } from 'axios';
import qs from 'qs';
-import Taro from '@tarojs/taro';
-import { getToken, Message } from '@/utils';
-import { tokenIsExpired, SensitiveManage } from '@life-payment/utils';
-import { useUserStoreWithOut } from '@/stores/modules/user';
+import NProgress from '../progress';
+import { loadEnv } from '@build/index';
+import { getToken, getUserInfo } from '../storage';
+import { useUserStoreHook } from '@/store/modules/user';
+import { ElLoading as Loading, ElNotification } from 'element-plus';
+import { router } from '@/router';
+import { Message, tokenIsExpired } from '@/utils';
-const RefreshTokenUrl = '/gettokenbyrefreshtoken';
+// 鍔犺浇鐜鍙橀噺 VITE_PROXY_DOMAIN锛堝紑鍙戠幆澧冿級 VITE_PROXY_DOMAIN_REAL锛堟墦鍖呭悗鐨勭嚎涓婄幆澧冿級
+const { VITE_PROXY_DOMAIN, VITE_PROXY_DOMAIN_REAL, DEV } = loadEnv();
+
+const RefreshTokenUrl = '/GetTokenByRefreshToken';
/** 璇锋眰鐧藉悕鍗曪紝鏀剧疆涓�浜涗笉闇�瑕乼oken鐨勬帴鍙o紙閫氳繃璁剧疆璇锋眰鐧藉悕鍗曪紝闃叉token杩囨湡鍚庡啀璇锋眰閫犳垚鐨勬寰幆闂锛� */
-const whiteList = [RefreshTokenUrl];
+const whiteList = [RefreshTokenUrl, '/GetToken'];
-export function startLoading(showNavigationBarLoading: boolean) {
- if (showNavigationBarLoading) {
- Taro.showNavigationBarLoading();
- } else {
- Taro.showLoading({
- title: '',
- mask: true,
- });
- }
+let loadingInstance: ReturnType<typeof Loading.service>;
+
+function startLoading() {
+ loadingInstance = Loading.service({
+ fullscreen: true,
+ lock: true,
+ background: 'transparent',
+ });
}
-export function endLoading() {
- Taro.hideNavigationBarLoading();
- Taro.hideLoading();
+function endLoading() {
+ if (loadingInstance) {
+ loadingInstance.close();
+ }
}
// 閿欒澶勭悊鏂规锛� 閿欒绫诲瀷
@@ -76,8 +82,8 @@
}
const AxiosOptions: AxiosRequestConfig = {
- baseURL: process.env.BASE_URL,
- timeout: 10 * 1000,
+ baseURL: DEV ? VITE_PROXY_DOMAIN : VITE_PROXY_DOMAIN_REAL,
+ timeout: 30000,
headers: {
Accept: 'application/json, text/plain, */*',
'Content-Type': 'application/json',
@@ -116,19 +122,21 @@
// do nothing
break;
case ErrorShowType.WARN_MESSAGE:
- Message.warning(errorMessage);
+ Message.warnMessage(errorMessage);
break;
case ErrorShowType.ERROR_MESSAGE:
- Message.error(errorMessage);
+ Message.errorMessage(errorMessage);
break;
case ErrorShowType.NOTIFICATION:
- Message.error(errorMessage);
+ ElNotification.error({
+ message: `${errorCode}: ${errorMessage}`,
+ });
break;
case ErrorShowType.REDIRECT:
// TODO: redirect
break;
default:
- Message.error(errorMessage);
+ Message.errorMessage(errorMessage);
}
}
} else if ((error as AxiosError<ResponseStructure, IRequestOptions>).response) {
@@ -140,10 +148,10 @@
// 璇锋眰宸茬粡鎴愬姛鍙戣捣锛屼絾娌℃湁鏀跺埌鍝嶅簲
// \`error.request\` 鍦ㄦ祻瑙堝櫒涓槸 XMLHttpRequest 鐨勫疄渚嬶紝
// 鑰屽湪node.js涓槸 http.ClientRequest 鐨勫疄渚�
- Message.error('鏈嶅姟鍣ㄦ棤鍝嶅簲锛岃閲嶈瘯');
+ Message.errorMessage('鏈嶅姟鍣ㄦ棤鍝嶅簲锛岃閲嶈瘯');
} else {
// 鍙戦�佽姹傛椂鍑轰簡鐐归棶棰�
- Message.error('鍙戦�佽姹傛椂鍑轰簡鐐归棶棰�');
+ Message.errorMessage('鍙戦�佽姹傛椂鍑轰簡鐐归棶棰�');
}
},
@@ -163,56 +171,54 @@
[
(config) => {
const $config = config;
+ // 寮�鍚繘搴︽潯鍔ㄧ敾
+ if (config.needNProcess) {
+ NProgress.start();
+ }
const token = getToken();
- const userStore = useUserStoreWithOut();
+ const userInfo = getUserInfo();
- const userInfo = userStore.userInfo;
+ const { showLoading = true, mock } = $config;
- const { showLoading = true, showNavigationBarLoading, mock } = $config;
-
- if (mock && process.env.NODE_ENV === 'development') {
- $config.baseURL = 'http://localhost:9527';
+ if (mock) {
+ $config.url = $config.url.replace(/^\/api/, '');
}
/**
* 濡傛灉鏄痳efreshToken杩欎釜鏂规硶 灏辩洿鎺ヨ繑鍥� 闃叉鍐呭瓨娉勬紡
*/
- if (whiteList.some((url) => $config.url!.toLowerCase().includes(url.toLowerCase()))) {
+ if (whiteList.some((url) => $config.url.toLowerCase().includes(url.toLowerCase()))) {
return $config;
}
if (showLoading) {
- startLoading(showNavigationBarLoading);
+ startLoading();
}
- return new Promise((resolve, reject) => {
- if (userInfo && token && $config.withCredentials) {
+ return new Promise((resolve) => {
+ if (token && $config.withCredentials) {
if (tokenIsExpired(userInfo)) {
- if (!Request.refreshTokenPending) {
- Request.refreshTokenPending = true;
+ if (!BoleRequest.refreshTokenPending) {
+ const userStore = useUserStoreHook();
+ BoleRequest.refreshTokenPending = true;
// token杩囨湡鍒锋柊
- useUserStoreWithOut()
- .getTokenByRefreshToken({
+ userStore
+ .refreshToken({
refreshToken: userInfo.refreshToken,
- clientId: userStore.accountInfo?.client_id,
+ clientId: userStore.accountInfo.client_id,
})
.then((res) => {
$config.headers['Authorization'] = 'Bearer ' + res.accessToken;
- Request.requests.forEach((cb) => cb(res.accessToken));
- Request.requests = [];
- })
- .catch((err) => {
- Request.requests.forEach((cb) => cb());
- Request.requests = [];
- reject(err);
+ BoleRequest.requests.forEach((cb) => cb(res.accessToken));
+ BoleRequest.requests = [];
})
.finally(() => {
- Request.refreshTokenPending = false;
+ BoleRequest.refreshTokenPending = false;
});
}
- resolve(Request.retryOriginalRequest($config));
+ resolve(BoleRequest.retryOriginalRequest($config));
} else {
$config.headers['Authorization'] = 'Bearer ' + token;
resolve($config);
@@ -235,11 +241,14 @@
const { needNProcess, getResponse = false } = $config;
+ // 鍏抽棴杩涘害鏉″姩鐢�
+ if (needNProcess) {
+ NProgress.done();
+ }
+
endLoading();
- return getResponse
- ? response
- : SensitiveManage.filterSensitiveWord((response.data as any).result);
+ return getResponse ? response : (response.data as any).result;
},
(error) => {
endLoading();
@@ -273,16 +282,22 @@
if (error.response.data?.error?.message) {
message = error.response.data?.error?.message;
}
+
if (error.response?.status === 401) {
handleLogout();
}
-
- Message.error(message);
+ Message.errorMessage(message);
}
}
function handleLogout() {
- useUserStoreWithOut().logout();
+ const userStore = useUserStoreHook();
+ let path = '/';
+ if (userStore.token) {
+ path = router.currentRoute.value.fullPath;
+ }
+ userStore.logout();
+ router.replace(`/login?redirect=${path}`);
}
-export const request = Request.create(config);
+export const request = BoleRequest.create(config);
--
Gitblit v1.9.1