Vben Admin

最后发布时间:2022-11-28 00:28:58 浏览量:

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/