feat(web): migrate teaching and enrollment administration

Add React workflows for teaching eligibility, course equivalency rules, enrollment management, and campus wallet administration. Preserve role-aware navigation, college scope, audit trails, and existing server authorization.
This commit is contained in:
biss authored and biss committed 2026-10-03 21:38:14 +08:00
1 parent 1b27029b5a
commit e28123f1c7
9 files changed
+158

No files matched your search

+4
View File
@@ -37,6 +37,10 @@
| `/approvals` | 我的审批申请 | Student | 免修、缓考、课程替代申请与审核结果 | verification |
| `/teacher-roster` | 选课名单 | Teacher | 本人授课教学班、学生联系与特殊支持信息、Excel 导出 | verification |
| `/teacher-attendance` | 教学点名 | Teacher、教务管理、Counselor | 教学班筛选、人工/扫码/定位签到、Excel、提交、风险信号与课程统计 | verification |
| `/teaching-preferences` | 授课科目申报/资格审核 | Teacher、教务管理 | 教师申报与撤回、学院审核、直接分配授课资格 | verification |
| `/course-equivalency-rules` | 等价课程规则 | 教务管理 | 规则建立、适用年级、启停与安全删除 | verification |
| `/course-enrollments` | 修读课程管理 | 教务管理 | 课程/学生双视图、多维筛选、退选递补与全量导出 | verification |
| `/campus-wallets` | 学生余额管理 | 教务管理 | 学生筛选、单笔调整、批量导入、模板与余额导出 | verification |
| `/activate` | 学生账号激活 | 公开 | 学籍选项、身份匹配、强密码和一次性激活 | verification |
| `/verify/:verificationCode?` | 电子凭证验真 | 公开 | 唯一编号、实时状态、签发信息和 PDF 哈希 | verification |
| `/classroom-repairs/report/:classroomId` | 教室扫码报修 | 公开 | 教室设备、故障类别、联系方式和工单提交 | verification |
+1
View File
@@ -42,6 +42,7 @@ npm.cmd run build
- 迁移公开账号激活、电子凭证验真、教室扫码报修及场地信息屏。
- 迁移教师选课名单工作台,支持按学期查看本人教学班、学生支持信息和 Excel 导出。
- 迁移教师教学点名工作台,覆盖人工/扫码/定位签到、Excel 导入导出、提交及课程出勤统计。
- 批量迁移教师授课意愿、等价课程规则、修读课程台账和学生余额管理四个教务工作流。
## 迁移纪律
+8
View File
@@ -38,6 +38,10 @@ const CampusRegistrationsPage = lazy(() => import('../pages/CampusRegistrationsP
const StudentApprovalsPage = lazy(() => import('../pages/StudentApprovalsPage'))
const TeacherRosterPage = lazy(() => import('../pages/TeacherRosterPage'))
const TeacherAttendancePage = lazy(() => import('../pages/TeacherAttendancePage'))
const TeachingPreferencesPage = lazy(() => import('../pages/TeachingPreferencesPage'))
const CourseEquivalencyRulesPage = lazy(() => import('../pages/CourseEquivalencyRulesPage'))
const CampusWalletManagementPage = lazy(() => import('../pages/CampusWalletManagementPage'))
const CourseEnrollmentManagementPage = lazy(() => import('../pages/CourseEnrollmentManagementPage'))
const AccountActivationPage = lazy(() => import('../pages/AccountActivationPage'))
const OfficialDocumentVerifyPage = lazy(() => import('../pages/OfficialDocumentVerifyPage'))
const ClassroomRepairReportPage = lazy(() => import('../pages/ClassroomRepairReportPage'))
@@ -118,6 +122,10 @@ function AppRoutes() {
<Route path="/approvals" element={<StudentApprovalsPage />} />
<Route path="/teacher-roster" element={<TeacherRosterPage />} />
<Route path="/teacher-attendance" element={<TeacherAttendancePage />} />
<Route path="/teaching-preferences" element={<TeachingPreferencesPage />} />
<Route path="/course-equivalency-rules" element={<CourseEquivalencyRulesPage />} />
<Route path="/campus-wallets" element={<CampusWalletManagementPage />} />
<Route path="/course-enrollments" element={<CourseEnrollmentManagementPage />} />
<Route path="/" element={<Navigate to="/dashboard" replace />} />
</Route>
<Route path="*" element={<Navigate to="/dashboard" replace />} />
Loaded 3 of 9 files, more files were not shown because too many files have changed in this diff. Show more