'use client'; import React from 'react'; import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, DialogFooter } from '@/components/ui/dialog'; import { Button } from '@/components/ui/button'; import { Label } from '@/components/ui/label'; import { Badge } from '@/components/ui/badge'; import { Loader2 } from 'lucide-react'; import { Role, RoleType } from '../types'; interface RoleDetailDialogProps { open: boolean; onOpenChange: (open: boolean) => void; selectedRole: Role | null; detailLoading?: boolean; } export function RoleDetailDialog({ open, onOpenChange, selectedRole, detailLoading = false }: RoleDetailDialogProps) { const getRoleTypeBadge = (type: RoleType) => { return type === 'system' ? ( 系统角色 ) : ( 自定义 ); }; const getStatusBadge = (status: string) => { return status === 'active' ? ( 启用 ) : ( 禁用 ); }; return ( 角色详情 查看角色的详细信息和权限
{detailLoading ? (
正在加载角色详情...
) : selectedRole ? (
{selectedRole.name}
{selectedRole.code}
{selectedRole.description || '-'}
{getRoleTypeBadge(selectedRole.type)}
{getStatusBadge(selectedRole.status)}
{selectedRole.defaultHomePage && (
{selectedRole.defaultHomePage}
)}
{selectedRole.menuIds?.includes('*') ? '全部' : (selectedRole.menuIds?.length || 0)}
{selectedRole.permissionIds?.includes('*') ? '全部' : (selectedRole.permissionIds?.length || 0)}
{new Date(selectedRole.createdAt).toLocaleString('zh-CN')}
{new Date(selectedRole.updatedAt).toLocaleString('zh-CN')}
) : (
无角色数据
)}
); }