This commit is contained in:
dengqichen 2025-01-10 17:30:17 +08:00
parent d1bbd97d7f
commit b807f856a5

View File

@ -328,37 +328,107 @@ const ProjectGroupList: React.FC = () => {
<CardHeader className="flex flex-row items-center justify-between">
<CardTitle></CardTitle>
</CardHeader>
<CardContent>
<div className="rounded-md border">
<Table>
<TableHeader>
<TableRow>
{columns.map((column) => (
<CardContent className="p-0">
<div className="relative rounded-md border">
<div className="overflow-auto">
<Table>
<TableHeader>
<TableRow>
<TableHead className="min-w-[140px]"></TableHead>
<TableHead className="min-w-[140px]"></TableHead>
<TableHead className="min-w-[200px]"></TableHead>
<TableHead className="min-w-[120px]"></TableHead>
<TableHead className="min-w-[100px]"></TableHead>
<TableHead className="min-w-[100px]"></TableHead>
<TableHead className="min-w-[80px]"></TableHead>
<TableHead className="min-w-[80px]"></TableHead>
<TableHead
key={column.accessorKey || column.id}
style={{width: column.size}}
className="sticky right-0 bg-white shadow-[-4px_0_8px_-6px_rgba(0,0,0,0.2)] min-w-[160px]"
>
{column.header}
</TableHead>
))}
</TableRow>
</TableHeader>
<TableBody>
{list.map((item) => (
<TableRow key={item.id}>
{columns.map((column) => (
<TableCell
key={column.accessorKey || column.id}
>
{column.cell
? column.cell({row: {original: item}})
: item[column.accessorKey!]}
</TableCell>
))}
</TableRow>
))}
</TableBody>
</Table>
</TableHeader>
<TableBody>
{list.map((item) => (
<TableRow key={item.id}>
<TableCell>{item.projectGroupCode}</TableCell>
<TableCell>{item.projectGroupName}</TableCell>
<TableCell>{item.projectGroupDesc}</TableCell>
<TableCell>
{(() => {
const typeInfo = getProjectTypeInfo(item.type);
return (
<Badge variant="outline" className="flex items-center gap-1">
{typeInfo.icon}
{typeInfo.label}
</Badge>
);
})()}
</TableCell>
<TableCell>
<div className="flex items-center gap-1">
<EnvironmentOutlined/>
<span>{item.totalEnvironments}</span>
</div>
</TableCell>
<TableCell>
<div className="flex items-center gap-1">
<TeamOutlined/>
<span>{item.totalApplications}</span>
</div>
</TableCell>
<TableCell>
<Badge variant={item.enabled ? "outline" : "secondary"}>
{item.enabled ? '启用' : '禁用'}
</Badge>
</TableCell>
<TableCell>{item.sort}</TableCell>
<TableCell className="sticky right-0 bg-white shadow-[-4px_0_8px_-6px_rgba(0,0,0,0.2)]">
<div className="flex items-center gap-2">
<Button
variant="ghost"
size="sm"
onClick={() => handleEdit(item)}
>
<EditOutlined className="mr-1"/>
</Button>
<AlertDialog>
<AlertDialogTrigger asChild>
<Button
variant="ghost"
size="sm"
className="text-destructive"
>
<DeleteOutlined className="mr-1"/>
</Button>
</AlertDialogTrigger>
<AlertDialogContent>
<AlertDialogHeader>
<AlertDialogTitle></AlertDialogTitle>
<AlertDialogDescription>
</AlertDialogDescription>
</AlertDialogHeader>
<AlertDialogFooter>
<AlertDialogCancel></AlertDialogCancel>
<AlertDialogAction
onClick={() => handleDelete(item.id)}
>
</AlertDialogAction>
</AlertDialogFooter>
</AlertDialogContent>
</AlertDialog>
</div>
</TableCell>
</TableRow>
))}
</TableBody>
</Table>
</div>
</div>
</CardContent>
</Card>