HEX
Server: nginx/1.28.3
System: Linux ip-172-31-12-242 6.17.0-1007-aws #7~24.04.1-Ubuntu SMP Thu Jan 22 21:04:49 UTC 2026 x86_64
User: root (0)
PHP: 7.4.33
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: /www/server/panel/BTPanel/static/js/index77.js
import{k as L,iU as Be,c4 as We,e as N,_ as Ae,R as Oe,w as I,iV as Ve,iW as Je,iX as Ke,c_ as Xe,d3 as Ye,d4 as Ze,dm as J,da as fe,iY as Qe,iZ as et,i_ as tt,o as De,M as V,i$ as at,dR as st,c as lt,j0 as de,j1 as nt,cl as rt,j2 as ot,X as je,j3 as ut,cO as ct,a0 as it,j4 as dt,j5 as pt,j6 as mt,dc as vt,cZ as ft,cR as _t}from"./utils-lib.js?v=1777008528";import{_ as _e}from"./index118.js?v=1777008528";import{_ as gt}from"./index217.js?v=1777008528";import{aI as yt,aJ as ht,r as b,H as ee,V as bt,c as D,o as te,a8 as kt,I as xt,j as K,k as Q,e,v as T,q as $,p as v,x as k,J as W,z as P,D as le,aW as G,b6 as wt,F as pe,b5 as z,i as $e,bb as Z,bm as Ct,a7 as St,av as Tt,aC as Le,an as Pe,am as me,T as Et,ag as Ft,U as qe,Y as Ce,g as ne,w as Bt,n as Se,aL as At,_ as Ot,s as ue,Q as ve,K as Y,B as Vt,C as Dt,az as jt}from"./base-lib.js?v=1777008528";import{e as $t,g as re,b as Lt,w as Pt}from"./index3.js?v=1777008528";import{B as Ie}from"./index130.js?v=1777008528";import{_ as qt}from"./index206.js?v=1777008528";import{F as Ne,c as ce,g as se,i as It,a as Nt}from"./form-item.js?v=1777008528";import{h as Ut}from"./useController9.js?v=1777008528";import{u as Rt}from"./useStore12.js?v=1777008528";import{_ as zt}from"./index116.js?v=1777008528";const Mt=ht("NODE-SCRIPT-MASS-STORE",()=>{const t=b("script-distribute"),a=b("byCustom"),s=b(!1),o=b(!1),r=b(0),c=b([]),p=b({});return{activeTabs:t,contentType:a,isExecute:s,isCanReset:o,currentTaskId:r,taskList:c,serverObject:p}},{persist:{storage:localStorage,paths:["taskList","isCanReset","currentTaskId"]}}),oe=()=>yt(Mt()),M=ee({p:1,limit:20,search:"",script_type:"all",group_id:"-1"}),Te=b();b(!1);const Ue=b(0),ge=b([]),Re=b(!1),Gt=b([]),Ht=async t=>{await I({title:"删除脚本",icon:"warning-filled",content:"删除后脚本信息不可恢复,是否继续操作?"}),await L({loading:"正在删除脚本,请稍后...",request:Ve(t),message:!0,success:H})},H=async()=>{await L({loading:Re,request:Be(M),data:{data:[Array,ge],page:We(Ue)}})},ye=(t,a,s)=>{if(ze(),t){const{id:o,name:r,content:c,description:p,script_type:i}=a;Object.assign(he,{name:r,id:o,script_type:i,content:c,description:p})}N({title:(t?"编辑":"创建")+"脚本",area:57,component:()=>Ae(()=>import("./add-script.js?v=1777008528"),__vite__mapDeps([]),import.meta.url),onConfirm:async()=>{const o=await Zt(!!t,!!s);return o&&(s==null||s()),o},showFooter:!0})},Wt=()=>bt([$t(),{label:"名称",prop:"name"},{label:"类型",prop:"script_type"},{label:"创建时间",render:t=>Oe(t.updated_at)},{label:"备注",prop:"description",showOverflowTooltip:!0},re([{onClick:t=>ye(!0,t),title:"编辑"},{onClick:Ht,title:"删除"}])]),Jt=[{label:"删除脚本",value:"delete",event:async(t,a)=>{const s=async o=>await Ve({id:o.id});await t({title:"批量删除",content:"即将删除所选中的数据,是否继续操作?",column:[{prop:"name",label:"脚本名称"},Lt()],onConfirm:async()=>(await a(s),H(),!1)})}}];b();const Kt=ee({title:"脚本参数",form:{args:"",placeholder:"请输入脚本参数"},name:"",script_id:""}),Xt=b(),Yt=ee({args_title:"",args_ps:""}),he=ee({name:"",content:"",script_type:"shell",description:""}),za=[],Ma=ee({name:[{required:!0,message:"请输入脚本名称",trigger:"blur"}],content:[{required:!0,message:"请输入脚本内容",trigger:"blur"}]}),Zt=async(t,a)=>{await Xt.value.validate();let s={...he};t||delete s.id;const o=t?Je:Ke;return(await L({loading:"正在".concat(t?"编辑":"创建","脚本,请稍后..."),request:o(s),message:!0,success:c=>{c.status&&ze(),a!==!0&&H()}})).status},ze=()=>{Object.assign(he,{name:"",content:"",script_type:"shell",description:"",id:""}),Object.assign(Yt,{args_title:"",args_ps:""}),Object.assign(Kt,{title:"脚本参数",form:{args:"",placeholder:"请输入脚本参数"},name:"",script_id:""})},Qt=()=>{ge.value=[],Gt.value=[]},ea={class:"flex items-center"},ta={class:"flex items-center"},aa=D({__name:"index",setup(t,{expose:a}){const s=Wt();return te(async()=>{H()}),kt(Qt),a({init:H}),(o,r)=>{const c=P,p=Xe,i=Ye,g=Ze,u=gt,l=_e,m=xt("bt-loading");return K(),Q("div",null,[e(l,null,{"header-left":T(()=>[$("div",ea,[e(c,{onClick:r[0]||(r[0]=f=>v(ye)()),type:"primary"},{default:T(()=>[...r[4]||(r[4]=[k("创建脚本",-1)])]),_:1})])]),"header-right":T(()=>[$("div",ta,[e(p,{modelValue:v(M).search,"onUpdate:modelValue":r[1]||(r[1]=f=>v(M).search=f),class:"ml-12px !w-[32rem]",placeholder:"请输入搜索关键字",onSearch:v(H)},null,8,["modelValue","onSearch"])])]),content:T(()=>[W(e(i,{ref_key:"scriptTableRef",ref:Te,column:v(s),data:v(ge)},null,8,["column","data"]),[[m,v(Re)],[m,"正在加载中,请稍后...","title"]])]),"footer-left":T(()=>[e(g,{"table-ref":v(Te),options:v(Jt)},null,8,["table-ref","options"])]),"footer-right":T(()=>[e(u,{total:v(Ue),page:v(M).p,"onUpdate:page":r[2]||(r[2]=f=>v(M).p=f),row:v(M).limit,"onUpdate:row":r[3]||(r[3]=f=>v(M).limit=f),onChange:v(H)},null,8,["total","page","row","onChange"])]),_:1})])}}});function sa(t){return typeof t=="function"||Object.prototype.toString.call(t)==="[object Object]"&&!$e(t)}const la=D({name:"Editor",props:{modelValue:{type:String,default:""},type:{type:String,default:"shell"}},setup(t){const a=St(),s=Z(t,"modelValue"),o={mode:"ace/mode/".concat(t.type==="python"?"python":"sh"),theme:a.value?"ace/theme/clouds_midnight":"ace/theme/chrome",wrap:!0,showInvisibles:!1,showFoldWidgets:!1,useSoftTabs:!0,tabSize:2,showPrintMargin:!1,readOnly:!0,fontSize:"12px"};return()=>e("div",null,[e(Ie,{class:"!h-[36rem] !w-[70rem]",modelValue:s.value,"onUpdate:modelValue":r=>s.value=r,editorOption:o},null)])}}),na=(t,a)=>{N({title:"命令详情",area:75,component:()=>e("div",{class:"p-[1.2rem]"},[e(la,{modelValue:t,"onUpdate:modelValue":s=>t=s,type:a},null)])})},Me=D({name:"Collapse",props:{modelValue:{type:Boolean,default:!1}},setup(t,{slots:a}){const s=Z(t,"modelValue"),o=b(null),r=l=>{l.style.height="0"},c=l=>{l.style.height=l.scrollHeight+"px"},p=l=>{l.style.height="auto"},i=l=>{l.style.height=l.scrollHeight+"px"},g=l=>{l.offsetHeight,l.style.height="0"},u=l=>{l.style.height="0"};return()=>e("div",null,[e(Ct,{onBeforeEnter:r,onEnter:c,onAfterEnter:p,onBeforeLeave:i,onLeave:g,onAfterLeave:u},{default:()=>{var l;return[s.value&&e("div",{ref:o,class:"collapse-content mt-[1.2rem]",style:{overflow:"hidden",transition:"height 0.3s ease"}},[(l=a.default)==null?void 0:l.call(a)])]}})])}}),Ee=D({name:"ResultList",props:{task:{type:Object,default:()=>({})},serverObject:{type:Object,default:()=>({})}},setup:t=>{const a=t.task.task_type,s=u=>{const l={color:"var(--el-color-text-secondary)",content:"等待执行"};switch(u){case 0:l.color="var(--el-color-text-secondary)",l.content="等待中";break;case 1:l.color="var(--el-color-text-secondary)",l.content="进行中";break;case 2:l.color="var(--el-color-success)",l.content="执行成功";break;case 3:l.color="var(--el-color-danger)",l.content="执行失败";break;case 4:l.color="var(--el-color-warning)",l.content=a==="command"?"异常":"跳过";break}return e("span",{style:{color:l.color}},[l.content])};function o(u){const l=new Map;for(const m of u){const{dst_node_idx:f,...y}=m;l.has(f)||l.set(f,[]),l.get(f).push(y)}return Array.from(l,([m,f])=>({dst_node_idx:m,data:f}))}const r=(u,l,m)=>{const f=Tt(u),{BtTable:y,refresh:n}=fe({request:async()=>({data:f.value}),columns:[{label:"文件地址",prop:"dst_file",showOverflowTooltip:!0},{label:"状态",prop:"status",width:80,render:_=>s(_.status)},re([{render:_=>_.status!==3?e("span",{class:"text-secondary"},[k("--")]):""},{title:"重试",width:80,isHide:_=>_.status!==3,onClick:_=>{Ge(a,_.id,_.transfer_task_id,async C=>{if(C.status){for(let d=0;d<f.value.length;d++)if(f.value[d].id===_.id){f.value[d]=C.data.data[0],n(),m();break}}})}}])]});N({title:"文件传输详情【".concat(l,"】"),area:75,component:()=>e("div",{class:"p-[1.6rem]"},[e(y,{"max-height":500},null)])})};let c=t.task.result;const p=b({data:[],total:0}),i=u=>{if(t.task.task_type==="command"){const l=(u==null?void 0:u.sort((m,f)=>m.dst_node_idx-f.dst_node_idx))||[];return{data:l,total:l.length}}else{const l=o(u)||[];return{data:l,total:l.length,raw:u}}},g=async()=>{const u=await L({request:t.task.task_type==="command"?Qe({task_id:t.task.id}):et({task_id:t.task.id})});if(!u.status)return{data:[],total:0};c=u.data.data.data,p.value=i(c)};switch(te(async()=>{c?p.value=i(c):g()}),t.task.task_type){case"command":return()=>{var u;return e("div",{class:"grid grid-cols-3 gap-[1.2rem]"},[(u=p.value)==null?void 0:u.data.map(l=>{const m={color:"info",content:"等待执行"};switch(l.status){case 2:m.color="success",m.content="成功";break;case 3:m.color="danger",m.content="失败";break;case 4:m.color="warning",m.content=a==="command"?"异常":"跳过";break}return e("div",{class:"border border-light rounded-large p-[1.2rem] box-shadow-[0_0.1rem_0.3rem_rgba(0,0,0,0.1)] flex items-center justify-between"},[e("div",null,[e("div",{class:"flex items-center gap-[.8rem]"},[e("div",{class:"max-w-[15.5rem] truncate",title:t.serverObject[l.server_id]},[t.serverObject[l.server_id]]),e(le,{type:m.color},{default:()=>[m.content]})]),e("div",{class:"text-small mt-[.8rem] text-secondary"},[l.ssh_host])]),e("div",null,[e("span",{class:"bt-link",onClick:()=>ia(l,t.serverObject[l.server_id],g)},[k("查看详情")])])])})])};case"file":return()=>{var u;return e("div",{class:"grid grid-cols-3 gap-[1.2rem]"},[(u=p.value)==null?void 0:u.data.map(l=>{const m={color:"info",content:"等待执行",error:0,skip:0,success:0};return l.data.forEach(f=>{switch(f.status){case 2:m.success++;break;case 3:m.error++;break;case 4:m.skip++;break}}),m.color=m.error>0?"danger":m.skip>0?"warning":"success",m.content=m.error>0?"".concat(m.error,"个失败"):m.skip>0?"".concat(m.skip,"个跳过"):"成功",e("div",{class:"border border-light rounded-large p-[1.2rem] box-shadow-[0_0.1rem_0.3rem_rgba(0,0,0,0.1)] flex items-center justify-between"},[e("div",null,[e("div",{class:"flex items-center gap-[.8rem]"},[e("div",{class:"max-w-[13.5rem] truncate",title:t.task.dst_nodes[l.dst_node_idx].name},[t.task.dst_nodes[l.dst_node_idx].name]),e(le,{type:m.color},{default:()=>[m.content]})]),e("div",{class:"text-small mt-[.8rem] text-secondary"},[t.task.dst_nodes[l.dst_node_idx].address])]),e("div",null,[e("span",{class:"bt-link",onClick:()=>r(l.data,t.task.dst_nodes[l.dst_node_idx].name,g)},[k("查看详情")])])])})])}}}}),be=D({name:"TaskCard",props:{task:{type:Object,default:()=>({})},index:{type:Number,default:0},type:{type:String,default:"execute"}},emits:["edit","delete"],setup(t,{emit:a}){const{isExecute:s,taskList:o,serverObject:r}=oe(),c=b(!0),p=b(!1),i=b(t.type==="show"||t.type==="template"),g=b(t.type==="template"),u={backgroundColor:"var(--el-fill-color-dark) !important",color:"var(--el-base-supplement) !important",borderColor:"var(--el-color-border-dark) !important"},l=f=>{switch(t.task.status){case 0:return{type:"info",content:"等待中"};case 1:return{type:"info",content:"进行中"};case 2:return{type:"success",content:"执行成功"};case 3:return{type:"danger",content:"执行失败"};case 4:return t.task.task_type==="command"?{type:"danger",content:"异常"}:{type:"danger",content:"执行失败"}}if(s.value&&f===void 0)return{type:"info",content:"执行中"};switch(f){case"success":return{type:"success",content:"执行成功"};case"error":return{type:"danger",content:"执行失败"}}return{type:"info",content:"等待执行"}},m=f=>f.src_node?"".concat(f.src_node.name,"(").concat(f.src_node.address?f.src_node.address:"127.0.0.1",")"):"".concat(f.src_node_ip==="127.0.0.1"?"本机节点":r.value[f.src_node_id],"(").concat(f.src_node_ip,")");return()=>{var y;let f;return e("div",{class:"border border-light rounded-large p-[1.2rem] mb-[1.6rem] box-shadow-[0_0.1rem_0.3rem_rgba(0,0,0,0.1)] task-card"},[e("div",{class:"flex items-center justify-between py-[.8rem] h-[3rem] cursor-pointer",onClick:()=>c.value=!c.value},[e("div",{class:"flex items-center"},[!t.task.status&&!s.value&&!i.value&&e("i",{class:"svgtofont-icon-drag cursor-move mover align-middle mr-[.8rem]"},null),g.value&&e("i",{class:"svgtofont-icon-drag cursor-move mover align-middle mr-[.8rem]"},null),e("div",{class:"text-medium font-bold max-w-[40rem] truncate"},[t.task.name]),e("div",{class:"flex items-center gap-[.8rem] ml-[1.2rem]"},[e(le,{type:"warning",style:t.task.task_type==="command"?u:{}},{default:()=>[t.task.task_type==="command"?"命令任务":"文件任务"]}),e(le,{type:(y=l(t.task.status))==null?void 0:y.type},{default:()=>{var n;return[(n=l(t.task.status))==null?void 0:n.content]}})]),!t.task.status&&!s.value&&!i.value&&e("div",{class:"flex items-center gap-[1.2rem] hover-btn"},[e(G,{content:"编辑任务",placement:"top"},{default:()=>[e(P,{type:"default",class:"!ml-[.8rem]",style:{padding:"6px 12px !important"},size:"small",circle:!0,onClick:n=>{n.stopPropagation(),a("edit",t.task)}},{default:()=>[e("i",{class:"svgtofont-el-edit"},null)]})]}),e(G,{content:"复制任务",placement:"top"},{default:()=>[e(P,{type:"default",class:"!ml-0",style:{padding:"6px 12px !important"},size:"small",circle:!0,onClick:n=>{n.stopPropagation(),o.value.splice(t.index+1,0,{...t.task,id:J(16)})}},{default:()=>[e("i",{class:"svgtofont-el-document-copy"},null)]})]}),e(G,{content:"删除任务",placement:"top"},{default:()=>[e(P,{type:"danger",class:"!ml-0",style:{padding:"6px 12px !important"},size:"small",circle:!0,onClick:async n=>{n.stopPropagation(),await I({title:"删除任务",content:"确定删除该任务吗?"}),o.value=o.value.filter(_=>_.id!==t.task.id)}},{default:()=>[e("i",{class:"svgtofont-el-delete text-white"},null)]})]})]),g.value&&e("div",{class:"hover-btn"},[e(G,{content:"删除任务",placement:"top"},{default:()=>[e(P,{type:"danger",class:"!ml-[.8rem]",style:{padding:"6px 12px !important"},size:"small",circle:!0,onClick:async n=>{n.stopPropagation(),await I({title:"删除任务",content:"确定删除该任务吗?"}),a("delete",t.task.id)}},{default:()=>[e("i",{class:"svgtofont-el-delete text-white"},null)]})]})])]),e("div",{class:"text-small"},[e("span",{class:c.value?"svgtofont-el-arrow-up":"svgtofont-el-arrow-down"},null)])]),e(Me,{modelValue:c.value,"onUpdate:modelValue":n=>c.value=n},{default:()=>[e(wt,{column:1,border:!0},{default:()=>[t.task.task_type==="command"?e(pe,null,[e(z,{label:"类型","label-class-name":"!w-[12rem]"},{default:()=>[t.task.script_id?"脚本库":"自定义命令"]}),!t.task.script_id&&e(z,{label:"命令类型","label-class-name":"!w-[12rem]"},{default:()=>[t.task.script_type]}),e(z,{label:"命令内容","label-class-name":"!w-[12rem]"},{default:()=>[e("div",null,[e("pre",{class:"!text-small !whitespace-pre-wrap"},[p.value?t.task.script_content:t.task.script_content.length>120?t.task.script_content.substring(0,120)+"...":t.task.script_content]),t.task.script_content.length>120&&e("span",{class:"bt-link mt-[.8rem] text-small",onClick:()=>{t.task.script_content.length>1e3?na(t.task.script_content,t.task.script_type):p.value=!p.value}},[p.value?"收起":"查看完整命令"])])]})]):e(pe,null,[e(z,{label:"源节点","label-class-name":"!w-[12rem]"},sa(f=m(t.task))?f:{default:()=>[f]}),t.task.path_list.map(n=>e(z,{label:"传输路径","label-class-name":"!w-[12rem]"},{default:()=>[e("div",{class:"w-full flex items-center justify-between"},[e("div",{class:"w-[41%] max-w-[34rem] truncate",title:n.path},[k("源: "),n.path]),e("div",{class:""},[k(">>已选择执行节点的:")]),e("div",{class:"w-[41%] max-w-[34rem] truncate",title:n.dst_path},[n.dst_path])])]}))]),!s.value&&t.task.status?e(z,{label:"执行结果","label-class-name":"!w-[12rem]"},{default:()=>[e(Ee,{task:t.task,serverObject:r.value},null)]}):i.value&&!g.value?e(z,{label:"执行结果","label-class-name":"!w-[12rem]"},{default:()=>[e(Ee,{task:t.task,serverObject:r.value},null)]}):null]})]})])}}}),Fe=t=>t.map(a=>{const s=J(16);switch(a.task_type){case"command":return{id:s,task_type:"command",name:a.name,...a.script_id?{script_id:a.script_id}:{},...a.script_type?{script_type:a.script_type}:{},script_content:a.script_content};case"file":return{id:s,task_type:"file",name:a.name,src_node_id:a.src_node_id,src_node_ip:a.src_node_ip,path_list:a.path_list}}}),ra=async t=>{const a=await L({request:tt(t)});return{data:a.data.data,total:De(a.data.page)}},oa=D({props:{task:{type:Object,default:()=>{}}},setup(t){const a=b(!0);return()=>e("div",{class:"p-[1.2rem]"},[e("div",{class:"p-[1.2rem] border border-dark rounded-large mb-[1.2rem]"},[e("div",{class:"flex items-center justify-between py-[.8rem] h-[3rem] cursor-pointer",onClick:()=>a.value=!a.value},[e("div",{class:"text-medium font-bold"},[k("执行节点")])]),e(Me,{modelValue:a.value,"onUpdate:modelValue":s=>a.value=s},{default:()=>[e("div",{class:"grid grid-cols-4 gap-[1.4rem] max-h-[30rem] overflow-y-auto"},[t.task.server_list.map(s=>e("div",{key:s.id,class:"flex items-center p-3 border border-dark rounded-base transition-all  max-w-[24rem] duration-200 hover:shadow-md"},[e("div",{class:"flex-1 min-w-0"},[e("div",{class:"flex items-center gap-2 mb-[.5rem]"},[e("span",{class:"text-base h-[2rem] flex items-center truncate",title:s.name},[s.name])]),e("div",{class:"text-small font-mono text-tertiary"},[s.server_ip])])]))])]})]),e("div",{class:"p-[1.2rem] border border-dark rounded-large"},[e("div",{class:"flex items-center justify-between py-[.8rem] h-[3rem] mb-[1.2rem]"},[e("div",{class:"text-medium font-bold"},[k("任务列表")])]),t.task.steps.map(s=>e(be,{key:s.id,task:s,type:"show"},null))])])}}),ua=t=>{N({title:"执行记录",area:110,component:()=>e(oa,{task:t},null)})},ca=D({props:{logName:{type:String,default:""},content:{type:String,default:""}},setup(t){const a=b(t.content||"获取中..."),s=async()=>{const{data:o}=await st({path:"/www/server/panel/logs/executor_log/"+t.logName});a.value=o.data};return t.content||s(),()=>e("div",{class:"flex-wrap"},[e(qt,{class:"h-[40rem] !rounded-none",content:a.value},null)])}}),ia=async(t,a,s)=>{const o=D({setup(){const r=Le("popupClose",()=>{});return()=>e("div",{class:"p-[1.2rem]"},[e("div",{class:"mb-[1.2rem] p-[1.2rem] border border-dark rounded-base flex items-center justify-between"},[e("div",null,[e("div",{class:"mb-[.8rem]"},[e("span",{class:"text-tertiary mr-[.8rem]"},[k("节点名称:")]),e("span",{class:"text-base font-medium"},[a])]),e("div",null,[e("span",{class:"text-tertiary mr-[.8rem]"},[k("节点IP:")]),e("span",{class:"text-base font-mono"},[t.ssh_host])])]),[3,4].includes(t.status)&&e("span",{class:"bt-link",onClick:async()=>{let c=null;try{await I({title:"重新执行任务",content:"确定要重新当前执行任务吗?"}),c=V.load("正在重新执行任务..."),r(),Ge("command",t.id,t.command_task_id,()=>{c==null||c.close(),s==null||s()})}catch(p){}finally{c&&c.close()}}},[k("重新执行")])]),e("div",{class:"mb-[.8rem]"},[e("div",{class:"text-medium font-bold mb-[.8rem]"},[k("执行日志")]),e(ca,{logName:t.log_name,content:t.message},null)])])}});N({title:"执行记录",component:()=>e(o,null,null),area:55,onCancel:s})},Ge=async(t,a,s,o)=>{let r=V.load("正在重新执行任务...");try{const c=await at({task_type:t,task_id:s,log_id:a});V.request(c),o(c)}catch(c){V.error(c)}finally{r.close()}},da={class:"relative"},pa=D({__name:"index",setup(t,{expose:a}){const{mainHeight:s}=lt(),{BtTable:o,BtPage:r,refresh:c}=fe({request:p=>ra(p),columns:[{label:"执行时间",prop:"updated_at",width:160,render:p=>Oe(p.updated_at)},{label:"执行节点",prop:"size",width:300,render:p=>{const i=p.server_list[0].name;return"".concat(i).concat(p.server_list.length>1?"等".concat(p.server_list.length,"个节点"):"")}},{label:"执行任务",prop:"script_content",showOverflowTooltip:!0,render:p=>p.steps.map(i=>i.name).join(",")},re([{onClick:ua,width:80,title:"执行结果"}])]});return a({init:c}),(p,i)=>{const g=_e;return K(),Q("div",da,[e(g,null,{"header-left":T(()=>[...i[0]||(i[0]=[$("div",{class:"flex items-center"},null,-1)])]),"header-right":T(()=>[...i[1]||(i[1]=[])]),content:T(()=>[e(v(o),{"max-height":v(s)-320},null,8,["max-height"])]),"footer-left":T(()=>[...i[2]||(i[2]=[])]),"footer-right":T(()=>[e(v(r))]),popup:T(()=>[...i[3]||(i[3]=[])]),_:1})])}}});function ma(t){return typeof t=="function"||Object.prototype.toString.call(t)==="[object Object]"&&!$e(t)}de.mount(new nt);const va=t=>{const a=Ce(t,"value"),s=Ce(t,"options"),o=b(t.options),r=b([]),{nodeCategory:c}=Rt(),p=ne(()=>c.value.filter(n=>n.value!=="0"&&n.value!=="all"));te(()=>{Ut()}),Bt(s,()=>{i()});const i=(n="")=>{let _=s.value.filter(C=>!C.is_local);r.value&&r.value.length>0&&(_=_.filter(C=>r.value.includes(C.category_id.toString()))),n&&(_=_.filter(C=>{var d;return C.remarks.toLowerCase().includes(n.toLowerCase())||((d=C.address)==null?void 0:d.includes(n))})),o.value=_};return{selectedServers:a,filteredServers:o,filterServer:n=>{i(n)},handleServerToggle:n=>{a.value.includes(n)?a.value=a.value.filter(_=>_!==n):a.value=[...a.value,n]},selectAllServers:()=>{a.value=o.value.filter(n=>n.has_ssh).map(n=>n.id)},invertSelection:()=>{const n=o.value.filter(d=>d.has_ssh).map(d=>d.id),_=n.filter(d=>!a.value.includes(d)),C=a.value.filter(d=>!n.includes(d));a.value=[...C,..._]},clearSelection:()=>{a.value=[]},serverGroups:p,selectedGroup:r,handleGroupChange:n=>{r.value=n,i()}}},fa=D({name:"ServerSelector",props:{value:{type:Array,default:()=>[]},options:{type:Array,default:()=>[]}},emits:["goAddNode","refresh"],setup(t,{emit:a}){const{selectedServers:s,filteredServers:o,filterServer:r,selectAllServers:c,invertSelection:p,clearSelection:i,serverGroups:g,selectedGroup:u,handleGroupChange:l}=va(t);let m="";return()=>{let f;return e("div",{class:"p-[1.2rem] border border-dark rounded-large space-y-3"},[e("div",{class:"flex flex-col sm:flex-row gap-2"},[e(Pe,{class:"!w-[20rem]",placeholder:"分组筛选",clearable:!0,multiple:!0,"collapse-tags":!0,"max-collapse-tags":1,modelValue:u.value,"onUpdate:modelValue":y=>u.value=y,onChange:l},ma(f=g.value.map(y=>e(me,{key:y.value,value:y.value,label:y.label},null)))?f:{default:()=>[f]}),e("div",{class:"relative w-full max-w-[36rem]"},[e(Et,{type:"text",placeholder:"搜索节点",modelValue:m,"onUpdate:modelValue":y=>m=y,clearable:!0,onInput:r,onClear:()=>r("")},null)]),e("div",{class:"flex gap-2"},[e(P,{type:"default",onClick:c},{default:()=>[k("全选")]}),e(P,{type:"default",onClick:p},{default:()=>[k("反选")]}),e(P,{type:"default",onClick:i},{default:()=>[k("清空")]})])]),e("div",{class:"max-h-[20rem] overflow-y-auto"},[o.value.length>0?e(Ft,{modelValue:s.value,"onUpdate:modelValue":y=>s.value=y},{default:()=>[e("div",{class:"grid grid-cols-4 gap-[1.4rem]"},[o.value.map(y=>{var w;const n=((w=g.value.find(j=>Number(j.value)===y.category_id))==null?void 0:w.label)||"默认分组",_=s.value.includes(y.id),C=y.server_ip||y.ip,d=!y.has_ssh;return e(G,{placement:"top",effect:"dark",content:"点击关联SSH",disabled:!d},{default:()=>[e("div",{key:y.id,class:"flex items-center p-3 border rounded-base transition-all cursor-pointer max-w-[24rem] duration-200 hover:shadow-md ".concat(_?"border-primary":d?"":"border-light hover:border-dark"," ").concat(d?"opacity-50":""),onClick:()=>{if(d){N({title:"添加root账号信息",area:50,compData:{node_id:y.id,server_ip:y.server_ip,ssh_conf:{},callback:()=>{a("refresh")}},btn:["保存"],component:()=>Ae(()=>import("./ssh-edit.js?v=1777008528"),__vite__mapDeps([]),import.meta.url)});return}_?s.value=s.value.filter(j=>j!==y.id):s.value=[...s.value,y.id]}},[e(qe,{class:"mr-3 pointer-events-none",value:y.id,checked:_,disabled:d},null),e("div",{class:"flex-1 min-w-0"},[e("div",{class:"flex items-center gap-2 mb-[.5rem]"},[e("span",{class:"text-base h-[2rem] flex items-center truncate",title:y.remarks},[y.remarks]),e("span",{class:"w-3 h-3 rounded-full ".concat(y.error_num===0?"bg-success":"bg-danger")},null)]),e("div",{class:"text-small font-mono text-darkTertiary"},[C])]),e("div",{class:"text-small text-right min-w-0"},[e("div",{class:"font-medium truncate",title:n},[n])])])]})})])]}):e("div",{class:"col-span-full p-4 text-center text-secondary text-small"},[k("暂无数据,"),e("span",{class:"bt-link",onClick:()=>a("goAddNode")},[k("前往添加节点")])])])])}}}),_a=D({name:"ContentSelect",props:{modelValue:{type:Number||void 0,default:void 0},scriptType:{type:String,default:"shell"},content:{type:String,default:""}},setup(t,{expose:a}){const s=Z(t,"modelValue"),o=Z(t,"scriptType"),r=Z(t,"content"),c=b([]),p=b([]);let i=[];const g=()=>{c.value=[],p.value=[],L({request:Be({p:"1",limit:"200"}),success:u=>{u.status&&(i=u.data.data,u.data.data.forEach(l=>{l.script_type==="shell"?c.value.push({label:l.name,value:l.id,content:l.content}):l.script_type==="python"&&p.value.push({label:l.name,value:l.id,content:l.content})}))}})};return g(),a({getScriptData:g}),()=>e("div",{class:"flex items-center gap-[1.2rem]"},[e(Pe,{class:"!w-[50rem]",placeholder:"请选择脚本",filterable:!0,modelValue:s.value,"onUpdate:modelValue":u=>s.value=u,onChange:u=>{const l=i.find(m=>m.id===u);l&&(r.value=l.content||"")}},{default:()=>[o.value==="shell"?c.value.map(u=>e(G,{"popper-class":"!max-w-[35rem]",placement:"right"},{default:()=>e(me,{key:u.value,value:u.value,label:u.label},{default:()=>[e("span",{class:"truncate max-w-[20rem]"},[u.label])]}),content:()=>e("pre",{class:"whitespace-pre-wrap"},[u.content.length>120?u.content.substring(0,120)+"...":u.content])})):p.value.map(u=>e(G,{"popper-class":"!max-w-[35rem]",placement:"right"},{default:()=>e(me,{key:u.value,value:u.value,label:u.label},{default:()=>[e("span",{class:"truncate max-w-[20rem]"},[u.label])]}),content:()=>e("pre",{class:"whitespace-pre-wrap"},[u.content.length>120?u.content.substring(0,120)+"...":u.content])}))]}),e("span",{class:"bt-link",onClick:()=>ye(!1,void 0,g)},[k("创建脚本")])])}}),ie=async(t,a,s)=>{const o=[{label:"执行命令",value:"cmd"},{label:"发送文件",value:"file"}],r=[{label:"脚本库",value:"bySelect"},{label:"自定义命令",value:"byCustom"}],c=[{label:"Shell",value:"shell"},{label:"Python",value:"python"}],p=b(),i=b(!!a),g=b([]),{BtForm:u,ref:l,submit:m,clearValidate:f}=je({data:()=>{var n;return{name:(a==null?void 0:a.name)||"",taskType:(a==null?void 0:a.task_type)==="file"?"file":"cmd",script_content:(a!=null&&a.script_id?"":a==null?void 0:a.script_content)||"",cmd_type:i.value?a!=null&&a.script_id?"bySelect":"byCustom":"bySelect",script_type:(a!=null&&a.script_id?"shell":a==null?void 0:a.script_type)||"shell",script_id:(a==null?void 0:a.script_id)||void 0,source_node:(a==null?void 0:a.src_node_id)||void 0,pathArray:((n=a==null?void 0:a.path_list)==null?void 0:n.map(_=>({key:_.key||J(16),sourcePath:_.path,isDir:_.is_dir,targetPath:_.dst_path})))||[{key:J(16),sourcePath:"",isDir:!1,targetPath:""}]}},options:n=>{const _=ne(()=>n.value.script_type==="shell"?"ace/mode/sh":"ace/mode/python"),C=()=>{var w;f();const d=(w=p.value)==null?void 0:w.getEditor();d&&d.session.setMode(_.value)};return ne(()=>[Ne("任务名称","name",{attrs:{placeholder:"请输入任务名称",class:"!w-[30rem]"},rules:[{required:!0,message:"请输入任务名称"}]}),ce("任务类型","taskType",o,{attrs:{disabled:i.value}}),...n.value.taskType==="cmd"?[ce("来源","cmd_type",r,{attrs:{onChange:C}}),ce("命令类型","script_type",c,{attrs:{onChange:()=>{var w;if(n.value.cmd_type==="bySelect"){n.value.script_id=void 0;return}const d=(w=p.value)==null?void 0:w.getEditor();d&&d.session.setMode(_.value)}}}),...n.value.cmd_type==="byCustom"?[se("命令内容",()=>e(Ie,{class:"!h-[36rem] !w-[84rem]",ref:p,modelValue:n.value.script_content,"onUpdate:modelValue":d=>n.value.script_content=d,editorOption:{mode:_.value}},null),"script_content",{rules:[{required:!0,message:"请输入命令内容"}]})]:[se("选择脚本",()=>e(_a,{modelValue:n.value.script_id,"onUpdate:modelValue":d=>n.value.script_id=d,scriptType:n.value.script_type,"onUpdate:scriptType":d=>n.value.script_type=d,content:n.value.script_content,"onUpdate:content":d=>n.value.script_content=d},null),"script_id",{rules:[{required:!0,message:"请选择脚本"}]})]]:[It("源节点","source_node",g.value.map(d=>({label:"".concat(d.remarks,"(").concat(d.server_ip,")"),value:d.id})),{attrs:{class:"!w-[30rem]"},rules:[{required:!0,message:"请选择源节点"}]}),se("文件内容",()=>e("div",null,[...n.value.pathArray.map(d=>e("div",{class:"flex items-center mb-[1rem] gap-[1.2rem]"},[e(zt,{modelValue:d.sourcePath,"onUpdate:modelValue":w=>d.sourcePath=w,icon:"el-folder-opened",placeholder:"请选择源文件路径",readonly:!0,width:"32rem",onIconClick:async()=>{var w;if(!n.value.source_node){(w=l.value)==null||w.validateField("source_node");return}Pt({type:"all",path:d.sourcePath||"/www/wwwroot",change:(j,ae)=>{d.sourcePath=j,d.isDir=ae==="dir"},disabledCreate:!0,customRequest:!0,customRequestApi:j=>ut({...j,node_id:n.value.source_node})})}},null),e("span",null,[k("传输到已选目标节点的:")]),e(ct,{modelValue:d.targetPath,"onUpdate:modelValue":w=>d.targetPath=w,placeholder:"请输入目标文件路径",width:"32rem"},null),e("span",{class:"text-danger cursor-pointer",onClick:()=>{n.value.pathArray=n.value.pathArray.filter(w=>d.key!==w.key)}},[k("删除")])])),e(P,{type:"default",onClick:()=>{n.value.pathArray.push({key:J(16),sourcePath:"",isDir:!1,targetPath:n.value.pathArray.length>0?n.value.pathArray[n.value.pathArray.length-1].targetPath:""})}},{default:()=>[k("添加传输文件")]})]),"filePath",{rules:[{required:!0,trigger:["blur","change"],validator:(d,w,j)=>{ya(n.value.pathArray,j)}}]})]])},submit:async(n,_)=>{var d;await _();const C=((d=g.value.find(w=>w.id===n.value.source_node))==null?void 0:d.server_ip)||"";return ga(n,i.value,C,a==null?void 0:a.id,s),!0}});N({title:"".concat(i.value?"编辑":"添加","任务"),area:100,showFooter:!0,component:()=>e("div",{class:"p-[1.2rem]"},[e(u,null,null)]),onConfirm:m});const y=await t("file_src");g.value=y},ga=(t,a,s,o,r)=>{const{taskList:c,currentTaskId:p}=oe();p.value=0;const i={id:J(16),task_type:t.value.taskType==="cmd"?"command":"file",name:t.value.name};switch(t.value.taskType){case"cmd":t.value.cmd_type==="byCustom"?(i.script_content=t.value.script_content,i.script_type=t.value.script_type):(i.script_id=t.value.script_id,i.script_content=t.value.script_content);break;case"file":i.src_node_id=t.value.source_node,i.src_node_ip=s,i.path_list=t.value.pathArray.map(g=>({path:g.sourcePath,dst_path:g.targetPath,is_dir:g.isDir}));break}if(r){r(i);return}if(a){for(let g=0;g<c.value.length;g++)if(c.value[g].id===o){c.value[g]={...c.value[g],...i};break}}else c.value.push(i)},ya=async(t,a)=>{if(t.length==0)return!a&&V.error("请添加传输文件"),a&&a(new Error("请添加传输文件")),!1;const s={};for(let o=0;o<t.length;o++){const r=t[o];switch(!0){case r.sourcePath=="":return!a&&V.error("文件内容第".concat(o+1,"行")+"源文件路径不能为空"),a&&a(new Error("文件内容第".concat(o+1,"行")+"源文件路径不能为空")),!1;case r.targetPath=="":return!a&&V.error("文件内容第".concat(o+1,"行")+"目标文件路径不能为空"),a&&a(new Error("文件内容第".concat(o+1,"行")+"目标文件路径不能为空")),!1}s["".concat(r.sourcePath)]=r.targetPath}return a&&a(),s},ha=()=>{const t=b();return{createWebSocket:(s,o)=>{var r,c;(r=t.value)==null||r.close(),t.value=it({route:"/ws_modsoc",onMessage:o}),(c=t.value)==null||c.send(s)},closeWebSocket:()=>{var s;(s=t.value)==null||s.close()}}},ba=()=>{const{contentType:t,isExecute:a,taskList:s,isCanReset:o,currentTaskId:r,serverObject:c}=oe(),{createWebSocket:p,closeWebSocket:i}=ha(),g=b([]),u=b([]),l=b(!0),m=b(!1),f=async()=>{if(a.value&&!o.value)return V.error("当前存在正在执行中的任务,请先停止并清空任务");r.value&&(await I({title:"提示",content:"是否清空当前任务列表并新建任务?"}),s.value=[],r.value=0,o.value=!1,a.value=!1),ie(C)},y=h=>{ie(C,h)},n=async(h=!0)=>{if(a.value)return V.error("当前任务正在执行,无法清空,请先停止任务");h&&await I({title:"清空任务",content:"确定清空当前任务吗?"}),ae(),s.value=[]},_=async(h,E=!1)=>{var B,A;if(m.value=!0,(B=h.data)!=null&&B.steps)r.value=h.data.id,s.value=s.value.map((S,q)=>({...S,...h.data.steps[q]}));else if((A=h.data)!=null&&A.task_id){const{complete:S,error:q,count:X}=h.data,F=X==q+S?q>0?"error":"success":void 0;s.value[h.data.flow_idx].status=F,h.data.data.forEach(O=>{s.value[h.data.flow_idx].result||(s.value[h.data.flow_idx].result=[]),s.value[h.data.flow_idx].result[O.log_idx]=O})}else if(h.type==="error")V.error(h.msg),r.value&&(o.value=!0),a.value=!1,i();else{for(let S=0;S<s.value.length;S++)if(s.value[S].status=="error"){o.value=!0;break}!E&&V.success("任务执行完成"),Se(()=>{a.value=!1}),i()}},C=async(h="all")=>{const E=await L({request:rt({node_type:h})});if(!E.status)return V.error(E.msg),[];if(h==="file_src")return E.data.data;g.value=E.data.data,E.data.data.forEach(B=>{c.value[B.id]=B.remarks})},d=async()=>{if(a.value){i(),L({request:ot({flow_id:r.value}),loading:"正在停止任务...",message:!0,success:B=>{B.status&&(a.value=!1,o.value=!0)}});return}if(!u.value.length&&!o.value)return V.error("请选择执行节点");let h={mod_name:"node",sub_mod_name:"executor",def_name:o.value?"retry_flow":"run_flow_task",callback:o.value?"retry_flow":"run_flow_task",data:{...o.value?{flow_id:r.value}:{node_ids:u.value,flow_data:s.value,exclude_when_error:l.value}}};a.value=!0,o.value=!1;let E=V.load("开始创建任务...");p(h,(B,A)=>{const S=JSON.parse(A.data);_(S),Se(()=>{E.close()})})},w=()=>{const h=document.querySelector(".drug-task-list");de.create(h,{animation:500,handle:".svgtofont-icon-drag",chosenClass:"ghost",onEnd:async E=>{const B=s.value.splice(E.oldIndex,1)[0];s.value.splice(E.newIndex,0,B)}})},j=()=>{p({mod_name:"node",sub_mod_name:"executor",def_name:"flow_task_status",callback:"flow_task_status",data:{}},(E,B)=>{var S;const A=JSON.parse(B.data);A.type!=="end"?m.value=!0:A.last_flow&&((S=A.last_flow)==null?void 0:S.id)===r.value&&s.value.length>0&&(A.data=A.last_flow),_(A,!0)})},ae=()=>{u.value=[],o.value=!1,a.value=!1,r.value=0},x=(h,E)=>{const{BtForm:B,submit:A,param:S,clearValidate:q}=je({data:()=>({name:"",description:"",taskList:E||[]}),options:ne(()=>[Ne("模板名称","name",{attrs:{placeholder:"请输入模板名称",class:"!w-[400px]",clearable:!0},rules:[{required:!0,message:"请输入模板名称",trigger:["blur","change"]}]}),Nt("描述","description",{attrs:{placeholder:"请输入描述",class:"!w-[400px]",autosize:{minRows:3,maxRows:6},clearable:!0}}),se("任务列表",()=>e("div",{class:"w-full"},[e("div",{class:"flex flex-col gap-[1.2rem] w-full drug-template-list max-h-[60rem] overflow-y-auto"},[S.value.taskList.map(F=>e(be,{task:F,key:F.id,type:"template",onDelete:O=>{S.value.taskList=S.value.taskList.filter(R=>R.id!==O)}},null))]),e(P,{type:"default",class:"w-[7.4rem]",onClick:()=>ie(C,void 0,F=>{S.value.taskList.push(F),q()})},{default:()=>[k("添加任务")]})]),"taskList",{rules:[{required:!0,validator:(F,O,R)=>{S.value.taskList.length===0?R(new Error("请添加任务")):R()},trigger:["change"]}]})]),submit:async(F,O)=>(await O(),(await L({request:dt({name:F.value.name,content:JSON.stringify({flow_data:F.value.taskList}),description:F.value.description}),message:!0,success:()=>{h==null||h()}})).status)}),X=D({setup(F,{expose:O}){return O({onConfirm:A}),te(()=>{const R=document.querySelector(".drug-template-list");de.create(R,{animation:500,handle:".svgtofont-icon-drag",scroll:!0,forceAutoScrollFallback:!0,scrollSensitivity:200,scrollSpeed:15,chosenClass:"ghost",onEnd:async we=>{const He=S.value.taskList.splice(we.oldIndex,1)[0];S.value.taskList.splice(we.newIndex,0,He)}})}),()=>e("div",{class:"p-[2rem]"},[e(B,null,null)])}});N({title:"创建任务模板",area:110,showFooter:!0,component:()=>e(X,null,null)})};return{openTaskTemplate:()=>{const h=D({setup(){const E=Le("popupClose",()=>{}),{BtTable:B,BtRefresh:A,BtPage:S,refresh:q}=fe({request:async F=>{const O=await L({request:pt({p:F.p,limit:F.limit})});return O.status?{data:O.data.data,total:De(O.data.page)}:{data:[],total:0}},columns:[{label:"名称",prop:"name",width:210},{label:"描述",prop:"description"},re([{onClick:async F=>{try{if(a.value)return V.error("当前任务正在执行,无法清空,请先停止任务");await I({title:"添加到任务列表",content:"将清空当前任务列表并将模板中的任务添加到任务列表中,是否继续?"}),o.value=!1,a.value=!1,r.value=0,s.value=JSON.parse(F.content).flow_data,m.value=!0,E()}catch(O){}},width:90,title:"添加到任务列表"},{onClick:async F=>{try{await I({title:"删除任务模板",content:"确定删除该任务模板吗?"}),await L({request:mt({id:F.id}),message:!0,success:()=>{q()}})}catch(O){}},title:"删除"}])]}),{BtOperation:X}=vt({options:[{type:"button",active:!0,label:"添加",onClick:()=>x(q)}]});return()=>e(_e,{class:"p-[1.2rem]"},{"header-left":()=>e(X,null,null),"header-right":()=>e(A,null,null),content:()=>e(B,{"max-height":"500px"},null),"footer-right":()=>e(S,null,null)})}});N({title:"任务模板",area:85,component:()=>e(h,null,null)})},contentType:t,serverList:g,selectedServers:u,fetchServerList:C,submit:d,init:j,isAll:l,createTask:f,rowDrop:w,taskList:s,isShowTaskList:m,editTask:y,clearTask:n,isCanReset:o,isExecute:a,saveAsTemplate:async()=>{try{x(void 0,Fe(s.value))}catch(h){}},resetTaskStatus:async()=>{try{await I({title:"重置任务状态",content:"确定重置当前任务状态吗?"}),s.value=Fe(s.value),m.value=!0,o.value=!1,a.value=!1,r.value=0}catch(h){}}}},ka={class:"p-[1.2rem]"},xa={class:"flex items-baseline"},wa={class:"ml-[2rem] text-small leading-[3rem] text-tertiary"},Ca={class:"ml-[2rem] text-small leading-[3rem] text-tertiary"},Sa={class:"flex items-center mt-[1.2rem]"},Ta={class:"drug-task-list mt-[1.2rem] w-[107rem]"},Ea={class:"w-[107rem]"},Fa=D({__name:"index",setup(t,{expose:a}){const{selectedServers:s,serverList:o,fetchServerList:r,submit:c,init:p,isAll:i,createTask:g,rowDrop:u,taskList:l,editTask:m,clearTask:f,isExecute:y,isCanReset:n,isShowTaskList:_,openTaskTemplate:C,saveAsTemplate:d,resetTaskStatus:w}=ba(),j=At();return Ot("script"),te(async()=>{p(),await r(),u()}),a({init:p}),(ae,x)=>{const U=P,ke=qe,xe=jt;return K(),Q("div",ka,[$("div",xa,[x[5]||(x[5]=$("h3",{class:"text-medium font-medium leading-[3rem]"},"选择执行节点:",-1)),$("span",wa,ue("已选择".concat(v(s).length,"个节点")),1),$("span",Ca,[x[4]||(x[4]=k(ue("关联SSH后可通过分发管理进行群发命令")+" ",-1)),$("span",{class:"bt-link ml-[.5rem]",onClick:x[0]||(x[0]=h=>v(j).push("/node/node-mgt"))}," 前往添加节点 ")])]),e(v(fa),{class:"w-[107rem]",value:v(s),"onUpdate:value":x[1]||(x[1]=h=>ve(s)?s.value=h:null),options:v(o),onGoAddNode:x[2]||(x[2]=h=>v(j).push("/node/node-mgt")),onRefresh:v(r)},null,8,["value","options","onRefresh"]),$("div",Sa,[e(U,{type:"primary",onClick:v(g)},{default:T(()=>[...x[6]||(x[6]=[k("添加任务",-1)])]),_:1},8,["onClick"]),e(U,{type:"default",onClick:v(C)},{default:T(()=>[...x[7]||(x[7]=[k("任务模板",-1)])]),_:1},8,["onClick"]),e(U,{type:"default",class:"!hover:bg-[var(--el-color-danger-light-9)] !hover:text-danger !hover:border-[var(--el-color-danger-light-5)]",plain:"",onClick:v(f)},{default:T(()=>[...x[8]||(x[8]=[k("清空任务列表",-1)])]),_:1},8,["onClick"]),e(ke,{modelValue:v(i),"onUpdate:modelValue":x[3]||(x[3]=h=>ve(i)?i.value=h:null),class:"ml-[1.2rem]"},{default:T(()=>[...x[9]||(x[9]=[k("失败后中断对应节点的后续任务",-1)])]),_:1},8,["modelValue"])]),W($("div",Ta,[(K(!0),Q(pe,null,Vt(v(l),(h,E)=>(K(),Dt(v(be),{key:h.id,task:h,index:E,onEdit:v(m)},null,8,["task","index","onEdit"]))),128))],512),[[Y,v(_)]]),$("div",Ea,[W(e(U,{type:v(y)?"danger":"primary",size:"large",class:"mt-[1.2rem] !text-base",style:{padding:"8px 16px !important"},onClick:v(c)},{default:T(()=>[k(ue(v(y)?"停止":v(n)?"重试失败项":"执行"),1)]),_:1},8,["type","onClick"]),[[Y,v(l).length>0&&v(_)]]),W(e(U,{type:"default",size:"large",class:"mt-[1.2rem] !text-base",style:{padding:"8px 16px !important"},onClick:v(w)},{default:T(()=>[...x[10]||(x[10]=[k(" 重置任务状态 ",-1)])]),_:1},8,["onClick"]),[[Y,v(l).length>0&&!v(y)]]),W(e(U,{type:"default",size:"large",class:"mt-[1.2rem] !text-base",style:{padding:"8px 16px !important"},onClick:v(d)},{default:T(()=>[...x[11]||(x[11]=[k(" 另存为模板 ",-1)])]),_:1},8,["onClick"]),[[Y,v(l).length>0&&!v(y)]]),W(e(xe,{description:"还没有添加任务"},{default:T(()=>[e(U,{type:"primary",onClick:v(g)},{default:T(()=>[...x[12]||(x[12]=[k("添加第一个任务",-1)])]),_:1},8,["onClick"])]),_:1},512),[[Y,v(l).length===0||!v(_)]])])])}}}),Ba=ft(Fa,[["__scopeId","data-v-f7287471"]]),Aa={class:"module-ui"},Oa=D({__name:"index",setup(t){const{activeTabs:a}=oe(),s=b([{label:"分发",name:"script-distribute",lazy:!0,render:()=>e(Ba,null,null)},{label:"执行日志",name:"mass-table",lazy:!0,render:()=>e(pa,null,null)},{label:"脚本库",name:"script-table",lazy:!0,render:()=>e(aa,null,null)}]);return(o,r)=>{const c=_t;return K(),Q("div",Aa,[e(c,{type:"card",modelValue:v(a),"onUpdate:modelValue":r[0]||(r[0]=p=>ve(a)?a.value=p:null),options:v(s)},null,8,["modelValue","options"])])}}}),Ga=Object.freeze(Object.defineProperty({__proto__:null,default:Oa},Symbol.toStringTag,{value:"Module"}));export{he as a,Xt as b,Ma as c,za as h,Ga as i};
function __vite__mapDeps(indexes) {
  if (!__vite__mapDeps.viteFileDeps) {
    __vite__mapDeps.viteFileDeps = []
  }
  return indexes.map((i) => __vite__mapDeps.viteFileDeps[i])
}