feat(web): migrate curriculum management

This commit is contained in:
biss committed 2026-10-02 14:17:54 +08:00
1 parent 5753d72238
commit c2beed236e
6 files changed
+118

No files matched your search

+1
View File
@@ -46,6 +46,7 @@
| `/base-data/facilities` | 教学场所 | SuperAdmin、AcademicAdmin | 教学楼、教室、容量/场地性质筛选、Excel | verification | | `/base-data/facilities` | 教学场所 | SuperAdmin、AcademicAdmin | 教学楼、教室、容量/场地性质筛选、Excel | verification |
| `/base-data/course-categories` | 课程分类 | SuperAdmin、AcademicAdmin | 分类增删改查、启停、排序和 Excel | verification | | `/base-data/course-categories` | 课程分类 | SuperAdmin、AcademicAdmin | 分类增删改查、启停、排序和 Excel | verification |
| `/courses` | 课程库 | 已登录用户;教务与学院管理员可维护 | 游标分页、数据范围、先修关系、分类/性质、Excel、归档审计 | verification | | `/courses` | 课程库 | 已登录用户;教务与学院管理员可维护 | 游标分页、数据范围、先修关系、分类/性质、Excel、归档审计 | verification |
| `/curriculum` | 培养方案管理 | SuperAdmin、AcademicAdmin、CollegeAdmin | 版本、模块、课程、课程组、发布替换与已发布受控编辑 | verification |
| `/activate` | 学生账号激活 | 公开 | 学籍选项、身份匹配、强密码和一次性激活 | verification | | `/activate` | 学生账号激活 | 公开 | 学籍选项、身份匹配、强密码和一次性激活 | verification |
| `/verify/:verificationCode?` | 电子凭证验真 | 公开 | 唯一编号、实时状态、签发信息和 PDF 哈希 | verification | | `/verify/:verificationCode?` | 电子凭证验真 | 公开 | 唯一编号、实时状态、签发信息和 PDF 哈希 | verification |
| `/classroom-repairs/report/:classroomId` | 教室扫码报修 | 公开 | 教室设备、故障类别、联系方式和工单提交 | verification | | `/classroom-repairs/report/:classroomId` | 教室扫码报修 | 公开 | 教室设备、故障类别、联系方式和工单提交 | verification |
+1
View File
@@ -45,6 +45,7 @@ npm.cmd run build
- 批量迁移教师授课意愿、等价课程规则、修读课程台账和学生余额管理四个教务工作流。 - 批量迁移教师授课意愿、等价课程规则、修读课程台账和学生余额管理四个教务工作流。
- 迁移组织机构、学年学期、教学场所与课程分类基础数据,保留 Excel、服务端分页和学期归档审计闭环。 - 迁移组织机构、学年学期、教学场所与课程分类基础数据,保留 Excel、服务端分页和学期归档审计闭环。
- 迁移课程库游标台账,保留学院维护范围、先修关系、筛选导出、批量导入与归档审计。 - 迁移课程库游标台账,保留学院维护范围、先修关系、筛选导出、批量导入与归档审计。
- 迁移培养方案管理,覆盖版本复制、模块与课程编制、公共课程组、发布替换和已发布方案受控调整。
## 迁移纪律 ## 迁移纪律
+2
View File
@@ -44,6 +44,7 @@ const CampusWalletManagementPage = lazy(() => import('../pages/CampusWalletManag
const CourseEnrollmentManagementPage = lazy(() => import('../pages/CourseEnrollmentManagementPage')) const CourseEnrollmentManagementPage = lazy(() => import('../pages/CourseEnrollmentManagementPage'))
const BaseDataPage = lazy(() => import('../pages/BaseDataPage')) const BaseDataPage = lazy(() => import('../pages/BaseDataPage'))
const CourseCataloguePage = lazy(() => import('../pages/CourseCataloguePage')) const CourseCataloguePage = lazy(() => import('../pages/CourseCataloguePage'))
const CurriculumManagementPage = lazy(() => import('../pages/CurriculumManagementPage'))
const AccountActivationPage = lazy(() => import('../pages/AccountActivationPage')) const AccountActivationPage = lazy(() => import('../pages/AccountActivationPage'))
const OfficialDocumentVerifyPage = lazy(() => import('../pages/OfficialDocumentVerifyPage')) const OfficialDocumentVerifyPage = lazy(() => import('../pages/OfficialDocumentVerifyPage'))
const ClassroomRepairReportPage = lazy(() => import('../pages/ClassroomRepairReportPage')) const ClassroomRepairReportPage = lazy(() => import('../pages/ClassroomRepairReportPage'))
@@ -133,6 +134,7 @@ function AppRoutes() {
<Route path="/base-data/facilities" element={<BaseDataPage />} /> <Route path="/base-data/facilities" element={<BaseDataPage />} />
<Route path="/base-data/course-categories" element={<BaseDataPage />} /> <Route path="/base-data/course-categories" element={<BaseDataPage />} />
<Route path="/courses" element={<CourseCataloguePage />} /> <Route path="/courses" element={<CourseCataloguePage />} />
<Route path="/curriculum" element={<CurriculumManagementPage />} />
<Route path="/" element={<Navigate to="/dashboard" replace />} /> <Route path="/" element={<Navigate to="/dashboard" replace />} />
</Route> </Route>
<Route path="*" element={<Navigate to="/dashboard" replace />} /> <Route path="*" element={<Navigate to="/dashboard" replace />} />
Loaded 3 of 6 files, more files were not shown because too many files have changed in this diff. Show more