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

View File

@ -328,38 +328,108 @@ const ProjectGroupList: React.FC = () => {
<CardHeader className="flex flex-row items-center justify-between"> <CardHeader className="flex flex-row items-center justify-between">
<CardTitle></CardTitle> <CardTitle></CardTitle>
</CardHeader> </CardHeader>
<CardContent> <CardContent className="p-0">
<div className="rounded-md border"> <div className="relative rounded-md border">
<div className="overflow-auto">
<Table> <Table>
<TableHeader> <TableHeader>
<TableRow> <TableRow>
{columns.map((column) => ( <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 <TableHead
key={column.accessorKey || column.id} className="sticky right-0 bg-white shadow-[-4px_0_8px_-6px_rgba(0,0,0,0.2)] min-w-[160px]"
style={{width: column.size}}
> >
{column.header}
</TableHead> </TableHead>
))}
</TableRow> </TableRow>
</TableHeader> </TableHeader>
<TableBody> <TableBody>
{list.map((item) => ( {list.map((item) => (
<TableRow key={item.id}> <TableRow key={item.id}>
{columns.map((column) => ( <TableCell>{item.projectGroupCode}</TableCell>
<TableCell <TableCell>{item.projectGroupName}</TableCell>
key={column.accessorKey || column.id} <TableCell>{item.projectGroupDesc}</TableCell>
> <TableCell>
{column.cell {(() => {
? column.cell({row: {original: item}}) const typeInfo = getProjectTypeInfo(item.type);
: item[column.accessorKey!]} 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> </TableCell>
))}
</TableRow> </TableRow>
))} ))}
</TableBody> </TableBody>
</Table> </Table>
</div> </div>
</div>
</CardContent> </CardContent>
</Card> </Card>