Files
Nexus/web/app/assets/SchedulesPage-CidsuFmz.js
T
Your Name 51948469c2 build(frontend): track Vite output in Git for Gitea deploy
- Stop ignoring web/app/index.html and web/app/assets/
- Bundle index-DBKIQT7H.js from current vite build (~101MB assets)

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-03 00:52:44 +08:00

1 line
7.7 KiB
JavaScript

import{$n as e,Dr as t,F as n,Jn as r,L as i,Lt as a,M as o,N as s,P as c,Qn as l,_r as u,cr as d,jr as f,qn as p,t as m,tr as h,ur as g,xr as _}from"./index-UX-NpiKo.js";import{a as v}from"./VSelectionControl-D2SuTv7z.js";import{t as y}from"./VSpacer-DbS7fWFo.js";import{t as b}from"./useSnackbar-D7YOfKok.js";import{t as x}from"./VChip-B1l6IRrD.js";import{t as S}from"./VDialog-Cu6KNJFN.js";import{t as C}from"./VSelect-B8WL-xLu.js";import{t as w}from"./VDataTableServer-Bo006K-O.js";import{t as T}from"./useServerList-6yq55KwB.js";import{t as E}from"./VSwitch-v2PL72HK.js";var D={class:`text-medium-emphasis`},O={class:`text-caption text-medium-emphasis`},k={class:`text-caption text-medium-emphasis`},A=h({__name:`SchedulesPage`,setup(h){let A=b(),{servers:j,loadServers:M}=T(),N=_(!1),P=_(null),F=_(null),I=_([]),L=_(1),R=_(0),z=_(20),B=_(!1),V=_(null),H=_(!1),U=_({name:``,cron:``,source_path:``,target_path:``,server_ids:[],enabled:!0}),W=_(!1),G=_(null),K=[{title:`名称`,key:`name`},{title:`Cron`,key:`cron_expr`,width:160},{title:`源路径`,key:`source_path`},{title:`目标路径`,key:`target_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 J(e){return q(e).length}function Y(e){return{...e,server_ids:q(e.server_ids)}}function X(){let e=U.value.server_ids;if(!U.value.name.trim())throw Error(`请填写调度名称`);if(!U.value.cron.trim())throw Error(`请填写 Cron 表达式`);if(!/^[\d\s*/,\-]+$/.test(U.value.cron.trim()))throw Error(`Cron 表达式格式不正确`);if(!e.length)throw Error(`请至少选择一台服务器`);if(!U.value.source_path.trim())throw Error(`请填写推送源路径`);return{name:U.value.name.trim(),cron_expr:U.value.cron.trim(),source_path:U.value.source_path.trim(),server_ids:JSON.stringify(e),run_mode:`cron`,schedule_type:`push`,enabled:U.value.enabled,sync_mode:`incremental`}}async function Z(){N.value=!0;try{let e=((await a.getList(`/schedules/`)).items||[]).map(Y);R.value=e.length;let t=(L.value-1)*z.value;I.value=e.slice(t,t+z.value)}catch{I.value=[],R.value=0}finally{N.value=!1}}function Q(e){V.value=e,e?U.value={name:e.name,cron:e.cron_expr||``,source_path:e.source_path||``,target_path:e.target_path||``,server_ids:q(e.server_ids),enabled:e.enabled}:U.value={name:``,cron:``,source_path:``,target_path:``,server_ids:[],enabled:!0},B.value=!0}async function $(){H.value=!0;try{let e=X();V.value?await a.put(`/schedules/${V.value.id}`,e):await a.post(`/schedules/`,e),B.value=!1,Z(),A(`保存成功`)}catch(e){A(e.message||`保存失败`,`error`)}finally{H.value=!1}}async function ee(e){P.value=e.id;try{await a.put(`/schedules/${e.id}`,{enabled:e.enabled})}catch(t){e.enabled=!e.enabled,A(t.message||`操作失败`,`error`)}finally{P.value=null}}async function te(e){F.value=e.id;try{await a.post(`/sync/files`,{source_path:e.source_path,target_path:e.target_path||`/tmp`,server_ids:q(e.server_ids)}),A(`已触发推送`)}catch(e){A(e.message||`执行失败`,`error`)}finally{F.value=null}}function ne(e){G.value=e,W.value=!0}async function re(){if(G.value)try{await a.delete(`/schedules/${G.value.id}`),W.value=!1,Z(),A(`已删除`)}catch(e){A(e.message||`删除失败`,`error`)}}return d(()=>{Z(),M()}),(a,d)=>(g(),r(v,{fluid:``,class:`pa-6`},{default:u(()=>[e(o,{elevation:`0`,border:``,rounded:`lg`},{default:u(()=>[e(c,{class:`d-flex align-center`},{default:u(()=>[d[14]||=l(` 推送调度 `,-1),e(y),e(i,{color:`primary`,variant:`flat`,size:`small`,"prepend-icon":`mdi-plus`,onClick:d[0]||=e=>Q(null)},{default:u(()=>[...d[13]||=[l(`新建调度`,-1)]]),_:1})]),_:1}),e(w,{items:I.value,headers:K,"items-length":R.value,loading:N.value,page:L.value,"items-per-page":z.value,hover:``,density:`comfortable`,"onUpdate:page":d[1]||=e=>{L.value=e,Z()},"onUpdate:itemsPerPage":d[2]||=e=>{z.value=e,L.value=1,Z()}},{"item.enabled":u(({item:t})=>[e(E,{modelValue:t.enabled,"onUpdate:modelValue":[e=>t.enabled=e,e=>ee(t)],color:`primary`,density:`compact`,"hide-details":``,loading:P.value===t.id},null,8,[`modelValue`,`onUpdate:modelValue`,`loading`])]),"item.cron_expr":u(({item:t})=>[e(x,{size:`small`,variant:`tonal`,label:``,"prepend-icon":`mdi-clock-outline`},{default:u(()=>[l(f(t.cron_expr||`—`),1)]),_:2},1024)]),"item.server_count":u(({item:e})=>[p(`span`,D,f(J(e.server_ids))+` 台`,1)]),"item.last_run_at":u(({item:e})=>[p(`span`,O,f(e.last_run_at||`从未运行`),1)]),"item.next_run":u(({item:e})=>[p(`span`,k,f(e.next_run||`—`),1)]),"item.actions":u(({item:t})=>[e(i,{variant:`text`,size:`x-small`,density:`compact`,onClick:e=>Q(t)},{default:u(()=>[...d[15]||=[l(`编辑`,-1)]]),_:1},8,[`onClick`]),e(i,{variant:`text`,size:`x-small`,density:`compact`,loading:F.value===t.id,onClick:e=>te(t)},{default:u(()=>[...d[16]||=[l(`立即执行`,-1)]]),_:1},8,[`loading`,`onClick`]),e(i,{variant:`text`,size:`x-small`,color:`error`,density:`compact`,onClick:e=>ne(t)},{default:u(()=>[...d[17]||=[l(`删除`,-1)]]),_:1},8,[`onClick`])]),"no-data":u(()=>[...d[18]||=[p(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无计划任务`,-1)]]),_:1},8,[`items`,`items-length`,`loading`,`page`,`items-per-page`])]),_:1}),e(S,{modelValue:B.value,"onUpdate:modelValue":d[10]||=e=>B.value=e,"max-width":`600`},{default:u(()=>[e(o,{border:``},{default:u(()=>[e(c,null,{default:u(()=>[l(f(V.value?`编辑调度`:`新建调度`),1)]),_:1}),e(s,null,{default:u(()=>[e(m,{modelValue:U.value.name,"onUpdate:modelValue":d[3]||=e=>U.value.name=e,label:`调度名称`,variant:`outlined`,density:`compact`,class:`mb-2`},null,8,[`modelValue`]),e(m,{modelValue:U.value.cron,"onUpdate:modelValue":d[4]||=e=>U.value.cron=e,label:`Cron 表达式`,variant:`outlined`,density:`compact`,hint:`例如: */30 * * * *`,"persistent-hint":``,class:`mb-2`},null,8,[`modelValue`]),e(m,{modelValue:U.value.source_path,"onUpdate:modelValue":d[5]||=e=>U.value.source_path=e,label:`推送源路径`,variant:`outlined`,density:`compact`,class:`mb-2`},null,8,[`modelValue`]),e(m,{modelValue:U.value.target_path,"onUpdate:modelValue":d[6]||=e=>U.value.target_path=e,label:`目标路径`,variant:`outlined`,density:`compact`,class:`mb-2`},null,8,[`modelValue`]),e(C,{modelValue:U.value.server_ids,"onUpdate:modelValue":d[7]||=e=>U.value.server_ids=e,items:t(j),"item-title":`name`,"item-value":`id`,label:`目标服务器`,variant:`outlined`,density:`compact`,multiple:``,chips:``,class:`mb-2`},null,8,[`modelValue`,`items`]),e(E,{modelValue:U.value.enabled,"onUpdate:modelValue":d[8]||=e=>U.value.enabled=e,label:`启用`,color:`primary`,density:`compact`,"hide-details":``},null,8,[`modelValue`])]),_:1}),e(n,null,{default:u(()=>[e(y),e(i,{variant:`text`,onClick:d[9]||=e=>B.value=!1},{default:u(()=>[...d[19]||=[l(`取消`,-1)]]),_:1}),e(i,{color:`primary`,variant:`flat`,onClick:$,loading:H.value},{default:u(()=>[...d[20]||=[l(`保存`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),e(S,{modelValue:W.value,"onUpdate:modelValue":d[12]||=e=>W.value=e,"max-width":`400`},{default:u(()=>[e(o,{border:``},{default:u(()=>[e(c,null,{default:u(()=>[...d[21]||=[l(`确认删除`,-1)]]),_:1}),e(s,null,{default:u(()=>[d[22]||=l(`确定要删除调度 `,-1),p(`strong`,null,f(G.value?.name),1),d[23]||=l(` 吗?`,-1)]),_:1}),e(n,null,{default:u(()=>[e(y),e(i,{variant:`text`,onClick:d[11]||=e=>W.value=!1},{default:u(()=>[...d[24]||=[l(`取消`,-1)]]),_:1}),e(i,{color:`error`,variant:`flat`,onClick:re},{default:u(()=>[...d[25]||=[l(`删除`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),_:1}))}});export{A as default};