import { useState, useMemo } from 'react'; import { Plus, Search, Edit2, Lock, Trash2, } from 'lucide-react'; import { Card, CardContent } from '@/components/ui/card'; import { users, roles } from '@/lib/mock'; // type User is used implicitly const roleTagStyle: Record = { admin: 'bg-purple-500/15 text-purple-400', dba: 'bg-blue-500/15 text-blue-400', developer: 'bg-green-500/15 text-green-400', guest: 'bg-gray-500/15 text-gray-400', }; export default function UsersPage() { const [search, setSearch] = useState(''); const [roleFilter, setRoleFilter] = useState(''); const [statusFilter, setStatusFilter] = useState(''); const filtered = useMemo(() => { return users.filter(u => { if (roleFilter && u.role !== roleFilter) return false; if (statusFilter && u.status !== statusFilter) return false; if (search && !u.username.includes(search) && !u.email.includes(search)) return false; return true; }); }, [search, roleFilter, statusFilter]); return (

用户管理

管理系统用户,分配角色和数据库访问权限

{/* 筛选 */}
setSearch(e.target.value)} />
{/* 用户表格 */}
{filtered.map(user => ( ))}
用户 角色 部门 最后登录 状态 操作
{user.avatar}
{user.username}
{user.email}
{user.roleName} {user.department} {user.lastLogin}
共 {filtered.length} 条记录
); }