feat(schedules): implement frontend schedule week view page

- Create SchedulesPage with week selector, classroom/class filters
- Matrix: rows=classrooms, cols=Mon-Sun, cells show subject/teacher/time
- Click empty cell -> create modal with schedule form
- Click occupied cell -> detail modal with delete button
- Conflict: backend 409/400 -> message.error with conflict info
- Route /schedules with PermissionRoute (schedule:view)
- Menu item '排课管理' with CalendarOutlined icon
This commit is contained in:
2026-07-05 19:28:18 +08:00
parent 037c0e07e0
commit 92e6ba0e34
3 changed files with 633 additions and 0 deletions

View File

@@ -20,6 +20,7 @@ import ClassDetailPage from './pages/Classes/detail';
import TenantsPage from './pages/Tenants';
import ClassroomRentalsPage from './pages/ClassroomRentals';
import ClassroomSchedulePage from './pages/ClassroomSchedule';
import SchedulesPage from './pages/Schedules';
import RolesPage from './pages/Roles';
import PermissionsPage from './pages/Permissions';
import PermissionRoute from './components/PermissionRoute';
@@ -200,6 +201,15 @@ const App: React.FC = () => {
</PermissionRoute>
}
/>
<Route
path="schedules"
element={
<PermissionRoute permission="schedule:view">
<SchedulesPage />
</PermissionRoute>
}
/>
</Route>
</Routes>
</BrowserRouter>