diff --git a/backend/apps/data_training/api/data_training.py b/backend/apps/data_training/api/data_training.py index 9d423517..134ff90b 100644 --- a/backend/apps/data_training/api/data_training.py +++ b/backend/apps/data_training/api/data_training.py @@ -16,6 +16,7 @@ from apps.data_training.models.data_training_model import DataTrainingInfo from common.core.config import settings from common.core.deps import SessionDep, CurrentUser, Trans +from common.core.file import FileRequest from common.utils.data_format import DataFormat router = APIRouter(tags=["DataTraining"], prefix="/system/data-training") @@ -214,11 +215,12 @@ def inner(): return await asyncio.to_thread(inner) -@router.get("/download-fail-info/{filename}") -async def download_excel(filename: str, trans: Trans): +@router.post("/download-fail-info") +async def download_excel(req: FileRequest): """ 根据文件路径下载 Excel 文件 """ + filename = req.file file_path = os.path.join(path, filename) # 检查文件是否存在 diff --git a/backend/common/core/file.py b/backend/common/core/file.py new file mode 100644 index 00000000..d68acbdb --- /dev/null +++ b/backend/common/core/file.py @@ -0,0 +1,4 @@ +from pydantic import BaseModel + +class FileRequest(BaseModel): + file: str diff --git a/frontend/src/api/training.ts b/frontend/src/api/training.ts index 9b247ae2..dbb83ee0 100644 --- a/frontend/src/api/training.ts +++ b/frontend/src/api/training.ts @@ -16,8 +16,12 @@ export const trainingApi = { requestOptions: { customError: true }, }), downloadError: (path: any) => - request.get(`/system/data-training/download-fail-info/${path}`, { - responseType: 'blob', - requestOptions: { customError: true }, - }), + request.post( + `/system/data-training/download-fail-info`, + { file: path }, + { + responseType: 'blob', + requestOptions: { customError: true }, + } + ), } diff --git a/frontend/src/views/system/training/index.vue b/frontend/src/views/system/training/index.vue index b45bdfb9..f4e29a48 100644 --- a/frontend/src/views/system/training/index.vue +++ b/frontend/src/views/system/training/index.vue @@ -134,7 +134,7 @@ const onSuccess = (response: any) => { }) const link = document.createElement('a') link.href = URL.createObjectURL(blob) - link.download = `${t('training.data_training')}_error.xlsx` + link.download = response.data.error_excel_filename document.body.appendChild(link) link.click() document.body.removeChild(link)