Files
aiops/backend/static/assets/PodMetricsPage-DHZlrrD1.js
T
Logan.Li f45e203e21 refactor(frontend): P1-P2 架构统一 — utils/hooks/api 模块化
P1:
- utils/storage.ts、theme.ts、validate.ts + index 统一出口
- request/store/useTheme 接入 storage;清零 confirm/alert
- PipelineManager、TerminalAuditTab 拆分子模块(<700行红线)

P2:
- api/monitor、api/deploy 子目录化
- hooks/api 扩展:servers/pipelines/alerts/audit/sessionCommands
- PipelineManager、AuditOperationsTab 接入 TanStack Query
2026-06-26 00:18:14 +08:00

2 lines
9.2 KiB
JavaScript

import{k as H,m as U,r as c,j as e,n as N,o as f,A as V,B as W,p as F}from"./index-HuRw9UhJ.js";import{C as i,a as x}from"./card-B2Wqa0sK.js";import{B as L}from"./badge-CeS-g-Od.js";import{S as v,a as C,b as y,c as S,d as P}from"./select-KDzbUQs3.js";import{T as z,a as D,b as u,c as d,d as G,e as n}from"./table-Du1vU-OM.js";import{k as b}from"./index-GZwpRmKU.js";import{R as K}from"./refresh-cw-CSycAyA2.js";import{H as q}from"./hard-drive-laLCm9TI.js";import"./index-DwvHXNyF.js";import"./chevron-up-GXrRy2ul.js";function ce(){const{clusterCode:w}=H(),g=U(),[m,M]=c.useState(!1),[p,k]=c.useState([]),[A,T]=c.useState([]),[$,E]=c.useState([]),[l,B]=c.useState("all"),[a,j]=c.useState(w||"");c.useEffect(()=>{b.getClusters().then(s=>{const t=s?.list||[];if(T(t),!a&&t.length>0){const r=t[0].code||String(t[0].id);j(r),g(`/kubernetes/${r}/metrics/pods`,{replace:!0})}}).catch(()=>{})},[]),c.useEffect(()=>{a&&b.getNamespaces(a).then(s=>{E(Array.isArray(s)?s:s?.list||s?.data||[])}).catch(()=>{})},[a]);const h=c.useCallback(async()=>{if(a){M(!0);try{const s=l==="all"?void 0:l,t=await b.getPodMetrics(a,s);k(Array.isArray(t)?t:t?.list||[])}catch{k([])}finally{M(!1)}}},[a,l]);c.useEffect(()=>{h()},[h]);const o=c.useMemo(()=>p.flatMap(s=>(s.containers||[]).map(t=>({pod:s.name,namespace:s.namespace,container:t.name,cpu:t.cpu||"0m",memory:t.memory||"0Mi"}))),[p]),I=c.useMemo(()=>o.reduce((s,t)=>s+(parseInt(t.cpu)||0),0),[o]),R=c.useMemo(()=>{let s=0;return o.forEach(t=>{const r=t.memory;r.endsWith("Mi")?s+=parseInt(r):r.endsWith("Ki")?s+=parseInt(r)/1024:r.endsWith("Gi")&&(s+=parseInt(r)*1024)}),s},[o]);return e.jsxs("div",{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:81:5",className:"space-y-4",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:82:7",className:"flex items-center gap-2 text-sm text-slate-500",children:[e.jsx(N,{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:83:9",to:"/kubernetes",className:"hover:text-slate-300",children:"集群"}),a&&e.jsxs(e.Fragment,{children:[e.jsx(f,{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:84:29",className:"h-3 w-3"}),e.jsx(N,{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:84:65",to:`/kubernetes/${a}`,className:"hover:text-slate-300",children:a})]}),e.jsx(f,{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:85:9",className:"h-3 w-3"}),e.jsx("span",{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:85:45",className:"text-slate-300",children:"Pod 资源用量"})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:88:7",className:"flex items-center justify-between flex-wrap gap-3",children:[e.jsxs("h2",{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:89:9",className:"text-lg font-semibold text-slate-100 flex items-center gap-2",children:[e.jsx(V,{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:89:86",className:"h-5 w-5 text-blue-400"}),"Pod 资源用量"]}),e.jsxs("div",{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:90:9",className:"flex items-center gap-2",children:[e.jsxs(v,{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:91:11",value:a,onValueChange:s=>{j(s),g(`/kubernetes/${s}/metrics/pods`)},children:[e.jsx(C,{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:92:13",className:"w-44 h-8 text-xs bg-slate-800 border-slate-700",children:e.jsx(y,{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:92:87"})}),e.jsx(S,{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:93:13",className:"bg-slate-800 border-slate-700",children:A.map(s=>e.jsx(P,{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:94:42",value:s.code||String(s.id),className:"text-xs",children:s.name||s.code},s.id))})]}),e.jsxs(v,{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:97:11",value:l,onValueChange:B,children:[e.jsx(C,{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:98:13",className:"w-36 h-8 text-xs bg-slate-800 border-slate-700",children:e.jsx(y,{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:98:87",placeholder:"所有命名空间"})}),e.jsxs(S,{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:99:13",className:"bg-slate-800 border-slate-700",children:[e.jsx(P,{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:100:15",value:"all",className:"text-xs",children:"所有命名空间"}),$.map(s=>e.jsx(P,{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:101:36",value:s,className:"text-xs",children:s},s))]})]}),e.jsxs(W,{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:104:11",variant:"outline",size:"sm",className:"h-8 border-slate-700 text-slate-300 text-xs",onClick:h,disabled:m,children:[e.jsx(K,{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:105:13",className:`h-3 w-3 mr-1 ${m?"animate-spin":""}`}),"刷新"]})]})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:111:7",className:"grid grid-cols-3 gap-3",children:[e.jsx(i,{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:112:9",className:"bg-slate-900 border-slate-800",children:e.jsxs(x,{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:112:57",className:"p-3 text-center",children:[e.jsx("p",{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:113:11",className:"text-xs text-slate-500",children:"Pod 数"}),e.jsx("p",{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:113:58",className:"text-xl font-bold text-slate-200",children:p.length})]})}),e.jsx(i,{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:115:9",className:"bg-slate-900 border-slate-800",children:e.jsxs(x,{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:115:57",className:"p-3 text-center",children:[e.jsx("p",{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:116:11",className:"text-xs text-slate-500",children:"总 CPU"}),e.jsxs("p",{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:116:58",className:"text-xl font-bold text-blue-400",children:[I,"m"]})]})}),e.jsx(i,{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:118:9",className:"bg-slate-900 border-slate-800",children:e.jsxs(x,{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:118:57",className:"p-3 text-center",children:[e.jsx("p",{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:119:11",className:"text-xs text-slate-500",children:"总内存"}),e.jsxs("p",{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:119:56",className:"text-xl font-bold text-emerald-400",children:[R.toFixed(0),"Mi"]})]})})]}),e.jsx(i,{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:123:7",className:"bg-slate-900 border-slate-800",children:e.jsx(x,{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:124:9",className:"p-0",children:e.jsxs(z,{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:125:11",children:[e.jsx(D,{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:126:13",children:e.jsxs(u,{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:126:26",className:"border-slate-800 hover:bg-transparent",children:[e.jsx(d,{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:127:15",className:"text-slate-400",children:"Pod"}),e.jsx(d,{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:128:15",className:"text-slate-400",children:"命名空间"}),e.jsx(d,{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:129:15",className:"text-slate-400",children:"容器"}),e.jsxs(d,{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:130:15",className:"text-slate-400",children:[e.jsx(F,{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:130:53",className:"h-3 w-3 inline mr-1"}),"CPU"]}),e.jsxs(d,{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:131:15",className:"text-slate-400",children:[e.jsx(q,{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:131:53",className:"h-3 w-3 inline mr-1"}),"Memory"]})]})}),e.jsx(G,{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:133:13",children:o.length===0?e.jsx(u,{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:135:17",children:e.jsxs(n,{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:135:27",colSpan:5,className:"text-center text-slate-500 py-8",children:["暂无数据",m?e.jsx("span",{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:135:109",className:"animate-spin inline-block ml-2",children:"⏳"}):""]})}):o.map((s,t)=>e.jsxs(u,{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:137:17",className:"border-slate-800 hover:bg-slate-800/30",children:[e.jsx(n,{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:138:19",className:"font-medium text-slate-200 text-sm",children:s.pod}),e.jsx(n,{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:139:19",children:e.jsx(L,{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:139:30",variant:"outline",className:"border-slate-700 text-slate-400 text-xs",children:s.namespace})}),e.jsx(n,{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:140:19",className:"text-sm text-slate-400",children:s.container}),e.jsx(n,{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:141:19",className:"text-sm text-blue-400",children:s.cpu}),e.jsx(n,{"code-path":"src/components/kubernetes/PodMetricsPage.tsx:142:19",className:"text-sm text-emerald-400",children:s.memory})]},`${s.pod}-${s.container}-${t}`))})]})})})]})}export{ce as default};