diff --git a/src/pages/MemberManagement.tsx b/src/pages/MemberManagement.tsx index 7d1edbf..6da65fa 100644 --- a/src/pages/MemberManagement.tsx +++ b/src/pages/MemberManagement.tsx @@ -13,6 +13,7 @@ export default function MemberManagement() { const [addOpen, setAddOpen] = useState(false) const [form] = Form.useForm() + const { data: usersData } = useQuery({ queryKey: ['users', 'list'], queryFn: (): Promise => api.get('/admin-api/users') }) const { data: memberships } = useQuery({ queryKey: ['users', 'memberships'], queryFn: (): Promise => api.get('/admin-api/users/memberships') }) const { data: deletions } = useQuery({ queryKey: ['users', 'deletions'], queryFn: (): Promise => api.get('/admin-api/users/deletion-requests') }) @@ -34,6 +35,15 @@ export default function MemberManagement() { }) } + const userCols = [ + { title: '邮箱', dataIndex: 'email', width: 200, ellipsis: true, render: (v: string) => v || '-' }, + { title: '昵称', dataIndex: 'nickname', width: 120, render: (v: string) => v || '-' }, + { title: '角色', dataIndex: 'role', width: 80, render: (v: string) => {v} }, + { title: '状态', dataIndex: 'status', width: 80, render: (v: string) => v === 'active' ? 正常 : {v} }, + { title: '最后登录', dataIndex: 'lastLoginAt', width: 140, render: (d: string) => d ? dayjs(d).format('MM-DD HH:mm') : '-' }, + { title: '注册时间', dataIndex: 'createdAt', width: 140, render: (d: string) => dayjs(d).format('MM-DD HH:mm') }, + ] + const membershipCols = [ { title: '用户ID', dataIndex: 'userId', width: 160, ellipsis: true }, { title: '计划', dataIndex: ['plan', 'name'], width: 120, render: (_: any, r: any) => r.plan?.name || '-' }, @@ -66,6 +76,10 @@ export default function MemberManagement() { , + }, { key: 'membership', label: '会员管理', children: , diff --git a/src/routes/index.tsx b/src/routes/index.tsx index 3b0aaf0..ef2e242 100644 --- a/src/routes/index.tsx +++ b/src/routes/index.tsx @@ -4,6 +4,7 @@ import type { AdminRole } from '@/types/admin' const Dashboard = lazy(() => import('@/pages/Dashboard')) const TaskAssistant = lazy(() => import('@/pages/TaskAssistant')) const UserManagement = lazy(() => import('@/pages/UserManagement')) +const MemberManagement = lazy(() => import('@/pages/MemberManagement')) export interface RouteConfig { path: string @@ -17,7 +18,7 @@ export const routeConfig: RouteConfig[] = [ { path: '/assistant', title: '任务助理', element: TaskAssistant }, { path: '/users', title: '用户管理', element: UserManagement, requiredRole: 'ADMIN' }, { path: '/users/admins', title: '管理员', element: UserManagement, requiredRole: 'SUPER_ADMIN' }, - { path: '/users/members', title: '普通用户', element: UserManagement }, + { path: '/users/members', title: '普通用户', element: MemberManagement }, { path: '/membership', title: '会员与额度', element: UserManagement, requiredRole: 'ADMIN' }, { path: '/knowledge/bases', title: '知识库列表', element: UserManagement }, { path: '/knowledge/sources', title: '知识源列表', element: UserManagement },