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.
This commit is contained in:
biss committed 2026-10-02 08:24:47 +08:00
1 parent 2a06e37267
commit dcdbb86e2f
18 files changed
+402

No files matched your search

+22
View File
@@ -14,6 +14,17 @@ import {
AuditOutlined,
CheckSquareOutlined,
FormOutlined,
BookOutlined,
LineChartOutlined,
EnvironmentOutlined,
SwapOutlined,
FileProtectOutlined,
SafetyOutlined,
WalletOutlined,
ScheduleOutlined,
TrophyOutlined,
SolutionOutlined,
CommentOutlined,
} from '@ant-design/icons'
import { Avatar, Badge, Button, Layout, Menu, Tag } from 'antd'
import { useQuery } from '@tanstack/react-query'
@@ -58,6 +69,17 @@ export default function AppShell() {
{ key: '/grades', icon: <ReadOutlined />, label: '我的成绩' },
{ key: '/my-attendance', icon: <CheckSquareOutlined />, label: '我的考勤' },
{ key: '/course-selections', icon: <FormOutlined />, label: '学生选课' },
{ key: '/my-curriculum', icon: <BookOutlined />, label: '培养方案' },
{ key: '/academic-overview', icon: <LineChartOutlined />, label: '学业总览' },
{ key: '/free-classrooms', icon: <EnvironmentOutlined />, label: '空闲教室' },
{ key: '/academic-calendar', icon: <ScheduleOutlined />, label: '学术校历' },
{ key: '/student-status-changes', icon: <SwapOutlined />, label: '学籍异动' },
{ key: '/official-documents', icon: <FileProtectOutlined />, label: '电子凭证' },
{ key: '/graduation-audits', icon: <SafetyOutlined />, label: '毕业审核' },
{ key: '/tuition', icon: <WalletOutlined />, label: '我的学费' },
{ key: '/other-exams', icon: <TrophyOutlined />, label: '其他考试' },
{ key: '/makeup-exams', icon: <SolutionOutlined />, label: '补考安排' },
{ key: '/evaluations', icon: <CommentOutlined />, label: '教学评价' },
{ key: '/warnings', icon: <WarningOutlined />, label: '学业预警' },
] : []),
...(user?.roles.includes('SuperAdmin')