diff --git a/backend/roomroot-admin/src/main/java/com/roomroot/web/controller/jwgl/ZYJXJHBController.java b/backend/roomroot-admin/src/main/java/com/roomroot/web/controller/jwgl/ZYJXJHBController.java
index f241095ff..2a9636910 100644
--- a/backend/roomroot-admin/src/main/java/com/roomroot/web/controller/jwgl/ZYJXJHBController.java
+++ b/backend/roomroot-admin/src/main/java/com/roomroot/web/controller/jwgl/ZYJXJHBController.java
@@ -103,9 +103,13 @@ public class ZYJXJHBController {
/**
* 导出专业教学计划到 Excel(.xlsx)。
+ *
专业代号、停用标识可选,与列表筛选条件一致。
*/
@GetMapping("/export")
- public void exportData(HttpServletResponse response) throws Exception {
- zyjxjhbService.exportZYJXJHBExcel(response);
+ public void exportData(
+ HttpServletResponse response,
+ @RequestParam(required = false) String zydh,
+ @RequestParam(required = false) Integer ty) throws Exception {
+ zyjxjhbService.exportZYJXJHBExcel(response, zydh, ty);
}
}
diff --git a/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/service/ZYJXJHBService.java b/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/service/ZYJXJHBService.java
index d24c57bfa..cf8b96a42 100644
--- a/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/service/ZYJXJHBService.java
+++ b/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/service/ZYJXJHBService.java
@@ -68,6 +68,11 @@ public interface ZYJXJHBService {
/** 从 Excel(.xls/.xlsx) 导入专业教学计划 */
int importZYJXJHBFromExcel(org.springframework.web.multipart.MultipartFile file) throws Exception;
- /** 导出专业教学计划到 Excel(.xlsx) */
- void exportZYJXJHBExcel(jakarta.servlet.http.HttpServletResponse response) throws Exception;
+ /**
+ * 导出专业教学计划到 Excel(.xlsx)。
+ *
+ * @param zydh 专业代号(可选)
+ * @param ty 停用标识(可选,0-正常,1-停用)
+ */
+ void exportZYJXJHBExcel(jakarta.servlet.http.HttpServletResponse response, String zydh, Integer ty) throws Exception;
}
diff --git a/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/service/impl/ZYJXJHBServiceImpl.java b/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/service/impl/ZYJXJHBServiceImpl.java
index 9886daff3..9ec8647ad 100644
--- a/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/service/impl/ZYJXJHBServiceImpl.java
+++ b/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/service/impl/ZYJXJHBServiceImpl.java
@@ -104,9 +104,16 @@ public class ZYJXJHBServiceImpl implements ZYJXJHBService {
}
@Override
- public void exportZYJXJHBExcel(jakarta.servlet.http.HttpServletResponse response) throws Exception {
- List list = zyjxjhbMapper.selectList(
- new LambdaQueryWrapper().orderByAsc(ZYJXJHB::getZydh));
+ public void exportZYJXJHBExcel(jakarta.servlet.http.HttpServletResponse response, String zydh, Integer ty) throws Exception {
+ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
+ if (zydh != null && !zydh.isEmpty()) {
+ wrapper.eq(ZYJXJHB::getZydh, zydh);
+ }
+ if (ty != null) {
+ wrapper.eq(ZYJXJHB::getTy, ty);
+ }
+ wrapper.orderByAsc(ZYJXJHB::getZydh);
+ List list = zyjxjhbMapper.selectList(wrapper);
String[] headers = {"专业代号", "课编号", "学期第次", "课类型", "学时", "学分", "周课时",
"课程定位", "模块", "成绩分制", "理论学时", "实践学时", "考试课时", "教研室代号", "简称"};
byte[] bytes = com.roomroot.jwgl.utils.ExcelExportUtil.export("专业教学计划", headers, list,
diff --git a/frontend/src/api/teachBusiness/syllabus.js b/frontend/src/api/teachBusiness/syllabus.js
index 98f047d80..a961ebcf7 100644
--- a/frontend/src/api/teachBusiness/syllabus.js
+++ b/frontend/src/api/teachBusiness/syllabus.js
@@ -56,3 +56,13 @@ export function listByZydhAndTy(query) {
params: query
})
}
+
+// 导出教学大纲 Excel(可选 zydh、ty,与列表筛选一致)
+export function exportSyllabus(query) {
+ return request({
+ url: '/zyjxjhb/export',
+ method: 'get',
+ params: query,
+ responseType: 'blob'
+ })
+}
diff --git a/frontend/src/views/teachBusiness/syllabus/index.vue b/frontend/src/views/teachBusiness/syllabus/index.vue
index 1466139a5..cba8ad606 100644
--- a/frontend/src/views/teachBusiness/syllabus/index.vue
+++ b/frontend/src/views/teachBusiness/syllabus/index.vue
@@ -296,12 +296,14 @@ import {
deleteSyllabus,
batchDeleteSyllabus,
updateSyllabus,
- listByZydhAndTy
+ listByZydhAndTy,
+ exportSyllabus
} from '@/api/teachBusiness/syllabus'
import { listMajor } from '@/api/subjectMajor/major'
import { listKb } from '@/api/teachOffice/kb'
import { listOffice } from '@/api/teachOffice/office'
import { getDicts } from '@/api/system/dict/data'
+import { saveAs } from 'file-saver'
const REFERENCE_DATA_PAGE_SIZE = 10000
const COURSE_TYPE_DICT_CODE = 'course_type'
@@ -500,9 +502,15 @@ export default {
}).catch(() => {})
},
- /* ---------- 下载(无后端接口) ---------- */
+ /* ---------- 下载 ---------- */
handleDownload() {
- this.$message.warning('后端暂未提供该接口')
+ const query = {}
+ if (this.searchForm.zydh) query.zydh = this.searchForm.zydh
+ if (this.searchForm.ty === 0 || this.searchForm.ty === 1) query.ty = this.searchForm.ty
+ exportSyllabus(query).then(blob => {
+ saveAs(blob, '教学大纲.xlsx')
+ this.$message.success('导出成功')
+ }).catch(() => {})
},
/* ---------- 分页 ---------- */
diff --git a/frontend/vue.config.js b/frontend/vue.config.js
index d0df932bc..dc91ec3dc 100644
--- a/frontend/vue.config.js
+++ b/frontend/vue.config.js
@@ -9,7 +9,7 @@ const CompressionPlugin = require('compression-webpack-plugin')
const name = process.env.VUE_APP_TITLE || '教学管理信息系统' // 网页标题
-const baseUrl = 'http://127.0.0.1:8080' // 后端接口
+const baseUrl = 'http://127.10.0.193:8080' // 后端接口
const port = 80 // 固定开发服务器端口,避免多实例端口混乱