From 90e03e1fafab1304d6aa447e89529bf0a4c19362 Mon Sep 17 00:00:00 2001 From: zhaichao Date: Thu, 27 Aug 2026 10:31:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/api/classHour/jointTraining.js | 10 +++++ frontend/src/api/log.js | 4 +- frontend/src/api/teachBusiness/classroom.js | 12 ++++++ frontend/src/api/teachBusiness/training.js | 39 +++++++++++++++++++ frontend/src/api/teachOffice/kb.js | 10 +++++ frontend/src/api/textbook/teachingMaterial.js | 4 +- .../views/classHour/jointTraining/index.vue | 9 +++-- .../teachBusiness/trainingPlan/index.vue | 31 ++++++++++++--- .../src/views/teachBusiness/venue/index.vue | 13 ++++++- .../src/views/teachOffice/subject/index.vue | 10 +++-- 10 files changed, 126 insertions(+), 16 deletions(-) diff --git a/frontend/src/api/classHour/jointTraining.js b/frontend/src/api/classHour/jointTraining.js index 2422e153f..901fdc00a 100644 --- a/frontend/src/api/classHour/jointTraining.js +++ b/frontend/src/api/classHour/jointTraining.js @@ -67,3 +67,13 @@ export function exportJointTraining() { responseType: 'blob' }) } + +// 下载联教联训导入模板(返回 Blob) +// GET /download/joint-training +export function downloadJointTrainingTemplate() { + return request({ + url: '/download/joint-training', + method: 'get', + responseType: 'blob' + }) +} diff --git a/frontend/src/api/log.js b/frontend/src/api/log.js index c3114b47e..4a60a9295 100644 --- a/frontend/src/api/log.js +++ b/frontend/src/api/log.js @@ -115,10 +115,10 @@ export function exportTeachingLog(query) { }) } -// 下载导入模板(返回 Blob),接口形态:GET /log/teaching-log/download-template +// 下载导入模板(返回 Blob),接口形态:GET /download/teaching-log export function downloadTeachingLogTemplate() { return request({ - url: '/log/teaching-log/download-template', + url: '/download/teaching-log', method: 'get', responseType: 'blob' }) diff --git a/frontend/src/api/teachBusiness/classroom.js b/frontend/src/api/teachBusiness/classroom.js index 7c36aed69..5430dd2b8 100644 --- a/frontend/src/api/teachBusiness/classroom.js +++ b/frontend/src/api/teachBusiness/classroom.js @@ -93,3 +93,15 @@ export function listClassroomByJxldh(jxldh) { params: { jxldh } }) } + +/** + * 下载教学场地导入模板(返回 Blob) + * GET /download/classroom + */ +export function downloadClassroomTemplate() { + return request({ + url: '/download/classroom', + method: 'get', + responseType: 'blob' + }) +} diff --git a/frontend/src/api/teachBusiness/training.js b/frontend/src/api/teachBusiness/training.js index d64b39845..a2f76b07b 100644 --- a/frontend/src/api/teachBusiness/training.js +++ b/frontend/src/api/teachBusiness/training.js @@ -69,3 +69,42 @@ export function listTraining(params) { params }) } + +/** + * 导出培养方案到 Excel(返回 Blob) + * GET /training/export + */ +export function exportTrainingProgram() { + return request({ + url: '/training/export', + method: 'get', + responseType: 'blob' + }) +} + +/** + * 下载培养方案导入模板(返回 Blob) + * GET /download/training-program + */ +export function downloadTrainingProgramTemplate() { + return request({ + url: '/download/training-program', + method: 'get', + responseType: 'blob' + }) +} + +/** + * 导入培养方案 Excel(multipart,字段名 file) + * POST /training/import + */ +export function importTrainingProgram(file) { + const formData = new FormData() + formData.append('file', file) + return request({ + url: '/training/import', + method: 'post', + data: formData, + headers: { 'Content-Type': 'multipart/form-data' } + }) +} diff --git a/frontend/src/api/teachOffice/kb.js b/frontend/src/api/teachOffice/kb.js index fbc624cff..4a36f71f0 100644 --- a/frontend/src/api/teachOffice/kb.js +++ b/frontend/src/api/teachOffice/kb.js @@ -44,4 +44,14 @@ export function updateKb(data) { method: 'post', data: data }) +} + +// 下载课程科目导入模板(返回 Blob) +// GET /download/course-subject +export function downloadCourseSubjectTemplate() { + return request({ + url: '/download/course-subject', + method: 'get', + responseType: 'blob' + }) } \ No newline at end of file diff --git a/frontend/src/api/textbook/teachingMaterial.js b/frontend/src/api/textbook/teachingMaterial.js index 0c94d4bf0..d65d8d590 100644 --- a/frontend/src/api/textbook/teachingMaterial.js +++ b/frontend/src/api/textbook/teachingMaterial.js @@ -61,10 +61,10 @@ export function deleteTeachingMaterial(id) { }) } -/** 教材导入模板下载 GET /teachingMaterial/template */ +/** 教材导入模板下载 GET /download/teaching-material */ export function downloadTeachingMaterialTemplate() { return request({ - url: '/teachingMaterial/template', + url: '/download/teaching-material', method: 'get', responseType: 'blob' }) diff --git a/frontend/src/views/classHour/jointTraining/index.vue b/frontend/src/views/classHour/jointTraining/index.vue index 55ead9f1a..945d4bbeb 100644 --- a/frontend/src/views/classHour/jointTraining/index.vue +++ b/frontend/src/views/classHour/jointTraining/index.vue @@ -187,7 +187,8 @@ import { deleteJointTraining, getJointTraining, importJointTraining, - exportJointTraining + exportJointTraining, + downloadJointTrainingTemplate } from '@/api/classHour/jointTraining' export default { @@ -433,8 +434,10 @@ export default { }, handleDownloadTemplate() { - // 后端暂未提供模板下载接口,仅作提示 - this.$message.info('后端暂未提供该接口') + downloadJointTrainingTemplate().then(blob => { + saveAs(blob, '联教连训管理.xls') + this.$message.success('模板下载成功') + }).catch(() => {}) } } } diff --git a/frontend/src/views/teachBusiness/trainingPlan/index.vue b/frontend/src/views/teachBusiness/trainingPlan/index.vue index 41d759ad9..0003f0fdb 100644 --- a/frontend/src/views/teachBusiness/trainingPlan/index.vue +++ b/frontend/src/views/teachBusiness/trainingPlan/index.vue @@ -347,12 +347,16 @@