This commit is contained in:
sexygoat
2026-03-31 18:41:52 +08:00
commit 3c62cc1cd1
527 changed files with 96725 additions and 0 deletions

View File

@@ -0,0 +1,58 @@
// 引入配置
import type { HttpRequestConfig, HttpResponse } from 'uview-plus/libs/luch-request/index';
import type { IResponse } from './types';
import Request from 'uview-plus/libs/luch-request/index';
import { requestInterceptors, responseInterceptors } from './interceptors';
const http = new Request();
// 引入拦截器配置
export function setupRequest() {
http.setConfig((defaultConfig: HttpRequestConfig) => {
/* defaultConfig 为默认全局配置 */
defaultConfig.baseURL = import.meta.env.VITE_API_BASE_URL;
// 设置超时时间为 5 秒
defaultConfig.timeout = 5000;
// #ifdef H5
if (import.meta.env.VITE_APP_PROXY === 'true') {
// H5开发环境使用代理baseURL设置为空字符串
// 请求路径中的 /api 会被代理转发到 VITE_API_BASE_URL
defaultConfig.baseURL = '';
}
// #endif
return defaultConfig;
});
requestInterceptors(http);
responseInterceptors(http);
}
export function request<T = any>(config: HttpRequestConfig): Promise<T> {
return new Promise((resolve, reject) => {
http.request(config).then((res: HttpResponse<IResponse<T>>) => {
console.log('[ res ] >', res);
const { data } = res.data;
resolve(data as T);
}).catch((err: any) => {
console.error('[ err ] >', err);
reject(err);
});
});
}
export function get<T = any>(url: string, config?: HttpRequestConfig): Promise<T> {
return request({ ...config, url, method: 'GET' });
}
export function post<T = any>(url: string, config?: HttpRequestConfig): Promise<T> {
return request({ ...config, url, method: 'POST' });
}
export function upload<T = any>(url: string, config?: HttpRequestConfig): Promise<T> {
return request({ ...config, url, method: 'UPLOAD' });
}
export function download<T = any>(url: string, config?: HttpRequestConfig): Promise<T> {
return request({ ...config, url, method: 'DOWNLOAD' });
}
export default setupRequest;