From 526b9082df82da45e1b22111ef8304413fbe65be Mon Sep 17 00:00:00 2001 From: zhaichao Date: Sun, 23 Aug 2026 21:02:15 +0800 Subject: [PATCH] =?UTF-8?q?=E7=8F=AD=E6=AC=A1=E5=AD=A6=E6=9C=9F=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/api/studentRecords/classCalendar.js | 105 ++ frontend/src/api/studentRecords/semester.js | 117 ++ .../shiftSemester/ClassCalendarDialog.vue | 1308 ++++++++--------- .../ClassSemesterDetailDialog.vue | 259 ++-- .../shiftSemester/ClassTeamSelectDialog.vue | 451 ++---- .../views/teachOffice/shiftSemester/index.vue | 865 ++++++----- 6 files changed, 1601 insertions(+), 1504 deletions(-) create mode 100644 frontend/src/api/studentRecords/classCalendar.js create mode 100644 frontend/src/api/studentRecords/semester.js diff --git a/frontend/src/api/studentRecords/classCalendar.js b/frontend/src/api/studentRecords/classCalendar.js new file mode 100644 index 000000000..96604c5d4 --- /dev/null +++ b/frontend/src/api/studentRecords/classCalendar.js @@ -0,0 +1,105 @@ +import request from '@/utils/request' + +// ======================== 班历管理(实体 XYDRWB 学员队任务表) ======================== +// 接口依据:api2.txt「班次学期日历(班历)」分组 + StudentTeamTaskController +// 每个班次学期(xydxqbh)下挂若干条课程任务记录: +// bh 编号、nd 年度、xydbh 学员队编号、kbh 课编号、xqdc 学期第次、jybh 教员编号、kcxh 课次序号、 +// jsbh 教室编号、rs 人数、zks 周课时、xs 学时、klx 课类型、jc 简称、ksdd 考试地点、ksbh 考试编号、 +// jysdh 教研室代号、jysjhjybh 教研室计划教员编号、jysjhbz 教研室计划备注、jhkcxh 计划课次序号、 +// xhbs 序号标识、xydxqbh 学员队学期编号、bz 备注、xf 学分、cjsj/bdsj/kbbdsj 时间、 +// ksks 考试课时、bz2 编组、cjfz 成绩分制、bjrxypjf 不计入学员平均分、llxs 理论学时、sjxs 实践学时、 +// ksksbxs 考试课时不显示、pdxh 配档序号、pdqsz 配档起始周、pdaz 配档按周、pdzzksj 配档占正课时间、 +// pdbz 配档编组、pdtbykxxbz 配当同班异课选修编组、pdzdyxsfbsj 配档自定义学时分布数据、 +// pdqyzdyxs 配档启用自定义学时 + +// 查询某班次学期下的全部班历记录(xydxqbh 学员队学期编号) +export function listClassCalendar(xydxqbh) { + return request({ + url: '/classCalendar/all', + method: 'get', + params: { xydxqbh: xydxqbh } + }) +} + +// 根据主键查询班历记录 +export function getClassCalendar(bh) { + return request({ + url: '/classCalendar/get', + method: 'get', + params: { bh: bh } + }) +} + +// 更新班历记录(请求体 XYDRWB,bh 必传) +export function updateClassCalendar(data) { + return request({ + url: '/classCalendar/update', + method: 'post', + data: data + }) +} + +// 选定区域设置应用于其它班次(请求体 { sourceBhList: 源记录编号, targetBhList: 目标班次学期编号 }) +export function batchCopyCalendar(data) { + return request({ + url: '/classCalendar/batchCopy', + method: 'post', + data: data + }) +} + +// 整个班历应用于其它班次(请求体 { sourceXydxqbh: 源班次学期编号, targetBhList: 目标班次学期编号 }) +export function batchCopyCalendarBySemester(data) { + return request({ + url: '/classCalendar/batchCopyBySemester', + method: 'post', + data: data + }) +} + +// ======================== 学员队任务表操作(/studentTeamTask) ======================== + +// 新增班历记录(请求体 XYDRWB;bh 留空后端生成 UUID) +export function addTeamTask(data) { + return request({ + url: '/studentTeamTask/add', + method: 'post', + data: data + }) +} + +// 删除班历记录(bh 编号) +export function delTeamTask(bh) { + return request({ + url: '/studentTeamTask/delete', + method: 'post', + params: { bh: bh } + }) +} + +// 批量预设合班(请求体 { bhList },按年度排序生成统一课次序号) +export function batchPresetMerge(bhList) { + return request({ + url: '/studentTeamTask/batchPresetMerge', + method: 'post', + data: { bhList: bhList } + }) +} + +// 批量预设拆班(请求体 { bhList },清空课次序号) +export function batchPresetSplit(bhList) { + return request({ + url: '/studentTeamTask/batchPresetSplit', + method: 'post', + data: { bhList: bhList } + }) +} + +// 自动生成必修课程(按学员队+学期第次从专业教学计划生成班历记录) +export function autoGenerateRequiredCourses(xydbh, xqdc) { + return request({ + url: '/studentTeamTask/autoGenerateRequiredCourses', + method: 'post', + params: { xydbh: xydbh, xqdc: xqdc } + }) +} diff --git a/frontend/src/api/studentRecords/semester.js b/frontend/src/api/studentRecords/semester.js new file mode 100644 index 000000000..d60be6e35 --- /dev/null +++ b/frontend/src/api/studentRecords/semester.js @@ -0,0 +1,117 @@ +import request from '@/utils/request' + +// ======================== 班次学期管理(实体 XYDNDXQJBXXB 学员队年度学期基本信息表) ======================== +// 接口依据:api1.txt「班次学期」分组,实际后端位于 StudentRecordsController (/student-records/semester/*) +// 列表仅支持 xydbh(学员队编号)模糊筛选,无年度筛选,前端需本地过滤 +// 新增 bh 留空由后端生成 UUID;字段 nd 年度、xydbh 学员队编号、kxrq 开学日期、jsrq 结束日期、 +// xqdc 学期第次、zyjsbh 专用教室编号、jxrwbh 教学任务编号、bdsj 变动时间、bz 备注、 +// xhbs 序号标识、ysbbh 预设编班号、jclb 节次类别、xtms 系统模式、kfjypk 开放教员排课(0/1)、 +// jsonzd、fxbgscsj 分析报告生成时间、fxbgwd1bh/fxbgwd2bh/fxbgwd3bh 分析报告文档编号 + +// 分页查询班次学期列表(支持 xydbh 模糊) +export function listSemester(query) { + return request({ + url: '/student-records/semester/list', + method: 'get', + params: query + }) +} + +// 查询所有有效班次学期(DEL_FLAG = 0) +export function allSemester() { + return request({ + url: '/student-records/semester/all', + method: 'get' + }) +} + +// 查询班次学期详情(bh 编号) +export function getSemester(bh) { + return request({ + url: '/student-records/semester/get', + method: 'get', + params: { bh: bh } + }) +} + +// 新增班次学期(请求体 XYDNDXQJBXXB;bh 留空后端生成 UUID,delFlag 后端置 0) +export function addSemester(data) { + return request({ + url: '/student-records/semester/add', + method: 'post', + data: data + }) +} + +// 编辑班次学期(bh 编号必传,请求体 XYDNDXQJBXXB) +export function updateSemester(data) { + return request({ + url: '/student-records/semester/update', + method: 'post', + data: data + }) +} + +// 删除班次学期(逻辑删除并级联删除其班历记录) +export function delSemester(bh) { + return request({ + url: '/student-records/semester/delete', + method: 'post', + params: { bh: bh } + }) +} + +// 批量删除班次学期(请求体为编号数组) +export function batchDeleteSemester(bhList) { + return request({ + url: '/student-records/semester/batchDelete', + method: 'post', + data: bhList + }) +} + +// 批量设定学期日期(请求体 { bhList, xqkssj, xqjssj }) +export function batchUpdateDateRange(data) { + return request({ + url: '/student-records/semester/batchUpdateDateRange', + method: 'post', + data: data + }) +} + +// 批量修改开放教员排课状态(请求体 { bhList, kfjypk },0-否 1-是) +export function batchUpdateKfjypk(data) { + return request({ + url: '/student-records/semester/batchUpdateKfjypk', + method: 'post', + data: data + }) +} + +// 批量修改学期第次(请求体 { bhList, xqdc }) +export function batchUpdateXqdc(data) { + return request({ + url: '/student-records/semester/batchUpdateXqdc', + method: 'post', + data: data + }) +} + +// 批量设置教学任务(请求体 { bhList, jxrwbh }) +export function batchUpdateJxrwbh(data) { + return request({ + url: '/student-records/semester/batchUpdateJxrwbh', + method: 'post', + data: data + }) +} + +// 批量创建班次学期(按时间范围筛选可建班的学员队;xqdc 传 春季学期/夏季学期/秋季学期) +// 参数:startTime 起始日、endTime 截止日、nd 年度、xqdc 学期 +export function batchAddFromElective(params) { + return request({ + url: '/student-records/semester/batchAddFromElective', + method: 'post', + params: params + }) +} diff --git a/frontend/src/views/teachOffice/shiftSemester/ClassCalendarDialog.vue b/frontend/src/views/teachOffice/shiftSemester/ClassCalendarDialog.vue index 8ebe16d8b..df6867682 100644 --- a/frontend/src/views/teachOffice/shiftSemester/ClassCalendarDialog.vue +++ b/frontend/src/views/teachOffice/shiftSemester/ClassCalendarDialog.vue @@ -1,103 +1,315 @@