From cd8b52bdf89a4d1101f72e0ece9f4df22a3d3f7a Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期四, 15 十月 2026 16:03:32 +0800
Subject: [PATCH] feat(mdm): 物料列表隐藏辅单位与销售价列

---
 src/api/request.ts |   32 +++++++++++++++++++-------------
 1 files changed, 19 insertions(+), 13 deletions(-)

diff --git a/src/api/request.ts b/src/api/request.ts
index 84b84a9..679b78f 100644
--- a/src/api/request.ts
+++ b/src/api/request.ts
@@ -1,18 +1,18 @@
 /**
  * 璇ユ枃浠跺彲鑷鏍规嵁涓氬姟閫昏緫杩涜璋冩暣
  */
-import type { RequestClientOptions } from '../packages/effects/request/src';
+import type { RequestClientOptions } from '@vben/request';
 
-import { isTenantEnable, useAppConfig } from '../packages/effects/hooks/src';
-import { preferences } from '../packages/preferences/src';
+import { isTenantEnable, useAppConfig } from '@vben/hooks';
+import { preferences } from '@vben/preferences';
 import {
   authenticateResponseInterceptor,
   defaultResponseInterceptor,
   errorMessageResponseInterceptor,
   RequestClient,
-} from '../packages/effects/request/src';
-import { useAccessStore } from '../packages/stores/src';
-import { createApiEncrypt } from '../packages/utils/src';
+} from '@vben/request';
+import { useAccessStore } from '@vben/stores';
+import { createApiEncrypt } from '@vben/utils';
 
 import { message } from 'ant-design-vue';
 
@@ -33,10 +33,13 @@
   /**
    * 閲嶆柊璁よ瘉閫昏緫
    */
-  async function doReAuthenticate() {
+  async function doReAuthenticate(error?: { config?: { headers?: Record<string, unknown> } }) {
     console.warn('Access token or refresh token is invalid or expired. ');
     const accessStore = useAccessStore();
     const authStore = useAuthStore();
+    const requestToken = error?.config?.headers?.Authorization;
+    // 宸查��鍑烘垨宸插垏鎹㈣处鍙锋椂锛屾棫璇锋眰鐨� 401 涓嶅緱娓呴櫎鏂颁細璇濄��
+    if (requestToken && requestToken !== formatToken(accessStore.accessToken)) return;
     accessStore.setAccessToken(null);
     if (
       preferences.app.loginExpiredMode === 'modal' &&
@@ -58,6 +61,9 @@
       throw new Error('Refresh token is null!');
     }
     const resp = await refreshTokenApi(refreshToken);
+    if (accessStore.refreshToken !== refreshToken) {
+      throw new Error('鐧诲綍鐘舵�佸凡鍙樺寲锛屽拷鐣ユ棫浼氳瘽鐨勪护鐗屽埛鏂扮粨鏋�');
+    }
     const newToken = resp?.data?.data?.accessToken;
     // add by 鑺嬭壙锛氳繖閲屼竴瀹氳鎶涘嚭 resp.data锛屼粠鑰岃Е鍙� authenticateResponseInterceptor 涓紝鍒锋柊浠ょ墝澶辫触锛侊紒锛�
     if (!newToken) {
@@ -220,13 +226,13 @@
   fulfilled: (config) => {
     const accessStore = useAccessStore();
     // 娣诲姞绉熸埛缂栧彿
-    config.headers['tenant-id'] = tenantEnable
-      ? accessStore.tenantId
-      : undefined;
+    if (!('tenant-id' in config.headers)) {
+      config.headers['tenant-id'] = tenantEnable ? accessStore.tenantId : undefined;
+    }
     // 鍙湁鐧诲綍鏃讹紝鎵嶈缃� visit-tenant-id 璁块棶绉熸埛
-    config.headers['visit-tenant-id'] = tenantEnable
-      ? accessStore.visitTenantId
-      : undefined;
+    if (!('visit-tenant-id' in config.headers)) {
+      config.headers['visit-tenant-id'] = tenantEnable ? accessStore.visitTenantId : undefined;
+    }
     return config;
   },
 });

--
Gitblit v1.9.3