Files
Nexus/web/app/assets/SchedulesPage-B6iXZG9w.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.8 KiB
JavaScript

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