113 lines
2.4 KiB
JavaScript
113 lines
2.4 KiB
JavaScript
import { request, uploadRequest } from '@/utils/request'
|
|
|
|
/**
|
|
* 任務相關 API
|
|
*/
|
|
export const jobsAPI = {
|
|
/**
|
|
* 上傳檔案
|
|
* @param {FormData} formData - 包含檔案和設定的表單資料
|
|
*/
|
|
uploadFile(formData) {
|
|
return uploadRequest.post('/files/upload', formData, {
|
|
onUploadProgress: (progressEvent) => {
|
|
// 上傳進度回調在外部處理
|
|
if (formData.onUploadProgress) {
|
|
formData.onUploadProgress(progressEvent)
|
|
}
|
|
}
|
|
})
|
|
},
|
|
|
|
/**
|
|
* 取得使用者任務列表
|
|
* @param {Object} params - 查詢參數
|
|
* @param {number} params.page - 頁數
|
|
* @param {number} params.per_page - 每頁數量
|
|
* @param {string} params.status - 任務狀態篩選
|
|
*/
|
|
getJobs(params = {}) {
|
|
const defaultParams = {
|
|
page: 1,
|
|
per_page: 20,
|
|
status: 'all'
|
|
}
|
|
return request.get('/jobs', { params: { ...defaultParams, ...params } })
|
|
},
|
|
|
|
/**
|
|
* 取得任務詳細資訊
|
|
* @param {string} jobUuid - 任務 UUID
|
|
*/
|
|
getJobDetail(jobUuid) {
|
|
return request.get(`/jobs/${jobUuid}`)
|
|
},
|
|
|
|
/**
|
|
* 重試失敗任務
|
|
* @param {string} jobUuid - 任務 UUID
|
|
*/
|
|
retryJob(jobUuid) {
|
|
return request.post(`/jobs/${jobUuid}/retry`)
|
|
},
|
|
|
|
/**
|
|
* 取消任務
|
|
* @param {string} jobUuid - 任務 UUID
|
|
*/
|
|
cancelJob(jobUuid) {
|
|
return request.post(`/jobs/${jobUuid}/cancel`)
|
|
},
|
|
|
|
/**
|
|
* 刪除任務
|
|
* @param {string} jobUuid - 任務 UUID
|
|
*/
|
|
deleteJob(jobUuid) {
|
|
return request.delete(`/jobs/${jobUuid}`)
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 檔案相關 API
|
|
*/
|
|
export const filesAPI = {
|
|
/**
|
|
* 下載翻譯檔案
|
|
* @param {string} jobUuid - 任務 UUID
|
|
* @param {string} languageCode - 語言代碼
|
|
*/
|
|
downloadFile(jobUuid, languageCode) {
|
|
return request.get(`/files/${jobUuid}/download/${languageCode}`, {
|
|
responseType: 'blob'
|
|
})
|
|
},
|
|
|
|
/**
|
|
* 批量下載檔案
|
|
* @param {string} jobUuid - 任務 UUID
|
|
*/
|
|
downloadAllFiles(jobUuid) {
|
|
return request.get(`/files/${jobUuid}/download/batch`, {
|
|
responseType: 'blob'
|
|
})
|
|
},
|
|
|
|
/**
|
|
* 下載合併檔案
|
|
* @param {string} jobUuid - 任務 UUID
|
|
*/
|
|
downloadCombineFile(jobUuid) {
|
|
return request.get(`/files/${jobUuid}/download/combine`, {
|
|
responseType: 'blob'
|
|
})
|
|
},
|
|
|
|
/**
|
|
* 取得檔案資訊
|
|
* @param {string} jobUuid - 任務 UUID
|
|
*/
|
|
getFileInfo(jobUuid) {
|
|
return request.get(`/files/${jobUuid}/info`)
|
|
}
|
|
} |