Files
Nexus/web/app/assets/ScriptsPage-C_O3nlS7.js
T
2026-06-08 07:20:37 +08:00

4 lines
35 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import{n as e,t}from"./initMonaco-BfQhSclW.js";import{a as n,x as r}from"./VDataTable-qcYuspRJ.js";import{_ as i,t as a,v as o}from"./VSelect-zRT2xSBu.js";import{n as s,t as c}from"./VRow-COf06dWn.js";import{$t as l,A as u,B as d,Bt as ee,Cr as te,Dr as f,F as p,Fr as ne,Ft as re,H as ie,Ht as ae,It as oe,J as se,Lt as ce,Mr as le,N as m,P as h,Pr as g,Q as _,R as v,Rt as ue,T as de,Tr as y,Ut as fe,Vr as b,Vt as pe,Xr as x,Yr as me,Yt as S,Z as he,Zr as C,ar as w,br as ge,cr as T,dr as E,hr as _e,ir as ve,jr as ye,kt as be,lr as D,lt as xe,mr as O,nr as Se,ot as Ce,pr as k,pt as we,qr as A,rr as Te,sr as j,t as Ee,ur as M,ut as N,v as De,vr as Oe,xr as ke,yr as Ae,z as P,zt as je}from"./index-DIw4Yr4W.js";import{n as Me,t as Ne}from"./dataTable-esDY4cOk.js";import{t as F}from"./VCheckbox-sDZs7oC5.js";import{t as Pe}from"./VDataTableServer-ds90vBuJ.js";import{t as I}from"./apiError-CNM4FBsC.js";import{t as Fe}from"./useServerList-D6CWN6S3.js";import{s as Ie}from"./labels-CzOhyWto.js";import{t as Le}from"./paginatedFetch-Cz5u0_-W.js";import{i as Re}from"./validation-DMwOxx4a.js";import{t as ze}from"./VDialog-DMfpTp7q.js";import{t as Be}from"./VTextarea-CZlasAbk.js";import{t as L}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as Ve}from"./VSwitch-e4iuFQjr.js";import{t as He}from"./execDetailGrouping-BdJXnrw-.js";import{i as Ue,n as We,r as Ge,t as Ke}from"./VExpansionPanels-DIp9IG3B.js";import{t as R}from"./useServerCategories-DriRGYhx.js";var qe=L(_e({__name:`ScriptContentEditor`,props:{modelValue:{},readonly:{type:Boolean}},emits:[`update:modelValue`],setup(n,{emit:r}){let i=n,a=r,o=e(),s=b(),c=null,l=!1;function u(){s.value&&(c?.dispose(),c=o.editor.create(s.value,{...t({language:`shell`,readOnly:i.readonly??!1}),value:i.modelValue||``}),c.onDidChangeModelContent(()=>{l||!c||a(`update:modelValue`,c.getValue())}))}return le(()=>i.modelValue,e=>{c&&c.getValue()!==e&&(l=!0,c.setValue(e||``),l=!1)}),le(()=>i.readonly,e=>{c?.updateOptions({readOnly:e??!1})}),te(()=>{u()}),ke(()=>{c?.dispose(),c=null}),(e,t)=>(y(),E(`div`,{ref_key:`host`,ref:s,class:`script-content-editor`},null,512))}}),[[`__scopeId`,`data-v-8c9e5994`]]),Je={class:`server-category-picker`},Ye={class:`d-flex align-center flex-wrap ga-2 mb-2`},Xe={key:0,class:`text-center text-medium-emphasis py-4`},z={class:`d-flex align-center px-1 mb-1`},Ze={class:`text-caption text-medium-emphasis ml-1`},Qe={class:`d-flex align-center ga-2`},B={class:`text-body-2 font-weight-medium text-truncate`},V={class:`text-caption text-medium-emphasis text-truncate`},$e=L(_e({__name:`ServerCategoryPicker`,props:Oe({servers:{},loading:{type:Boolean,default:!1},maxHeight:{default:`280px`}},{modelValue:{default:()=>[]},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let t=ye(e,`modelValue`),n=e,r=b(``),i=j(()=>new Set(t.value)),a=j(()=>{let e=r.value.trim().toLowerCase();return e?n.servers.filter(t=>t.name.toLowerCase().includes(e)||(t.domain||``).toLowerCase().includes(e)||(t.category||``).toLowerCase().includes(e)):n.servers}),o=j(()=>{let e={};for(let t of a.value){let n=t.category?.trim()||`uncategorized`;e[n]||(e[n]=[]),e[n].push(t)}return Object.entries(e).map(([e,t])=>({category:e,label:R(e),servers:[...t].sort((e,t)=>e.name.localeCompare(t.name,`zh`))})).sort((e,t)=>e.category===`uncategorized`?1:t.category===`uncategorized`?-1:e.label.localeCompare(t.label,`zh`))}),l=j(()=>{let e=a.value;return e.length>0&&e.every(e=>i.value.has(e.id))});function u(e){return e.servers.filter(e=>i.value.has(e.id)).length}function d(e){let t=o.value.find(t=>t.category===e);return!t||t.servers.length===0?!1:t.servers.every(e=>i.value.has(e.id))}function ee(e){t.value=[...e]}function te(e){let n=new Set(t.value);n.has(e)?n.delete(e):n.add(e),ee(n)}function ne(e){let n=o.value.find(t=>t.category===e);if(!n)return;let r=new Set(t.value),i=n.servers.every(e=>r.has(e.id));for(let e of n.servers)i?r.delete(e.id):r.add(e.id);ee(r)}function re(){let e=a.value,n=new Set(t.value),r=e.length>0&&e.every(e=>n.has(e.id));for(let t of e)r?n.delete(t.id):n.add(t.id);ee(n)}return(n,a)=>(y(),E(`div`,Je,[T(`div`,Ye,[O(F,{"model-value":l.value,label:`全选`,density:`compact`,"hide-details":``,"onUpdate:modelValue":re},null,8,[`model-value`]),O(Ee,{modelValue:r.value,"onUpdate:modelValue":a[0]||=e=>r.value=e,"prepend-inner-icon":`mdi-magnify`,label:`搜索服务器`,density:`compact`,"hide-details":``,variant:`outlined`,rounded:``,style:{"max-width":`220px`},clearable:``},null,8,[`modelValue`]),t.value.length>0?(y(),D(p,{key:0,size:`small`,color:`primary`,variant:`tonal`,label:``},{default:g(()=>[k(` 已选 `+C(t.value.length)+` 台 `,1)]),_:1})):M(``,!0),e.loading?(y(),D(xe,{key:1,indeterminate:``,size:`18`,width:`2`})):M(``,!0)]),T(`div`,{class:`picker-scroll`,style:x({maxHeight:e.maxHeight})},[!e.loading&&o.value.length===0?(y(),E(`div`,Xe,` 暂无服务器 `)):M(``,!0),(y(!0),E(w,null,f(o.value,e=>(y(),E(`div`,{key:e.category,class:`mb-3`},[T(`div`,z,[O(_,{size:`x-small`,variant:`text`,color:d(e.category)?`primary`:`default`,onClick:t=>ne(e.category)},{default:g(()=>[O(N,{size:`16`,class:`mr-1`},{default:g(()=>[k(C(d(e.category)?`mdi-checkbox-marked`:`mdi-checkbox-blank-outline`),1)]),_:2},1024),k(` `+C(e.label),1)]),_:2},1032,[`color`,`onClick`]),T(`span`,Ze,` (`+C(u(e))+`/`+C(e.servers.length)+`) `,1)]),O(c,{dense:``},{default:g(()=>[(y(!0),E(w,null,f(e.servers,e=>(y(),D(s,{key:e.id,cols:`12`,sm:`6`},{default:g(()=>[O(v,{color:i.value.has(e.id)?`primary`:void 0,variant:i.value.has(e.id)?`tonal`:`outlined`,rounded:`lg`,class:`pa-2 cursor-pointer`,onClick:t=>te(e.id)},{default:g(()=>[T(`div`,Qe,[O(N,{color:A(Ie)(e.is_online),size:`10`},{default:g(()=>[...a[1]||=[k(`mdi-circle`,-1)]]),_:1},8,[`color`]),T(`span`,B,C(e.name),1)]),T(`div`,V,C(e.domain),1)]),_:2},1032,[`color`,`variant`,`onClick`])]),_:2},1024))),128))]),_:2},1024)]))),128))],4)]))}}),[[`__scopeId`,`data-v-4d1df917`]]),et={class:`text-body-1 font-weight-medium`},tt={class:`text-body-2 text-medium-emphasis`},nt={class:`text-caption text-medium-emphasis mt-2`},rt={key:3,class:`d-flex justify-center mt-4`},it={class:`text-caption`},at={key:2,class:`text-center text-medium-emphasis py-6`},ot={class:`text-body-2`},st={class:`text-caption text-medium-emphasis`},ct={class:`d-flex align-center flex-wrap ga-1`},lt={class:`text-caption text-medium-emphasis mb-2`},ut={class:`text-body-2 mb-3 pa-3 rounded bg-surface-variant overflow-auto`,style:{"max-height":`100px`}},dt={key:0,class:`d-flex flex-wrap ga-2 mb-3`},ft={class:`text-body-2`},pt={class:`d-flex align-center flex-wrap ga-2 mb-3`},mt=[`onClick`],ht={class:`font-weight-medium`},gt={key:0,class:`text-caption text-medium-emphasis`},_t=[`title`],vt={key:0},yt={class:`d-flex align-center ga-2 flex-grow-1 min-width-0`},bt=[`title`],xt=[`onClick`],St={class:`font-weight-medium`},Ct={key:0,class:`text-caption text-medium-emphasis`},wt={class:`text-error font-weight-medium`},Tt={key:4,class:`text-center text-medium-emphasis py-4`},Et={class:`d-flex align-center flex-wrap ga-2 mb-2`},Dt={class:`text-subtitle-2`},Ot={key:0,class:`text-medium-emphasis`},kt={class:`text-body-2 overflow-auto exec-detail-output`},H=L(_e({__name:`ScriptsPage`,setup(e){let t=[...Ne],x=i(),_e=l(),{servers:ye,loading:xe,loadServers:Oe}=Fe(),ke=[{label:`运维`,value:`ops`},{label:`部署`,value:`deploy`},{label:`检查`,value:`check`},{label:`清理`,value:`cleanup`}],F=b(!1),Ie=b(``),L=b([]),R=b(null),Je=b([]),Ye=b(1),Xe=b(20),z=b(!1),Ze=b(null),Qe=b(!1),B=b({name:``,category:`ops`,description:``,content:``}),V=b(!1),H=b(null),U=b([]),At=b(300),jt=b(!1),Mt=b(null),Nt=b(!1),Pt=b(!1),Ft=b(null),It=b(null),Lt=b([]),Rt=b(!1),zt=b([]),Bt=b(0),W=b(1),Vt=b(20),Ht=b(!1),G=b(null),Ut=b(!1),Wt=b(``),K=b([]),Gt=b(60),Kt=b(!1),qt=b(null),Jt=b(!1),Yt=b(!1),q=b(null),Xt=b(!1),Zt=b(null),J=b(`all`),Qt=b(`list`),Y=b(null),$t=b([]),en=j(()=>Je.value.map(e=>({title:e.name,value:e.id}))),tn=j(()=>{let e=Ie.value.trim().toLowerCase();return e?L.value.filter(t=>t.name.toLowerCase().includes(e)||(t.category||``).toLowerCase().includes(e)||(t.description||``).toLowerCase().includes(e)):L.value}),nn=j(()=>tn.value.length),rn=j(()=>{let e=(Ye.value-1)*Xe.value;return tn.value.slice(e,e+Xe.value)});le(Ie,()=>{Ye.value=1});let an=Me([{title:`ID`,key:`id`,width:72},{title:`脚本/命令`,key:`label`},{title:`状态`,key:`status`,width:100},{title:`进度`,key:`progress`,width:88},{title:`台数`,key:`server_count`,width:72},{title:`操作人`,key:`operator`,width:88},{title:`开始时间`,key:`started_at`,width:168},{title:`操作`,key:`actions`,width:180}]),on=j(()=>G.value?L.value.find(e=>e.id===G.value)?.name||`脚本 #${G.value}`:``),sn={started:`开始`,batch_progress:`批次进度`,execution_finished:`结束`,stopped:`停止`,retry_requested:`重试`,stuck_marked:`标记卡住`,server_auto_stuck:`子机超时`,auto_stuck:`自动卡住`,job_completed:`回调完成`},cn=j(()=>new Map(ye.value.map(e=>[e.id,e])));function ln(e){let t=(e.stderr||``).trim(),n=(e.stdout||``).trim(),r=(e.message||``).trim(),i=t||n||r||`—`;return{summary:(t||r||n||``).slice(0,200)||`—`,full:i}}let X=j(()=>{if(!q.value?.results)return[];let e=cn.value;return Object.entries(q.value.results).filter(([e])=>e!==`_meta`&&/^\d+$/.test(e)).map(([t,n])=>{let r=Number(t),i=e.get(r),a=String(n.status||``),o=n.phase?String(n.phase):void 0,s=n.exit_code??null,c=ln(n),l=ee(a,o,s),u=pe(o);return{serverId:t,serverIdNum:r,serverName:ae(t,q.value?.server_names,i?.name),serverDomain:i?.domain||``,status:a,phase:o,exitCode:s,summary:c.summary,fullOutput:c.full,failed:l,pending:u}}).sort((e,t)=>e.failed===t.failed?e.pending===t.pending?e.serverName.localeCompare(t.serverName,`zh`):e.pending?1:-1:e.failed?-1:1)}),Z=j(()=>fe(q.value?.results,q.value?.server_ids)),un=j(()=>X.value.filter(e=>e.failed).map(e=>e.serverName)),dn=j(()=>He(X.value)),fn=j(()=>J.value===`failed`?X.value.filter(e=>e.failed):J.value===`success`?X.value.filter(e=>!e.failed&&!e.pending):X.value),Q=j(()=>X.value.find(e=>e.serverId===Y.value)||null);function pn(e){return fe(e.results,e.server_ids)}function mn(e){return ke.find(t=>t.value===e)?.label||e}function hn(e){if(!e)return`—`;let t=e.startsWith(`[long_task] `)?e.slice(12):e;return t.length>60?`${t.slice(0,60)}…`:t}function gn(e){return e.script_id?L.value.find(t=>t.id===e.script_id)?.name||`脚本 #${e.script_id}`:`临时命令`}function _n(e){if(!e)return`—`;let t=new Date(e);if(Number.isNaN(t.getTime()))return e.replace(`T`,` `).slice(0,19);let n=e=>String(e).padStart(2,`0`);return`${t.getFullYear()}-${n(t.getMonth()+1)}-${n(t.getDate())} ${n(t.getHours())}:${n(t.getMinutes())}:${n(t.getSeconds())}`}function vn(e){let t=e.events||[];return t.length?t.slice(-3).map(e=>{let t=sn[e.action||``]||e.action||`事件`,n=_n(e.at),r=e.detail||``;return`${n} · ${t}${r?` — ${r}`:``}`}):[]}async function yn(){Rt.value=!0;try{Lt.value=(await S.get(`/scripts/executions`,{limit:5})).items||[]}catch{Lt.value=[]}finally{Rt.value=!1}}async function $(){Ht.value=!0;try{let e=await Le(async(e,t)=>{let n={limit:e,offset:t};G.value&&(n.script_id=G.value);let r=await S.get(`/scripts/executions`,n);return{items:r.items||[],total:r.total||0}},W.value,Vt.value);zt.value=e.items,Bt.value=e.total,Vt.value===-1&&(W.value=1)}catch{zt.value=[],Bt.value=0}finally{Ht.value=!1}}function bn(){yn(),$()}function xn(e){W.value=e,$()}function Sn(e){Vt.value=e,W.value=1,$()}function Cn(){G.value=null,W.value=1,$()}async function wn(e){G.value=e.id,W.value=1,await $(),await ge(),It.value?.scrollIntoView({behavior:`smooth`,block:`start`})}function Tn(e){return e||`—`}function En(e){if(!e)return 0;try{let t=JSON.parse(e);return Array.isArray(t)?t.length:0}catch{return 0}}function Dn(e){let t=e.id??e.execution_id;if(t==null)throw Error(`执行响应缺少 id`);return t}async function On(){F.value=!0;try{L.value=(await S.getList(`/scripts/`)).items}catch(e){L.value=[],x(I(e,`加载脚本列表失败`),`error`)}finally{F.value=!1}}async function kn(){try{R.value=await S.get(`/scripts/exec-config`)}catch{R.value=null}}async function An(){try{Je.value=await S.getList(`/scripts/credentials`).then(e=>e.items)}catch{Je.value=[]}}function jn(e){Ze.value=e,e?B.value={name:e.name,category:e.category||`ops`,description:e.description||``,content:e.content||``}:B.value={name:``,category:`ops`,description:``,content:``},z.value=!0}async function Mn(){if(!B.value.name.trim()||!B.value.content.trim()){x(`请填写名称与脚本内容`,`warning`);return}Qe.value=!0;try{let e={name:B.value.name.trim(),category:B.value.category,description:B.value.description.trim()||null,content:B.value.content};Ze.value?await S.put(`/scripts/${Ze.value.id}`,e):await S.post(`/scripts/`,e),z.value=!1,await On(),x(`保存成功`)}catch(e){x(I(e,`保存失败`),`error`)}finally{Qe.value=!1}}function Nn(e){H.value=e,U.value=[],jt.value=!1,Mt.value=null,V.value=!0}async function Pn(e,t,n){let r=await S.post(`/scripts/exec`,e);return re(Dn(r),t,n,!!e.long_task,r.progress,r.status),r}async function Fn(){if(!H.value||!U.value.length){x(`请选择服务器`,`warning`);return}Nt.value=!0;try{await Pn({script_id:H.value.id,server_ids:U.value,timeout:At.value,long_task:jt.value,credential_id:Mt.value??void 0},H.value.name,U.value.length),V.value=!1,be(`脚本已提交执行`),bn()}catch(e){x(I(e,`执行失败`),`error`)}finally{Nt.value=!1}}function In(e){Ft.value=e,Pt.value=!0}async function Ln(){if(Ft.value)try{await S.delete(`/scripts/${Ft.value.id}`),Pt.value=!1,await On(),x(`已删除`)}catch(e){x(I(e,`删除失败`),`error`)}}async function Rn(){if(!(!Wt.value.trim()||K.value.length===0)){Jt.value=!0;try{await Pn({command:Wt.value.trim(),server_ids:K.value,timeout:Gt.value,long_task:Kt.value,credential_id:qt.value??void 0},`临时命令`,K.value.length),be(`已在 ${K.value.length} 台服务器上执行`),bn()}catch(e){x(I(e,`执行失败`),`error`)}finally{Jt.value=!1}}}async function zn(e){try{await S.post(`/scripts/executions/${e.id}/stop`),bn(),x(`已发送停止指令`)}catch(e){x(I(e,`停止失败`),`error`)}}async function Bn(e){try{let t=await S.post(`/scripts/executions/${e.id}/retry`,{});re(Dn(t),`${gn(e)}(重试)`,En(e.server_ids)||En(t.server_ids),!!e.long_task,t.progress,t.status),bn(),be(`重试已提交`)}catch(e){x(I(e,`重试失败`),`error`)}}async function Vn(e){if(Zt.value=e,J.value=`all`,Qt.value=`list`,Y.value=null,$t.value=[],Yt.value=!0,await Xn(!1),fe(q.value?.results,q.value?.server_ids).failed>0&&(q.value?.status===`failed`||q.value?.status===`partial`)){J.value=`failed`;let e=X.value.find(e=>e.failed);e&&(Y.value=e.serverId)}}function Hn(e){let t=e.serverDomain?` (${e.serverDomain})`:``,n=e.exitCode==null?``:` · exit ${e.exitCode}`,r=e.summary.split(`
`)[0]?.trim()||e.summary,i=r&&r!==`—`?` · ${r.slice(0,120)}`:``;return`- ${e.serverName}${t}${n}${i}`}async function Un(e,t){try{await navigator.clipboard.writeText(e),x(t)}catch{x(`复制失败`,`error`)}}async function Wn(){let e=X.value.filter(e=>e.failed);e.length&&await Un([`执行 #${q.value?.id??Zt.value} · 失败 ${e.length} 台`,...e.map(Hn)].join(`
`),`已复制失败清单`)}async function Gn(){let e=dn.value;if(!e.length)return;let t=[`执行 #${q.value?.id??Zt.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 Un(t.join(`
`),`已复制分组摘要`)}function Kn(e){Y.value=Y.value===e?null:e}async function qn(e){if(!(!e.fullOutput||e.fullOutput===`—`))try{await navigator.clipboard.writeText(e.fullOutput),x(`已复制到剪贴板`)}catch{x(`复制失败`,`error`)}}function Jn(e){_e.push({path:`/terminal`,query:{server_id:String(e)}})}async function Yn(){q.value&&await Bn(q.value)}async function Xn(e){if(Zt.value!=null){Xt.value=!0;try{q.value=await S.get(`/scripts/executions/${Zt.value}`,{fetch_logs:e,log_lines:100})}catch(e){x(I(e,`加载详情失败`),`error`),Yt.value=!1}finally{Xt.value=!1}}}return te(()=>{On(),Oe({all:!0}),kn(),An(),bn()}),(e,i)=>(y(),D(o,{fluid:``,class:`pa-6`},{default:g(()=>[O(v,{elevation:`0`,border:``,rounded:`lg`,class:`mb-4`},{default:g(()=>[O(d,{class:`d-flex flex-wrap align-center ga-2`},{default:g(()=>[i[34]||=k(` 脚本库 `,-1),R.value?(y(),D(p,{key:0,size:`small`,variant:`tonal`,label:``,class:`ml-1`},{default:g(()=>[k(` 分批 `+C(R.value.batch_size)+` 台 · 并发 `+C(R.value.concurrency),1)]),_:1})):M(``,!0),O(m),O(Ee,{modelValue:Ie.value,"onUpdate:modelValue":i[0]||=e=>Ie.value=e,"prepend-inner-icon":`mdi-magnify`,label:`搜索...`,density:`compact`,"hide-details":``,variant:`outlined`,rounded:``,style:{"max-width":`240px`}},null,8,[`modelValue`]),O(_,{color:`primary`,variant:`flat`,class:`ml-1`,"prepend-icon":`mdi-plus`,size:`small`,onClick:i[1]||=e=>jn(null)},{default:g(()=>[...i[33]||=[k(` 新建脚本 `,-1)]]),_:1})]),_:1})]),_:1}),O(v,{elevation:`0`,border:``,rounded:`lg`,class:`mb-4`},{default:g(()=>[O(d,{class:`d-flex align-center`,style:{cursor:`pointer`},onClick:i[2]||=e=>Ut.value=!Ut.value},{default:g(()=>[O(N,{class:`mr-2`},{default:g(()=>[...i[35]||=[k(`mdi-console`,-1)]]),_:1}),i[36]||=k(` 临时命令执行 `,-1),O(m),O(N,null,{default:g(()=>[k(C(Ut.value?`mdi-chevron-up`:`mdi-chevron-down`),1)]),_:1})]),_:1}),O(se,null,{default:g(()=>[ne(T(`div`,null,[O(h),O(P,null,{default:g(()=>[O(Be,{modelValue:Wt.value,"onUpdate:modelValue":i[3]||=e=>Wt.value=e,label:`命令`,variant:`outlined`,density:`compact`,rows:`3`,placeholder:`输入要执行的命令... (Ctrl+Enter 执行)`,class:`mb-3 font-monospace`,onKeydown:Te(ve(Rn,[`ctrl`]),[`enter`]),rules:[A(Re)(`命令`)]},null,8,[`modelValue`,`onKeydown`,`rules`]),i[38]||=T(`div`,{class:`text-caption text-medium-emphasis mb-1`},`目标服务器(按分类选择)`,-1),O($e,{modelValue:K.value,"onUpdate:modelValue":i[4]||=e=>K.value=e,servers:A(ye),loading:A(xe),"max-height":`220px`,class:`mb-3`},null,8,[`modelValue`,`servers`,`loading`]),O(c,{dense:``},{default:g(()=>[O(s,{cols:`6`,md:`2`},{default:g(()=>[O(Ee,{modelValue:Gt.value,"onUpdate:modelValue":i[5]||=e=>Gt.value=e,modelModifiers:{number:!0},label:`超时(秒)`,variant:`outlined`,density:`compact`,type:`number`,max:R.value?.max_timeout??600},null,8,[`modelValue`,`max`])]),_:1}),O(s,{cols:`6`,md:`3`},{default:g(()=>[O(a,{modelValue:qt.value,"onUpdate:modelValue":i[6]||=e=>qt.value=e,items:en.value,"item-title":`title`,"item-value":`value`,label:`DB 凭据(可选)`,variant:`outlined`,density:`compact`,clearable:``,"hide-details":``},null,8,[`modelValue`,`items`])]),_:1}),O(s,{cols:`12`,md:`2`,class:`d-flex align-center ga-2`},{default:g(()=>[O(Ve,{modelValue:Kt.value,"onUpdate:modelValue":i[7]||=e=>Kt.value=e,label:`长任务`,density:`compact`,"hide-details":``,color:`primary`},null,8,[`modelValue`]),O(_,{color:`primary`,variant:`flat`,onClick:Rn,loading:Jt.value,disabled:!Wt.value.trim()||K.value.length===0},{default:g(()=>[...i[37]||=[k(` 执行 `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),_:1})]),_:1})],512),[[Se,Ut.value]])]),_:1})]),_:1}),F.value?(y(),D(Ce,{key:0,indeterminate:``,color:`primary`})):M(``,!0),rn.value.length?(y(),D(c,{key:1},{default:g(()=>[(y(!0),E(w,null,f(rn.value,e=>(y(),D(s,{cols:`12`,sm:`6`,md:`4`,key:e.id},{default:g(()=>[O(v,{elevation:`0`,border:``,rounded:`lg`,class:`fill-height`},{default:g(()=>[O(d,{class:`d-flex align-center`},{default:g(()=>[O(N,{color:`primary`,class:`mr-2`},{default:g(()=>[...i[39]||=[k(`mdi-code-braces`,-1)]]),_:1}),T(`span`,et,C(e.name),1),O(m),O(De,null,{activator:g(({props:e})=>[O(_,Ae({icon:`mdi-dots-vertical`,variant:`text`,size:`small`},{ref_for:!0},e),null,16)]),default:g(()=>[O(de,{density:`compact`},{default:g(()=>[O(u,{title:`编辑`,onClick:t=>jn(e)},{prepend:g(()=>[O(N,null,{default:g(()=>[...i[40]||=[k(`mdi-pencil`,-1)]]),_:1})]),_:1},8,[`onClick`]),O(u,{title:`执行`,onClick:t=>Nn(e)},{prepend:g(()=>[O(N,null,{default:g(()=>[...i[41]||=[k(`mdi-play`,-1)]]),_:1})]),_:1},8,[`onClick`]),O(u,{title:`删除`,onClick:t=>In(e),class:`text-error`},{prepend:g(()=>[O(N,{color:`error`},{default:g(()=>[...i[42]||=[k(`mdi-delete`,-1)]]),_:1})]),_:1},8,[`onClick`])]),_:2},1024)]),_:2},1024)]),_:2},1024),O(P,null,{default:g(()=>[e.category?(y(),D(p,{key:0,size:`small`,variant:`tonal`,label:``,class:`mb-2`},{default:g(()=>[k(C(mn(e.category)),1)]),_:2},1024)):M(``,!0),T(`div`,tt,C(e.description||`无描述`),1),T(`div`,nt,` 更新于 `+C(e.updated_at||e.created_at||`—`),1)]),_:2},1024),O(ie,null,{default:g(()=>[O(_,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-play`,color:`primary`,onClick:t=>Nn(e)},{default:g(()=>[...i[43]||=[k(` 执行 `,-1)]]),_:1},8,[`onClick`]),O(m),O(_,{size:`small`,variant:`text`,onClick:t=>wn(e)},{default:g(()=>[...i[44]||=[k(`历史`,-1)]]),_:1},8,[`onClick`])]),_:2},1024)]),_:2},1024)]),_:2},1024))),128))]),_:1})):F.value?M(``,!0):(y(),D(v,{key:2,elevation:`0`,border:``,rounded:`lg`},{default:g(()=>[O(P,{class:`text-center text-medium-emphasis py-10`},{default:g(()=>[...i[45]||=[k(`暂无脚本,点击「新建脚本」添加`,-1)]]),_:1})]),_:1})),nn.value>Xe.value?(y(),E(`div`,rt,[O(r,{modelValue:Ye.value,"onUpdate:modelValue":i[8]||=e=>Ye.value=e,length:Math.ceil(nn.value/Xe.value),rounded:``,density:`compact`},null,8,[`modelValue`,`length`])])):M(``,!0),T(`div`,{ref_key:`historySectionRef`,ref:It},[O(v,{elevation:`0`,border:``,rounded:`lg`,class:`mt-4`},{default:g(()=>[O(d,{class:`d-flex align-center text-subtitle-1`},{default:g(()=>[O(N,{class:`mr-2`},{default:g(()=>[...i[46]||=[k(`mdi-history`,-1)]]),_:1}),i[47]||=k(` 最近执行 `,-1),O(m),O(_,{size:`small`,variant:`text`,icon:`mdi-refresh`,loading:Rt.value,onClick:yn},null,8,[`loading`])]),_:1}),O(h),O(P,{class:`pa-0`},{default:g(()=>[Rt.value?(y(),D(Ce,{key:0,indeterminate:``,color:`primary`})):M(``,!0),Lt.value.length?(y(),D(de,{key:1,density:`compact`,class:`py-0`},{default:g(()=>[(y(!0),E(w,null,f(Lt.value,e=>(y(),D(u,{key:e.id,title:`#${e.id} · ${gn(e)}`,onClick:t=>Vn(e.id),style:{cursor:`pointer`}},{subtitle:g(()=>[T(`div`,it,C(A(je)(e.status))+` · `+C(En(e.server_ids))+` 台 · `+C(e.operator||`—`)+` · `+C(_n(e.started_at)),1),(y(!0),E(w,null,f(vn(e),(e,t)=>(y(),E(`div`,{key:t,class:`text-caption text-medium-emphasis font-monospace mt-1`},C(e),1))),128))]),append:g(()=>[O(p,{color:A(ue)(e.status),size:`x-small`,variant:`tonal`,label:``},{default:g(()=>[k(C(A(je)(e.status)),1)]),_:2},1032,[`color`])]),_:2},1032,[`title`,`onClick`]))),128))]),_:1})):Rt.value?M(``,!0):(y(),E(`div`,at,`暂无执行记录`))]),_:1})]),_:1}),O(v,{elevation:`0`,border:``,rounded:`lg`,class:`mt-4`},{default:g(()=>[O(d,{class:`d-flex flex-wrap align-center ga-2 text-subtitle-1`},{default:g(()=>[O(N,{class:`mr-1`},{default:g(()=>[...i[48]||=[k(`mdi-format-list-bulleted`,-1)]]),_:1}),i[49]||=k(` 全部执行历史 `,-1),G.value?(y(),D(p,{key:0,size:`small`,variant:`tonal`,closable:``,label:``,"onClick:close":Cn},{default:g(()=>[k(C(on.value),1)]),_:1})):M(``,!0),O(m),O(_,{size:`small`,variant:`text`,icon:`mdi-refresh`,loading:Ht.value,onClick:$},null,8,[`loading`])]),_:1}),O(h),O(Pe,{items:zt.value,headers:A(an),"items-length":Bt.value,loading:Ht.value,page:W.value,"items-per-page":Vt.value,"items-per-page-options":t,density:`compact`,hover:``,"onUpdate:page":xn,"onUpdate:itemsPerPage":Sn},{"item.label":g(({item:e})=>[T(`div`,ot,C(gn(e)),1),T(`code`,st,C(hn(e.command)),1)]),"item.status":g(({item:e})=>[O(p,{color:A(ue)(e.status),size:`x-small`,variant:`tonal`,label:``},{default:g(()=>[k(C(A(je)(e.status)),1)]),_:2},1032,[`color`])]),"item.server_count":g(({item:e})=>[k(C(En(e.server_ids)),1)]),"item.progress":g(({item:e})=>[T(`div`,ct,[T(`span`,null,C(Tn(e.progress)),1),pn(e).failed>0?(y(),D(p,{key:0,color:`error`,size:`x-small`,variant:`tonal`,label:``},{default:g(()=>[k(C(pn(e).failed)+` 台失败 `,1)]),_:2},1024)):M(``,!0)])]),"item.started_at":g(({item:e})=>[k(C(_n(e.started_at)),1)]),"item.actions":g(({item:e})=>[O(_,{size:`x-small`,variant:`text`,onClick:t=>Vn(e.id)},{default:g(()=>[...i[50]||=[k(`详情`,-1)]]),_:1},8,[`onClick`]),e.status===`running`||e.status===`partial`?(y(),D(_,{key:0,size:`x-small`,variant:`text`,color:`error`,onClick:t=>zn(e)},{default:g(()=>[...i[51]||=[k(` 停止 `,-1)]]),_:1},8,[`onClick`])):M(``,!0),e.status===`failed`||e.status===`partial`?(y(),D(_,{key:1,size:`x-small`,variant:`text`,color:`primary`,onClick:t=>Bn(e)},{default:g(()=>[...i[52]||=[k(` 重试 `,-1)]]),_:1},8,[`onClick`])):M(``,!0)]),"no-data":g(()=>[...i[53]||=[T(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无执行记录`,-1)]]),_:1},8,[`items`,`headers`,`items-length`,`loading`,`page`,`items-per-page`])]),_:1})],512),O(ze,{modelValue:z.value,"onUpdate:modelValue":i[14]||=e=>z.value=e,"max-width":`900`,scrollable:``},{default:g(()=>[O(v,{border:``},{default:g(()=>[O(d,null,{default:g(()=>[k(C(Ze.value?`编辑脚本`:`新建脚本`),1)]),_:1}),O(h),O(P,null,{default:g(()=>[O(Ee,{modelValue:B.value.name,"onUpdate:modelValue":i[9]||=e=>B.value.name=e,label:`脚本名称`,variant:`outlined`,density:`compact`,class:`mb-2`,rules:[A(Re)(`脚本名称`)]},null,8,[`modelValue`,`rules`]),O(a,{modelValue:B.value.category,"onUpdate:modelValue":i[10]||=e=>B.value.category=e,items:ke,"item-title":`label`,"item-value":`value`,label:`分类`,variant:`outlined`,density:`compact`,class:`mb-2`},null,8,[`modelValue`]),O(Be,{modelValue:B.value.description,"onUpdate:modelValue":i[11]||=e=>B.value.description=e,label:`描述`,variant:`outlined`,density:`compact`,rows:`2`,class:`mb-2`},null,8,[`modelValue`]),i[54]||=T(`div`,{class:`text-caption text-medium-emphasis mb-1`},`脚本内容`,-1),O(qe,{modelValue:B.value.content,"onUpdate:modelValue":i[12]||=e=>B.value.content=e},null,8,[`modelValue`])]),_:1}),O(h),O(ie,null,{default:g(()=>[O(m),O(_,{variant:`text`,onClick:i[13]||=e=>z.value=!1},{default:g(()=>[...i[55]||=[k(`取消`,-1)]]),_:1}),O(_,{color:`primary`,variant:`flat`,onClick:Mn,loading:Qe.value,disabled:!B.value.content.trim()},{default:g(()=>[...i[56]||=[k(` 保存 `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),O(ze,{modelValue:V.value,"onUpdate:modelValue":i[20]||=e=>V.value=e,"max-width":`720`,scrollable:``},{default:g(()=>[O(v,{border:``},{default:g(()=>[O(d,null,{default:g(()=>[k(`执行脚本: `+C(H.value?.name),1)]),_:1}),O(P,null,{default:g(()=>[i[57]||=T(`div`,{class:`text-caption text-medium-emphasis mb-1`},`选择服务器(按分类勾选)`,-1),O($e,{modelValue:U.value,"onUpdate:modelValue":i[15]||=e=>U.value=e,servers:A(ye),loading:A(xe),"max-height":`360px`,class:`mb-2`},null,8,[`modelValue`,`servers`,`loading`]),O(c,{dense:``},{default:g(()=>[O(s,{cols:`6`},{default:g(()=>[O(Ee,{modelValue:At.value,"onUpdate:modelValue":i[16]||=e=>At.value=e,modelModifiers:{number:!0},label:`超时(秒)`,variant:`outlined`,density:`compact`,type:`number`,max:R.value?.max_timeout??600},null,8,[`modelValue`,`max`])]),_:1}),O(s,{cols:`6`},{default:g(()=>[O(a,{modelValue:Mt.value,"onUpdate:modelValue":i[17]||=e=>Mt.value=e,items:en.value,"item-title":`title`,"item-value":`value`,label:`DB 凭据(可选)`,variant:`outlined`,density:`compact`,clearable:``},null,8,[`modelValue`,`items`])]),_:1})]),_:1}),O(Ve,{modelValue:jt.value,"onUpdate:modelValue":i[18]||=e=>jt.value=e,label:`长任务(nohup + Agent 回调,适合超时较长的脚本)`,density:`compact`,color:`primary`},null,8,[`modelValue`])]),_:1}),O(ie,null,{default:g(()=>[O(m),O(_,{variant:`text`,onClick:i[19]||=e=>V.value=!1},{default:g(()=>[...i[58]||=[k(`取消`,-1)]]),_:1}),O(_,{color:`primary`,variant:`flat`,onClick:Fn,loading:Nt.value,disabled:!U.value.length},{default:g(()=>[...i[59]||=[k(` 执行 `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),O(ze,{modelValue:Pt.value,"onUpdate:modelValue":i[22]||=e=>Pt.value=e,"max-width":`400`},{default:g(()=>[O(v,{border:``},{default:g(()=>[O(d,null,{default:g(()=>[...i[60]||=[k(`确认删除`,-1)]]),_:1}),O(P,null,{default:g(()=>[i[61]||=k(`确定要删除脚本 `,-1),T(`strong`,null,C(Ft.value?.name),1),i[62]||=k(` 吗?`,-1)]),_:1}),O(ie,null,{default:g(()=>[O(m),O(_,{variant:`text`,onClick:i[21]||=e=>Pt.value=!1},{default:g(()=>[...i[63]||=[k(`取消`,-1)]]),_:1}),O(_,{color:`error`,variant:`flat`,onClick:Ln},{default:g(()=>[...i[64]||=[k(`删除`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`]),O(ze,{modelValue:Yt.value,"onUpdate:modelValue":i[32]||=e=>Yt.value=e,"max-width":`960`,scrollable:``},{default:g(()=>[O(v,{border:``},{default:g(()=>[O(d,{class:`d-flex align-center flex-wrap ga-2`},{default:g(()=>[T(`span`,null,`执行详情 #`+C(q.value?.id),1),q.value?(y(),D(p,{key:0,color:A(ue)(q.value.status),size:`small`,variant:`tonal`,label:``},{default:g(()=>[k(C(A(je)(q.value.status)),1)]),_:1},8,[`color`])):M(``,!0),O(m),q.value?.long_task?(y(),D(_,{key:1,size:`small`,variant:`tonal`,loading:Xt.value,onClick:i[23]||=e=>Xn(!0)},{default:g(()=>[...i[65]||=[k(` 拉取日志 `,-1)]]),_:1},8,[`loading`])):M(``,!0)]),_:1}),O(h),q.value?(y(),D(P,{key:0},{default:g(()=>[T(`div`,lt,C(Tn(q.value.progress))+` · 操作人 `+C(q.value.operator||`—`),1),T(`pre`,ut,C(q.value.command),1),Z.value.total?(y(),E(`div`,dt,[O(p,{size:`small`,variant:`tonal`,label:``},{default:g(()=>[k(`共 `+C(Z.value.total)+` 台`,1)]),_:1}),Z.value.success?(y(),D(p,{key:0,color:`success`,size:`small`,variant:`tonal`,label:``},{default:g(()=>[k(` 成功 `+C(Z.value.success),1)]),_:1})):M(``,!0),Z.value.failed?(y(),D(p,{key:1,color:`error`,size:`small`,variant:`tonal`,label:``},{default:g(()=>[k(` 失败 `+C(Z.value.failed),1)]),_:1})):M(``,!0),Z.value.pending?(y(),D(p,{key:2,color:`info`,size:`small`,variant:`tonal`,label:``},{default:g(()=>[k(` 进行中 `+C(Z.value.pending),1)]),_:1})):M(``,!0)])):M(``,!0),un.value.length?(y(),D(he,{key:1,type:`error`,variant:`tonal`,density:`compact`,class:`mb-3`,title:`失败 ${un.value.length} 台`},{default:g(()=>[T(`div`,ft,C(un.value.join(`、`)),1)]),_:1},8,[`title`])):M(``,!0),T(`div`,pt,[i[74]||=T(`span`,{class:`text-caption text-medium-emphasis`},`筛选`,-1),O(we,{modelValue:J.value,"onUpdate:modelValue":i[24]||=e=>J.value=e,mandatory:``,density:`compact`,color:`primary`,variant:`outlined`,divided:``},{default:g(()=>[O(_,{value:`all`,size:`small`},{default:g(()=>[...i[66]||=[k(`全部`,-1)]]),_:1}),O(_,{value:`failed`,size:`small`},{default:g(()=>[...i[67]||=[k(`仅失败`,-1)]]),_:1}),O(_,{value:`success`,size:`small`},{default:g(()=>[...i[68]||=[k(`仅成功`,-1)]]),_:1})]),_:1},8,[`modelValue`]),Z.value.failed>0?(y(),E(w,{key:0},[O(h,{vertical:``,class:`mx-1`}),i[73]||=T(`span`,{class:`text-caption text-medium-emphasis`},`视图`,-1),O(we,{modelValue:Qt.value,"onUpdate:modelValue":i[25]||=e=>Qt.value=e,mandatory:``,density:`compact`,color:`primary`,variant:`outlined`,divided:``},{default:g(()=>[O(_,{value:`list`,size:`small`},{default:g(()=>[...i[69]||=[k(`列表`,-1)]]),_:1}),O(_,{value:`group`,size:`small`},{default:g(()=>[...i[70]||=[k(`按错误分组`,-1)]]),_:1})]),_:1},8,[`modelValue`]),O(_,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-content-copy`,onClick:Wn},{default:g(()=>[...i[71]||=[k(` 复制失败清单 `,-1)]]),_:1}),Qt.value===`group`?(y(),D(_,{key:0,size:`small`,variant:`tonal`,"prepend-icon":`mdi-content-copy`,onClick:Gn},{default:g(()=>[...i[72]||=[k(` 复制分组摘要 `,-1)]]),_:1})):M(``,!0)],64)):M(``,!0)]),Qt.value===`list`?(y(),D(n,{key:2,density:`compact`,class:`exec-detail-table`},{default:g(()=>[i[76]||=T(`thead`,null,[T(`tr`,null,[T(`th`,null,`服务器`),T(`th`,null,`状态`),T(`th`,{style:{width:`72px`}},`退出码`),T(`th`,null,`错误摘要`),T(`th`,{style:{width:`120px`},class:`text-end`},`操作`)])],-1),T(`tbody`,null,[(y(!0),E(w,null,f(fn.value,e=>(y(),E(`tr`,{key:e.serverId,class:me([{"exec-detail-row--failed":e.failed,"exec-detail-row--active":Y.value===e.serverId},`exec-detail-row cursor-pointer`]),onClick:t=>Kn(e.serverId)},[T(`td`,null,[T(`div`,ht,C(e.serverName),1),e.serverDomain?(y(),E(`div`,gt,C(e.serverDomain),1)):M(``,!0)]),T(`td`,null,[O(p,{color:A(oe)(e.status,e.phase,e.exitCode),size:`x-small`,variant:`tonal`,label:``},{default:g(()=>[k(C(A(ce)(e.status,e.phase)),1)]),_:2},1032,[`color`])]),T(`td`,{class:me({"text-error font-weight-medium":e.failed})},C(e.exitCode??`—`),3),T(`td`,{class:`text-truncate`,style:{"max-width":`280px`},title:e.summary},C(e.summary),9,_t),T(`td`,{class:`text-end`,onClick:i[26]||=ve(()=>{},[`stop`])},[e.fullOutput&&e.fullOutput!==`—`?(y(),D(_,{key:0,size:`x-small`,variant:`text`,icon:`mdi-content-copy`,title:`复制输出`,onClick:t=>qn(e)},null,8,[`onClick`])):M(``,!0),O(_,{size:`x-small`,variant:`text`,icon:`mdi-console`,title:`打开终端`,onClick:t=>Jn(e.serverIdNum)},null,8,[`onClick`])])],10,mt))),128)),fn.value.length===0?(y(),E(`tr`,vt,[...i[75]||=[T(`td`,{colspan:`5`,class:`text-center text-medium-emphasis py-4`},`当前筛选无记录`,-1)]])):M(``,!0)])]),_:1})):dn.value.length?(y(),D(Ke,{key:3,modelValue:$t.value,"onUpdate:modelValue":i[28]||=e=>$t.value=e,multiple:``,variant:`accordion`,class:`exec-detail-groups`},{default:g(()=>[(y(!0),E(w,null,f(dn.value,(e,t)=>(y(),D(We,{key:`${t}-${e.errorKey}`},{default:g(()=>[O(Ge,null,{default:g(()=>[T(`div`,yt,[T(`span`,{class:`text-body-2 text-truncate`,title:e.errorKey},C(e.errorKey),9,bt),O(p,{color:`error`,size:`x-small`,variant:`tonal`,label:``},{default:g(()=>[k(C(e.count)+` 台`,1)]),_:2},1024)])]),_:2},1024),O(Ue,null,{default:g(()=>[O(n,{density:`compact`},{default:g(()=>[i[77]||=T(`thead`,null,[T(`tr`,null,[T(`th`,null,`服务器`),T(`th`,{style:{width:`72px`}},`退出码`),T(`th`,{style:{width:`120px`},class:`text-end`},`操作`)])],-1),T(`tbody`,null,[(y(!0),E(w,null,f(e.rows,e=>(y(),E(`tr`,{key:e.serverId,class:me([{"exec-detail-row--active":Y.value===e.serverId},`exec-detail-row cursor-pointer`]),onClick:t=>Kn(e.serverId)},[T(`td`,null,[T(`div`,St,C(e.serverName),1),e.serverDomain?(y(),E(`div`,Ct,C(e.serverDomain),1)):M(``,!0)]),T(`td`,wt,C(e.exitCode??`—`),1),T(`td`,{class:`text-end`,onClick:i[27]||=ve(()=>{},[`stop`])},[e.fullOutput&&e.fullOutput!==`—`?(y(),D(_,{key:0,size:`x-small`,variant:`text`,icon:`mdi-content-copy`,title:`复制输出`,onClick:t=>qn(e)},null,8,[`onClick`])):M(``,!0),O(_,{size:`x-small`,variant:`text`,icon:`mdi-console`,title:`打开终端`,onClick:t=>Jn(e.serverIdNum)},null,8,[`onClick`])])],10,xt))),128))])]),_:2},1024)]),_:2},1024)]),_:2},1024))),128))]),_:1},8,[`modelValue`])):(y(),E(`div`,Tt,`无失败记录可分组`)),Q.value?(y(),D(v,{key:5,variant:`tonal`,color:Q.value.failed?`error`:void 0,class:`mt-3 pa-3`},{default:g(()=>[T(`div`,Et,[T(`span`,Dt,[k(C(Q.value.serverName)+` `,1),Q.value.serverDomain?(y(),E(`span`,Ot,``+C(Q.value.serverDomain)+``,1)):M(``,!0)]),O(m),O(_,{size:`x-small`,variant:`text`,"prepend-icon":`mdi-content-copy`,onClick:i[29]||=e=>qn(Q.value)},{default:g(()=>[...i[78]||=[k(` 复制 `,-1)]]),_:1}),O(_,{size:`x-small`,variant:`text`,"prepend-icon":`mdi-console`,onClick:i[30]||=e=>Jn(Q.value.serverIdNum)},{default:g(()=>[...i[79]||=[k(` 终端 `,-1)]]),_:1})]),T(`pre`,kt,C(Q.value.fullOutput),1)]),_:1},8,[`color`])):M(``,!0)]),_:1})):M(``,!0),q.value?(y(),D(ie,{key:1},{default:g(()=>[q.value.status===`failed`||q.value.status===`partial`?(y(),D(_,{key:0,color:`primary`,variant:`text`,onClick:Yn},{default:g(()=>[...i[80]||=[k(` 重试失败项 `,-1)]]),_:1})):M(``,!0),O(m),O(_,{variant:`text`,onClick:i[31]||=e=>Yt.value=!1},{default:g(()=>[...i[81]||=[k(`关闭`,-1)]]),_:1})]),_:1})):M(``,!0)]),_:1})]),_:1},8,[`modelValue`])]),_:1}))}}),[[`__scopeId`,`data-v-47e60455`]]);export{H as default};