教学大纲下载功能

This commit is contained in:
2026-09-15 16:13:06 +08:00
parent 5d928bd303
commit 5903f0c590
6 changed files with 45 additions and 11 deletions
@@ -103,9 +103,13 @@ public class ZYJXJHBController {
/** /**
* 导出专业教学计划到 Excel(.xlsx)。 * 导出专业教学计划到 Excel(.xlsx)。
* <p>专业代号、停用标识可选,与列表筛选条件一致。</p>
*/ */
@GetMapping("/export") @GetMapping("/export")
public void exportData(HttpServletResponse response) throws Exception { public void exportData(
zyjxjhbService.exportZYJXJHBExcel(response); HttpServletResponse response,
@RequestParam(required = false) String zydh,
@RequestParam(required = false) Integer ty) throws Exception {
zyjxjhbService.exportZYJXJHBExcel(response, zydh, ty);
} }
} }
@@ -68,6 +68,11 @@ public interface ZYJXJHBService {
/** 从 Excel(.xls/.xlsx) 导入专业教学计划 */ /** 从 Excel(.xls/.xlsx) 导入专业教学计划 */
int importZYJXJHBFromExcel(org.springframework.web.multipart.MultipartFile file) throws Exception; 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;
} }
@@ -104,9 +104,16 @@ public class ZYJXJHBServiceImpl implements ZYJXJHBService {
} }
@Override @Override
public void exportZYJXJHBExcel(jakarta.servlet.http.HttpServletResponse response) throws Exception { public void exportZYJXJHBExcel(jakarta.servlet.http.HttpServletResponse response, String zydh, Integer ty) throws Exception {
List<ZYJXJHB> list = zyjxjhbMapper.selectList( LambdaQueryWrapper<ZYJXJHB> wrapper = new LambdaQueryWrapper<>();
new LambdaQueryWrapper<ZYJXJHB>().orderByAsc(ZYJXJHB::getZydh)); if (zydh != null && !zydh.isEmpty()) {
wrapper.eq(ZYJXJHB::getZydh, zydh);
}
if (ty != null) {
wrapper.eq(ZYJXJHB::getTy, ty);
}
wrapper.orderByAsc(ZYJXJHB::getZydh);
List<ZYJXJHB> list = zyjxjhbMapper.selectList(wrapper);
String[] headers = {"专业代号", "课编号", "学期第次", "课类型", "学时", "学分", "周课时", String[] headers = {"专业代号", "课编号", "学期第次", "课类型", "学时", "学分", "周课时",
"课程定位", "模块", "成绩分制", "理论学时", "实践学时", "考试课时", "教研室代号", "简称"}; "课程定位", "模块", "成绩分制", "理论学时", "实践学时", "考试课时", "教研室代号", "简称"};
byte[] bytes = com.roomroot.jwgl.utils.ExcelExportUtil.export("专业教学计划", headers, list, byte[] bytes = com.roomroot.jwgl.utils.ExcelExportUtil.export("专业教学计划", headers, list,
@@ -56,3 +56,13 @@ export function listByZydhAndTy(query) {
params: query params: query
}) })
} }
// 导出教学大纲 Excel(可选 zydh、ty,与列表筛选一致)
export function exportSyllabus(query) {
return request({
url: '/zyjxjhb/export',
method: 'get',
params: query,
responseType: 'blob'
})
}
@@ -296,12 +296,14 @@ import {
deleteSyllabus, deleteSyllabus,
batchDeleteSyllabus, batchDeleteSyllabus,
updateSyllabus, updateSyllabus,
listByZydhAndTy listByZydhAndTy,
exportSyllabus
} from '@/api/teachBusiness/syllabus' } from '@/api/teachBusiness/syllabus'
import { listMajor } from '@/api/subjectMajor/major' import { listMajor } from '@/api/subjectMajor/major'
import { listKb } from '@/api/teachOffice/kb' import { listKb } from '@/api/teachOffice/kb'
import { listOffice } from '@/api/teachOffice/office' import { listOffice } from '@/api/teachOffice/office'
import { getDicts } from '@/api/system/dict/data' import { getDicts } from '@/api/system/dict/data'
import { saveAs } from 'file-saver'
const REFERENCE_DATA_PAGE_SIZE = 10000 const REFERENCE_DATA_PAGE_SIZE = 10000
const COURSE_TYPE_DICT_CODE = 'course_type' const COURSE_TYPE_DICT_CODE = 'course_type'
@@ -500,9 +502,15 @@ export default {
}).catch(() => {}) }).catch(() => {})
}, },
/* ---------- 下载(无后端接口) ---------- */ /* ---------- 下载 ---------- */
handleDownload() { 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(() => {})
}, },
/* ---------- 分页 ---------- */ /* ---------- 分页 ---------- */
+1 -1
View File
@@ -9,7 +9,7 @@ const CompressionPlugin = require('compression-webpack-plugin')
const name = process.env.VUE_APP_TITLE || '教学管理信息系统' // 网页标题 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 // 固定开发服务器端口,避免多实例端口混乱 const port = 80 // 固定开发服务器端口,避免多实例端口混乱