Files
Nexus/web/app/assets/CommandsPage-mrb2z6Q2.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
8.2 KiB
JavaScript

import{Er as e,F as t,M as n,N as r,Nr as i,Ur as a,Vr as ee,_r as o,ar as s,er as c,hr as l,nr as u,or as d,rr as f,sr as p,tr as m,zr as h}from"./index-DoaDMa1C.js";import{o as g,t as _}from"./VContainer-BQRFgmV8.js";import{t as v}from"./VChip-w-VUeBu6.js";import{t as y}from"./VSelect-lvvpsnJa.js";import{t as b}from"./VDataTableServer-CqSShzYP.js";import{t as x}from"./VSpacer-DctU2jOI.js";import{t as S}from"./apiError-CbHg7QFF.js";import{t as te}from"./useServerList-t8NwLKj2.js";import{n as ne}from"./labels-CzOhyWto.js";import{t as re}from"./dataTable-Rzp2u0tF.js";import{n as C}from"./paginatedFetch-Dw-aGwRz.js";var ie={class:`text-body-2`},ae={class:`text-medium-emphasis`},oe={class:`text-medium-emphasis`},se={class:`text-caption text-medium-emphasis`},ce={class:`font-weight-medium`},le={class:`text-caption text-medium-emphasis`},ue={class:`text-caption text-medium-emphasis`},de={class:`text-medium-emphasis`},fe={class:`text-caption`},pe={class:`text-caption`},w=[`title`],T=[`title`],E=[`title`],D=[`title`],O={key:1,class:`text-caption text-medium-emphasis`},k=p({__name:`CommandsPage`,setup(p){let k=[...re],A=g(),{servers:j,loadServers:M}=te(),N=[{title:`命令视图`,value:`commands`},{title:`会话视图`,value:`sessions`},{title:`推送日志`,value:`push`}],P=[{label:`成功`,value:`success`},{label:`失败`,value:`failed`},{label:`进行中`,value:`running`},{label:`已取消`,value:`cancelled`}],F=[{label:`增量`,value:`incremental`},{label:`全量`,value:`full`},{label:`覆盖`,value:`overwrite`},{label:`校验和`,value:`checksum`}],I=[{label:`手动`,value:`manual`},{label:`调度`,value:`schedule`},{label:`重试`,value:`retry`},{label:`批量`,value:`batch`}],L=i(!1),R=i(`commands`),z=i(1),B=i(0),V=i(30),H=i(null),U=i(null),W=i(null),G=i(null),K=i([]),q=i([]),J=i([]),me=[{title:`命令`,key:`command`},{title:`服务器`,key:`server_name`},{title:`用户`,key:`admin_username`,width:100},{title:`时间`,key:`created_at`,width:160}],he=[{title:`服务器`,key:`server_name`},{title:`状态`,key:`status`,width:80},{title:`来源`,key:`remote_addr`,width:120},{title:`开始时间`,key:`started_at`,width:160}],ge=[{title:`时间`,key:`started_at`,width:160},{title:`服务器`,key:`server_name`,width:120},{title:`状态`,key:`status`,width:88},{title:`模式`,key:`sync_mode`,width:80},{title:`触发`,key:`trigger_type`,width:72},{title:`源路径`,key:`source_path`},{title:`目标路径`,key:`target_path`},{title:`权限`,key:`push_permission`,width:130},{title:`错误`,key:`error_message`,width:180}];function _e(e){switch(e){case`success`:return`success`;case`failed`:return`error`;case`running`:return`warning`;case`cancelled`:return`grey`;default:return`default`}}function Y(e){return P.find(t=>t.value===e)?.label||e}function ve(e){return F.find(t=>t.value===e)?.label||e||`—`}function ye(e){return I.find(t=>t.value===e)?.label||e||`—`}function be(){z.value=1,$()}function xe(){z.value=1,$()}function X(){z.value=1,$()}function Z(e){z.value=e,$()}function Q(e){V.value=e,z.value=1,$()}async function $(){L.value=!0;try{if(R.value===`commands`){let e=await C(`/assets/command-logs`,{server_id:H.value||void 0},z.value,V.value);K.value=e.items,B.value=e.total}else if(R.value===`sessions`){let e=await C(`/assets/ssh-sessions`,{server_id:H.value||void 0},z.value,V.value);q.value=e.items,B.value=e.total}else{let e={};H.value!=null&&(e.server_id=H.value),U.value&&(e.status=U.value),W.value&&(e.sync_mode=W.value),G.value&&(e.trigger_type=G.value);let t=await C(`/servers/logs`,e,z.value,V.value);J.value=t.items,B.value=t.total}V.value===-1&&(z.value=1)}catch(e){K.value=[],q.value=[],J.value=[],B.value=0,A(S(e,`加载失败`),`error`)}finally{L.value=!1}}return l(()=>{M(),$()}),(i,l)=>(o(),m(_,{fluid:``,class:`pa-6`},{default:e(()=>[d(r,{elevation:`0`,border:``,rounded:`lg`},{default:e(()=>[d(t,{class:`d-flex align-center flex-wrap ga-2`},{default:e(()=>[l[5]||=s(` 命令日志 `,-1),d(x),d(y,{modelValue:R.value,"onUpdate:modelValue":[l[0]||=e=>R.value=e,be],items:N,"item-title":`title`,"item-value":`value`,variant:`outlined`,density:`compact`,"hide-details":``,style:{"max-width":`160px`}},null,8,[`modelValue`]),R.value===`push`?(o(),m(y,{key:0,modelValue:U.value,"onUpdate:modelValue":[l[1]||=e=>U.value=e,X],items:P,"item-title":`label`,"item-value":`value`,label:`状态`,variant:`outlined`,density:`compact`,"hide-details":``,clearable:``,style:{"max-width":`120px`}},null,8,[`modelValue`])):u(``,!0),R.value===`push`?(o(),m(y,{key:1,modelValue:W.value,"onUpdate:modelValue":[l[2]||=e=>W.value=e,X],items:F,"item-title":`label`,"item-value":`value`,label:`模式`,variant:`outlined`,density:`compact`,"hide-details":``,clearable:``,style:{"max-width":`120px`}},null,8,[`modelValue`])):u(``,!0),R.value===`push`?(o(),m(y,{key:2,modelValue:G.value,"onUpdate:modelValue":[l[3]||=e=>G.value=e,X],items:I,"item-title":`label`,"item-value":`value`,label:`触发`,variant:`outlined`,density:`compact`,"hide-details":``,clearable:``,style:{"max-width":`120px`}},null,8,[`modelValue`])):u(``,!0),d(y,{modelValue:H.value,"onUpdate:modelValue":[l[4]||=e=>H.value=e,xe],items:h(j),"item-title":`name`,"item-value":`id`,label:`服务器`,variant:`outlined`,density:`compact`,"hide-details":``,style:{"max-width":`180px`},clearable:``},null,8,[`modelValue`,`items`])]),_:1}),d(n),R.value===`commands`?(o(),m(b,{key:0,items:K.value,headers:me,"items-length":B.value,loading:L.value,page:z.value,"items-per-page":V.value,"items-per-page-options":k,hover:``,density:`compact`,"onUpdate:page":Z,"onUpdate:itemsPerPage":Q},{"item.command":e(({item:e})=>[c(`code`,ie,a(e.command),1)]),"item.server_name":e(({item:e})=>[c(`span`,ae,a(e.server_name||`—`),1)]),"item.admin_username":e(({item:e})=>[c(`span`,oe,a(e.admin_username||`—`),1)]),"item.created_at":e(({item:e})=>[c(`span`,se,a(e.created_at),1)]),"no-data":e(()=>[...l[6]||=[c(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无数据`,-1)]]),_:1},8,[`items`,`items-length`,`loading`,`page`,`items-per-page`])):R.value===`sessions`?(o(),m(b,{key:1,items:q.value,headers:he,"items-length":B.value,loading:L.value,page:z.value,"items-per-page":V.value,"items-per-page-options":k,hover:``,density:`compact`,"onUpdate:page":Z,"onUpdate:itemsPerPage":Q},{"item.server_name":e(({item:e})=>[c(`span`,ce,a(e.server_name||`—`),1)]),"item.status":e(({item:t})=>[d(v,{color:t.status===`closed`?`grey`:`success`,size:`small`,variant:`tonal`,label:``},{default:e(()=>[s(a(t.status),1)]),_:2},1032,[`color`])]),"item.started_at":e(({item:e})=>[c(`span`,le,a(e.started_at),1)]),"no-data":e(()=>[...l[7]||=[c(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无数据`,-1)]]),_:1},8,[`items`,`items-length`,`loading`,`page`,`items-per-page`])):(o(),m(b,{key:2,items:J.value,headers:ge,"items-length":B.value,loading:L.value,page:z.value,"items-per-page":V.value,"items-per-page-options":k,hover:``,density:`compact`,"onUpdate:page":Z,"onUpdate:itemsPerPage":Q},{"item.started_at":e(({item:e})=>[c(`span`,ue,a(e.started_at||`—`),1)]),"item.server_name":e(({item:e})=>[c(`span`,de,a(e.server_name||`—`),1)]),"item.status":e(({item:t})=>[d(v,{color:_e(t.status),size:`small`,variant:`tonal`,label:``},{default:e(()=>[s(a(Y(t.status)),1)]),_:2},1032,[`color`])]),"item.sync_mode":e(({item:e})=>[c(`span`,fe,a(ve(e.sync_mode)),1)]),"item.trigger_type":e(({item:e})=>[c(`span`,pe,a(ye(e.trigger_type)),1)]),"item.source_path":e(({item:e})=>[c(`span`,{class:`text-caption text-truncate d-inline-block`,style:{"max-width":`200px`},title:e.source_path},a(e.source_path),9,w)]),"item.target_path":e(({item:e})=>[c(`span`,{class:`text-caption text-truncate d-inline-block`,style:{"max-width":`160px`},title:e.target_path},a(e.target_path),9,T)]),"item.push_permission":e(({item:e})=>[c(`span`,{class:ee([`text-caption`,e.push_permission?``:`text-medium-emphasis`]),title:e.push_permission||`未配置 rsync 属主/权限修正`},a(h(ne)(e.push_permission)),11,E)]),"item.error_message":e(({item:e})=>[e.error_message?(o(),f(`span`,{key:0,class:`text-caption text-error text-truncate d-inline-block`,style:{"max-width":`180px`},title:e.error_message},a(e.error_message),9,D)):(o(),f(`span`,O,`—`))]),"no-data":e(()=>[...l[8]||=[c(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无推送记录`,-1)]]),_:1},8,[`items`,`items-length`,`loading`,`page`,`items-per-page`]))]),_:1})]),_:1}))}});export{k as default};