0b2d7ac50d
脚本 exec 立即返回 running 并在后台跑批次;/ws/alerts 推送 script_progress/complete; 新增 ScriptRunsPage、Telegram 汇总通知与可配置的浏览器完成提示音。 Co-authored-by: Cursor <cursoragent@cursor.com>
1 line
8.0 KiB
JavaScript
1 line
8.0 KiB
JavaScript
import{F as e,Lr as t,M as n,N as r,Vr as i,ar as a,er as o,gr as s,jr as c,mr as l,nr as u,or as d,rr as f,sr as p,tr as m,wr as h,zr as g,zt as _}from"./index-3SWW3Wj_.js";import{o as v,t as y}from"./VContainer-B79RFM4s.js";import{t as b}from"./VChip-CMAdQZRJ.js";import{t as x}from"./VSelect-CNVSTEnc.js";import{t as S}from"./VDataTableServer-mXWi-ccO.js";import{t as C}from"./VSpacer-Lz_Er0LP.js";import{t as w}from"./apiError-DOwdv3xa.js";import{t as ee}from"./useServerList-BMfguXFW.js";import{n as T}from"./labels-CzOhyWto.js";var te={class:`text-body-2`},ne={class:`text-medium-emphasis`},re={class:`text-medium-emphasis`},ie={class:`text-caption text-medium-emphasis`},ae={class:`font-weight-medium`},oe={class:`text-caption text-medium-emphasis`},se={class:`text-caption text-medium-emphasis`},ce={class:`text-medium-emphasis`},le={class:`text-caption`},ue={class:`text-caption`},E=[`title`],D=[`title`],O=[`title`],k=[`title`],A={key:1,class:`text-caption text-medium-emphasis`},j=p({__name:`CommandsPage`,setup(p){let j=v(),{servers:M,loadServers:N}=ee(),P=[{title:`命令视图`,value:`commands`},{title:`会话视图`,value:`sessions`},{title:`推送日志`,value:`push`}],F=[{label:`成功`,value:`success`},{label:`失败`,value:`failed`},{label:`进行中`,value:`running`},{label:`已取消`,value:`cancelled`}],I=[{label:`增量`,value:`incremental`},{label:`全量`,value:`full`},{label:`覆盖`,value:`overwrite`},{label:`校验和`,value:`checksum`}],L=[{label:`手动`,value:`manual`},{label:`调度`,value:`schedule`},{label:`重试`,value:`retry`},{label:`批量`,value:`batch`}],R=c(!1),z=c(`commands`),B=c(1),V=c(0),H=c(30),U=c(null),W=c(null),G=c(null),K=c(null),q=c([]),J=c([]),Y=c([]),de=[{title:`命令`,key:`command`},{title:`服务器`,key:`server_name`},{title:`用户`,key:`admin_username`,width:100},{title:`时间`,key:`created_at`,width:160}],fe=[{title:`服务器`,key:`server_name`},{title:`状态`,key:`status`,width:80},{title:`来源`,key:`remote_addr`,width:120},{title:`开始时间`,key:`started_at`,width:160}],pe=[{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 me(e){switch(e){case`success`:return`success`;case`failed`:return`error`;case`running`:return`warning`;case`cancelled`:return`grey`;default:return`default`}}function he(e){return F.find(t=>t.value===e)?.label||e}function ge(e){return I.find(t=>t.value===e)?.label||e||`—`}function X(e){return L.find(t=>t.value===e)?.label||e||`—`}function _e(){B.value=1,$()}function ve(){B.value=1,$()}function Z(){B.value=1,$()}function Q(e){B.value=e,$()}async function $(){R.value=!0;try{if(z.value===`commands`){let e=await _.getList(`/assets/command-logs`,{server_id:U.value||void 0,page:B.value,per_page:H.value});q.value=e.items,V.value=e.total}else if(z.value===`sessions`){let e=await _.getList(`/assets/ssh-sessions`,{server_id:U.value||void 0,page:B.value,per_page:H.value});J.value=e.items,V.value=e.total}else{let e={page:B.value,per_page:H.value};U.value!=null&&(e.server_id=U.value),W.value&&(e.status=W.value),G.value&&(e.sync_mode=G.value),K.value&&(e.trigger_type=K.value);let t=await _.get(`/servers/logs`,e);Y.value=t.items||[],V.value=t.total||0}}catch(e){q.value=[],J.value=[],Y.value=[],V.value=0,j(w(e,`加载失败`),`error`)}finally{R.value=!1}}return l(()=>{N(),$()}),(c,l)=>(s(),m(y,{fluid:``,class:`pa-6`},{default:h(()=>[d(r,{elevation:`0`,border:``,rounded:`lg`},{default:h(()=>[d(e,{class:`d-flex align-center flex-wrap ga-2`},{default:h(()=>[l[5]||=a(` 命令日志 `,-1),d(C),d(x,{modelValue:z.value,"onUpdate:modelValue":[l[0]||=e=>z.value=e,_e],items:P,"item-title":`title`,"item-value":`value`,variant:`outlined`,density:`compact`,"hide-details":``,style:{"max-width":`160px`}},null,8,[`modelValue`]),z.value===`push`?(s(),m(x,{key:0,modelValue:W.value,"onUpdate:modelValue":[l[1]||=e=>W.value=e,Z],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),z.value===`push`?(s(),m(x,{key:1,modelValue:G.value,"onUpdate:modelValue":[l[2]||=e=>G.value=e,Z],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),z.value===`push`?(s(),m(x,{key:2,modelValue:K.value,"onUpdate:modelValue":[l[3]||=e=>K.value=e,Z],items:L,"item-title":`label`,"item-value":`value`,label:`触发`,variant:`outlined`,density:`compact`,"hide-details":``,clearable:``,style:{"max-width":`120px`}},null,8,[`modelValue`])):u(``,!0),d(x,{modelValue:U.value,"onUpdate:modelValue":[l[4]||=e=>U.value=e,ve],items:t(M),"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),z.value===`commands`?(s(),m(S,{key:0,items:q.value,headers:de,"items-length":V.value,loading:R.value,page:B.value,"items-per-page":H.value,hover:``,density:`compact`,"onUpdate:page":Q},{"item.command":h(({item:e})=>[o(`code`,te,i(e.command),1)]),"item.server_name":h(({item:e})=>[o(`span`,ne,i(e.server_name||`—`),1)]),"item.admin_username":h(({item:e})=>[o(`span`,re,i(e.admin_username||`—`),1)]),"item.created_at":h(({item:e})=>[o(`span`,ie,i(e.created_at),1)]),"no-data":h(()=>[...l[6]||=[o(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无数据`,-1)]]),_:1},8,[`items`,`items-length`,`loading`,`page`,`items-per-page`])):z.value===`sessions`?(s(),m(S,{key:1,items:J.value,headers:fe,"items-length":V.value,loading:R.value,page:B.value,"items-per-page":H.value,hover:``,density:`compact`,"onUpdate:page":Q},{"item.server_name":h(({item:e})=>[o(`span`,ae,i(e.server_name||`—`),1)]),"item.status":h(({item:e})=>[d(b,{color:e.status===`closed`?`grey`:`success`,size:`small`,variant:`tonal`,label:``},{default:h(()=>[a(i(e.status),1)]),_:2},1032,[`color`])]),"item.started_at":h(({item:e})=>[o(`span`,oe,i(e.started_at),1)]),"no-data":h(()=>[...l[7]||=[o(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无数据`,-1)]]),_:1},8,[`items`,`items-length`,`loading`,`page`,`items-per-page`])):(s(),m(S,{key:2,items:Y.value,headers:pe,"items-length":V.value,loading:R.value,page:B.value,"items-per-page":H.value,hover:``,density:`compact`,"onUpdate:page":Q},{"item.started_at":h(({item:e})=>[o(`span`,se,i(e.started_at||`—`),1)]),"item.server_name":h(({item:e})=>[o(`span`,ce,i(e.server_name||`—`),1)]),"item.status":h(({item:e})=>[d(b,{color:me(e.status),size:`small`,variant:`tonal`,label:``},{default:h(()=>[a(i(he(e.status)),1)]),_:2},1032,[`color`])]),"item.sync_mode":h(({item:e})=>[o(`span`,le,i(ge(e.sync_mode)),1)]),"item.trigger_type":h(({item:e})=>[o(`span`,ue,i(X(e.trigger_type)),1)]),"item.source_path":h(({item:e})=>[o(`span`,{class:`text-caption text-truncate d-inline-block`,style:{"max-width":`200px`},title:e.source_path},i(e.source_path),9,E)]),"item.target_path":h(({item:e})=>[o(`span`,{class:`text-caption text-truncate d-inline-block`,style:{"max-width":`160px`},title:e.target_path},i(e.target_path),9,D)]),"item.push_permission":h(({item:e})=>[o(`span`,{class:g([`text-caption`,e.push_permission?``:`text-medium-emphasis`]),title:e.push_permission||`未配置 rsync 属主/权限修正`},i(t(T)(e.push_permission)),11,O)]),"item.error_message":h(({item:e})=>[e.error_message?(s(),f(`span`,{key:0,class:`text-caption text-error text-truncate d-inline-block`,style:{"max-width":`180px`},title:e.error_message},i(e.error_message),9,k)):(s(),f(`span`,A,`—`))]),"no-data":h(()=>[...l[8]||=[o(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无推送记录`,-1)]]),_:1},8,[`items`,`items-length`,`loading`,`page`,`items-per-page`]))]),_:1})]),_:1}))}});export{j as default}; |