Files
FreeERP.Antd.Admin/src/utils/useRequest2.ts
2026-01-05 17:06:16 +08:00

80 lines
2.3 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 { OSSBaseUrl } from '@/config/config';
import type { NotificationInstance } from 'antd/es/notification/interface';
import { dingRequest } from './common';
import { post } from './http';
type IConfig = {
notification?: NotificationInstance;
};
/**
* 轻量级请求
* @param url 请求地址
* @param data 请求参数
* @param config 请求配置项 + 提示组件 {}
* @returns Promise<any>
* */
export const requestLite = async (url: string, data?: any, config?: IConfig) => {
const { notification, ...option } = config || {};
try {
const res = await post(url, data, option);
if (res?.err_code != 0) {
if (res?.err_code == 110000) {
location.href = '#/login';
} else {
if (notification) {
notification.error({
title: `${'错误码'}${res.err_code}`,
description: res.err_msg,
});
}
}
}
return res;
} catch (error: any) {
console.log(error);
if (notification) {
notification.error({
title: `${'服务错误'}`,
description: `${error?.message}, ${error?.response?.data?.message || ''}`,
});
}
const msg = `接口地址:${url}\n响应信息${error?.message}\n错误信息${JSON.stringify(
error?.response?.data || '',
).replace(/"/g, '')}\n请求参数${JSON.stringify(data || '').replace(/"/g, '')}`;
dingRequest(msg || '错误');
}
};
/**
* 请求获取文件
* @param url 文件地址
* @param options 参数
* @param options.oss 判断是不是 oss文件, 默认 true
* @returns Promise<File>
*/
// export const requestFile = async (
// url: string,
// options: { oss?: boolean } = { oss: true },
// ) => {
// const u = url.startsWith("/") ? url.substring(1) : url;
// return new Promise<Blob>((resolve, reject) => {
// try {
// fetch(options.oss ? `${OSSBaseUrl}${u}` : url, { mode: "cors" })
// .then((response) => {
// if (!response.ok) {
// throw new Error(`HTTP 错误!状态:${response.status}`);
// }
// return response.blob();
// })
// .then((res) => {
// // const fileName = url.split('/').pop() || '';
// // resolve(blobToFile([res], fileName));
// resolve(res);
// });
// } catch (error) {
// reject(error);
// }
// });
// };