Files
Nexus/web/app/assets/AlertsPage-CPZAYVAE.js
T
Nexus Agent 0b2d7ac50d feat(scripts): 异步执行、全局进度看板与完成提示音设置
脚本 exec 立即返回 running 并在后台跑批次;/ws/alerts 推送 script_progress/complete;
新增 ScriptRunsPage、Telegram 汇总通知与可配置的浏览器完成提示音。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-08 07:07:02 +08:00

1 line
4.5 KiB
JavaScript

import{A as e,Er as t,F as n,N as r,Nr as i,Ur as a,Z as o,Zn as s,_r as c,ar as l,er as u,hr as d,k as f,or as p,rr as m,sr as h,tr as g,w as _,yr as v,zr as y,zt as b}from"./index-Dp4iCzbs.js";import{o as x,t as S}from"./VContainer-BpcBPa4e.js";import{n as C}from"./dataTable-esDY4cOk.js";import{t as w}from"./VChip-DBjCm_hy.js";import{t as T}from"./VSelect-B3aZ6TxZ.js";import{t as E}from"./VDataTableServer-5YTAzdGq.js";import{n as D,t as O}from"./VRow-B_I9Fnty.js";import{t as k}from"./VSpacer-Dij81TMC.js";var A={class:`font-weight-medium`},j={class:`text-body-2`},M={class:`text-caption text-medium-emphasis`},N=h({__name:`AlertsPage`,setup(h){let N=x(),P=i(!1),F=i([]),I=i(0),L=i(1),R=i(null),z=i(null),B=i([{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`}]),V=[{label:`CPU`,value:`cpu`},{label:`内存`,value:`memory`},{label:`磁盘`,value:`disk`},{label:`连接`,value:`connection`}],H=[{label:`活跃`,value:`active`},{label:`已恢复`,value:`recovered`}],U=C([{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 W(){try{let e=await b.get(`/alert-history/stats`);B.value[0].value=String(e.today||0),B.value[1].value=String(e.active||0),B.value[2].value=String(e.recovered||0),B.value[3].value=e.top_server||`—`}catch{N(`加载统计失败`,`error`)}}async function G(){P.value=!0;try{let e=await b.get(`/alert-history/`,{page:L.value,per_page:20,type:R.value||void 0,status:z.value||void 0});F.value=e.items||[],I.value=e.total||0}catch{F.value=[]}finally{P.value=!1}}function K(e){return e===`cpu`||e===`CPU`?`error`:e===`memory`||e===`内存`?`warning`:e===`disk`||e===`磁盘`?`info`:`primary`}function q(e){return e===`cpu`||e===`CPU`?`mdi-chip`:e===`memory`||e===`内存`?`mdi-memory`:e===`disk`||e===`磁盘`?`mdi-harddisk`:`mdi-lan-disconnect`}return d(()=>{W(),G()}),(i,d)=>(c(),g(S,{fluid:``,class:`pa-6`},{default:t(()=>[p(O,{class:`mb-4`},{default:t(()=>[(c(!0),m(s,null,v(B.value,n=>(c(),g(D,{cols:`12`,sm:`6`,lg:`3`,key:n.label},{default:t(()=>[p(_,{elevation:`0`,lines:`two`,rounded:`lg`,border:``},{default:t(()=>[p(f,null,{append:t(()=>[p(o,{color:n.color,size:`30`},{default:t(()=>[l(a(n.icon),1)]),_:2},1032,[`color`])]),default:t(()=>[p(e,{class:`text-body-small`},{default:t(()=>[l(a(n.label),1)]),_:2},1024),p(e,null,{default:t(()=>[l(a(n.value),1)]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:2},1024))),128))]),_:1}),p(r,{elevation:`0`,border:``,rounded:`lg`},{default:t(()=>[p(n,{class:`d-flex align-center`},{default:t(()=>[d[5]||=l(` 告警历史 `,-1),p(k),p(T,{modelValue:R.value,"onUpdate:modelValue":[d[0]||=e=>R.value=e,d[1]||=e=>{L.value=1,G()}],items:V,"item-title":`label`,"item-value":`value`,label:`类型`,variant:`outlined`,density:`compact`,"hide-details":``,style:{"max-width":`140px`},clearable:``},null,8,[`modelValue`]),p(T,{modelValue:z.value,"onUpdate:modelValue":[d[2]||=e=>z.value=e,d[3]||=e=>{L.value=1,G()}],items:H,"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}),p(E,{items:F.value,headers:y(U),"items-length":I.value,loading:P.value,page:L.value,"items-per-page":20,hover:``,density:`comfortable`,"onUpdate:page":d[4]||=e=>{L.value=e,G()}},{"item.alert_type":t(({item:e})=>[p(w,{color:K(e.alert_type),size:`small`,variant:`tonal`,label:``},{prepend:t(()=>[p(o,{size:`12`},{default:t(()=>[l(a(q(e.alert_type)),1)]),_:2},1024)]),default:t(()=>[l(` `+a(e.alert_type),1)]),_:2},1032,[`color`])]),"item.server_name":t(({item:e})=>[u(`span`,A,a(e.server_name),1)]),"item.value":t(({item:e})=>[u(`span`,j,a(e.value),1)]),"item.is_recovery":t(({item:e})=>[e.is_recovery?(c(),g(w,{key:0,color:`success`,size:`small`,variant:`tonal`,label:``},{default:t(()=>[...d[6]||=[l(`已恢复`,-1)]]),_:1})):(c(),g(w,{key:1,color:`error`,size:`small`,variant:`tonal`,label:``},{default:t(()=>[...d[7]||=[l(`告警中`,-1)]]),_:1}))]),"item.created_at":t(({item:e})=>[u(`span`,M,a(e.created_at),1)]),"no-data":t(()=>[...d[8]||=[u(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无数据`,-1)]]),_:1},8,[`items`,`headers`,`items-length`,`loading`,`page`])]),_:1})]),_:1}))}});export{N as default};