主要改动:

自动排课接口立即返回 202 + jobId
后台服务独立执行,不受浏览器关闭或前端超时影响
进度、成功、失败状态持久化到数据库
服务重启后自动恢复排队中或中断的任务
同一草稿禁止重复提交后台任务
运行期间禁止编辑、发布或删除该课表
排课结果和任务成功状态在同一事务中提交
前端每秒轮询进度,显示已处理教学班和已规划安排数
This commit is contained in:
2026-07-24 21:55:07 +08:00 Unverified
parent 49b550560a
commit d67a07f23e
14 changed files with 4011 additions and 32 deletions
+8
View File
@@ -323,6 +323,13 @@ button { cursor: pointer; }
.schedule-sheet-head > div:first-child > span { color: var(--teal); font-size: 10px; letter-spacing: .07em; }
.schedule-sheet-head h3 { margin: 6px 0 5px; font-family: "STZhongsong", "Songti SC", serif; font-size: 21px; }
.schedule-sheet-head p { margin: 0; color: var(--muted); font-size: 10px; }
.auto-schedule-progress { padding: 13px 18px; display: grid; grid-template-columns: minmax(260px, 1fr) minmax(220px, 38%); align-items: center; gap: 20px; border-bottom: 1px solid #c9d9dc; background: #f1f7f7; }
.auto-schedule-progress > div { display: grid; gap: 3px; }
.auto-schedule-progress b { color: #24484d; font-size: 12px; font-weight: 650; }
.auto-schedule-progress span { color: var(--muted); font-size: 10px; }
.auto-schedule-progress.is-succeeded { border-bottom-color: #bedac8; background: #f1f8f3; }
.auto-schedule-progress.is-failed { border-bottom-color: #e6c5c5; background: #fff5f4; }
.auto-schedule-progress.is-failed b { color: #9d3434; }
.schedule-search { padding: 12px 16px; display: flex; align-items: center; gap: 10px; background: #fafbfc; border-bottom: 1px solid var(--line); }
.schedule-search .el-input { width: 320px; }
.schedule-search > span { margin-left: auto; color: var(--muted); font-size: 10px; }
@@ -1012,6 +1019,7 @@ button { cursor: pointer; }
.schedule-version-strip { margin-top: 10px; }
.schedule-sheet-head { display: block; }
.schedule-sheet-head .plan-actions { margin-top: 15px; }
.auto-schedule-progress { grid-template-columns: 1fr; gap: 10px; }
.schedule-search { flex-wrap: wrap; }
.schedule-search .el-input { width: 100%; }
.schedule-search > span { width: 100%; margin-left: 0; }