Files
crawler-plugin/frontend-vue/src/shared/api/convert.ts
2026-03-20 14:26:34 +08:00

64 lines
1.4 KiB
TypeScript

import { requestGetJson, requestPostJson } from '@/shared/api/http'
export interface UploadFileVo {
fileKey: string
originalFilename?: string
localPath?: string
size?: number
}
export interface ConvertTemplateVo {
id: number
templateCode: string
templateName: string
outputFilename: string
isDefault?: boolean
builtIn?: boolean
}
export interface UploadedSourceFileDto {
fileKey: string
originalFilename?: string
}
export interface ConvertResultItemVo {
resultId?: number
sourceFilename?: string
outputFilename?: string
success: boolean
error?: string
downloadUrl?: string
}
export interface ConvertRunVo {
total: number
successCount: number
failedCount: number
items: ConvertResultItemVo[]
}
export interface StandardApiResponse<T> {
success: boolean
message?: string
data?: T
}
export function getConvertTemplates() {
return requestGetJson<StandardApiResponse<ConvertTemplateVo[]>>('/api/convert/templates')
}
export function uploadTempFile(file: File) {
const formData = new FormData()
formData.append('file', file)
return requestPostJson<StandardApiResponse<UploadFileVo>, FormData>('/api/files/upload', formData, {
headers: { 'Content-Type': 'multipart/form-data' },
})
}
export function runConvert(files: UploadedSourceFileDto[], templateId: number) {
return requestPostJson<StandardApiResponse<ConvertRunVo>>('/api/convert/run', {
files,
templateId,
})
}