33import axios , { AxiosHeaders , type AxiosRequestConfig , type AxiosResponse , type InternalAxiosRequestConfig } from 'axios'
44import router from '@/router/admin'
55import { useStore } from '@/stores'
6- import type { ApiResponse , LoadingTarget } from './types'
6+ import type { ApiResponse } from './types'
77import type { Dict } from '@/api/types'
88import { MsgError } from '@/utils/message'
99import { ADMIN_API_BASE_PATH } from '@/api/constants'
@@ -30,28 +30,6 @@ function setRequestHeaders(config: InternalAxiosRequestConfig) {
3030 return config
3131}
3232
33- function startLoading ( loading ?: LoadingTarget ) {
34- if ( ! loading ) {
35- return
36- }
37- if ( 'start' in loading ) {
38- loading . start ( )
39- return
40- }
41- loading . value = true
42- }
43-
44- function finishLoading ( loading ?: LoadingTarget ) {
45- if ( ! loading ) {
46- return
47- }
48- if ( 'done' in loading ) {
49- loading . done ( )
50- return
51- }
52- loading . value = false
53- }
54-
5533function extractFilename ( contentDisposition ?: string ) {
5634 if ( ! contentDisposition ) {
5735 return undefined
@@ -93,7 +71,6 @@ async function getResponseErrorMessage(error: unknown) {
9371 return responseData ?. message
9472}
9573
96-
9774async function downloadExportResponse ( response : AxiosResponse < Blob > , fileName : string , mimeType = 'application/octet-stream' ) {
9875 if ( response . data . type . includes ( 'application/json' ) ) {
9976 const text = await response . data . text ( )
@@ -165,81 +142,49 @@ request.interceptors.response.use(
165142)
166143
167144/**
168- * 统一解包标准 API 响应,并同步可选的 loading 状态 。
145+ * 统一解包标准 API 响应。
169146 */
170- export async function promise < T > ( requestPromise : Promise < AxiosResponse < ApiResponse < T > > > , loading ?: LoadingTarget ) {
171- startLoading ( loading )
172- try {
173- const response = await requestPromise
174- return response . data . data
175- } finally {
176- finishLoading ( loading )
177- }
147+ export async function promise < T > ( requestPromise : Promise < AxiosResponse < ApiResponse < T > > > ) {
148+ const response = await requestPromise
149+ return response . data . data
178150}
179151
180152/** 发送 GET 请求。 */
181- export function get < T = unknown > ( url : string , params ?: Dict < unknown > , loading ?: LoadingTarget , timeout ?: number ) {
182- return promise < T > ( request . get < ApiResponse < T > > ( url , { params, timeout } ) , loading )
153+ export function get < T = unknown > ( url : string , params ?: Dict < unknown > , timeout ?: number ) {
154+ return promise < T > ( request . get < ApiResponse < T > > ( url , { params, timeout } ) )
183155}
184156
185157/** 发送 POST 请求。 */
186- export function post < TData = unknown , T = unknown > ( url : string , data ?: TData , params ?: Dict < unknown > , loading ?: LoadingTarget , timeout ?: number ) {
187- return promise < T > ( request . post < ApiResponse < T > > ( url , data , { params, timeout } ) , loading )
158+ export function post < TData = unknown , T = unknown > ( url : string , data ?: TData , params ?: Dict < unknown > , timeout ?: number ) {
159+ return promise < T > ( request . post < ApiResponse < T > > ( url , data , { params, timeout } ) )
188160}
189161
190162/** 发送 GET 请求并将 Blob 响应下载为文件。 */
191- export async function getExportFile ( fileName : string , url : string , params ?: Dict < unknown > , loading ?: LoadingTarget ) : Promise < boolean > {
192- startLoading ( loading )
193- try {
194- const response = await request . get < Blob > ( url , { params, responseType : 'blob' , skipGlobalErrorMessage : true } as ExportRequestConfig )
163+ export async function getExportFile ( fileName : string , url : string , params ?: Dict < unknown > ) : Promise < boolean > {
164+ const response = await request . get < Blob > ( url , { params, responseType : 'blob' , skipGlobalErrorMessage : true } as ExportRequestConfig )
195165
196- return downloadExportResponse ( response , fileName )
197- } finally {
198- finishLoading ( loading )
199- }
166+ return downloadExportResponse ( response , fileName )
200167}
201168
202169/** 发送 POST 请求并将 Blob 响应下载为 Excel 文件。 */
203- export async function postExportExcel < TData = unknown > (
204- fileName : string ,
205- url : string ,
206- params ?: Dict < unknown > ,
207- data ?: TData ,
208- loading ?: LoadingTarget ,
209- ) : Promise < boolean > {
210- startLoading ( loading )
211- try {
212- const response = await request . post < Blob > ( url , data , { params, responseType : 'blob' , skipGlobalErrorMessage : true } as ExportRequestConfig )
170+ export async function postExportExcel < TData = unknown > ( fileName : string , url : string , params ?: Dict < unknown > , data ?: TData ) : Promise < boolean > {
171+ const response = await request . post < Blob > ( url , data , { params, responseType : 'blob' , skipGlobalErrorMessage : true } as ExportRequestConfig )
213172
214- return downloadExportResponse ( response , fileName , 'application/vnd.ms-excel' )
215- } finally {
216- finishLoading ( loading )
217- }
173+ return downloadExportResponse ( response , fileName , 'application/vnd.ms-excel' )
218174}
219175
220176/** 发送指定方法的 Blob 请求并触发浏览器下载。 */
221- export async function downloadRequest (
222- url : string ,
223- method : string ,
224- data ?: unknown ,
225- params ?: Dict < unknown > ,
226- loading ?: LoadingTarget ,
227- ) : Promise < boolean > {
228- startLoading ( loading )
229- try {
230- const response = await request . request < Blob > ( {
231- url,
232- method,
233- data,
234- params,
235- responseType : 'blob' ,
236- skipGlobalErrorMessage : true ,
237- } as ExportRequestConfig )
238-
239- return downloadExportResponse ( response , 'download' )
240- } finally {
241- finishLoading ( loading )
242- }
177+ export async function downloadRequest ( url : string , method : string , data ?: unknown , params ?: Dict < unknown > ) : Promise < boolean > {
178+ const response = await request . request < Blob > ( {
179+ url,
180+ method,
181+ data,
182+ params,
183+ responseType : 'blob' ,
184+ skipGlobalErrorMessage : true ,
185+ } as ExportRequestConfig )
186+
187+ return downloadExportResponse ( response , 'download' )
243188}
244189
245190/** 发送 POST 请求并返回可逐块读取的原始响应。 */
@@ -260,13 +205,13 @@ export function postStream(base: string, path: string, data?: unknown): Promise<
260205}
261206
262207/** 发送 PUT 请求。 */
263- export function put < TData = unknown , T = unknown > ( url : string , data ?: TData , params ?: Dict < unknown > , loading ?: LoadingTarget , timeout ?: number ) {
264- return promise < T > ( request . put < ApiResponse < T > > ( url , data , { params, timeout } ) , loading )
208+ export function put < TData = unknown , T = unknown > ( url : string , data ?: TData , params ?: Dict < unknown > , timeout ?: number ) {
209+ return promise < T > ( request . put < ApiResponse < T > > ( url , data , { params, timeout } ) )
265210}
266211
267212/** 发送 DELETE 请求。 */
268- export function del < TData = unknown , T = unknown > ( url : string , params ?: Dict < unknown > , data ?: TData , loading ?: LoadingTarget , timeout ?: number ) {
269- return promise < T > ( request . delete < ApiResponse < T > > ( url , { params, data, timeout } ) , loading )
213+ export function del < TData = unknown , T = unknown > ( url : string , params ?: Dict < unknown > , data ?: TData , timeout ?: number ) {
214+ return promise < T > ( request . delete < ApiResponse < T > > ( url , { params, data, timeout } ) )
270215}
271216
272217export default request
0 commit comments