2 Commits
  • feat(web): migrate student progress workflows
    Add React experiences for academic planning simulations, published physical fitness results, degree award decisions, and graduation clearance tracking. Wire student navigation and document the migrated API contracts.
  • feat(web): expand React student services
    Migrate curriculum progress, academic analytics, classroom availability, calendar, student status changes, official documents, graduation audits, tuition, other exams, makeup schedules, and course evaluations. Connect role-aware navigation and preserve existing API workflows.
23 changed files with 519 additions and 0 deletions

No files matched your search

+15
View File
@@ -16,5 +16,20 @@
| `/my-profile` | 我的个人档案 | Student | 学籍只读信息、身份与联系资料、紧急联系人、特殊支持需求 | verification | | `/my-profile` | 我的个人档案 | Student | 学籍只读信息、身份与联系资料、紧急联系人、特殊支持需求 | verification |
| `/my-attendance` | 我的考勤 | Student | 定位/二维码签到、课程归档、出勤汇总、异常记录申诉 | verification | | `/my-attendance` | 我的考勤 | Student | 定位/二维码签到、课程归档、出勤汇总、异常记录申诉 | verification |
| `/course-selections` | 学生选课 | Student | 批次窗口、学分预算、教学班余量、选课/退选、候补顺位 | verification | | `/course-selections` | 学生选课 | Student | 批次窗口、学分预算、教学班余量、选课/退选、候补顺位 | verification |
| `/my-curriculum` | 我的培养方案 | Student | 发布方案匹配、课程模块、修读状态、完成学分与失败记录 | verification |
| `/academic-overview` | 学业成绩总览 | Student | 全学期指标、班级/专业/学院排名、学期趋势 | verification |
| `/free-classrooms` | 空闲教室 | Student | 正式课表、预约占用、周次/节次/校区/容量筛选 | verification |
| `/academic-calendar` | 学术校历 | Student | 当前学期角色日程、月视图、节假日和考试提醒 | verification |
| `/student-status-changes` | 学籍异动 | Student | 休学/复学/退学申请、三级进度、提交前撤回 | verification |
| `/official-documents` | 电子凭证 | Student | 自助签发、短时去重、状态追踪、PDF 下载 | verification |
| `/graduation-audits` | 毕业审核 | Student | 发布结论、学分/必修完成度、缺失课程与复核说明 | verification |
| `/tuition` | 我的学费 | Student | 四类费用明细、已缴/待缴、校园余额分项支付 | verification |
| `/other-exams` | 其他考试 | Student | 最佳成绩、历次考试、通过/等级/分数制结果 | verification |
| `/makeup-exams` | 补考安排 | Student | 已发布场次、补考原因、考场、座位和成绩 | verification |
| `/evaluations` | 教学评价 | Student | 开放任务、动态评分维度、一次性提交 | verification |
| `/academic-planning` | 学业规划与毕业模拟 | Student | 未来学期排课、下学期建议、先修冲突、负荷和毕业时间模拟 | verification |
| `/physical-fitness` | 我的体质健康 | Student | 已发布学年、单项成绩、标准分、附加分和综合等级 | verification |
| `/degree-awards` | 我的学位授予 | Student | 正式发布结论、绩点门槛、规则或人工复核说明 | verification |
| `/graduation-clearance` | 我的毕业离校 | Student | 跨部门事项、必办标记、办结/豁免状态和整体进度 | verification |
后续从 `web/src/router/index.ts` 逐条补全。只有关键合同和各状态验收完整后,状态才能更新为 `complete`。 后续从 `web/src/router/index.ts` 逐条补全。只有关键合同和各状态验收完整后,状态才能更新为 `complete`。
+4
View File
@@ -34,6 +34,10 @@ npm.cmd run build
- 迁移 `/exams` 的学生考试与教师监考安排; - 迁移 `/exams` 的学生考试与教师监考安排;
- 迁移学生 `/grades` 成绩单、绩点排名,以及 `/warnings` 预警确认和帮扶进度。 - 迁移学生 `/grades` 成绩单、绩点排名,以及 `/warnings` 预警确认和帮扶进度。
- 迁移学生 `/my-profile` 个人档案、`/my-attendance` 定位/二维码签到与申诉、`/course-selections` 选课/退选和候补流程。 - 迁移学生 `/my-profile` 个人档案、`/my-attendance` 定位/二维码签到与申诉、`/course-selections` 选课/退选和候补流程。
- 迁移学生 `/my-curriculum` 培养方案进度、`/academic-overview` 学业排名趋势与 `/free-classrooms` 空闲教室查询。
- 批量迁移学生校历、学籍异动、电子凭证、毕业审核和学费分项缴纳流程。
- 迁移学生其他考试成绩、补考安排和教学评价提交闭环。
- 迁移学生学业规划与毕业模拟、体质健康、学位授予和毕业离校进度。
## 迁移纪律 ## 迁移纪律
+30
View File
@@ -17,6 +17,21 @@ const StudentWarningsPage = lazy(() => import('../pages/StudentWarningsPage'))
const StudentProfilePage = lazy(() => import('../pages/StudentProfilePage')) const StudentProfilePage = lazy(() => import('../pages/StudentProfilePage'))
const StudentAttendancePage = lazy(() => import('../pages/StudentAttendancePage')) const StudentAttendancePage = lazy(() => import('../pages/StudentAttendancePage'))
const CourseSelectionPage = lazy(() => import('../pages/CourseSelectionPage')) const CourseSelectionPage = lazy(() => import('../pages/CourseSelectionPage'))
const StudentCurriculumPage = lazy(() => import('../pages/StudentCurriculumPage'))
const AcademicOverviewPage = lazy(() => import('../pages/AcademicOverviewPage'))
const FreeClassroomsPage = lazy(() => import('../pages/FreeClassroomsPage'))
const StudentStatusChangesPage = lazy(() => import('../pages/StudentStatusChangesPage'))
const OfficialDocumentsPage = lazy(() => import('../pages/OfficialDocumentsPage'))
const GraduationAuditPage = lazy(() => import('../pages/GraduationAuditPage'))
const TuitionPage = lazy(() => import('../pages/TuitionPage'))
const AcademicCalendarPage = lazy(() => import('../pages/AcademicCalendarPage'))
const OtherExamsPage = lazy(() => import('../pages/OtherExamsPage'))
const MakeupExamsPage = lazy(() => import('../pages/MakeupExamsPage'))
const EvaluationsPage = lazy(() => import('../pages/EvaluationsPage'))
const AcademicPlanningPage = lazy(() => import('../pages/AcademicPlanningPage'))
const PhysicalFitnessPage = lazy(() => import('../pages/PhysicalFitnessPage'))
const DegreeAwardsPage = lazy(() => import('../pages/DegreeAwardsPage'))
const GraduationClearancePage = lazy(() => import('../pages/GraduationClearancePage'))
const SsoCallbackPage = lazy(() => import('../pages/SsoCallbackPage')) const SsoCallbackPage = lazy(() => import('../pages/SsoCallbackPage'))
const SsoBindPage = lazy(() => import('../pages/SsoBindPage')) const SsoBindPage = lazy(() => import('../pages/SsoBindPage'))
const AppShell = lazy(() => import('../layout/AppShell')) const AppShell = lazy(() => import('../layout/AppShell'))
@@ -68,6 +83,21 @@ function AppRoutes() {
<Route path="/my-profile" element={<StudentProfilePage />} /> <Route path="/my-profile" element={<StudentProfilePage />} />
<Route path="/my-attendance" element={<StudentAttendancePage />} /> <Route path="/my-attendance" element={<StudentAttendancePage />} />
<Route path="/course-selections" element={<CourseSelectionPage />} /> <Route path="/course-selections" element={<CourseSelectionPage />} />
<Route path="/my-curriculum" element={<StudentCurriculumPage />} />
<Route path="/academic-overview" element={<AcademicOverviewPage />} />
<Route path="/free-classrooms" element={<FreeClassroomsPage />} />
<Route path="/student-status-changes" element={<StudentStatusChangesPage />} />
<Route path="/official-documents" element={<OfficialDocumentsPage />} />
<Route path="/graduation-audits" element={<GraduationAuditPage />} />
<Route path="/tuition" element={<TuitionPage />} />
<Route path="/academic-calendar" element={<AcademicCalendarPage />} />
<Route path="/other-exams" element={<OtherExamsPage />} />
<Route path="/makeup-exams" element={<MakeupExamsPage />} />
<Route path="/evaluations" element={<EvaluationsPage />} />
<Route path="/academic-planning" element={<AcademicPlanningPage />} />
<Route path="/physical-fitness" element={<PhysicalFitnessPage />} />
<Route path="/degree-awards" element={<DegreeAwardsPage />} />
<Route path="/graduation-clearance" element={<GraduationClearancePage />} />
<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 23 files, more files were not shown because too many files have changed in this diff. Show more