Commit Graph

19 Commits

Author SHA1 Message Date
f3b59935d6 feat: 集成 AI 对话与只读查询工具 2026-07-23 14:24:40 +08:00
a585fd42d5 feat: 支持表格单元格快捷编辑
Some checks failed
CI 检查 / lint (pull_request) Has been cancelled
CI 检查 / typecheck (pull_request) Has been cancelled
CI 检查 / test (pull_request) Has been cancelled
2026-07-21 14:17:08 +08:00
375c7ec60b feat: refine admin forms, attendance and finance workflows
Squash merge PR #23.

Included changes:
- complete occupancy check-in required fields/default payload
- improve responsive admin management pages
- fix attendance edge cases and attendance period config
- refine wallet/finance-related workflow handling

Checks:
- npm run typecheck -w apps/admin
- npm run typecheck -w apps/server
2026-07-18 12:54:10 +00:00
7edb4ff853 fix: prune unused RBAC permissions 2026-07-17 17:43:45 +08:00
f7328d670d fix: 归档删除改为软删除 2026-07-17 14:13:17 +08:00
8f0991a51f feat: replace tenants with organization management 2026-07-10 21:27:26 +08:00
8ed1682b90 fix permissions and teacher attendance workflows 2026-07-10 20:40:52 +08:00
50b3608db4 fix(admin): repair class, role, and room views
Use the RBAC user endpoint for teacher selection, restore role table columns, correct Ant Design props, and add typed room bed and locker responses.
2026-07-10 14:12:08 +08:00
c59fd6ce92 fix(admin): UX improvements — silent fetch failures, empty states, batch loading guards, dashboard refresh
- Replace console.error-only catches with message.error user-facing notifications
  across Bills, Classes, ClassroomRentals, ClassroomSchedule, Classrooms, Deposits,
  Expenses, OperationLogs, Permissions, Roles, RoomVisual, Rooms, Students,
  Tenants, Users
- Add Empty component via Table locale prop on list pages: Bills, Classes,
  ClassroomRentals, Classrooms, Deposits, Expenses (room+personal), Occupancies,
  Rooms, Students, Tenants, Roles
- Add batchLoading state to batch delete/update operations: Bills (batchDelete,
  batchUpdateStatus), Expenses (batchDeleteRoom, batchDeletePersonal),
  Occupancies (batchCheckOut, batchDelete), Rooms (batchDelete),
  Students (batchDelete)
- Add refreshLoading indicator to Dashboard header when re-fetching data
- Consistent error pattern: catch (e: unknown) { const err = e as { message?: string }; message.error(...); }
2026-07-09 18:03:42 +08:00
42d3f0e27f feat: DingTalk attendance import + integration config + expense types + UI polish
Server:
- Add DingTalk attendance import service with SSE progress streaming
- Add IntegrationConfig entity & module for multi-tenant DingTalk setup
- Add ExpenseType entity & ExpenseTypesModule
- Add SeedModule for DB initialization
- Add UserDingMapping entity for DingTalk user linkage
- Attendance service: import flow with dedup & student auto-mapping
- Rooms service: time-range overlap queries
- Sync controller/service: DingTalk integration wiring
- Permission guard: refactor to pure re-export
- Campus scope middleware: tenant-aware filtering

Admin UI:
- Attendance page: import UI with progress & result summary
- All pages: tableStyle/tablePagination standardization
- Login page: responsive styling
- Sensitive data: useViewSensitive hook for masked viewing
- Vite config: path aliases, build optimization
- Test infra: vitest config, test utilities

Docs: PRD DingTalk batch 1 & 2 design docs
2026-07-09 09:11:56 +08:00
26754dc3fa fix(admin): fix column widths and scroll.x for Attendance and Roles pages
- Attendance: remove ellipsis from 备注 column, scroll.x 1100 -> 1200
- Roles: adjust column widths (ID 60->80, 系统 70->80, 操作 160->180), remove ellipsis from 描述 and 权限标签
- Teachers: already correct (verified all widths match spec)
- Permissions: card-based layout, no Table component - no changes needed
- Notifications: List-based layout, no Table component - no changes needed
2026-07-06 16:56:26 +08:00
43ee4dc5d5 fix(admin): replace scroll.x='max-content' with calculated fixed widths for all tables 2026-07-06 16:39:53 +08:00
f4eac7b804 fix: add scroll.x='max-content' to 15 tables, widen narrow columns to prevent header wrapping 2026-07-06 16:10:33 +08:00
6b0a21d266 fix: resolve all admin typecheck errors (typed api wrapper, unused imports, missing hooks, PermissionButton children) 2026-07-06 01:02:26 +08:00
ab5898e2cf fix: replace deprecated antd APIs (Drawer width→size, Modal destroyOnClose→destroyOnHidden) 2026-07-05 21:47:32 +08:00
940b587df9 fix: remove nested button patterns across all pages, remove Dashboard gantt 2026-07-05 21:35:03 +08:00
8ccc05387a feat: 角色管理工具栏添加 flexWrap 响应式适配 2026-07-03 10:16:11 +08:00
4f4cee157a chore: commit oxfmt formatting changes and verify artifacts 2026-07-02 15:55:09 +08:00
46a817503e feat(task1): restructure directories for turborepo monorepo
- Move backend/ to apps/server/ via git mv
- Move frontend/ to apps/admin/ via git mv
- Create packages/typescript-config/ with base, nestjs, and react-vite presets
2026-07-02 15:05:12 +08:00