Commit Graph

  • 7df7695073 fix: missing '>' in header div tag on Users page wangziqi 2026-07-09 10:11:07 +08:00
  • 903f090293 feat: add staff status filter in student management wangziqi 2026-07-09 10:07:51 +08:00
  • e20e22fc65 feat: add mark-staff/restore-student buttons in user management wangziqi 2026-07-09 10:07:34 +08:00
  • 17ef1adcaa feat: Students list excludes staff by default wangziqi 2026-07-09 10:07:04 +08:00
  • 14eec2852a feat: add mark-staff/mark-student endpoints with studentStatus in user list wangziqi 2026-07-09 10:06:31 +08:00
  • 6e0ad8759f feat: syncOneUser skips Students with non-active status wangziqi 2026-07-09 10:05:41 +08:00
  • 6850777509 plan: student-role separation implementation (6 tasks) wangziqi 2026-07-09 10:04:55 +08:00
  • 9e828756ea spec: student-role separation design (batch-create + manual untag) wangziqi 2026-07-09 10:01:57 +08:00
  • 42d3f0e27f feat: DingTalk attendance import + integration config + expense types + UI polish wangziqi 2026-07-09 09:11:56 +08:00
  • f1959f0d2a fix: switch DingTalk attendance API from getcolumnval to listRecord wangziqi 2026-07-08 14:49:22 +08:00
  • 166d0b2694 feat: auto-create Student for DingTalk users on sync; add DingTalk env to ecosystem config wangziqi 2026-07-08 14:34:49 +08:00
  • edaf3670ee fix: add onDelete cascade for User FK in class_teacher and students entities wangziqi 2026-07-08 14:32:19 +08:00
  • 8c791ec4f3 fix: add build script for server, fix duplicate index in user_ding_mapping entity wangziqi 2026-07-08 14:18:41 +08:00
  • baa01a910a spec: PRD 差距收尾设计(8 个工作包,12 项 + 1 bug) wangziqi 2026-07-07 11:08:38 +08:00
  • 2877171f09 chore: remove empty .claude/commands and .claude/worktrees directories wangziqi 2026-07-07 10:21:58 +08:00
  • 7822b9b159 chore: remove openspec (skills, commands, data) wangziqi 2026-07-07 10:06:49 +08:00
  • a7cb2865a9 fix: update StudentProfileContent report buttons to use /report-html, remove dead /report references wangziqi 2026-07-07 10:03:19 +08:00
  • d3437311dc refactor: remove Puppeteer, delete old PDF download endpoint wangziqi 2026-07-07 09:56:52 +08:00
  • 6e6dd25dc1 feat: change report button to preview in new window wangziqi 2026-07-07 09:53:39 +08:00
  • 36978813cf feat: add GET /archive/:studentId/report-html endpoint wangziqi 2026-07-07 09:50:05 +08:00
  • 9f43f50867 plan: 学生档案报告前端预览实施计划 wangziqi 2026-07-07 09:48:08 +08:00
  • b56fa577cb spec: 学生档案报告前端预览方案设计 wangziqi 2026-07-07 09:47:24 +08:00
  • 24126ab3a9 fix: adjust Students table scroll.x to match total column width wangziqi 2026-07-07 09:40:52 +08:00
  • 693ba5d3b8 feat: complete remaining PRD tasks — RBAC nodes and staff split, schedule month view, auto-generate attendance from schedules, plus fix TypeORM name wangziqi 2026-07-06 18:10:14 +08:00
  • 67952af52e feat(archive): log PDF report generation in operation logs wangziqi 2026-07-06 18:00:46 +08:00
  • bdd2f53b1a feat(occupancies): inherit rentalType and tenantId on room transfer wangziqi 2026-07-06 18:00:35 +08:00
  • 38f6e18cca Task 3: sync RENTAL class_schedule on rental create/update/delete wangziqi 2026-07-06 17:55:08 +08:00
  • 5ea49d0a9e feat(classes): add schedule and attendance-summary endpoints + frontend tabs wangziqi 2026-07-06 17:48:19 +08:00
  • b837e9b145 feat(task2): 排课与租赁双向冲突检测 wangziqi 2026-07-06 17:41:31 +08:00
  • 3fa446f978 Task 4: 学生列表 tenantId 筛选生效 wangziqi 2026-07-06 17:39:24 +08:00
  • ba34c09be4 feat(attendance): add single-record edit and delete APIs wangziqi 2026-07-06 17:39:16 +08:00
  • 85872d6564 refactor(admin): extract StudentProfileContent component and reuse in drawer wangziqi 2026-07-06 17:22:09 +08:00
  • b8563fbde0 fix: use div wrapper for Drawer content wangziqi 2026-07-06 17:01:17 +08:00
  • edb80b7fb2 fix: wrap Drawer content in fragment wangziqi 2026-07-06 17:00:51 +08:00
  • b4fa3ab1fd feat: add learning records and attachments tabs to profile Drawer, plus PDF report button wangziqi 2026-07-06 17:00:13 +08:00
  • 09eb9ca9e0 fix: archive button opens Drawer instead of navigating to separate page wangziqi 2026-07-06 16:58:54 +08:00
  • be75437861 fix: comprehensive UI fix — all table columns have explicit widths, no ellipsis on data, consistent scroll.x wangziqi 2026-07-06 16:56:35 +08:00
  • 26754dc3fa fix(admin): fix column widths and scroll.x for Attendance and Roles pages wangziqi 2026-07-06 16:56:26 +08:00
  • cb39a183cc fix: restore form declaration, fix openDrawer state wangziqi 2026-07-06 16:47:20 +08:00
  • 0f9bcbdaca fix: import Tabs/Descriptions, remove duplicate state wangziqi 2026-07-06 16:46:03 +08:00
  • aac01594da feat: student profile as Drawer from student list wangziqi 2026-07-06 16:45:21 +08:00
  • 8f3a20140d feat: click student name to navigate to profile page wangziqi 2026-07-06 16:43:51 +08:00
  • 4024d7c174 fix: remove ellipsis from student name column, give it 120px width wangziqi 2026-07-06 16:42:36 +08:00
  • 43ee4dc5d5 fix(admin): replace scroll.x='max-content' with calculated fixed widths for all tables wangziqi 2026-07-06 16:39:53 +08:00
  • 8fc697e58f fix: change frontend port to 9527 (docker conflict) wangziqi 2026-07-06 16:37:45 +08:00
  • 6c700c1c04 fix: INSERT IGNORE in migration script, frontend port 9527 wangziqi 2026-07-06 16:37:34 +08:00
  • 72f9a58838 feat: rewrite PDF report to puppeteer HTML→PDF with professional 6-page gongxue design wangziqi 2026-07-06 16:19:50 +08:00
  • f4eac7b804 fix: add scroll.x='max-content' to 15 tables, widen narrow columns to prevent header wrapping wangziqi 2026-07-06 16:10:33 +08:00
  • 4020f79896 chore: enable DB synchronize for auto-creating new archive tables on first deploy wangziqi 2026-07-06 16:05:38 +08:00
  • c81b0a0b5c chore: commit remaining integration files, PM2 single instance, PRD doc wangziqi 2026-07-06 16:04:53 +08:00
  • 8bd59b8ac6 feat: complete student archive subsystem — 7 entities, PDF report, frontend profile page wangziqi 2026-07-06 15:58:36 +08:00
  • b6990dd11b feat: add student archive module with full CRUD APIs wangziqi 2026-07-06 15:46:57 +08:00
  • 9eec7c34be feat: add teacher management page with profile editing wangziqi 2026-07-06 15:36:52 +08:00
  • 9e0d9ff39c feat: add teacher list and profile API wangziqi 2026-07-06 15:33:12 +08:00
  • 1c097dc230 feat: new classrooms default to 'reserved' status instead of 'available' wangziqi 2026-07-06 15:26:35 +08:00
  • 72b0eed36e fix: resolve TS strict type errors in sync services (null→undefined) wangziqi 2026-07-06 15:18:47 +08:00
  • 8d810374f0 feat: add source tracking fields to Department for sync idempotency wangziqi 2026-07-06 15:10:11 +08:00
  • 20f3b79179 feat: bills expense type filter (backend join + frontend Select), sync stub docs wangziqi 2026-07-06 14:48:47 +08:00
  • 4b02012634 feat: classroom status filter + export button + menu (departments/notifications) wangziqi 2026-07-06 14:43:13 +08:00
  • fb6d99266e feat: add date range filter to Occupancies, status filter to Tenants wangziqi 2026-07-06 14:36:03 +08:00
  • ca909fae86 feat: add status+tenant filter to Students page, status filter to Rooms page wangziqi 2026-07-06 14:33:30 +08:00
  • beeb8cb905 feat(attendance): add anomaly alert banner showing consecutive absences and frequent lates wangziqi 2026-07-06 14:27:21 +08:00
  • da69545f74 fix: null cast for refundStatus in TypeORM wangziqi 2026-07-06 10:50:24 +08:00
  • 94251b66ce fix: TypeORM rejects string|null union type for mysql wangziqi 2026-07-06 10:49:59 +08:00
  • 9b0a9749a2 fix: type error in dashboard ClassroomUtilStats wangziqi 2026-07-06 10:30:04 +08:00
  • 6467e67bdb feat: legacy database migration — import old dump, map to new schema, deploy to Tencent Cloud wangziqi 2026-07-06 10:27:47 +08:00
  • 2ce73b8fc3 feat: PM2 + Docker deployment config (MySQL container, PM2 for backend+frontend proxy) wangziqi 2026-07-06 10:12:05 +08:00
  • a568da160c feat(sync): implement sync stubs with env-var gating and status endpoint wangziqi 2026-07-06 09:53:48 +08:00
  • 2c0ca583a3 feat(students): add multi-enrollment comparison view in student list expand row wangziqi 2026-07-06 09:49:13 +08:00
  • 6ba7213cc4 feat(deposits): add refund rejection path with reason wangziqi 2026-07-06 09:44:43 +08:00
  • 3717531bb3 feat(dashboard): add classroom utilization stats endpoint and UI wangziqi 2026-07-06 09:38:17 +08:00
  • 7b298a615c feat: complete PRD verification fixes and deployment readiness wangziqi 2026-07-06 01:55:35 +08:00
  • 5d102ca3c4 feat: add class roster export button in class detail page wangziqi 2026-07-06 01:16:55 +08:00
  • 8453e62088 feat: integrate classroom real-time occupancy with schedule and rental data wangziqi 2026-07-06 01:14:58 +08:00
  • 3bcb7d41c0 fix: F12 P2 follow-up — batch imports set departmentId, optimize getDescendantIds, enforce campus root invariant wangziqi 2026-07-06 01:06:11 +08:00
  • 6b0a21d266 fix: resolve all admin typecheck errors (typed api wrapper, unused imports, missing hooks, PermissionButton children) wangziqi 2026-07-06 01:02:26 +08:00
  • 4a48a65a48 feat: enhance dashboard with attendance count + Gantt chart wangziqi 2026-07-06 00:49:20 +08:00
  • b3655da012 fix: resolve 9 P0+P1 review findings (bills decorators, campus isolation bypass, ding raw crash, batch import counter, SSE multi-tab, interval leak, dept permissions, cycle prevention, tree depth) wangziqi 2026-07-06 00:38:51 +08:00
  • 90b6ce4aba feat: add Departments management page with tree + user list wangziqi 2026-07-06 00:09:04 +08:00
  • 80839607a4 feat: integrate CampusSwitcher into header and API interceptor wangziqi 2026-07-06 00:06:35 +08:00
  • af3b4ba8f4 feat: add useCampus hook and CampusSwitcher component wangziqi 2026-07-06 00:05:48 +08:00
  • df61ebbc5b feat: auto-populate department_id on create + seed default campus with backfill wangziqi 2026-07-06 00:05:00 +08:00
  • cd6364268d feat: integrate CampusScope.filter() into all business services (12 services + 12 modules) wangziqi 2026-07-05 23:58:51 +08:00
  • eeae06fe30 feat: add isSuperAdmin to JWT payload for campus scope bypass wangziqi 2026-07-05 23:51:10 +08:00
  • abcfbc6121 feat: add CampusScope request-level provider for data isolation wangziqi 2026-07-05 23:50:22 +08:00
  • ca53f9471b feat: implement full DepartmentsController with 9 endpoints wangziqi 2026-07-05 23:48:43 +08:00
  • 0e08770cf4 feat: add DepartmentsModule with DTO, Service, and stub controller wangziqi 2026-07-05 23:47:41 +08:00
  • ad24c9ef23 feat: add department_id to all business entities wangziqi 2026-07-05 23:45:05 +08:00
  • 7d945029eb feat: add Department and UserDepartment entities wangziqi 2026-07-05 23:43:57 +08:00
  • 9d9d4719b5 feat: add Student-User association and activate all notification TODOs wangziqi 2026-07-05 23:42:22 +08:00
  • 9e6c136ef0 fix: apply code review fixes — double layout, SSE leaks, interval leak, conflict values wangziqi 2026-07-05 23:31:21 +08:00
  • 7020e86809 feat: integrate notification creation into business modules (classes, schedules done; bills/occupancies/deposits need student→userId mapping) wangziqi 2026-07-05 23:25:34 +08:00
  • 155e3b3c96 feat: add Notifications full page with sidebar filter wangziqi 2026-07-05 23:21:08 +08:00
  • 168308347f feat: integrate NotificationBell into MainLayout header wangziqi 2026-07-05 23:19:27 +08:00
  • f47b7aaf87 feat: add useNotifications hook and NotificationBell component wangziqi 2026-07-05 23:18:18 +08:00
  • adb875976a feat: support JWT from query string for SSE endpoints wangziqi 2026-07-05 23:15:34 +08:00
  • 14a24a14b3 feat: add NotificationsController with SSE stream endpoint wangziqi 2026-07-05 23:09:30 +08:00
  • ce36a92482 fix: revert untracked ExpenseType refs, fix findByUser falsy cursor check wangziqi 2026-07-05 23:05:25 +08:00
  • 5f14b9ff15 feat: add NotificationsService with SSE subject pool wangziqi 2026-07-05 23:01:26 +08:00
  • bb11ca1880 feat: add Notification entity wangziqi 2026-07-05 22:56:54 +08:00