`)[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),f(t)}catch{f(`复制失败`,`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),f(`已复制到剪贴板`)}catch{f(`复制失败`,`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 x.get(`/scripts/executions/${en.value}`,{fetch_logs:e,log_lines:100})}catch(e){f(N(e,`加载详情失败`),`error`),Qt.value=!1}finally{$t.value=!1}}}async function Qn(e=!1){await Promise.all([kn(),Et({all:!0}),An(),jn(),$(e)])}return Ae(e=>Qn(e)),(r,c)=>(g(),E(n,{fluid:``,class:`pa-6`},{default:_(()=>[l(A,{elevation:`0`,border:``,rounded:`lg`,class:`mb-4`},{default:_(()=>[l(j,{class:`d-flexflex-wrapalign-centerga-2`},{default:_(()=>[c[34]||=m(`脚本库`,-1),F.value?(g(),E(D,{key:0,size:`small`,variant:`tonal`,label:``,class:`ml-1`},{default:_(()=>[m(`分批`+C(F.value.batch_size)+`台·并发`+C(F.value.concurrency),1)]),_:1})):p(``,!0),l(v),l(Pe,{modelValue:kt.value,"onUpdate:modelValue":c[0]||=e=>kt.value=e,"prepend-inner-icon":`mdi-magnify`,label:`搜索...`,density:`compact`,"hide-details":``,variant:`outlined`,rounded:``,style:{"max-width":`240px`}},null,8,[`modelValue`]),l(u,{color:`primary`,variant:`flat`,class:`ml-1`,"prepend-icon":`mdi-plus`,size:`small`,onClick:c[1]||=e=>Mn(null)},{default:_(()=>[...c[33]||=[m(`新建脚本`,-1)]]),_:1})]),_:1})]),_:1}),l(A,{elevation:`0`,border:``,rounded:`lg`,class:`mb-4`},{default:_(()=>[l(j,{class:`d-flexalign-center`,style:{cursor:`pointer`},onClick:c[2]||=e=>Kt.value=!Kt.value},{default:_(()=>[l(d,{class:`mr-2`},{default:_(()=>[...c[35]||=[m(`mdi-console`,-1)]]),_:1}),c[36]||=m(`临时命令执行`,-1),l(v),l(d,null,{default:_(()=>[m(C(Kt.value?`mdi-chevron-up`:`mdi-chevron-down`),1)]),_:1})]),_:1}),l(_e,null,{default:_(()=>[le(y(`div`,null,[l(T),l(M,null,{default:_(()=>[l(Be,{modelValue:qt.value,"onUpdate:modelValue":c[3]||=e=>qt.value=e,label:`命令`,variant:`outlined`,density:`compact`,rows:`3`,placeholder:`输入要执行的命令...(Ctrl+Enter执行)`,class:`mb-3font-monospace`,onKeydown:be(ge(zn,[`ctrl`]),[`enter`]),rules:[b(ze)(`命令`)]},null,8,[`modelValue`,`onKeydown`,`rules`]),c[38]||=y(`div`,{class:`text-captiontext-medium-emphasismb-1`},`目标服务器(按分类选择)`,-1),l(Ve,{modelValue:G.value,"onUpdate:modelValue":c[4]||=e=>G.value=e,servers:b(Oe),loading:b(ke),"max-height":`220px`,class:`mb-3`},null,8,[`modelValue`,`servers`,`loading`]),l(a,{dense:``},{default:_(()=>[l(i,{cols:`6`,md:`2`},{default:_(()=>[l(Pe,{modelValue:Jt.value,"onUpdate:modelValue":c[5]||=e=>Jt.value=e,modelModifiers:{number:!0},label:`超时(秒)`,variant:`outlined`,density:`compact`,type:`number`,max:F.value?.max_timeout??600},null,8,[`modelValue`,`max`])]),_:1}),l(i,{cols:`6`,md:`3`},{default:_(()=>[l(Fe,{modelValue:Xt.value,"onUpdate:modelValue":c[6]||=e=>Xt.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}),l(i,{cols:`12`,md:`2`,class:`d-flexalign-centerga-2`},{default:_(()=>[l(He,{modelValue:Yt.value,"onUpdate:modelValue":c[7]||=e=>Yt.value=e,label:`长任务`,density:`compact`,"hide-details":``,color:`primary`},null,8,[`modelValue`]),l(u,{color:`primary`,variant:`flat`,onClick:zn,loading:Zt.value,disabled:!qt.value.trim()||G.value.length===0},{default:_(()=>[...c[37]||=[m(`执行`,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),_:1})]),_:1})],512),[[Ce,Kt.value]])]),_:1})]),_:1}),Ot.value?(g(),E(ae,{key:0,indeterminate:``,color:`primary`})):p(``,!0),sn.value.length?(g(),E(a,{key:1},{default:_(()=>[(g(!0),s(S,null,h(sn.value,e=>(g(),E(i,{cols:`12`,sm:`6`,md:`4`,key:e.id},{default:_(()=>[l(A,{elevation:`0`,border:``,rounded:`lg`,class:`fill-height`},{default:_(()=>[l(j,{class:`d-flexalign-center`},{default:_(()=>[l(d,{color:`primary`,class:`mr-2`},{default:_(()=>[...