Files
hzdyjs/mobile/src/common/request.d.ts
T
2025-08-08 20:35:17 +08:00

65 lines
1.8 KiB
TypeScript

// request.js 的 TypeScript 声明文件
export interface ApiResponse<T = any> {
code: number
msg: string
data: T
rows?: T[]
total?: number
}
export interface RequestOptions {
url: string
method?: 'GET' | 'POST' | 'PUT' | 'DELETE'
data?: any
header?: Record<string, any>
timeout?: number
clientId?: string
responseType?: 'text' | 'json' | 'arraybuffer' | 'blob'
}
export interface LoginData {
username: string
password: string
tenantId?: string
clientId?: string
grantType?: string
}
export interface UploadResponse {
code: number
msg: string
data: {
url: string
ossId: string
fileName: string
}
}
export interface DownloadResponse {
statusCode: number
tempFilePath: string
errMsg: string
}
// 主要导出函数
export function request(options: RequestOptions): Promise<ApiResponse>
// 便捷请求方法
export function get<T = any>(url: string, data?: any, header?: Record<string, any>): Promise<ApiResponse<T>>
export function post<T = any>(url: string, data?: any, header?: Record<string, any>): Promise<ApiResponse<T>>
export function put<T = any>(url: string, data?: any, header?: Record<string, any>): Promise<ApiResponse<T>>
export function del<T = any>(url: string, data?: any, header?: Record<string, any>): Promise<ApiResponse<T>>
// 文件操作方法
export function uploadFile(url: string, filePath: string, formData?: Record<string, any>): Promise<UploadResponse>
export function downloadFile(url: string): Promise<DownloadResponse>
export function download(url: string, params: any, fileName: string): Promise<any>
// API对象
export const api: {
login: (data: LoginData) => Promise<ApiResponse>
getUserInfo: () => Promise<ApiResponse>
getTenantList: (isToken?: boolean) => Promise<ApiResponse>
logout: () => Promise<ApiResponse>
}