Files
Nexus/web/app/assets/ScriptsPage-BWoaZhKf.js
T

4 lines
31 KiB
JavaScript
Raw Normal View History

import{b as e}from"./VDataTable-ClfE0-sD.js";import{_ as t,t as n}from"./VSelect-BvR-yyLS.js";import{n as r,t as i}from"./VRow-rmSa_q-C.js";import{$ as a,A as o,Ar as s,Bt as ee,Dr as c,Er as l,Gt as te,Ht as ne,I as re,It as u,Kt as ie,L as d,Lr as ae,Nr as oe,Or as f,Rr as se,Tr as p,Ut as ce,Vr as le,Vt as ue,Wr as m,Wt as de,Xt as fe,Yr as h,_i as g,b as _,br as pe,h as me,ii as he,in as v,jr as y,ln as ge,nt as _e,q as ve,qr as b,r as ye,ri as x,ti as be,u as xe,ui as S,v as C,vr as Se,wr as w,wt as Ce,xi as T,xr as E,y as D,yi as we,yr as Te,zt as Ee}from"./index-CDcgx9V8.js";import{n as De,t as Oe}from"./initMonaco-Cjv05FdX.js";import{t as ke}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as Ae}from"./usePageActivateRefresh-CqHSpagO.js";import{t as je}from"./useSnackbar-u_XK4ZNm.js";import{n as Me,t as Ne}from"./dataTable-esDY4cOk.js";import{t as Pe}from"./paginatedFetch-VYTwXwno.js";import{i as O,n as k,o as Fe,t as A}from"./VCard-pmpQR9O7.js";import{t as Ie}from"./VTextField-B-BnrJAQ.js";import{t as Le}from"./VTable-BTftprIQ.js";import{t as Re}from"./VDataTableServer-BIMNqMvk.js";import{t as j}from"./apiError-CpgZRt4T.js";import{t as ze}from"./useServerList-w3j3GRMG.js";import{t as Be}from"./VDialog-nKJcjfNL.js";import{r as Ve}from"./validation-BMzYTJL4.js";import{t as He}from"./ServerCategoryPicker-BlyQtEug.js";import{t as Ue}from"./VSwitch-VDVIZTO7.js";import{t as We}from"./VTextarea-PzNEhaMZ.js";import{n as Ge,t as Ke}from"./execDetailGrouping-CuMwXaZZ.js";import{i as qe,n as Je,r as Ye,t as Xe}from"./VExpansionPanels-ByOIBgKv.js";var Ze=ke(oe({__name:`ScriptContentEditor`,props:{modelValue:{},readonly:{type:Boolean}},emits:[`update:modelValue`],setup(e,{emit:t}){let n=e,r=t,i=De(),a=S(),o=null,s=!1;function ee(){a.value&&(o?.dispose(),o=i.editor.create(a.value,{...Oe({language:`shell`,readOnly:n.readonly??!1}),value:n.modelValue||``}),o.onDidChangeModelContent(()=>{s||!o||r(`update:modelValue`,o.getValue())}))}return be(()=>n.modelValue,e=>{o&&o.getValue()!==e&&(s=!0,o.setValue(e||``),s=!1)}),be(()=>n.readonly,e=>{o?.updateOptions({readOnly:e??!1})}),m(()=>{ee()}),le(()=>{o?.dispose(),o=null}),(e,t)=>(b(),f(`div`,{ref_key:`host`,ref:a,class:`script-content-editor`},null,512))}}),[[`__scopeId`,`data-v-8c9e5994`]]),Qe={class:`text-body-1 font-weight-medium`},$e={class:`text-body-2 text-medium-emphasis`},et={class:`text-caption text-medium-emphasis mt-2`},tt={key:3,class:`d-flex justify-center mt-4`},nt={class:`text-caption`},rt={key:2,class:`text-center text-medium-emphasis py-6`},it={class:`text-body-2`},at={class:`text-caption text-medium-emphasis`},ot={class:`d-flex align-center flex-wrap ga-1`},st={class:`text-caption text-medium-emphasis mb-2`},ct={class:`text-body-2 mb-3 pa-3 rounded bg-surface-variant overflow-auto`,style:{"max-height":`100px`}},lt={key:0,class:`d-flex flex-wrap ga-2 mb-3`},ut={class:`text-body-2`},dt={class:`d-flex align-center flex-wrap ga-2 mb-3`},ft=[`onClick`],pt={class:`font-weight-medium`},mt={key:0,class:`text-caption text-medium-emphasis`},ht=[`title`],gt={key:0},_t={class:`d-flex align-center ga-2 flex-grow-1 min-width-0`},vt=[`title`],yt=[`onClick`],bt={class:`font-weight-medium`},xt={key:0,class:`text-caption text-medium-emphasis`},St={class:`text-error font-weight-medium`},Ct={key:4,class:`text-center text-medium-emphasis py-4`},wt={class:`d-flex align-center flex-wrap ga-2 mb-2`},Tt={class:`text-subtitle-2`},Et={key:0,class:`text-medium-emphasis`},Dt={class:`text-body-2 overflow-auto exec-detail-output`},Ot=ke(oe({name:`ScriptsPage`,__name:`ScriptsPage`,setup(oe){let le=[...Ne],m=je(),De=ge(),{servers:Oe,loading:ke,loadServers:Ot}=ze(),kt=[{label:`运维`,value:`ops`},{label:`部署`,value:`deploy`},{label:`检查`,value:`check`},{label:`清理`,value:`cleanup`}],At=S(!1),jt=S(``),M=S([]),N=S(null),Mt=S([]),Nt=S(1),Pt=S(20),P=S(!1),Ft=S(null),It=S(!1),F=S({name:``,category:`ops`,description:``,content:``}),I=S(!1),L=S(null),R=S([]),Lt=S(300),Rt=S(!1),zt=S(null),Bt=S(!1),z=S(!1),Vt=S(null),Ht=S(null),Ut=S([]),B=S(!1),Wt=S([]),Gt=S(0),V=S(1),Kt=S(20),qt=S(!1),H=S(nu
`)[0]?.trim()||e.summary,i=r&&r!==``?` · ${r.slice(0,120)}`:``;return`- ${e.serverName}${t}${n}${i}`}async function Wn(e,t){try{await navigator.clipboard.writeText(e),m(t)}catch{m(`复制失败`,`error`)}}async function Gn(){let e=Y.value.filter(e=>e.failed);e.length&&await Wn([`执行 #${K.value?.id??en.value} · 失败 ${e.length} `,...e.map(Un)].join(`
`),`已复制失败清单`)}async function Kn(){let e=mn.value;if(!e.length)return;let t=[`执行 #${K.value?.id??en.value} · 失败分组 ${e.length} `];for(let n of e){let e=n.rows.map(e=>e.serverName).join(``);t.push(`[${n.errorKey.slice(0,120)}] ${n.count} : ${e}`)}await Wn(t.join(`
`),`已复制分组摘要`)}function qn(e){J.value=J.value===e?null:e}async function Jn(e){if(!(!e.fullOutput||e.fullOutput===``))try{await navigator.clipboard.writeText(e.fullOutput),m(`已复制到剪贴板`)}catch{m(`复制失败`,`error`)}}function Yn(e){De.push({path:`/terminal`,query:{server_id:String(e)}})}async function Xn(){K.value&&await Vn(K.value)}async function Zn(e){if(en.value!=null){$t.value=!0;try{K.value=await v.get(`/scripts/executions/${en.value}`,{fetch_logs:e,log_lines:100})}catch(e){m(j(e,`加载详情失败`),`error`),G.value=!1}finally{$t.value=!1}}}async function Qn(e=!1){await Promise.all([kn(),Ot({all:!0}),An(),jn(),$(e)])}return Ae(e=>Qn(e)),(te,u)=>(b(),l(t,{fluid:``,class:`pa-6`},{default:x(()=>[y(A,{elevation:`0`,border:``,rounded:`lg`,class:`mb-4`},{default:x(()=>[y(O,{class:`d-flex flex-wrap align-center ga-2`},{default:x(()=>[u[34]||=s(` 脚本库 `,-1),N.value?(b(),l(_,{key:0,size:`small`,variant:`tonal`,label:``,class:`ml-1`},{default:x(()=>[s(` 分批 `+T(N.value.batch_size)+` · 并发 `+T(N.value.concurrency),1)]),_:1})):c(``,!0),y(C),y(Ie,{modelValue:jt.value,"onUpdate:modelValue":u[0]||=e=>jt.value=e,"prepend-inner-icon":`mdi-magnify`,label:`搜索...`,density:`compact`,"hide-details":``,variant:`outlined`,rounded:``,style:{"max-width":`240px`}},null,8,[`modelValue`]),y(d,{color:`primary`,variant:`flat`,class:`ml-1`,"prepend-icon":`mdi-plus`,size:`small`,onClick:u[1]||=e=>Mn(null)},{default:x(()=>[...u[33]||=[s(` 新建脚本 `,-1)]]),_:1})]),_:1})]),_:1}),y(A,{elevation:`0`,border:``,rounded:`lg`,class:`mb-4`},{default:x(()=>[y(O,{class:`d-flex align-center`,style:{cursor:`pointer`},onClick:u[2]||=e=>Jt.value=!Jt.value},{default:x(()=>[y(a,{class:`mr-2`},{default:x(()=>[...u[35]||=[s(`mdi-console`,-1)]]),_:1}),u[36]||=s(` 临时命令执行 `,-1),y(C),y(a,null,{default:x(()=>[s(T(Jt.value?`mdi-chevron-up`:`mdi-chevron-down`),1)]),_:1})]),_:1}),y(o,null,{default:x(()=>[he(p(`div`,null,[y(D),y(k,null,{default:x(()=>[y(We,{modelValue:U.value,"onUpdate:modelValue":u[3]||=e=>U.value=e,label:`命令`,variant:`outlined`,density:`compact`,rows:`3`,placeholder:`输入要执行的命令... (Ctrl+Enter 执行)`,class:`mb-3 font-monospace`,onKeydown:Te(pe(zn,[`ctrl`]),[`enter`]),rules:[g(Ve)(`命令`)]},null,8,[`modelValue`,`onKeydown`,`rules`]),u[38]||=p(`div`,{class:`text-caption text-medium-emphasis mb-1`},`目标服务器按分类选择`,-1),y(He,{modelValue:W.value,"onUpdate:modelValue":u[4]||=e=>W.value=e,servers:g(Oe),loading:g(ke),"max-height":`220px`,class:`mb-3`},null,8,[`modelValue`,`servers`,`loading`]),y(i,{dense:``},{default:x(()=>[y(r,{cols:`6`,md:`2`},{default:x(()=>[y(Ie,{modelValue:Yt.value,"onUpdate:modelValue":u[5]||=e=>Yt.value=e,modelModifiers:{number:!0},label:`超时()`,variant:`outlined`,density:`compact`,type:`number`,max:N.value?.max_timeout??600},null,8,[`modelValue`,`max`])]),_:1}),y(r,{cols:`6`,md:`3`},{default:x(()=>[y(n,{modelValue:Zt.value,"onUpdate:modelValue":u[6]||=e=>Zt.value=e,items:rn.value,"item-title":`title`,"item-value":`value`,label:`DB 凭据可选`,variant:`outlined`,density:`compact`,clearable:``,"hide-details":``},null,8,[`modelValue`,`items`])]),_:1}),y(r,{cols:`12`,md:`2`,class:`d-flex align-center ga-2`},{default:x(()=>[y(Ue,{modelValue:Xt.value,"onUpdate:modelValue":u[7]||=e=>Xt.value=e,label:`长任务`,density:`compact`,"hide-details":``,color:`primary`},null,8,[`modelValue`]),y(d,{color:`primary`,variant:`flat`,onClick:zn,loading:Qt.value,disabled:!U.value.trim()||W.value.length===0},{default:x(()=>[...u[37]||=[s(` 执行 `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),_:1})]),_:1})],512),[[Se,Jt.value]])]),_:1})]),_:1}),At.value?(b(),l(ve,{key:0,indeterminate:``,color:`primary`})):c(``,!0),sn.value.length?(b(),l(i,{key:1},{default:x(()=>[(b(!0),f(E,null,h(sn.value,e=>(b(),l(r,{cols:`12`,sm:`6`,md:`4`,key:e.id},{default:x(()=>[y(A,{elevation:`0`,border:``,rounded:`lg`,class:`fill-height`},{default:x(()=>[y(O,{class:`d-flex align-center`},{default:x(()=>[y(a,{color:`primary`,class:`mr-2`},{default:x(()=>[...u[39]