2 lines
15 KiB
JavaScript
2 lines
15 KiB
JavaScript
import{r as t,j as e}from"./vendor-codemirror-B1SGo4xl.js";import{C as S,a as C}from"./card-BHSBTtub.js";import{g as Q,i as Y,L,B as Z}from"./index-Bp-M7P_8.js";import{S as j,a as P,b as N,c as f,d}from"./select-DbhcBWnH.js";import{k as y}from"./index-BkulU9RM.js";import{n as ee,f as se,E as te}from"./EventTable-D9T7PrIy.js";import{f as z,t as ne,R as ae,X as F,l as ce}from"./vendor-icons-BWk-DH7F.js";import"./index-5FEebgvX.js";import"./badge-B00SZHvE.js";import"./table-u8V9iTZf.js";import"./k8s-yaml-utils-4KZB_Bq_.js";function M({title:g,items:x,selected:m,onSelect:b,emptyText:l}){const k=Math.max(...x.map(o=>o.count),1);return e.jsx(S,{"code-path":"src/components/kubernetes/EventsPage.tsx:27:5",className:"bg-[var(--dg-bg-secondary)] border-[var(--dg-border)]",children:e.jsxs(C,{"code-path":"src/components/kubernetes/EventsPage.tsx:28:7",className:"p-4",children:[e.jsx("h3",{"code-path":"src/components/kubernetes/EventsPage.tsx:29:9",className:"text-sm font-medium text-[var(--dg-text-primary)] mb-3",children:g}),x.length===0?e.jsx("p",{"code-path":"src/components/kubernetes/EventsPage.tsx:31:11",className:"text-xs text-[var(--dg-text-muted)] py-6 text-center",children:l||"暂无数据"}):e.jsx("div",{"code-path":"src/components/kubernetes/EventsPage.tsx:33:11",className:"space-y-1.5 max-h-[220px] overflow-y-auto pr-1",children:x.map(o=>{const h=m===o.name;return e.jsxs("button",{"code-path":"src/components/kubernetes/EventsPage.tsx:37:17",type:"button",className:`w-full flex items-center gap-2 rounded px-2 py-1.5 text-left transition-colors ${h?"bg-[var(--dg-bg-tertiary)]":"hover:bg-[var(--dg-bg-tertiary)]/60"}`,onClick:()=>b?.(h?"":o.name),children:[e.jsx("span",{"code-path":"src/components/kubernetes/EventsPage.tsx:45:19",className:"w-[88px] shrink-0 truncate text-xs text-[var(--dg-text-secondary)]",title:o.name,children:o.name}),e.jsx("div",{"code-path":"src/components/kubernetes/EventsPage.tsx:48:19",className:"flex-1 h-1.5 rounded-full bg-[var(--dg-bg-tertiary)] overflow-hidden",children:e.jsx("div",{"code-path":"src/components/kubernetes/EventsPage.tsx:49:21",className:`h-full rounded-full ${h?"bg-[var(--dg-accent)]":"bg-[var(--dg-text-muted)]/50"}`,style:{width:`${o.count/k*100}%`}})}),e.jsx("span",{"code-path":"src/components/kubernetes/EventsPage.tsx:54:19",className:"w-8 text-right text-xs tabular-nums text-[var(--dg-text-muted)]",children:o.count})]},o.name)})})]})})}function w({label:g,value:x,hint:m}){return e.jsxs("div",{"code-path":"src/components/kubernetes/EventsPage.tsx:67:5",className:"px-4 py-3 border-r border-[var(--dg-border)] last:border-r-0",children:[e.jsx("p",{"code-path":"src/components/kubernetes/EventsPage.tsx:68:7",className:"text-xs text-[var(--dg-text-muted)]",children:g}),e.jsx("p",{"code-path":"src/components/kubernetes/EventsPage.tsx:69:7",className:"text-xl font-semibold tabular-nums text-[var(--dg-text-primary)] mt-0.5",children:x}),m&&e.jsx("p",{"code-path":"src/components/kubernetes/EventsPage.tsx:70:16",className:"text-[10px] text-[var(--dg-text-muted)] mt-0.5",children:m})]})}function ve(){const{clusterCode:g}=Q(),x=Y(),[m,b]=t.useState(!1),[l,k]=t.useState([]),[o,h]=t.useState([]),[U,X]=t.useState([]),[u,q]=t.useState("all"),[E,G]=t.useState("all"),[v,H]=t.useState("0"),[a,W]=t.useState(g||""),[r,D]=t.useState(null),[i,R]=t.useState(""),[p,T]=t.useState("");t.useEffect(()=>{y.getClusters().then(s=>{const c=s?.list||[];if(h(c),!a&&c.length>0){const n=c[0].code||String(c[0].id);W(n),x(`/kubernetes/${n}/events`,{replace:!0})}}).catch(()=>{})},[]),t.useEffect(()=>{a&&y.getNamespaces(a).then(s=>{X(Array.isArray(s)?s:s?.list||s?.data||[])}).catch(()=>{})},[a]);const _=t.useCallback(async()=>{if(a){b(!0);try{const s=u==="all"?void 0:u,c=E==="all"?void 0:E,n=await y.getEvents(a,s,c);k(Array.isArray(n)?n:n?.list||[])}catch{k([])}finally{b(!1)}}},[a,u,E]),$=t.useCallback(async()=>{if(a)try{const s=u==="all"?void 0:u,c=parseInt(v)||void 0,n=await y.getEventsSummary(a,s,c);D(n||null)}catch{D(null)}},[a,u,v]);t.useEffect(()=>{_()},[_]),t.useEffect(()=>{$()},[$]);const V=t.useMemo(()=>{let s=l.map(n=>ee(n));const c=parseInt(v,10);if(c>0){const n=Date.now()-c*3600*1e3;s=s.filter(I=>!I.lastTime||new Date(I.lastTime).getTime()>=n)}return i&&(s=s.filter(n=>n.reason===i)),p&&(s=s.filter(n=>n.objectKind===p||n.object.startsWith(`${p}/`))),s},[l,i,p,v]),J=t.useMemo(()=>l.filter(s=>s.type==="Warning").length,[l]),O=t.useMemo(()=>l.filter(s=>s.type==="Normal").length,[l]),A=t.useMemo(()=>(r?.by_reason||[]).map(s=>({name:s.reason||"Unknown",count:s.count})),[r]),K=t.useMemo(()=>(r?.by_namespace||[]).map(s=>({name:s.namespace||"<cluster>",count:s.count})),[r]),B=t.useMemo(()=>(r?.by_kind||[]).map(s=>({name:s.kind||"Unknown",count:s.count})),[r]);return e.jsxs("div",{"code-path":"src/components/kubernetes/EventsPage.tsx:166:5",className:"space-y-4",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/EventsPage.tsx:167:7",className:"flex items-center gap-2 text-sm text-[var(--dg-text-muted)]",children:[e.jsx(L,{"code-path":"src/components/kubernetes/EventsPage.tsx:168:9",to:"/kubernetes",className:"hover:text-[var(--dg-text-secondary)]",children:"集群"}),a&&e.jsxs(e.Fragment,{children:[e.jsx(z,{"code-path":"src/components/kubernetes/EventsPage.tsx:171:13",className:"h-3 w-3"}),e.jsx(L,{"code-path":"src/components/kubernetes/EventsPage.tsx:172:13",to:`/kubernetes/${a}`,className:"hover:text-[var(--dg-text-secondary)]",children:a})]}),e.jsx(z,{"code-path":"src/components/kubernetes/EventsPage.tsx:175:9",className:"h-3 w-3"}),e.jsx("span",{"code-path":"src/components/kubernetes/EventsPage.tsx:176:9",className:"text-[var(--dg-text-secondary)]",children:"事件"})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/EventsPage.tsx:179:7",className:"flex items-center justify-between flex-wrap gap-3",children:[e.jsxs("h2",{"code-path":"src/components/kubernetes/EventsPage.tsx:180:9",className:"text-lg font-semibold text-[var(--dg-text-primary)] flex items-center gap-2",children:[e.jsx(ne,{"code-path":"src/components/kubernetes/EventsPage.tsx:181:11",className:"h-5 w-5 text-[var(--dg-text-muted)]"}),"事件中心"]}),e.jsxs("div",{"code-path":"src/components/kubernetes/EventsPage.tsx:184:9",className:"flex items-center gap-2 flex-wrap",children:[e.jsxs(j,{"code-path":"src/components/kubernetes/EventsPage.tsx:185:11",value:a,onValueChange:s=>{W(s),x(`/kubernetes/${s}/events`)},children:[e.jsx(P,{"code-path":"src/components/kubernetes/EventsPage.tsx:186:13",className:"w-40 h-8 text-xs",children:e.jsx(N,{"code-path":"src/components/kubernetes/EventsPage.tsx:186:57"})}),e.jsx(f,{"code-path":"src/components/kubernetes/EventsPage.tsx:187:13",children:o.map(s=>e.jsx(d,{"code-path":"src/components/kubernetes/EventsPage.tsx:189:17",value:s.code||String(s.id),className:"text-xs",children:s.name||s.code},s.id))})]}),e.jsxs(j,{"code-path":"src/components/kubernetes/EventsPage.tsx:193:11",value:u,onValueChange:s=>{q(s),R(""),T("")},children:[e.jsx(P,{"code-path":"src/components/kubernetes/EventsPage.tsx:194:13",className:"w-36 h-8 text-xs",children:e.jsx(N,{"code-path":"src/components/kubernetes/EventsPage.tsx:194:57",placeholder:"命名空间"})}),e.jsxs(f,{"code-path":"src/components/kubernetes/EventsPage.tsx:195:13",children:[e.jsx(d,{"code-path":"src/components/kubernetes/EventsPage.tsx:196:15",value:"all",className:"text-xs",children:"所有命名空间"}),U.map(s=>e.jsx(d,{"code-path":"src/components/kubernetes/EventsPage.tsx:197:38",value:s,className:"text-xs",children:s},s))]})]}),e.jsxs(j,{"code-path":"src/components/kubernetes/EventsPage.tsx:200:11",value:v,onValueChange:H,children:[e.jsx(P,{"code-path":"src/components/kubernetes/EventsPage.tsx:201:13",className:"w-32 h-8 text-xs",children:e.jsx(N,{"code-path":"src/components/kubernetes/EventsPage.tsx:201:57"})}),e.jsxs(f,{"code-path":"src/components/kubernetes/EventsPage.tsx:202:13",children:[e.jsx(d,{"code-path":"src/components/kubernetes/EventsPage.tsx:203:15",value:"0",className:"text-xs",children:"全部时间"}),e.jsx(d,{"code-path":"src/components/kubernetes/EventsPage.tsx:204:15",value:"1",className:"text-xs",children:"近 1 小时"}),e.jsx(d,{"code-path":"src/components/kubernetes/EventsPage.tsx:205:15",value:"6",className:"text-xs",children:"近 6 小时"}),e.jsx(d,{"code-path":"src/components/kubernetes/EventsPage.tsx:206:15",value:"24",className:"text-xs",children:"近 24 小时"}),e.jsx(d,{"code-path":"src/components/kubernetes/EventsPage.tsx:207:15",value:"168",className:"text-xs",children:"近 7 天"})]})]}),e.jsxs(Z,{"code-path":"src/components/kubernetes/EventsPage.tsx:210:11",variant:"outline",size:"sm",className:"h-8 text-xs",onClick:()=>{_(),$()},disabled:m,children:[e.jsx(ae,{"code-path":"src/components/kubernetes/EventsPage.tsx:211:13",className:`h-3 w-3 mr-1 ${m?"animate-spin":""}`}),"刷新"]})]})]}),e.jsx(S,{"code-path":"src/components/kubernetes/EventsPage.tsx:218:7",className:"bg-[var(--dg-bg-secondary)] border-[var(--dg-border)]",children:e.jsx(C,{"code-path":"src/components/kubernetes/EventsPage.tsx:219:9",className:"p-0",children:e.jsxs("div",{"code-path":"src/components/kubernetes/EventsPage.tsx:220:11",className:"grid grid-cols-2 md:grid-cols-4",children:[e.jsx(w,{"code-path":"src/components/kubernetes/EventsPage.tsx:221:13",label:"事件总数",value:r?.total??l.length}),e.jsx(w,{"code-path":"src/components/kubernetes/EventsPage.tsx:222:13",label:"告警事件",value:r?.warning_count??J,hint:"Warning"}),e.jsx(w,{"code-path":"src/components/kubernetes/EventsPage.tsx:223:13",label:"正常事件",value:r?.normal_count??O,hint:"Normal"}),e.jsx(w,{"code-path":"src/components/kubernetes/EventsPage.tsx:224:13",label:"告警类型",value:A.length,hint:"不同 Reason"})]})})}),(i||p)&&e.jsxs("div",{"code-path":"src/components/kubernetes/EventsPage.tsx:230:9",className:"flex items-center gap-2 text-xs",children:[e.jsx("span",{"code-path":"src/components/kubernetes/EventsPage.tsx:231:11",className:"text-[var(--dg-text-muted)]",children:"筛选:"}),i&&e.jsxs("button",{"code-path":"src/components/kubernetes/EventsPage.tsx:233:13",type:"button",className:"inline-flex items-center gap-1 rounded border border-[var(--dg-border)] px-2 py-0.5 text-[var(--dg-text-secondary)] hover:bg-[var(--dg-bg-tertiary)]",onClick:()=>R(""),children:["原因 ",i," ",e.jsx(F,{"code-path":"src/components/kubernetes/EventsPage.tsx:234:35",className:"h-3 w-3"})]}),p&&e.jsxs("button",{"code-path":"src/components/kubernetes/EventsPage.tsx:238:13",type:"button",className:"inline-flex items-center gap-1 rounded border border-[var(--dg-border)] px-2 py-0.5 text-[var(--dg-text-secondary)] hover:bg-[var(--dg-bg-tertiary)]",onClick:()=>T(""),children:["类型 ",p," ",e.jsx(F,{"code-path":"src/components/kubernetes/EventsPage.tsx:239:33",className:"h-3 w-3"})]})]}),A.length>0&&e.jsxs("div",{"code-path":"src/components/kubernetes/EventsPage.tsx:246:9",className:"grid grid-cols-1 lg:grid-cols-3 gap-4",children:[e.jsx(M,{"code-path":"src/components/kubernetes/EventsPage.tsx:247:11",title:"告警原因",items:A,selected:i,onSelect:R}),K.length>0&&e.jsx(M,{"code-path":"src/components/kubernetes/EventsPage.tsx:248:33",title:"命名空间",items:K}),B.length>0&&e.jsx(M,{"code-path":"src/components/kubernetes/EventsPage.tsx:250:13",title:"资源类型",items:B,selected:p,onSelect:T})]}),r?.recent_warnings?.length>0&&e.jsx(S,{"code-path":"src/components/kubernetes/EventsPage.tsx:256:9",className:"bg-[var(--dg-bg-secondary)] border-[var(--dg-border)] border-l-2 border-l-[var(--dg-warning)]",children:e.jsxs(C,{"code-path":"src/components/kubernetes/EventsPage.tsx:257:11",className:"p-4",children:[e.jsxs("h3",{"code-path":"src/components/kubernetes/EventsPage.tsx:258:13",className:"text-sm font-medium text-[var(--dg-text-primary)] mb-3 flex items-center gap-1.5",children:[e.jsx(ce,{"code-path":"src/components/kubernetes/EventsPage.tsx:259:15",className:"h-4 w-4 text-[var(--dg-warning)]"}),"最新告警 (",r.recent_warnings.length,")"]}),e.jsx("div",{"code-path":"src/components/kubernetes/EventsPage.tsx:262:13",className:"space-y-1",children:r.recent_warnings.map((s,c)=>e.jsxs("div",{"code-path":"src/components/kubernetes/EventsPage.tsx:264:17",className:"text-xs py-1.5 px-2 rounded hover:bg-[var(--dg-bg-tertiary)]/50",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/EventsPage.tsx:265:19",className:"flex items-center gap-2 flex-wrap",children:[e.jsx("span",{"code-path":"src/components/kubernetes/EventsPage.tsx:266:21",className:"shrink-0 font-mono text-[var(--dg-warning)]",children:s.reason}),e.jsx("span",{"code-path":"src/components/kubernetes/EventsPage.tsx:267:21",className:"text-[var(--dg-text-muted)] font-mono truncate",children:s.object}),e.jsx("span",{"code-path":"src/components/kubernetes/EventsPage.tsx:268:21",className:"text-[var(--dg-text-muted)]",children:s.namespace}),s.source&&e.jsx("span",{"code-path":"src/components/kubernetes/EventsPage.tsx:269:34",className:"text-[var(--dg-text-muted)] font-mono",children:s.source}),e.jsxs("span",{"code-path":"src/components/kubernetes/EventsPage.tsx:270:21",className:"text-[var(--dg-text-muted)]",children:["×",s.count]}),e.jsx("span",{"code-path":"src/components/kubernetes/EventsPage.tsx:271:21",className:"ml-auto text-[var(--dg-text-muted)]",children:se(s.last_time)})]}),e.jsx("p",{"code-path":"src/components/kubernetes/EventsPage.tsx:273:19",className:"text-[var(--dg-text-secondary)] truncate mt-0.5",title:s.message,children:s.message})]},c))})]})}),e.jsx(S,{"code-path":"src/components/kubernetes/EventsPage.tsx:281:7",className:"bg-[var(--dg-bg-secondary)] border-[var(--dg-border)]",children:e.jsxs(C,{"code-path":"src/components/kubernetes/EventsPage.tsx:282:9",className:"p-0",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/EventsPage.tsx:283:11",className:"flex items-center justify-between px-4 py-2 border-b border-[var(--dg-border)]",children:[e.jsxs("span",{"code-path":"src/components/kubernetes/EventsPage.tsx:284:13",className:"text-sm text-[var(--dg-text-secondary)]",children:["事件列表 (",V.length,")"]}),e.jsxs(j,{"code-path":"src/components/kubernetes/EventsPage.tsx:285:13",value:E,onValueChange:G,children:[e.jsx(P,{"code-path":"src/components/kubernetes/EventsPage.tsx:286:15",className:"w-28 h-7 text-xs",children:e.jsx(N,{"code-path":"src/components/kubernetes/EventsPage.tsx:286:59"})}),e.jsxs(f,{"code-path":"src/components/kubernetes/EventsPage.tsx:287:15",children:[e.jsx(d,{"code-path":"src/components/kubernetes/EventsPage.tsx:288:17",value:"all",className:"text-xs",children:"所有类型"}),e.jsx(d,{"code-path":"src/components/kubernetes/EventsPage.tsx:289:17",value:"Warning",className:"text-xs",children:"Warning"}),e.jsx(d,{"code-path":"src/components/kubernetes/EventsPage.tsx:290:17",value:"Normal",className:"text-xs",children:"Normal"})]})]})]}),e.jsx(te,{"code-path":"src/components/kubernetes/EventsPage.tsx:294:11",events:V,loading:m,showNamespace:!0,maxRows:200})]})})]})}export{ve as default};
|