diff --git a/frontend/src/stores/order-item.ts b/frontend/src/stores/order-item.ts index 4ebc02a..6112e42 100644 --- a/frontend/src/stores/order-item.ts +++ b/frontend/src/stores/order-item.ts @@ -2,8 +2,6 @@ import { api } from '@/utils/request' import type { PaginatedData, OrderItemFilters } from '@/types/api' import type { OrderItemRecord } from '@/stores/order' -export type { OrderItemRecord } - /** 名称映射用的查找表 */ interface LookupItem { id: number diff --git a/frontend/src/utils/request.ts b/frontend/src/utils/request.ts index a0bb6f7..d3907e6 100644 --- a/frontend/src/utils/request.ts +++ b/frontend/src/utils/request.ts @@ -13,7 +13,10 @@ interface RequestOptions extends RequestInit { timeout?: number } +const API_BASE_URL = import.meta.env.VITE_API_BASE_URL || '' + async function request(url: string, options: RequestOptions = {}): Promise { + url = `${API_BASE_URL}${url}` const token = tokenGetter?.() ?? localStorage.getItem('access_token') const headers: Record = { @@ -50,15 +53,18 @@ async function request(url: string, options: RequestOptions = {}): signal: controller.signal, }) - // 401 未授权:保留当前路径作为 redirect 参数 + // 401 未授权:跳过登录/注册接口(由页面自行处理错误提示),其余接口重定向到登录页 if (response.status === 401) { - localStorage.removeItem('access_token') - localStorage.removeItem('refresh_token') - localStorage.removeItem('user') - const redirect = encodeURIComponent( - window.location.pathname + window.location.search, - ) - window.location.href = `/login?redirect=${redirect}` + const isAuthEndpoint = /\/api\/v1\/(login|register)$/.test(url) + if (!isAuthEndpoint) { + localStorage.removeItem('access_token') + localStorage.removeItem('refresh_token') + localStorage.removeItem('user') + const redirect = encodeURIComponent( + window.location.pathname + window.location.search, + ) + window.location.href = `/login?redirect=${redirect}` + } throw new ApiError('登录已过期,请重新登录', 401) } diff --git a/frontend/vite.config.ts b/frontend/vite.config.ts index bf58197..156888f 100644 --- a/frontend/vite.config.ts +++ b/frontend/vite.config.ts @@ -64,4 +64,12 @@ export default defineConfig({ '@': fileURLToPath(new URL('./src', import.meta.url)) }, }, + server: { + proxy: { + '/api': { + target: 'http://127.0.0.1:9501', + changeOrigin: true, + }, + }, + }, }) diff --git a/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json b/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json deleted file mode 100644 index cc7716c..0000000 --- a/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +++ /dev/null @@ -1 +0,0 @@ -{"version":"4.1.0","results":[[":frontend/src/pages/failed-messages/__tests__/index.spec.ts",{"duration":0,"failed":true}]]} \ No newline at end of file