feat(web): migrate messaging and personal timetable

Complete scoped notification composition and recipient selection, and add the React personal timetable with week navigation, integrated exam and experiment entries, exports, and calendar subscription lifecycle management.
This commit is contained in:
biss authored and biss committed 2026-10-03 21:38:14 +08:00
1 parent 338006c51e
commit e926dd00f2
10 files changed
+292 -7

No files matched your search

+4
View File
@@ -7,6 +7,7 @@ import {
MenuFoldOutlined,
MenuUnfoldOutlined,
SafetyCertificateOutlined,
CalendarOutlined,
} from '@ant-design/icons'
import { Avatar, Badge, Button, Layout, Menu, Tag } from 'antd'
import { useQuery } from '@tanstack/react-query'
@@ -40,6 +41,9 @@ export default function AppShell() {
{ key: '/dashboard', icon: <AppstoreOutlined />, label: isStudentHome ? '学习首页' : isTeacherHome ? '教学工作台' : '教务总览' },
{ key: '/account', icon: <IdcardOutlined />, label: '个人账户' },
{ key: '/notifications', icon: <BellOutlined />, label: '通知中心' },
...((roles.includes('Student') || roles.includes('Teacher'))
? [{ key: '/my-timetable', icon: <CalendarOutlined />, label: '我的课表' }]
: []),
...(user?.roles.includes('SuperAdmin')
? [{ key: '/users', icon: <SafetyCertificateOutlined />, label: '用户与权限' }]
: []),