@@ -6,9 +6,9 @@ import { useStore } from '@/stores'
66import type { ApiResponse , LoadingTarget } from './types'
77import type { Dict } from '@/api/types'
88import { MsgError } from '@/utils/message'
9+ import { ADMIN_API_BASE_PATH } from '@/api/constants'
910
1011const DEFAULT_TIMEOUT = 30 * 60 * 1_000 // 30 minutes
11- const ADMIN_BASE_PATH = window . MaxKB ?. prefix || import . meta. env . VITE_BASE_PATH || '/admin/'
1212
1313interface ExportRequestConfig extends AxiosRequestConfig {
1414 skipGlobalErrorMessage ?: boolean
@@ -128,7 +128,7 @@ async function downloadExportResponse(response: AxiosResponse<Blob>, fileName: s
128128 return true
129129}
130130
131- export const request = axios . create ( { baseURL : ` ${ ADMIN_BASE_PATH . replace ( / \/ + $ / , '' ) } /api` , timeout : DEFAULT_TIMEOUT , withCredentials : false } )
131+ export const request = axios . create ( { baseURL : ADMIN_API_BASE_PATH , timeout : DEFAULT_TIMEOUT , withCredentials : false } )
132132
133133request . interceptors . request . use ( setRequestHeaders )
134134
@@ -195,29 +195,9 @@ export function get<T = unknown>(url: string, params?: Dict<unknown>, loading?:
195195 return promise < T > ( request . get < ApiResponse < T > > ( url , { params, timeout } ) , loading )
196196}
197197
198- /** 发送指定方法的 Blob 请求并触发浏览器下载。 */
199- export async function downloadRequest (
200- url : string ,
201- method : string ,
202- data ?: unknown ,
203- params ?: Dict < unknown > ,
204- loading ?: LoadingTarget ,
205- ) : Promise < boolean > {
206- startLoading ( loading )
207- try {
208- const response = await request . request < Blob > ( {
209- url,
210- method,
211- data,
212- params,
213- responseType : 'blob' ,
214- skipGlobalErrorMessage : true ,
215- } as ExportRequestConfig )
216-
217- return downloadExportResponse ( response , 'download' )
218- } finally {
219- finishLoading ( loading )
220- }
198+ /** 发送 POST 请求。 */
199+ export function post < TData = unknown , T = unknown > ( url : string , data ?: TData , params ?: Dict < unknown > , loading ?: LoadingTarget , timeout ?: number ) {
200+ return promise < T > ( request . post < ApiResponse < T > > ( url , data , { params, timeout } ) , loading )
221201}
222202
223203/** 发送 GET 请求并将 Blob 响应下载为文件。 */
@@ -250,13 +230,33 @@ export async function postExportExcel<TData = unknown>(
250230 }
251231}
252232
253- /** 发送 POST 请求。 */
254- export function post < TData = unknown , T = unknown > ( url : string , data ?: TData , params ?: Dict < unknown > , loading ?: LoadingTarget , timeout ?: number ) {
255- return promise < T > ( request . post < ApiResponse < T > > ( url , data , { params, timeout } ) , loading )
233+ /** 发送指定方法的 Blob 请求并触发浏览器下载。 */
234+ export async function downloadRequest (
235+ url : string ,
236+ method : string ,
237+ data ?: unknown ,
238+ params ?: Dict < unknown > ,
239+ loading ?: LoadingTarget ,
240+ ) : Promise < boolean > {
241+ startLoading ( loading )
242+ try {
243+ const response = await request . request < Blob > ( {
244+ url,
245+ method,
246+ data,
247+ params,
248+ responseType : 'blob' ,
249+ skipGlobalErrorMessage : true ,
250+ } as ExportRequestConfig )
251+
252+ return downloadExportResponse ( response , 'download' )
253+ } finally {
254+ finishLoading ( loading )
255+ }
256256}
257257
258258/** 发送 POST 请求并返回可逐块读取的原始响应。 */
259- export function postStream ( base : string , path : string , data ?: unknown ) {
259+ export function postStream ( base : string , path : string , data ?: unknown , config ?: StreamRequestConfig ) : Promise < Response > {
260260 const { auth, user } = useStore ( )
261261 const headers : Record < string , string > = { 'Content-Type' : 'application/json' }
262262 if ( auth . token ) {
@@ -269,6 +269,7 @@ export function postStream(base: string, path: string, data?: unknown) {
269269 method : 'POST' ,
270270 headers,
271271 body : data === undefined ? undefined : JSON . stringify ( data ) ,
272+ signal : config ?. signal ,
272273 } )
273274}
274275
0 commit comments