From add9b3bb61fcc337b02c15e7973967d670e7d3be Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期三, 21 五月 2025 17:17:28 +0800
Subject: [PATCH] Merge branch 'dev-ui' of http://120.26.58.240:8888/r/LifePaymentFront into dev-ui

---
 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