feat(web): migrate student, public, and teacher workflows
Add React workflows for experiments, campus registration, student approvals, account activation, document verification, classroom repair, venue displays, and teacher rosters. Wire role-aware navigation while preserving existing API authorization boundaries.
This commit is contained in:
1 parent
0d9dfaf8ff
commit
c3a4ede36f
17 files changed
+342
No files matched your search
@@ -31,5 +31,14 @@
|
|||||||
| `/physical-fitness` | 我的体质健康 | Student | 已发布学年、单项成绩、标准分、附加分和综合等级 | verification |
|
| `/physical-fitness` | 我的体质健康 | Student | 已发布学年、单项成绩、标准分、附加分和综合等级 | verification |
|
||||||
| `/degree-awards` | 我的学位授予 | Student | 正式发布结论、绩点门槛、规则或人工复核说明 | verification |
|
| `/degree-awards` | 我的学位授予 | Student | 正式发布结论、绩点门槛、规则或人工复核说明 | verification |
|
||||||
| `/graduation-clearance` | 我的毕业离校 | Student | 跨部门事项、必办标记、办结/豁免状态和整体进度 | verification |
|
| `/graduation-clearance` | 我的毕业离校 | Student | 跨部门事项、必办标记、办结/豁免状态和整体进度 | verification |
|
||||||
|
| `/experiments` | 我的实验 | Student | 集中课次、自主场次、容量、预约与取消 | verification |
|
||||||
|
| `/experiment-grades` | 我的实验成绩 | Student | 正式发布项目、评分维度、参与状态和课程加权总分 | verification |
|
||||||
|
| `/campus-registrations` | 校园支付与报名 | Student | 开放项目、报名、审核状态、撤销、校园余额支付 | verification |
|
||||||
|
| `/approvals` | 我的审批申请 | Student | 免修、缓考、课程替代申请与审核结果 | verification |
|
||||||
|
| `/teacher-roster` | 选课名单 | Teacher | 本人授课教学班、学生联系与特殊支持信息、Excel 导出 | verification |
|
||||||
|
| `/activate` | 学生账号激活 | 公开 | 学籍选项、身份匹配、强密码和一次性激活 | verification |
|
||||||
|
| `/verify/:verificationCode?` | 电子凭证验真 | 公开 | 唯一编号、实时状态、签发信息和 PDF 哈希 | verification |
|
||||||
|
| `/classroom-repairs/report/:classroomId` | 教室扫码报修 | 公开 | 教室设备、故障类别、联系方式和工单提交 | verification |
|
||||||
|
| `/venue-display/:type/:id` | 教室/楼宇信息屏 | 公开 | 当日课表、空闲状态、公告、报修二维码和自动刷新 | verification |
|
||||||
|
|
||||||
后续从 `web/src/router/index.ts` 逐条补全。只有关键合同和各状态验收完整后,状态才能更新为 `complete`。
|
后续从 `web/src/router/index.ts` 逐条补全。只有关键合同和各状态验收完整后,状态才能更新为 `complete`。
|
||||||
@@ -38,6 +38,9 @@ npm.cmd run build
|
|||||||
- 批量迁移学生校历、学籍异动、电子凭证、毕业审核和学费分项缴纳流程。
|
- 批量迁移学生校历、学籍异动、电子凭证、毕业审核和学费分项缴纳流程。
|
||||||
- 迁移学生其他考试成绩、补考安排和教学评价提交闭环。
|
- 迁移学生其他考试成绩、补考安排和教学评价提交闭环。
|
||||||
- 迁移学生学业规划与毕业模拟、体质健康、学位授予和毕业离校进度。
|
- 迁移学生学业规划与毕业模拟、体质健康、学位授予和毕业离校进度。
|
||||||
|
- 迁移学生实验预约、实验成绩、校园报名缴费及免修/缓考/课程替代申请闭环。
|
||||||
|
- 迁移公开账号激活、电子凭证验真、教室扫码报修及场地信息屏。
|
||||||
|
- 迁移教师选课名单工作台,支持按学期查看本人教学班、学生支持信息和 Excel 导出。
|
||||||
|
|
||||||
## 迁移纪律
|
## 迁移纪律
|
||||||
|
|
||||||
|
|||||||
@@ -32,6 +32,15 @@ const AcademicPlanningPage = lazy(() => import('../pages/AcademicPlanningPage'))
|
|||||||
const PhysicalFitnessPage = lazy(() => import('../pages/PhysicalFitnessPage'))
|
const PhysicalFitnessPage = lazy(() => import('../pages/PhysicalFitnessPage'))
|
||||||
const DegreeAwardsPage = lazy(() => import('../pages/DegreeAwardsPage'))
|
const DegreeAwardsPage = lazy(() => import('../pages/DegreeAwardsPage'))
|
||||||
const GraduationClearancePage = lazy(() => import('../pages/GraduationClearancePage'))
|
const GraduationClearancePage = lazy(() => import('../pages/GraduationClearancePage'))
|
||||||
|
const StudentExperimentsPage = lazy(() => import('../pages/StudentExperimentsPage'))
|
||||||
|
const StudentExperimentGradesPage = lazy(() => import('../pages/StudentExperimentGradesPage'))
|
||||||
|
const CampusRegistrationsPage = lazy(() => import('../pages/CampusRegistrationsPage'))
|
||||||
|
const StudentApprovalsPage = lazy(() => import('../pages/StudentApprovalsPage'))
|
||||||
|
const TeacherRosterPage = lazy(() => import('../pages/TeacherRosterPage'))
|
||||||
|
const AccountActivationPage = lazy(() => import('../pages/AccountActivationPage'))
|
||||||
|
const OfficialDocumentVerifyPage = lazy(() => import('../pages/OfficialDocumentVerifyPage'))
|
||||||
|
const ClassroomRepairReportPage = lazy(() => import('../pages/ClassroomRepairReportPage'))
|
||||||
|
const VenueDisplayPage = lazy(() => import('../pages/VenueDisplayPage'))
|
||||||
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'))
|
||||||
@@ -71,6 +80,10 @@ function AppRoutes() {
|
|||||||
<Route path="/login" element={<LoginPage />} />
|
<Route path="/login" element={<LoginPage />} />
|
||||||
<Route path="/sso/callback" element={<SsoCallbackPage />} />
|
<Route path="/sso/callback" element={<SsoCallbackPage />} />
|
||||||
<Route path="/sso/bind" element={<SsoBindPage />} />
|
<Route path="/sso/bind" element={<SsoBindPage />} />
|
||||||
|
<Route path="/activate" element={<AccountActivationPage />} />
|
||||||
|
<Route path="/verify/:verificationCode?" element={<OfficialDocumentVerifyPage />} />
|
||||||
|
<Route path="/classroom-repairs/report/:classroomId" element={<ClassroomRepairReportPage />} />
|
||||||
|
<Route path="/venue-display/:type/:id" element={<VenueDisplayPage />} />
|
||||||
<Route element={<ProtectedRoute />}>
|
<Route element={<ProtectedRoute />}>
|
||||||
<Route path="/dashboard" element={<DashboardPage />} />
|
<Route path="/dashboard" element={<DashboardPage />} />
|
||||||
<Route path="/account" element={<AccountPage />} />
|
<Route path="/account" element={<AccountPage />} />
|
||||||
@@ -98,6 +111,11 @@ function AppRoutes() {
|
|||||||
<Route path="/physical-fitness" element={<PhysicalFitnessPage />} />
|
<Route path="/physical-fitness" element={<PhysicalFitnessPage />} />
|
||||||
<Route path="/degree-awards" element={<DegreeAwardsPage />} />
|
<Route path="/degree-awards" element={<DegreeAwardsPage />} />
|
||||||
<Route path="/graduation-clearance" element={<GraduationClearancePage />} />
|
<Route path="/graduation-clearance" element={<GraduationClearancePage />} />
|
||||||
|
<Route path="/experiments" element={<StudentExperimentsPage />} />
|
||||||
|
<Route path="/experiment-grades" element={<StudentExperimentGradesPage />} />
|
||||||
|
<Route path="/campus-registrations" element={<CampusRegistrationsPage />} />
|
||||||
|
<Route path="/approvals" element={<StudentApprovalsPage />} />
|
||||||
|
<Route path="/teacher-roster" element={<TeacherRosterPage />} />
|
||||||
<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 17 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user