feat(web): migrate teacher attendance workflow

Add the React attendance console with manual, QR, and location check-in flows, record editing, Excel exchange, submission, risk signals, and course statistics. Preserve server-side task scope and archived-task restrictions.
This commit is contained in:
biss authored and biss committed 2026-10-03 21:38:14 +08:00
1 parent b19c40f09a
commit 1b27029b5a
8 files changed
+458

No files matched your search

+2
View File
@@ -37,6 +37,7 @@ const StudentExperimentGradesPage = lazy(() => import('../pages/StudentExperimen
const CampusRegistrationsPage = lazy(() => import('../pages/CampusRegistrationsPage'))
const StudentApprovalsPage = lazy(() => import('../pages/StudentApprovalsPage'))
const TeacherRosterPage = lazy(() => import('../pages/TeacherRosterPage'))
const TeacherAttendancePage = lazy(() => import('../pages/TeacherAttendancePage'))
const AccountActivationPage = lazy(() => import('../pages/AccountActivationPage'))
const OfficialDocumentVerifyPage = lazy(() => import('../pages/OfficialDocumentVerifyPage'))
const ClassroomRepairReportPage = lazy(() => import('../pages/ClassroomRepairReportPage'))
@@ -116,6 +117,7 @@ function AppRoutes() {
<Route path="/campus-registrations" element={<CampusRegistrationsPage />} />
<Route path="/approvals" element={<StudentApprovalsPage />} />
<Route path="/teacher-roster" element={<TeacherRosterPage />} />
<Route path="/teacher-attendance" element={<TeacherAttendancePage />} />
<Route path="/" element={<Navigate to="/dashboard" replace />} />
</Route>
<Route path="*" element={<Navigate to="/dashboard" replace />} />