import type { ApiServiceEnum } from '@/utils/http/axios'; import type { AxiosRequestConfig } from 'axios'; export type ErrorMessageMode = 'none' | 'modal' | 'message' | undefined; export type SuccessMessageMode = ErrorMessageMode; export interface RequestOptions { // Splicing request parameters to url joinParamsToUrl?: boolean; // Format request parameter time formatDate?: boolean; // Whether to process the request result isTransformResponse?: boolean; // Whether to return native response headers // For example: use this attribute when you need to get the response headers isReturnNativeResponse?: boolean; // Whether to join url joinPrefix?: boolean; // Interface address, use the default apiUrl if you leave it blank apiUrl?: string; // 请求拼接路径 urlPrefix?: string; // Error message prompt type errorMessageMode?: ErrorMessageMode; // Success message prompt type successMessageMode?: SuccessMessageMode; // Whether to add a timestamp joinTime?: boolean; ignoreCancelToken?: boolean; // Whether to send token in header withToken?: boolean; // 请求重试机制 retryRequest?: RetryRequest; } export interface RetryRequest { isOpenRetry: boolean; count: number; waitTime: number; } export interface Result { code: number; type: 'success' | 'error' | 'warning'; message: string; data: T; exceptionNo?: number; } export interface UploadFileItemParams { // File parameter interface field name name?: string; // file name file: File | Blob; // file name filename?: string; } // multipart/form-data: upload file export interface UploadFileParams { // Other parameters data?: Recordable; // File parameter interface field name // file name file: UploadFileItemParams | UploadFileItemParams[]; // file name [key: string]: any; } export type ApiService = ApiServiceEnum; export interface SmartAxiosRequestConfig extends AxiosRequestConfig { // 指定请求发送的服务 service: ApiService; }