feat(portal-shell): wire dashboards to real data-ana queries (P1-2)

- add dashboard.graphql.ts with 6 real aggregate queries
  (teacherDashboard / studentDashboard / parentDashboard /
   adminDashboard / warnings / errorBookStats), snake_case aligned
- add dashboard.ts with 6 hooks + full domain model types
- add 4 role dashboard pages (teacher/student/parent/admin)
  using DashboardShell + StatCard + DashboardSection with
  loading / error / success tri-state
- update [[...route]]/page.tsx to redirect /shell -> /shell/{role}
- retire 6 fake contract queries and hooks (grades/homeworks/
  schedule/attendance/exams/announcements) and mark widget
  placeholders as migrated
- update universal.test.ts to drop retired hook tests
- mark ARCHITECTURE.md P1-2 as completed with acceptance evidence
This commit is contained in:
SpecialX
2026-07-22 12:33:22 +08:00
parent f92fdf8efe
commit 98058eb16b
18 changed files with 1086 additions and 846 deletions

View File

@@ -3,12 +3,14 @@
*
* widget 通过 `import { useParentChildren } from "@/lib/api"` 调用。
* 7 个 domain 文件覆盖全部 31 widget。
* dashboard domain 覆盖 4 角色仪表盘真实聚合查询P1-2
*
* 关联spec §2.2
* 关联spec §2.2、ARCHITECTURE.md §5.5 / §10 P1-2
*/
export * from "./errors";
export * from "./types";
export * from "./universal";
export * from "./dashboard";
export * from "./sidebar";
export * from "./topbar";
export * from "./teacher";