import { AxiosRequestConfig, AxiosResponse } from 'axios'; /** * RESTful风格Api响应 */ export type ApiResponse = { /** * 执行成功 */ success?: boolean; /** * 状态码 */ code?: number; /** * 错误信息 */ message?: string; /** * 数据 */ data?: Output; /** * 时间戳 */ timestamp?: number; /** * 响应 */ response?: AxiosResponse; }; /** * 请求类型 */ export type RequestType = "auth" | "query" | "add" | "edit" | "delete" | "submit" | "upload" | "preview" | "download" | "import" | "export" | "callback" | "other"; /** * Axios 选项 */ export type AxiosOptions = { /** * 是否开启取消重复请求, 默认为 * @default true */ cancelDuplicateRequest?: boolean; /** * 是否开启loading层效果 * @default false */ loading?: boolean; /** * 加载文字 * @default '加载中...' */ loadingText?: string; /** * 是否开启缓存,只有Get请求才行 * @default false */ cache?: boolean; /** * Get请求缓存问题处理 * @default true */ getMethodCacheHandle?: boolean; /** * 是否开启简洁的数据结构响应 * - 只有响应格式是JSON并且是RESTFUL风格返回的才开启 * @default true */ simpleDataFormat?: boolean; /** * 是否开启接口错误信息展示 * @default true */ showErrorMessage?: boolean; /** * 是否开启code信息提示 * - code >= 200 && code <= 299 则不提示 * @default true * @description 只有RESTFUL风格返回的才开启 */ showCodeMessage?: boolean; /** * 是否开启自动下载文件 * - 只有 responseType 配置了 "blob" 才会自动下载 * - UniApp下不可用 * @default true */ autoDownloadFile?: boolean; /** * 请求加密,优先级高于 useAxios().requestCipher * @default undefined */ requestCipher?: boolean; /** * RESTFUL风格返回 * @default true */ restfulResult?: boolean; }; export type FastAxiosRequestConfig = AxiosRequestConfig & { /** * 请求类型 */ requestType: RequestType; } & AxiosOptions;