feat(admin): 补全 admin 模块核心功能与产品体验优化

修复 v4 报告中的 13 个产品体验问题:新增用户管理列表页和系统设置页,重组导航菜单并补充缺失入口,增加角色切换机制,Dashboard 增加快捷操作和 recharts 趋势图表,考勤增加统计概览,排课增加课表网格视图,统一 Toast 操作反馈,同步更新架构文档
This commit is contained in:
SpecialX
2026-06-22 13:38:07 +08:00
parent 978d9a8309
commit c45b3488c5
23 changed files with 3112 additions and 213 deletions

View File

@@ -0,0 +1,48 @@
import type { Metadata } from "next"
import type { JSX } from "react"
import { requirePermission } from "@/shared/lib/auth-guard"
import { Permissions } from "@/shared/types/permissions"
import { getSearchParam, type SearchParams } from "@/shared/lib/utils"
import { getAdminUsers, getAdminUserRoles } from "@/modules/users/data-access"
import { AdminUsersView } from "@/modules/users/components/admin-users-view"
export const metadata: Metadata = {
title: "用户管理 - Next_Edu",
description: "管理系统所有用户",
}
export const dynamic = "force-dynamic"
export default async function AdminUsersPage({
searchParams,
}: {
searchParams: Promise<SearchParams>
}): Promise<JSX.Element> {
await requirePermission(Permissions.USER_MANAGE)
const sp = await searchParams
const page = Number(getSearchParam(sp, "page") ?? "1") || 1
const search = getSearchParam(sp, "search") ?? ""
const role = getSearchParam(sp, "role") ?? ""
const [result, roleOptions] = await Promise.all([
getAdminUsers({ page, search: search || undefined, role: role || undefined }),
getAdminUserRoles(),
])
return (
<div className="flex h-full flex-col space-y-6 p-8">
<AdminUsersView
users={result.items}
roleOptions={roleOptions}
page={result.page}
pageSize={result.pageSize}
total={result.total}
totalPages={result.totalPages}
search={search}
roleFilter={role}
/>
</div>
)
}