types/axios.d.ts
export interface Result<T = any> {
status: number;
type: 'success' | 'error' | 'warning';
message: string;
result: T;
}
src/utils/http/axios/index.ts
axios配置 可自行根据项目进行更改,只需更改该文件即可,其他文件可以不动
transformResponseHook: (res: AxiosResponse<Result>, options: RequestOptions) => {
const { t } = useI18n();
const { isTransformResponse, isReturnNativeResponse } = options;
// 是否返回原生响应头 比如:需要获取响应头时使用该属性
if (isReturnNativeResponse) {
return res;
}
// 不进行任何处理,直接返回
// 用于页面代码可能需要直接获取code,data,message这些信息时开启
if (!isTransformResponse) {
return res.data;
}
// 错误的时候返回
const { data } = res;
console.log(data)
if (!data) {
// return '[HTTP] Request has no return value';
throw new Error(t('sys.api.apiRequestFailed'));
}
// 这里 code,result,message为 后台统一的字段,需要在 types.ts内修改为项目自己的接口返回格式
const { status, result, message } = data;
npm config set registry https://registry.npm.taobao.org
npm install pnpm -g
pnpm config set registry https://registry.npmmirror.com/
https://doc.vvbin.cn/