1 line
24 KiB
JavaScript
1 line
24 KiB
JavaScript
import{_ as e,t}from"./VSelect-3h-EI23Y.js";import{n,t as r}from"./VRow-qjxp2VJ5.js";import{Ar as i,Dr as a,Er as o,I as s,Jt as c,L as l,Nr as u,Or as d,Tr as f,Xt as p,Zt as m,_i as h,b as g,in as _,jr as v,li as ee,nt as y,qr as b,ri as x,ti as te,ui as S,v as C,wr as w,wt as T,xi as E,xr as D}from"./index-a0fi5f-0.js";import{t as ne}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as re}from"./usePageActivateRefresh-BntaOABK.js";import{t as ie}from"./useSnackbar-u_XK4ZNm.js";import{n as ae,r as oe,t as se}from"./dataTable-esDY4cOk.js";import{i as ce,n as le,o as ue,t as de}from"./VCard-BwwttBcf.js";import{t as O}from"./VTextField-GUQr1tUN.js";import{t as fe}from"./VDataTableServer-BysXbZ8p.js";import{t as k}from"./apiError-BUh3zCmq.js";import{t as pe}from"./useServerList-6fsbQxWS.js";import{t as me}from"./VDialog-BFQGuuXw.js";import{a as he,i as ge,n as _e,r as ve,t as ye}from"./usePushStaging-DcgeHeSX.js";import{t as be}from"./ServerCategoryPicker-BJm8eTKs.js";import{t as xe}from"./VSwitch-CIruBPax.js";import{t as Se}from"./VTextarea-BMTWx02W.js";var A=[{value:`day`,label:`当天`},{value:`day-n`,label:`每 N 天`},{value:`hour`,label:`每小时`},{value:`hour-n`,label:`每 N 小时`},{value:`minute-n`,label:`每 N 分钟`},{value:`week`,label:`每周`},{value:`month`,label:`每月`}],j=[{value:0,label:`周日`},{value:1,label:`周一`},{value:2,label:`周二`},{value:3,label:`周三`},{value:4,label:`周四`},{value:5,label:`周五`},{value:6,label:`周六`}];function M(){return{type:`day`,minute:0,hour:2,interval:2,week:1,monthDay:1,customCron:``}}function N(e,t,n){let r=Math.floor(Number(e));return Number.isNaN(r)?t:Math.min(n,Math.max(t,r))}function P(e){if(e.type===`custom`){let t=e.customCron.trim();if(!t)throw Error(`自定义 Cron 不能为空`);if(!F(t))throw Error(`Cron 须为 5 字段`);return t}let t=N(e.minute,0,59),n=N(e.hour,0,23);switch(e.type){case`day`:return`${t} ${n} * * *`;case`day-n`:return`${t} ${n} */${N(e.interval,1,365)} * *`;case`hour`:return`${t} * * * *`;case`hour-n`:return`${t} */${N(e.interval,1,23)} * * *`;case`minute-n`:return`*/${N(e.interval,1,59)} * * * *`;case`week`:return`${t} ${n} * * ${N(e.week,0,6)}`;case`month`:return`${t} ${n} ${N(e.monthDay,1,31)} * *`;default:throw Error(`未知执行周期类型`)}}function F(e){let t=e.trim().split(/\s+/);return t.length===5?t.every(e=>/^[\d*/,\-]+$/.test(e)):!1}function I(e){return e===`*`}function L(e){if(e===`*`)return{kind:`star`};if(e.startsWith(`*/`)){let t=parseInt(e.slice(2),10);if(!Number.isNaN(t)&&t>0)return{kind:`step`,step:t}}let t=parseInt(e,10);return Number.isNaN(t)?{kind:`star`}:{kind:`fixed`,value:t}}function R(e){let t=M(),n=(e||``).trim();if(!n)return t;let r=n.split(/\s+/);if(r.length!==5)return{...t,type:`custom`,customCron:n};let[i,a,o,s,c]=r;if(!I(s))return{...t,type:`custom`,customCron:n};let l=L(i),u=L(a),d=L(o),f=L(c);if(l.kind===`step`&&u.kind===`star`&&d.kind===`star`&&f.kind===`star`)return{...t,type:`minute-n`,interval:l.step};if(l.kind===`fixed`&&u.kind===`star`&&d.kind===`star`&&f.kind===`star`)return{...t,type:`hour`,minute:l.value};if(l.kind===`fixed`&&u.kind===`step`&&d.kind===`star`&&f.kind===`star`)return{...t,type:`hour-n`,minute:l.value,interval:u.step};if(l.kind===`fixed`&&u.kind===`fixed`&&d.kind===`star`&&(f.kind===`fixed`||c===`7`)){let e=c===`7`?0:f.value;return{...t,type:`week`,minute:l.value,hour:u.value,week:e}}return l.kind===`fixed`&&u.kind===`fixed`&&d.kind===`fixed`&&f.kind===`star`?{...t,type:`month`,minute:l.value,hour:u.value,monthDay:d.value}:l.kind===`fixed`&&u.kind===`fixed`&&d.kind===`step`&&f.kind===`star`?{...t,type:`day-n`,minute:l.value,hour:u.value,interval:d.step}:l.kind===`fixed`&&u.kind===`fixed`&&d.kind===`star`&&f.kind===`star`?{...t,type:`day`,minute:l.value,hour:u.value}:{...t,type:`custom`,customCron:n}}function z(e){return String(e).padStart(2,`0`)}function B(e){let t=typeof e==`string`?R(e):e;if(t.type===`custom`)return t.customCron?`自定义: ${t.customCron}`:`—`;let n=`${z(t.hour)}:${z(t.minute)}`;switch(t.type){case`day`:return`当天 ${n}`;case`day-n`:return`每 ${t.interval} 天 ${n}`;case`hour`:return`每小时 第 ${t.minute} 分`;case`hour-n`:return`每 ${t.interval} 小时 第 ${t.minute} 分`;case`minute-n`:return`每 ${t.interval} 分钟`;case`week`:return`每周${j.find(e=>e.value===t.week)?.label||`周${t.week}`} ${n}`;case`month`:return`每月 ${t.monthDay} 日 ${n}`;default:return`—`}}function Ce(e){if(e.type===`custom`)return e.customCron.trim()?F(e.customCron.trim())?null:`Cron 须为 5 字段`:`请填写 Cron 表达式`;try{return P(e),null}catch(e){return e instanceof Error?e.message:`执行周期无效`}}function V(e,t){for(let n of e.split(`,`)){if(n===`*`)return!0;if(n.startsWith(`*/`)){let e=parseInt(n.slice(2),10);if(e>0&&t%e===0)return!0;continue}if(n.includes(`-`)){let[e,r]=n.split(`-`,2),i=parseInt(e,10),a=parseInt(r,10);if(!Number.isNaN(i)&&!Number.isNaN(a)&&i<=t&&t<=a)return!0;continue}let e=parseInt(n,10);if(!Number.isNaN(e)&&(t===e||e===7&&t===0))return!0}return!1}function H(e,t){let n=e.trim().split(/\s+/);if(n.length!==5)return!1;let r=c(t),i=[r.minute,r.hour,r.day,r.month,r.dow];return n.every((e,t)=>V(e,i[t]))}function we(e,t=new Date){let n=new Date(t);n.setSeconds(0,0),n.setMinutes(n.getMinutes()+1);let r=new Date(t.getTime()+366*24*60*60*1e3);for(;n<=r;){if(H(e,n))return new Date(n);n.setMinutes(n.getMinutes()+1)}return null}function Te(e,t){if(e?.trim())return R(e);if(t){let e=m(t);if(e){let t=c(e);return{...M(),type:`day`,hour:t.hour,minute:t.minute}}}return M()}function Ee(e,t,n){let r=B(Te(t,n));return e===`once`?`单次 · ${r}`:r}var U={class:`schedule-cycle-picker`},W={key:0,class:`cycle-type-fixed text-body-2`},G={class:`text-caption text-medium-emphasis mb-2`},K={key:6,class:`text-caption text-medium-emphasis`},q={key:0,class:`ms-1`},De=ne(u({__name:`ScheduleCyclePicker`,props:{modelValue:{},singleShot:{type:Boolean}},emits:[`update:modelValue`],setup(e,{emit:c}){let u=e,p=c,m=A,g=w(()=>u.singleShot===!0),_=w(()=>g.value?!0:[`day`,`day-n`,`week`,`month`].includes(u.modelValue.type)),ee=w(()=>{let e=`时间为北京时间(Asia/Shanghai)`;return g.value?`单次:当天指定时:分,在下一匹配时刻执行一次(不含日期选择)。${e}`:`循环:按重复方式与时:分持续执行。${e}`});te(()=>u.singleShot,e=>{e&&u.modelValue.type!==`custom`&&u.modelValue.type!==`day`&&p(`update:modelValue`,{...M(),...u.modelValue,type:`day`})},{immediate:!0});let y=w(()=>{try{return B(u.modelValue)}catch{return``}}),S=w(()=>{try{return u.modelValue.type===`custom`&&!u.modelValue.customCron.trim()?``:P(u.modelValue)}catch{return``}});function C(e,t,n){let r=Math.floor(Number(e));return Number.isNaN(r)?t:Math.min(n,Math.max(t,r))}function T(e){p(`update:modelValue`,{...u.modelValue,...e})}function ne(e){e&&p(`update:modelValue`,{...M(),...u.modelValue,type:e})}function re(){p(`update:modelValue`,{...M(),type:`day`})}return(c,u)=>(b(),d(`div`,U,[u[11]||=f(`div`,{class:`text-caption text-medium-emphasis mb-2`},`开始执行周期`,-1),v(r,{dense:``,class:`mb-2 align-center`},{default:x(()=>[v(n,{cols:`auto`,class:`cycle-type-col`},{default:x(()=>[g.value?(b(),d(`span`,W,`当天`)):(b(),o(t,{key:1,"model-value":e.modelValue.type===`custom`?null:e.modelValue.type,items:h(m),"item-title":`label`,"item-value":`value`,label:`重复方式`,variant:`outlined`,density:`compact`,"hide-details":``,class:`cycle-type-select`,"onUpdate:modelValue":ne},null,8,[`model-value`,`items`]))]),_:1}),_.value?(b(),d(D,{key:0},[v(n,{cols:`auto`,class:`time-col`},{default:x(()=>[v(O,{"model-value":e.modelValue.hour,label:`时`,type:`number`,min:`0`,max:`23`,variant:`outlined`,density:`compact`,"hide-details":``,"onUpdate:modelValue":u[0]||=e=>T({hour:C(e,0,23)})},null,8,[`model-value`])]),_:1}),v(n,{cols:`auto`,class:`time-col`},{default:x(()=>[v(O,{"model-value":e.modelValue.minute,label:`分`,type:`number`,min:`0`,max:`59`,variant:`outlined`,density:`compact`,"hide-details":``,"onUpdate:modelValue":u[1]||=e=>T({minute:C(e,0,59)})},null,8,[`model-value`])]),_:1})],64)):a(``,!0),!g.value&&(e.modelValue.type===`hour`||e.modelValue.type===`hour-n`)?(b(),o(n,{key:1,cols:`auto`,class:`time-col-wide`},{default:x(()=>[v(O,{"model-value":e.modelValue.minute,label:`第几分`,type:`number`,min:`0`,max:`59`,variant:`outlined`,density:`compact`,"hide-details":``,"onUpdate:modelValue":u[2]||=e=>T({minute:C(e,0,59)})},null,8,[`model-value`])]),_:1})):a(``,!0)]),_:1}),f(`div`,G,E(ee.value),1),!g.value&&e.modelValue.type===`day-n`?(b(),o(O,{key:0,"model-value":e.modelValue.interval,label:`天数 N`,type:`number`,min:`1`,max:`365`,variant:`outlined`,density:`compact`,hint:`从每月 1 日起每 N 天执行(与宝塔一致)`,"persistent-hint":``,class:`mb-2`,"onUpdate:modelValue":u[3]||=e=>T({interval:C(e,1,365)})},null,8,[`model-value`])):a(``,!0),!g.value&&e.modelValue.type===`hour-n`?(b(),o(O,{key:1,"model-value":e.modelValue.interval,label:`小时 N`,type:`number`,min:`1`,max:`23`,variant:`outlined`,density:`compact`,class:`mb-2`,"onUpdate:modelValue":u[4]||=e=>T({interval:C(e,1,23)})},null,8,[`model-value`])):a(``,!0),!g.value&&e.modelValue.type===`minute-n`?(b(),o(O,{key:2,"model-value":e.modelValue.interval,label:`分钟 N`,type:`number`,min:h(1),max:`59`,variant:`outlined`,density:`compact`,hint:`从整点起每 N 分钟触发一次`,"persistent-hint":``,class:`mb-2`,"onUpdate:modelValue":u[5]||=e=>T({interval:C(e,h(1),59)})},null,8,[`model-value`,`min`])):a(``,!0),!g.value&&e.modelValue.type===`week`?(b(),o(t,{key:3,"model-value":e.modelValue.week,items:h(j),"item-title":`label`,"item-value":`value`,label:`星期`,variant:`outlined`,density:`compact`,class:`mb-2`,"onUpdate:modelValue":u[6]||=e=>T({week:C(e,0,6)})},null,8,[`model-value`,`items`])):a(``,!0),!g.value&&e.modelValue.type===`month`?(b(),o(O,{key:4,"model-value":e.modelValue.monthDay,label:`每月几号`,type:`number`,min:`1`,max:`31`,variant:`outlined`,density:`compact`,class:`mb-2`,"onUpdate:modelValue":u[7]||=e=>T({monthDay:C(e,1,31)})},null,8,[`model-value`])):a(``,!0),e.modelValue.type===`custom`?(b(),d(D,{key:5},[v(s,{type:`warning`,density:`compact`,variant:`tonal`,class:`mb-2 text-caption`},{default:x(()=>[...u[9]||=[i(` 当前 Cron 无法映射为可视化周期,可保留原表达式或改用上方周期类型重建。 `,-1)]]),_:1}),v(O,{"model-value":e.modelValue.customCron,label:`Cron 表达式(5 字段)`,variant:`outlined`,density:`compact`,class:`mb-2`,"onUpdate:modelValue":u[8]||=e=>T({customCron:String(e??``)})},null,8,[`model-value`]),v(l,{size:`small`,variant:`tonal`,color:`primary`,class:`mb-2`,onClick:re},{default:x(()=>[...u[10]||=[i(` 改用可视化周期 `,-1)]]),_:1})],64)):a(``,!0),y.value?(b(),d(`div`,K,[i(` 预览:`+E(y.value)+` `,1),S.value?(b(),d(`span`,q,`(`+E(S.value)+`)`,1)):a(``,!0)])):a(``,!0)]))}}),[[`__scopeId`,`data-v-88b715a3`]]),Oe={class:`text-caption`},ke={key:0,class:`text-caption`},Ae={key:1,class:`text-caption`},je={class:`text-medium-emphasis`},Me={class:`text-caption text-medium-emphasis`},Ne={class:`text-caption text-medium-emphasis`},J=u({name:`SchedulesPage`,__name:`SchedulesPage`,setup(n){let r=[...se],c=ie(),{servers:u,loading:m,loadServers:te}=pe(),w=_e(),ne=ye(w.uploadedSource),A=ee(w),j=ee(ne);function N(){A.clearUploadedSource(),A.clearValidatedSource()}async function F(e){N();let t=e.trim();t&&(A.sourcePath=t,await A.validateSourcePath())}let I=S(!1),L=S(null),R=S(null),z=S([]),B=S([]),V=S(1),H=S(0),U=S(20),W=S(!1),G=S(null),K=S(!1),q=S(``),J=S([]),Y=S({name:``,schedule_type:`push`,run_mode:`once`,cycle:M(),script_id:null,script_content:``,enabled:!0}),X=S(!1),Z=S(null),Pe=ae([{title:`名称`,key:`name`},{title:`类型`,key:`schedule_type`,width:80},{title:`模式`,key:`run_mode`,width:72},{title:`开始执行周期`,key:`cron_expr`,width:180},{title:`源文件 / 脚本`,key:`source_path`},{title:`服务器`,key:`server_count`,width:80},{title:`上次运行`,key:`last_run_at`,width:140},{title:`下次运行`,key:`next_run`,width:140},{title:`启用`,key:`enabled`,width:80},{title:`操作`,key:`actions`,width:200,align:`end`}]);function Q(e){if(Array.isArray(e))return e.map(e=>Number(e)).filter(e=>!Number.isNaN(e));if(typeof e==`string`&&e.trim())try{let t=JSON.parse(e);if(Array.isArray(t))return t.map(e=>Number(e)).filter(e=>!Number.isNaN(e))}catch{}return[]}function Fe(e){return Q(e).length}function Ie(e){if(e.script_id){let t=B.value.find(t=>t.id===e.script_id);return t?t.name:`脚本 #${e.script_id}`}let t=e.script_content?.trim();return t?t.length>48?`${t.slice(0,48)}…`:t:`—`}function Le(e){return{...e,server_ids:Q(e.server_ids)}}function Re(){let e=J.value;if(!Y.value.name.trim())throw Error(`请填写调度名称`);if(!e.length)throw Error(`请至少选择一台服务器`);let t={name:Y.value.name.trim(),schedule_type:Y.value.schedule_type,run_mode:Y.value.run_mode,server_ids:JSON.stringify(e),enabled:Y.value.enabled},n=Ce(Y.value.cycle);if(n)throw Error(n);let r=P(Y.value.cycle);if(t.cron_expr=r,Y.value.run_mode===`once`){let e=we(r);if(!e)throw Error(`无法计算单次执行时间,请检查开始执行周期`);t.fire_at=e.toISOString()}else t.fire_at=null;if(Y.value.schedule_type===`push`){let e=A.effectiveSourcePath();if(!e)throw A.sourcePath.trim()&&!A.validatedSource?Error(`请先点击「验证路径」确认 Nexus 主机上的源目录`):Error(`请上传源文件或验证 Nexus 主机源路径`);t.source_path=e}else{if(!Y.value.script_id&&!Y.value.script_content.trim())throw Error(`脚本调度须选择脚本库或填写命令内容`);Y.value.script_id&&(t.script_id=Y.value.script_id),Y.value.script_content.trim()&&(t.script_content=Y.value.script_content.trim())}return t}function ze(e){V.value=e,$()}function Be(e){U.value=e,V.value=1,$()}async function Ve(){try{B.value=(await _.getList(`/scripts/`)).items||[]}catch{B.value=[]}}async function $(e=!1){e||(I.value=!0);try{let e=((await _.getList(`/schedules/`)).items||[]).map(Le);H.value=e.length,z.value=oe(e,V.value,U.value)}catch(e){z.value=[],H.value=0,c(k(e,`加载调度列表失败`),`error`)}finally{e||(I.value=!1)}}function He(e){G.value=e,q.value=``,N(),e?(J.value=Q(e.server_ids),Y.value={name:e.name,schedule_type:e.schedule_type===`script`?`script`:`push`,run_mode:e.run_mode===`cron`?`cron`:`once`,cycle:Te(e.cron_expr,e.fire_at),script_id:e.script_id??null,script_content:e.script_content||``,enabled:e.enabled},Y.value.schedule_type===`push`&&e.source_path&&F(e.source_path)):(J.value=[],Y.value={name:``,schedule_type:`push`,run_mode:`once`,cycle:M(),script_id:null,script_content:``,enabled:!0}),W.value=!0}async function Ue(){q.value=``,K.value=!0;try{let e=Re();G.value?await _.put(`/schedules/${G.value.id}`,e):await _.post(`/schedules/`,e),W.value=!1,$(),c(`保存成功`)}catch(e){let t=k(e,`保存失败`);q.value=t,c(t,`error`)}finally{K.value=!1}}async function We(e){L.value=e.id;try{await _.put(`/schedules/${e.id}`,{enabled:e.enabled}),$()}catch(t){e.enabled=!e.enabled,c(k(t,`操作失败`),`error`)}finally{L.value=null}}async function Ge(e){R.value=e.id;try{let t=Q(e.server_ids);e.schedule_type===`script`?(await _.post(`/scripts/exec`,{server_ids:t,script_id:e.script_id??void 0,command:e.script_content||void 0}),T(`已触发脚本执行`)):(await _.post(`/sync/files`,{source_path:e.source_path,server_ids:t,sync_mode:`incremental`}),c(`已触发推送`))}catch(e){c(k(e,`执行失败`),`error`)}finally{R.value=null}}function Ke(e){Z.value=e,X.value=!0}async function qe(){if(Z.value)try{await _.delete(`/schedules/${Z.value.id}`),X.value=!1,$(),c(`已删除`)}catch(e){c(k(e,`删除失败`),`error`)}}async function Je(e=!1){await Promise.all([$(e),te({all:!0}),Ve()])}return re(e=>Je(e)),(n,c)=>(b(),o(e,{fluid:``,class:`pa-6`},{default:x(()=>[v(de,{elevation:`0`,border:``,rounded:`lg`},{default:x(()=>[v(ce,{class:`d-flex align-center text-h6`},{default:x(()=>[c[23]||=i(` 推送调度 `,-1),v(C),v(l,{color:`primary`,variant:`flat`,size:`small`,"prepend-icon":`mdi-plus`,onClick:c[0]||=e=>He(null)},{default:x(()=>[...c[22]||=[i(`新建调度`,-1)]]),_:1})]),_:1}),v(fe,{items:z.value,headers:h(Pe),"items-length":H.value,loading:I.value,page:V.value,"items-per-page":U.value,"items-per-page-options":r,hover:``,density:`comfortable`,"onUpdate:page":ze,"onUpdate:itemsPerPage":Be},{"item.schedule_type":x(({item:e})=>[v(g,{size:`small`,variant:`tonal`,color:e.schedule_type===`script`?`secondary`:`primary`,label:``},{default:x(()=>[i(E(e.schedule_type===`script`?`脚本`:`推送`),1)]),_:2},1032,[`color`])]),"item.run_mode":x(({item:e})=>[f(`span`,Oe,E(e.run_mode===`once`?`单次`:`循环`),1)]),"item.cron_expr":x(({item:e})=>[v(g,{size:`small`,variant:`tonal`,label:``,"prepend-icon":`mdi-clock-outline`},{default:x(()=>[i(E(h(Ee)(e.run_mode,e.cron_expr,e.fire_at)),1)]),_:2},1024)]),"item.source_path":x(({item:e})=>[e.schedule_type===`script`?(b(),d(`span`,ke,E(Ie(e)),1)):(b(),d(`span`,Ae,E(e.source_path||`—`),1))]),"item.enabled":x(({item:e})=>[v(xe,{modelValue:e.enabled,"onUpdate:modelValue":[t=>e.enabled=t,t=>We(e)],color:`primary`,density:`compact`,"hide-details":``,loading:L.value===e.id},null,8,[`modelValue`,`onUpdate:modelValue`,`loading`])]),"item.server_count":x(({item:e})=>[f(`span`,je,E(Fe(e.server_ids))+` 台`,1)]),"item.last_run_at":x(({item:e})=>[f(`span`,Me,E(e.last_run_at?h(p)(e.last_run_at):`从未运行`),1)]),"item.next_run":x(({item:e})=>[f(`span`,Ne,E(e.next_run?h(p)(e.next_run):`—`),1)]),"item.actions":x(({item:e})=>[v(l,{variant:`text`,size:`x-small`,density:`compact`,onClick:t=>He(e)},{default:x(()=>[...c[24]||=[i(`编辑`,-1)]]),_:1},8,[`onClick`]),v(l,{variant:`text`,size:`x-small`,density:`compact`,loading:R.value===e.id,onClick:t=>Ge(e)},{default:x(()=>[...c[25]||=[i(`立即执行`,-1)]]),_:1},8,[`loading`,`onClick`]),v(l,{variant:`text`,size:`x-small`,color:`error`,density:`compact`,onClick:t=>Ke(e)},{default:x(()=>[...c[26]||=[i(`删除`,-1)]]),_:1},8,[`onClick`])]),"no-data":x(()=>[...c[27]||=[f(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无计划任务`,-1)]]),_:1},8,[`items`,`headers`,`items-length`,`loading`,`page`,`items-per-page`])]),_:1}),v(me,{modelValue:W.value,"onUpdate:modelValue":c[19]||=e=>W.value=e,"max-width":`800`,scrollable:``},{default:x(()=>[v(de,{border:``},{default:x(()=>[v(ce,null,{default:x(()=>[i(E(G.value?`编辑调度`:`新建调度`),1)]),_:1}),v(le,null,{default:x(()=>[q.value?(b(),o(s,{key:0,type:`error`,density:`compact`,variant:`tonal`,class:`mb-3`,closable:``,"onClick:close":c[1]||=e=>q.value=``},{default:x(()=>[i(E(q.value),1)]),_:1})):a(``,!0),v(O,{modelValue:Y.value.name,"onUpdate:modelValue":c[2]||=e=>Y.value.name=e,label:`调度名称`,variant:`outlined`,density:`compact`,class:`mb-2`},null,8,[`modelValue`]),v(y,{modelValue:Y.value.schedule_type,"onUpdate:modelValue":c[3]||=e=>Y.value.schedule_type=e,mandatory:``,density:`compact`,class:`mb-3`,color:`primary`},{default:x(()=>[v(l,{value:`push`,size:`small`},{default:x(()=>[...c[28]||=[i(`文件推送`,-1)]]),_:1}),v(l,{value:`script`,size:`small`},{default:x(()=>[...c[29]||=[i(`脚本执行`,-1)]]),_:1})]),_:1},8,[`modelValue`]),v(y,{modelValue:Y.value.run_mode,"onUpdate:modelValue":c[4]||=e=>Y.value.run_mode=e,mandatory:``,density:`compact`,class:`mb-3`,color:`primary`},{default:x(()=>[v(l,{value:`once`,size:`small`},{default:x(()=>[...c[30]||=[i(`单次执行`,-1)]]),_:1}),v(l,{value:`cron`,size:`small`},{default:x(()=>[...c[31]||=[i(`循环执行`,-1)]]),_:1})]),_:1},8,[`modelValue`]),v(De,{modelValue:Y.value.cycle,"onUpdate:modelValue":c[5]||=e=>Y.value.cycle=e,"single-shot":Y.value.run_mode===`once`,class:`mb-2`},null,8,[`modelValue`,`single-shot`]),v(s,{type:`info`,density:`compact`,variant:`tonal`,class:`mb-3 text-caption`},{default:x(()=>[...c[32]||=[i(` 单次执行选「当天」时:分;循环执行再选重复方式。同步模式、目标路径等按系统与各服务器配置。 `,-1)]]),_:1}),Y.value.schedule_type===`push`?(b(),d(D,{key:1},[v(ve,{class:`mb-2`,"uploaded-source":A.uploadedSource,"validated-source":A.validatedSource,"source-path":A.sourcePath,"onUpdate:sourcePath":c[6]||=e=>A.sourcePath=e,"source-path-validating":A.sourcePathValidating,"is-dragging":A.isDragging,"source-uploading":A.sourceUploading,onDragover:c[7]||=e=>A.isDragging=!0,onDragleave:c[8]||=e=>A.isDragging=!1,onDrop:A.handleFileDrop,onFileSelect:A.handleFileSelect,onZipExtractSelect:A.handleZipExtractSelect,onClear:A.clearUploadedSource,onClearValidated:A.clearValidatedSource,onValidate:A.validateSourcePath},null,8,[`uploaded-source`,`validated-source`,`source-path`,`source-path-validating`,`is-dragging`,`source-uploading`,`onDrop`,`onFileSelect`,`onZipExtractSelect`,`onClear`,`onClearValidated`,`onValidate`]),A.uploadedSource?(b(),o(he,{key:0,class:`mb-2`,"root-path":A.uploadedSource.sourcePath,"relative-path":j.relativePath,entries:j.entries,loading:j.loading,"selected-count":j.selectedCount,"all-selected":j.allSelected,"some-selected":j.someSelected,"is-selected":j.isSelected,"rename-open":j.renameOpen,"onUpdate:renameOpen":c[9]||=e=>j.renameOpen=e,"rename-value":j.renameValue,"onUpdate:renameValue":c[10]||=e=>j.renameValue=e,"rename-loading":j.renameLoading,"delete-open":j.deleteOpen,"onUpdate:deleteOpen":c[11]||=e=>j.deleteOpen=e,"delete-targets":j.deleteTargets,"delete-loading":j.deleteLoading,onRefresh:c[12]||=e=>j.refreshCurrent(),onGoRoot:j.goRoot,onOpenDir:j.openDirectory,onPreview:j.previewFile,onRename:j.openRename,onDelete:j.openDelete,onBatchDelete:j.openBatchDelete,onToggleSelect:j.toggleSelect,onToggleSelectAll:j.toggleSelectAll,onConfirmRename:j.confirmRename,onConfirmDelete:j.confirmDelete},null,8,[`root-path`,`relative-path`,`entries`,`loading`,`selected-count`,`all-selected`,`some-selected`,`is-selected`,`rename-open`,`rename-value`,`rename-loading`,`delete-open`,`delete-targets`,`delete-loading`,`onGoRoot`,`onOpenDir`,`onPreview`,`onRename`,`onDelete`,`onBatchDelete`,`onToggleSelect`,`onToggleSelectAll`,`onConfirmRename`,`onConfirmDelete`])):a(``,!0),v(ge,{modelValue:j.previewOpen,"onUpdate:modelValue":c[13]||=e=>j.previewOpen=e,loading:j.previewLoading,result:j.previewResult},null,8,[`modelValue`,`loading`,`result`])],64)):(b(),d(D,{key:2},[v(t,{modelValue:Y.value.script_id,"onUpdate:modelValue":c[14]||=e=>Y.value.script_id=e,items:B.value,"item-title":`name`,"item-value":`id`,label:`脚本库(可选)`,variant:`outlined`,density:`compact`,clearable:``,class:`mb-2`},null,8,[`modelValue`,`items`]),v(Se,{modelValue:Y.value.script_content,"onUpdate:modelValue":c[15]||=e=>Y.value.script_content=e,label:`命令内容(无脚本库时必填)`,variant:`outlined`,density:`compact`,rows:`4`,"auto-grow":``,class:`mb-2`},null,8,[`modelValue`])],64)),c[33]||=f(`div`,{class:`text-caption text-medium-emphasis mb-1`},`目标服务器(按分类选择)`,-1),v(be,{modelValue:J.value,"onUpdate:modelValue":c[16]||=e=>J.value=e,servers:h(u),loading:h(m),"max-height":`320px`,class:`mb-2`},null,8,[`modelValue`,`servers`,`loading`]),v(xe,{modelValue:Y.value.enabled,"onUpdate:modelValue":c[17]||=e=>Y.value.enabled=e,label:`启用`,color:`primary`,density:`compact`,"hide-details":``},null,8,[`modelValue`])]),_:1}),v(ue,null,{default:x(()=>[v(C),v(l,{variant:`text`,onClick:c[18]||=e=>W.value=!1},{default:x(()=>[...c[34]||=[i(`取消`,-1)]]),_:1}),v(l,{color:`primary`,variant:`flat`,onClick:Ue,loading:K.value},{default:x(()=>[...c[35]||=[i(`保存`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),v(me,{modelValue:X.value,"onUpdate:modelValue":c[21]||=e=>X.value=e,"max-width":`400`},{default:x(()=>[v(de,{border:``},{default:x(()=>[v(ce,null,{default:x(()=>[...c[36]||=[i(`确认删除`,-1)]]),_:1}),v(le,null,{default:x(()=>[c[37]||=i(`确定要删除调度 `,-1),f(`strong`,null,E(Z.value?.name),1),c[38]||=i(` 吗?`,-1)]),_:1}),v(ue,null,{default:x(()=>[v(C),v(l,{variant:`text`,onClick:c[20]||=e=>X.value=!1},{default:x(()=>[...c[39]||=[i(`取消`,-1)]]),_:1}),v(l,{color:`error`,variant:`flat`,onClick:qe},{default:x(()=>[...c[40]||=[i(`删除`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),_:1}))}});export{J as default}; |