Files
gt-agent-company/src/utils/request/index.ts
sexygoat f9fe76ff99
All checks were successful
构建并部署前端到测试环境 / build-and-deploy (push) Successful in 1m5s
fix:bug
2026-05-14 09:50:34 +08:00

67 lines
2.2 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// 引入配置
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 put<T = any>(url: string, config?: HttpRequestConfig): Promise<T> {
return request({ ...config, url, method: 'PUT' });
}
export function patch<T = any>(url: string, config?: HttpRequestConfig): Promise<T> {
return request({ ...config, url, method: 'PATCH' });
}
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;