Files
Nexus/web/app/assets/RetriesPage-Dw_0lrBr.js
T
Nexus Agent 0f6f91e61a fix(api): align alerts/commands contracts and ship full-site test suite.
Restore alert history filters and stats fields, paginate command/session logs for the SPA, show script labels on schedules, and land integration/E2E coverage with rebuilt web assets.
2026-06-09 02:13:13 +08:00

1 line
4.7 KiB
JavaScript

import{n as e,t}from"./useSnackbar-DaoOJlMz.js";import{Ht as n,P as r,Pr as i,Sr as a,Ur as o,Xr as s,Xt as c,_ as l,_r as u,br as d,gr as f,hr as p,ni as m,oi as h,xr as g,y as _}from"./index-DZEQidkT.js";import{t as v}from"./usePageActivateRefresh-BmoMLdUi.js";import{n as y}from"./dataTable-esDY4cOk.js";import{a as b,n as x,r as S,t as C}from"./VCard-DiTj681b.js";import{t as w}from"./VSelect-CzNpj4qJ.js";import{t as T}from"./VDataTableServer-C1V2iC3x.js";import{t as E}from"./VDialog-B2Te8j14.js";import{t as D}from"./usePageAutoRefresh-_5-kEzKg.js";var O={class:`font-weight-medium text-truncate d-inline-block`,style:{"max-width":`240px`}},k={class:`text-medium-emphasis`},A={class:`text-medium-emphasis`},j={class:`text-caption text-medium-emphasis`},M={class:`text-caption text-medium-emphasis`},N=a({name:`RetriesPage`,__name:`RetriesPage`,setup(a){let N=t(),P=s(!1),F=s([]),I=s(0),L=s(1),R=s(null),z=s(!1),B=s(null),V=[{label:`待重试`,value:`pending`},{label:`重试中`,value:`retrying`},{label:`成功`,value:`success`},{label:`失败`,value:`failed`}],H=y([{title:`状态`,key:`status`,width:100},{title:`任务`,key:`operation`},{title:`服务器`,key:`server_name`},{title:`次数`,key:`retry_count`,width:100},{title:`下次重试`,key:`next_retry_at`,width:140},{title:`创建时间`,key:`created_at`,width:160},{title:``,key:`actions`,width:120,align:`end`}]);async function U(e=!1){e||(P.value=!0);try{let e=(await c.getList(`/retries/`,{limit:200})).items||[];R.value&&(e=e.filter(e=>e.status===R.value)),I.value=e.length;let t=(L.value-1)*20;F.value=e.slice(t,t+20)}catch(t){e||(F.value=[],I.value=0,N(t instanceof Error?t.message:`加载重试队列失败`,`error`))}finally{e||(P.value=!1)}}async function W(e){try{await c.post(`/retries/${e.id}/retry`),U(),N(`重试已触发`)}catch(e){N(e.message||`操作失败`,`error`)}}function G(e){B.value=e.id,z.value=!0}async function K(){if(B.value)try{await c.delete(`/retries/${B.value}`),z.value=!1,U(),N(`已删除`)}catch(e){N(e.message||`删除失败`,`error`)}}function q(e){return e===`success`?`success`:e===`failed`?`error`:e===`retrying`?`warning`:`info`}function J(e){return e===`pending`?`待重试`:e===`retrying`?`重试中`:e===`success`?`成功`:e===`failed`?`失败`:e}function Y(e){return e.source_path&&e.target_path?`${e.source_path}${e.target_path}`:e.source_path||e.target_path||`文件推送`}return D(()=>U(!0),15e3),v(e=>U(e)),(t,a)=>(i(),f(e,{fluid:``,class:`pa-6`},{default:o(()=>[g(C,{elevation:`0`,border:``,rounded:`lg`},{default:o(()=>[g(S,{class:`d-flex align-center text-h6`},{default:o(()=>[a[5]||=d(` 重试队列 `,-1),g(l),g(w,{modelValue:R.value,"onUpdate:modelValue":[a[0]||=e=>R.value=e,a[1]||=e=>{L.value=1,U()}],items:V,"item-title":`label`,"item-value":`value`,label:`状态筛选`,variant:`outlined`,density:`compact`,"hide-details":``,style:{"max-width":`160px`},clearable:``},null,8,[`modelValue`])]),_:1}),g(T,{items:F.value,headers:m(H),"items-length":I.value,loading:P.value,page:L.value,"items-per-page":20,hover:``,density:`comfortable`,"onUpdate:page":a[2]||=e=>{L.value=e,U()}},{"item.status":o(({item:e})=>[g(_,{color:q(e.status),size:`x-small`,variant:`tonal`,label:``,border:`sm`},{default:o(()=>[d(h(J(e.status)),1)]),_:2},1032,[`color`])]),"item.operation":o(({item:e})=>[p(`span`,O,h(Y(e)),1)]),"item.server_name":o(({item:e})=>[p(`span`,k,h(e.server_name||`—`),1)]),"item.retry_count":o(({item:e})=>[p(`span`,A,h(e.retry_count||0)+` / `+h(e.max_retries||3),1)]),"item.next_retry_at":o(({item:e})=>[p(`span`,j,h(m(n)(e.next_retry_at)),1)]),"item.created_at":o(({item:e})=>[p(`span`,M,h(m(n)(e.created_at)),1)]),"item.actions":o(({item:e})=>[e.status===`pending`||e.status===`failed`?(i(),f(r,{key:0,variant:`text`,size:`x-small`,color:`primary`,density:`compact`,onClick:t=>W(e)},{default:o(()=>[...a[6]||=[d(` 重试 `,-1)]]),_:1},8,[`onClick`])):u(``,!0),g(r,{variant:`text`,size:`x-small`,color:`error`,density:`compact`,onClick:t=>G(e)},{default:o(()=>[...a[7]||=[d(` 删除 `,-1)]]),_:1},8,[`onClick`])]),"no-data":o(()=>[...a[8]||=[p(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无数据`,-1)]]),_:1},8,[`items`,`headers`,`items-length`,`loading`,`page`])]),_:1}),g(E,{modelValue:z.value,"onUpdate:modelValue":a[4]||=e=>z.value=e,"max-width":`400`},{default:o(()=>[g(C,{border:``},{default:o(()=>[g(S,null,{default:o(()=>[...a[9]||=[d(`确认删除`,-1)]]),_:1}),g(x,null,{default:o(()=>[...a[10]||=[d(`确定要删除此重试任务吗?`,-1)]]),_:1}),g(b,null,{default:o(()=>[g(l),g(r,{variant:`text`,onClick:a[3]||=e=>z.value=!1},{default:o(()=>[...a[11]||=[d(`取消`,-1)]]),_:1}),g(r,{color:`error`,variant:`flat`,onClick:K},{default:o(()=>[...a[12]||=[d(`删除`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),_:1}))}});export{N as default};