2ND
This commit is contained in:
103
frontend/src/services/jobs.js
Normal file
103
frontend/src/services/jobs.js
Normal file
@@ -0,0 +1,103 @@
|
||||
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-all`, {
|
||||
responseType: 'blob'
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 取得檔案資訊
|
||||
* @param {string} jobUuid - 任務 UUID
|
||||
*/
|
||||
getFileInfo(jobUuid) {
|
||||
return request.get(`/files/${jobUuid}/info`)
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user