|
@@ -41,8 +41,10 @@ export class RequestHttp {
|
|
|
* 服务器换返回信息 -> [拦截统一处理] -> 客户端JS获取到信息
|
|
* 服务器换返回信息 -> [拦截统一处理] -> 客户端JS获取到信息
|
|
|
*/
|
|
*/
|
|
|
this.service.interceptors.response.use(
|
|
this.service.interceptors.response.use(
|
|
|
- (response: AxiosResponse<Http.BaseResponse>) => {
|
|
|
|
|
- const { code, msg } = response.data
|
|
|
|
|
|
|
+ async (response: AxiosResponse<ApiResponse>) => {
|
|
|
|
|
+ const res = response.data as ApiResponse
|
|
|
|
|
+ const { code, msg } = res
|
|
|
|
|
+ console.log('response', response)
|
|
|
if (code === ApiStatus.success) return response
|
|
if (code === ApiStatus.success) return response
|
|
|
if (code === ApiStatus.unauthorized) handleUnauthorizedError(msg)
|
|
if (code === ApiStatus.unauthorized) handleUnauthorizedError(msg)
|
|
|
throw new Error(msg || $t('httpMsg.requestFailed'))
|
|
throw new Error(msg || $t('httpMsg.requestFailed'))
|
|
@@ -54,22 +56,23 @@ export class RequestHttp {
|
|
|
)
|
|
)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- public request<T = any>(config: ExtendedAxiosRequestConfig): Promise<T> {
|
|
|
|
|
|
|
+ public async request<T = unknown>(config: ExtendedAxiosRequestConfig): Promise<ApiResponse<T>> {
|
|
|
if (['POST', 'PUT'].includes(config.method?.toUpperCase() || '') && config.params && !config.data) {
|
|
if (['POST', 'PUT'].includes(config.method?.toUpperCase() || '') && config.params && !config.data) {
|
|
|
config.data = config.params
|
|
config.data = config.params
|
|
|
config.params = undefined
|
|
config.params = undefined
|
|
|
}
|
|
}
|
|
|
- return this.service.request(config)
|
|
|
|
|
|
|
+ const { data } = await this.service.request(config)
|
|
|
|
|
+ return data as ApiResponse<T>
|
|
|
}
|
|
}
|
|
|
/**
|
|
/**
|
|
|
* @description 常用请求方法封装
|
|
* @description 常用请求方法封装
|
|
|
*/
|
|
*/
|
|
|
public get<T>(url: string, params?: object, _object: ExtendedAxiosRequestConfig = {}): Promise<ApiResponse<T>> {
|
|
public get<T>(url: string, params?: object, _object: ExtendedAxiosRequestConfig = {}): Promise<ApiResponse<T>> {
|
|
|
- return this.service.get(url, { params, ..._object })
|
|
|
|
|
|
|
+ return this.request({ url, params, ..._object })
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public post<T>(url: string, data?: object | string, _object: ExtendedAxiosRequestConfig = {}): Promise<ApiResponse<T>> {
|
|
public post<T>(url: string, data?: object | string, _object: ExtendedAxiosRequestConfig = {}): Promise<ApiResponse<T>> {
|
|
|
- return this.service.post(url, data, _object)
|
|
|
|
|
|
|
+ return this.request({ url, method: 'POST', data, ..._object })
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public postPage<T>(url: string, data?: object | string, _object: ExtendedAxiosRequestConfig = {}): Promise<ApiResponse<ApiResponsePage<T>>> {
|
|
public postPage<T>(url: string, data?: object | string, _object: ExtendedAxiosRequestConfig = {}): Promise<ApiResponse<ApiResponsePage<T>>> {
|
|
@@ -77,11 +80,11 @@ export class RequestHttp {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public put<T>(url: string, data?: object, _object: ExtendedAxiosRequestConfig = {}): Promise<ApiResponse<T>> {
|
|
public put<T>(url: string, data?: object, _object: ExtendedAxiosRequestConfig = {}): Promise<ApiResponse<T>> {
|
|
|
- return this.service.put(url, data, _object)
|
|
|
|
|
|
|
+ return this.request({ url, method: 'PUT', data, ..._object })
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public delete<T>(url: string, params?: object, _object: ExtendedAxiosRequestConfig = {}): Promise<ApiResponse<T>> {
|
|
public delete<T>(url: string, params?: object, _object: ExtendedAxiosRequestConfig = {}): Promise<ApiResponse<T>> {
|
|
|
- return this.service.delete(url, { params, ..._object })
|
|
|
|
|
|
|
+ return this.request({ url, method: 'DELETE', params, ..._object })
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public download(url: string, params?: object, _object: ExtendedAxiosRequestConfig = {}): Promise<BlobPart> {
|
|
public download(url: string, params?: object, _object: ExtendedAxiosRequestConfig = {}): Promise<BlobPart> {
|
|
@@ -103,6 +106,6 @@ export class RequestHttp {
|
|
|
..._object,
|
|
..._object,
|
|
|
headers: { 'Content-Type': 'multipart/form-data', ..._object?.headers }
|
|
headers: { 'Content-Type': 'multipart/form-data', ..._object?.headers }
|
|
|
}
|
|
}
|
|
|
- return this.service.post(url, formData, finalConfig)
|
|
|
|
|
|
|
+ return this.post(url, formData, finalConfig)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|