// deployment-view/ServicesTab.tsx — 访问方式 Tab // Logan.Li import { Badge } from '@/components/ui/badge'; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from '@/components/ui/table'; import { Network, ExternalLink, Loader2 } from 'lucide-react'; import type { SvcItem, IngItem } from './types'; export function ServicesTab({ services, ingresses, loading }: { services: SvcItem[]; ingresses: IngItem[]; loading: string; namespace: string }) { if (loading === 'services') { return
; } return (
{/* Services */}

关联 Service

{services.length === 0 ? (

暂无匹配的 Service(Deployment 选择器未关联任何 Service)

) : (
名称 类型 ClusterIP 端口 Selector {services.map(svc => ( {svc.name} {svc.type} {svc.clusterIP} {svc.ports.join(', ')} {Object.entries(svc.selector).map(([k, v]) => ( {k}={v} ))} ))}
)}
{/* Ingresses */}

关联 Ingress

{ingresses.length === 0 ? (

暂无匹配的 Ingress

) : (
名称 Class Host 路径 {ingresses.map(ing => ( {ing.name} {ing.className} {ing.hosts.join(', ')} {ing.rules.flatMap((r: any) => (r.http?.paths || r.paths || []).map((p: any) => p.path || '/')).join(', ')} ))}
)}
); }