Files
Nexus/web/app/assets/AlertsPage-BZa6JbW1.js
T
2026-07-08 22:31:31 +08:00

1 line
4.8 KiB
JavaScript

import{_ as e,t}from"./VSelect-BvR-yyLS.js";import{n,t as r}from"./VRow-rmSa_q-C.js";import{$ as i,Ar as a,Er as o,Nr as s,Or as c,Tr as l,Xt as u,Yr as d,_i as f,b as p,g as m,h,in as g,jr as _,qr as v,ri as y,u as b,ui as x,v as S,xi as C,xr as w}from"./index-CDcgx9V8.js";import{t as T}from"./usePageActivateRefresh-CqHSpagO.js";import{t as E}from"./useSnackbar-u_XK4ZNm.js";import{n as D,t as O}from"./dataTable-esDY4cOk.js";import{n as k}from"./paginatedFetch-VYTwXwno.js";import{i as A,t as j}from"./VCard-pmpQR9O7.js";import{t as M}from"./VDataTableServer-BIMNqMvk.js";var N={class:`font-weight-medium`},P={class:`text-body-2`},F={class:`text-caption text-medium-emphasis`},I=s({name:`AlertsPage`,__name:`AlertsPage`,setup(s){let I=E(),L=x(!1),R=x([]),z=x(0),B=x(1),V=x(20),H=O,U=x(null),W=x(null),G=x([{label:`今日告警`,value:`0`,color:`blue`,icon:`mdi-alert`},{label:`活跃告警`,value:`0`,color:`orange`,icon:`mdi-bell-ring`},{label:`已恢复`,value:`0`,color:`green`,icon:`mdi-check-circle`},{label:`Top 服务器`,value:`—`,color:`red`,icon:`mdi-server`}]),K=[{label:`CPU`,value:`cpu`},{label:`内存`,value:`memory`},{label:`磁盘`,value:`disk`},{label:`连接`,value:`connection`}],q=[{label:`活跃`,value:`active`},{label:`已恢复`,value:`recovered`}],J=D([{title:`类型`,key:`alert_type`,width:100},{title:`服务器`,key:`server_name`},{title:`详情`,key:`value`},{title:`状态`,key:`is_recovery`,width:100},{title:`时间`,key:`created_at`,width:160}]);async function Y(){try{let e=await g.get(`/alert-history/stats`);G.value[0].value=String(e.today||0),G.value[1].value=String(e.active||0),G.value[2].value=String(e.recovered||0),G.value[3].value=e.top_server||`—`}catch{I(`加载统计失败`,`error`)}}function X(e){B.value=e,Q()}function Z(e){V.value=e,B.value=1,Q()}async function Q(e=!1){e||(L.value=!0);try{let e=await k(`/alert-history/`,{type:U.value||void 0,status:W.value||void 0},B.value,V.value);R.value=e.items,z.value=e.total,V.value===-1&&(B.value=1)}catch{R.value=[],z.value=0,I(`加载告警列表失败`,`error`)}finally{e||(L.value=!1)}}function $(e){return e===`cpu`||e===`CPU`?`error`:e===`memory`||e===`内存`?`warning`:e===`disk`||e===`磁盘`?`info`:`primary`}function ee(e){return e===`cpu`||e===`CPU`?`mdi-chip`:e===`memory`||e===`内存`?`mdi-memory`:e===`disk`||e===`磁盘`?`mdi-harddisk`:`mdi-lan-disconnect`}async function te(e=!1){await Promise.all([Y(),Q(e)])}return T(e=>te(e)),(s,g)=>(v(),o(e,{fluid:``,class:`pa-6`},{default:y(()=>[_(r,{class:`mb-4`},{default:y(()=>[(v(!0),c(w,null,d(G.value,e=>(v(),o(n,{cols:`12`,sm:`6`,lg:`3`,key:e.label},{default:y(()=>[_(b,{elevation:`0`,lines:`two`,rounded:`lg`,border:``},{default:y(()=>[_(h,null,{append:y(()=>[_(i,{color:e.color,size:`30`},{default:y(()=>[a(C(e.icon),1)]),_:2},1032,[`color`])]),default:y(()=>[_(m,{class:`text-body-small`},{default:y(()=>[a(C(e.label),1)]),_:2},1024),_(m,null,{default:y(()=>[a(C(e.value),1)]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:2},1024))),128))]),_:1}),_(j,{elevation:`0`,border:``,rounded:`lg`},{default:y(()=>[_(A,{class:`d-flex align-center`},{default:y(()=>[g[4]||=a(` 告警历史 `,-1),_(S),_(t,{modelValue:U.value,"onUpdate:modelValue":[g[0]||=e=>U.value=e,g[1]||=e=>{B.value=1,Q()}],items:K,"item-title":`label`,"item-value":`value`,label:`类型`,variant:`outlined`,density:`compact`,"hide-details":``,style:{"max-width":`140px`},clearable:``},null,8,[`modelValue`]),_(t,{modelValue:W.value,"onUpdate:modelValue":[g[2]||=e=>W.value=e,g[3]||=e=>{B.value=1,Q()}],items:q,"item-title":`label`,"item-value":`value`,label:`状态`,variant:`outlined`,density:`compact`,"hide-details":``,style:{"max-width":`140px`},class:`ml-3`,clearable:``},null,8,[`modelValue`])]),_:1}),_(M,{items:R.value,headers:f(J),"items-length":z.value,loading:L.value,page:B.value,"items-per-page":V.value,"items-per-page-options":f(H),hover:``,density:`comfortable`,"onUpdate:page":X,"onUpdate:itemsPerPage":Z},{"item.alert_type":y(({item:e})=>[_(p,{color:$(e.alert_type),size:`small`,variant:`tonal`,label:``},{prepend:y(()=>[_(i,{size:`12`},{default:y(()=>[a(C(ee(e.alert_type)),1)]),_:2},1024)]),default:y(()=>[a(` `+C(e.alert_type),1)]),_:2},1032,[`color`])]),"item.server_name":y(({item:e})=>[l(`span`,N,C(e.server_name),1)]),"item.value":y(({item:e})=>[l(`span`,P,C(e.value),1)]),"item.is_recovery":y(({item:e})=>[e.is_recovery?(v(),o(p,{key:0,color:`success`,size:`small`,variant:`tonal`,label:``},{default:y(()=>[...g[5]||=[a(`已恢复`,-1)]]),_:1})):(v(),o(p,{key:1,color:`error`,size:`small`,variant:`tonal`,label:``},{default:y(()=>[...g[6]||=[a(`告警中`,-1)]]),_:1}))]),"item.created_at":y(({item:e})=>[l(`span`,F,C(f(u)(e.created_at)),1)]),"no-data":y(()=>[...g[7]||=[l(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无数据`,-1)]]),_:1},8,[`items`,`headers`,`items-length`,`loading`,`page`,`items-per-page`,`items-per-page-options`])]),_:1})]),_:1}))}});export{I as default};