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

1 line
22 KiB
JavaScript
Raw Normal View History

import{n as e,t}from"./initMonaco-V9_vT4tz.js";import{a as n,t as r,x as i}from"./VDataTable-i6orhoys.js";import{$n as a,Dt as ee,F as o,Jn as s,L as c,Lr as l,M as u,N as d,P as f,Sr as te,Tr as ne,Vr as p,Xn as re,Y as ie,Yn as ae,Z as m,Zn as oe,_ as se,ar as h,er as g,fr as ce,gr as _,hr as le,jr as v,k as y,mr as ue,nr as b,or as x,rr as S,sr as de,t as fe,tr as C,ur as pe,vr as me,w as he,wr as w,z as T,zt as E}from"./index-DNlvHxBC.js";import{o as ge,t as _e}from"./VContainer-CbSJCQsb.js";import{t as D}from"./VChip-BbRVKa0H.js";import{t as O}from"./VSelect-D0AqVzoi.js";import{n as k,t as ve}from"./VRow-DW-g9AN1.js";import{t as A}from"./VSpacer-DDACi18G.js";import{t as j}from"./apiError-DPkg25-7.js";import{t as ye}from"./useServerList-CkRTXU3j.js";import{i as be}from"./validation-DMwOxx4a.js";import{t as M}from"./VDialog-CCk-u1DS.js";import{t as xe}from"./VTextarea-D0rtXV7P.js";import{t as Se}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as Ce}from"./VSwitch-1_1BtHAy.js";var we=Se(de({__name:`ScriptContentEditor`,props:{modelValue:{},readonly:{type:Boolean}},emits:[`update:modelValue`],setup(n,{emit:r}){let i=n,a=r,ee=e(),o=v(),s=null,c=!1;function l(){o.value&&(s?.dispose(),s=ee.editor.create(o.value,{...t({language:`shell`,readOnly:i.readonly??!1}),value:i.modelValue||``}),s.onDidChangeModelContent(()=>{c||!s||a(`update:modelValue`,s.getValue())}))}return te(()=>i.modelValue,e=>{s&&s.getValue()!==e&&(c=!0,s.setValue(e||``),c=!1)}),te(()=>i.readonly,e=>{s?.updateOptions({readOnly:e??!1})}),ue(()=>{l()}),ce(()=>{s?.dispose(),s=null}),(e,t)=>(_(),S(`div`,{ref_key:`host`,ref:o,class:`script-content-editor`},null,512))}}),[[`__scopeId`,`data-v-8c9e5994`]]),Te={class:`text-body-1 font-weight-medium`},Ee={class:`text-body-2 text-medium-emphasis`},De={class:`text-caption text-medium-emphasis mt-2`},Oe={key:3,class:`d-flex justify-center mt-4`},ke={class:`text-caption`},Ae={key:0,class:`ml-1`},je={class:`d-flex align-center flex-wrap ga-1 justify-end`},Me={class:`text-body-2`},Ne={class:`text-caption text-medium-emphasis mb-3`},Pe={class:`text-body-2 mb-4 pa-3 rounded bg-surface-variant overflow-auto`,style:{"max-height":`120px`}},Fe={class:`text-truncate`,style:{"max-width":`360px`}},N=de({__name:`ScriptsPage`,setup(e){let t=ge(),{servers:ce,loadServers:de}=ye(),Se=[{label:`运维`,value:`ops`},{label:`部署`,value:`deploy`},{label:`检查`,value:`check`},{label:`清理`,value:`cleanup`}],N=v(!1),P=v(``),F=v([]),I=v(null),Ie=v([]),L=v(1),R=v(20),z=v(!1),B=v(null),Le=v(!1),V=v({name:``,category:`ops`,description:``,content:``}),H=v(!1),U=v(null),W=v([]),Re=v(300),G=v(!1),ze=v(null),Be=v(!1),K=v(!1),Ve=v(null),He=v(!1),q=v(null),Ue=v([]),We=v(!1),J=v(``),Y=v([]),Ge=v(60),Ke=v(!1),qe=v(null),Je=v(!1),X=v([]),Ye=null,Z=v(!1),Q=v(null),Xe=v(!1),Ze=v(null),Qe=a(()=>Ie.value.map(e=>({title:e.name,value:e.id}))),$e=a(()=>{let e=P.value.trim().toLowerCase();return e?F.value.filter(t=>t.name.toLowerCase().includes(e)||(t.category||``).toLowerCase().includes(e)||(t.description||``).toLowerCase().includes(e)):F.value}),et=a(()=>$e.value.length),tt=a(()=>{let e=(L.value-1)*R.value;return $e.value.slice(e,e+R.value)});te(P,()=>{L.value=1});let nt=[{title:`命令`,key:`command`},{title:`状态`,key:`status`,width:100},{title:`进度`,key:`progress`,width:88},{title:`操作人`,key:`operator`,width:88},{title:`开始时间`,key:`started_at`,width:160},{title:`操作`,key:`actions`,width:180,sortable:!1}],rt=a(()=>Q.value?.results?Object.entries(Q.value.results).filter(([e])=>e!==`_meta`&&/^\d+$/.test(e)).map(([e,t])=>({serverId:e,status:String(t.status||t.phase||`—`),exitCode:t.exit_code??null,summary:(t.stdout||t.stderr||t.message||``).slice(0,200)||`—`})):[]);function it(e){return Se.find(t=>t.value===e)?.label||e}function at(e){return e?e.length>60?`${e.slice(0,60)}…`:e:`—`}function ot(e){return e||`—`}function st(e){if(!e)return 0;try{let t=JSON.parse(e);return Array.isArray(t)?t.length:0}catch{return 0}}function ct(e){let t=e.id??e.execution_id;if(t==null)throw Error(`执行响应缺少 id`);return t}async func