first commit

This commit is contained in:
编码猿
2025-10-07 20:17:19 +08:00
commit 61b79f6528
33 changed files with 1292 additions and 0 deletions

98
src/infra/AxiosInfra.ts Normal file
View File

@@ -0,0 +1,98 @@
import axios, {
AxiosError,
type AxiosInstance,
type AxiosRequestConfig,
AxiosResponse,
InternalAxiosRequestConfig
} from "axios";
import { UrlCheckUtils } from '../utils/index'
class AxiosInfra {
public instance: AxiosInstance;
public constructor() {
this.instance = axios.create({
baseURL: UrlCheckUtils.check(),
timeout: Number(window.__APP_CONFIG__.VITE_HTTPTIMEOUT),
headers: {
"Content-Type": "application/json"
}
});
this.ResponseInterceptor();
this.RequestInterceptor();
}
public async get(params: AxiosRequestConfig): Promise<any> {
return await this.instance.get(<string>params.url, {
params: params.data,
headers: Object.assign({ Authorization: localStorage.getItem("token") }, params.headers)
});
}
public async post(params: AxiosRequestConfig): Promise<any> {
return await this.instance.post(<string>params.url, params.data, {
headers: Object.assign({ Authorization: localStorage.getItem("token") }, params.headers)
})
}
/**
* Put 请求
* 请求参数请参考接口RequestParams
* @param params
*/
public async put(params: AxiosRequestConfig): Promise<any> {
return await this.instance.put(<string>params.url, params.data)
}
/**
* delete 请求
* 请求参数请参考接口RequestParams
* @param params
*/
public async delete(params: AxiosRequestConfig): Promise<any> {
return await this.instance.delete(<string>params.url, { params: params.data })
}
/**
* 响应拦截器
* @constructor
*/
public async ResponseInterceptor(): Promise<void> {
this.instance.interceptors.response.use(
(response: AxiosResponse) => {
return response.data.result;
},
(error: AxiosError) => {
console.log(`
❌ 请求错误 ❌
1、基地址: ${ error.config?.baseURL }
2、短地址: ${ error.config?.url }
3、请求 方式: ${ error.config?.method }
4、请求 参数: ${ JSON.stringify(error.config?.params) }
5、请求 头 : ${ JSON.stringify(error.config?.headers) }
------------------------------------------------------------
6、错误信息为: ${ error.message }
7、错误代码为: ${ error.stack }
`);
return Promise.reject(error)
})
}
/**
* 添加请求拦截器
* @constructor
*/
public async RequestInterceptor(): Promise<void> {
this.instance.interceptors.request.use((config: InternalAxiosRequestConfig) => {
return config
}, function (error: AxiosError) {
return Promise.reject(error)
})
}
}
export default new AxiosInfra();