// 用户详情弹窗(只读信息 + 角色徽章 + 编辑入口) // Logan.Li import { Button } from '@/components/ui/button'; import { Badge } from '@/components/ui/badge'; import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, } from '@/components/ui/dialog'; import { Key, Edit, User as UserIcon } from 'lucide-react'; import type { JsonData } from '@/types/common'; interface UserDetailDialogProps { selectedUser: JsonData | null; setSelectedUser: (u: JsonData | null) => void; getUserStatusBadge: (status: 'active' | 'inactive') => React.ReactNode; openEdit: (user: JsonData) => void; } // UserDetailDialog 仅展示选中用户的基本信息和角色列表 // Logan.Li export function UserDetailDialog({ selectedUser, setSelectedUser, getUserStatusBadge, openEdit, }: UserDetailDialogProps) { return ( setSelectedUser(null)}> {selectedUser?.nickname} @{selectedUser?.username} · {selectedUser?.email}

用户名

{selectedUser?.username}

昵称

{selectedUser?.nickname}

邮箱

{selectedUser?.email}

手机号

{selectedUser?.phone || '--'}

状态

{selectedUser && getUserStatusBadge(selectedUser.status)}

创建时间

{selectedUser && selectedUser.createdAt ? new Date(selectedUser.createdAt).toLocaleDateString() : '--'}

角色

{selectedUser?.roles.map((role: string) => ( {role} ))}
); }