Files
YG_FT/frontend/dist/assets/ComputeNodesView-H5Nf8BNd.js

2 lines
17 KiB
JavaScript
Raw Normal View History

import{E as xe,a as Ee}from"./el-form-item-BMccCMQS.js";import{E as $e}from"./index-CxrDRhwR.js";import{E as Ue}from"./index-9zpOHVFd.js";import{E as je}from"./el-tag-DPsbND_Z.js";import{E as Be,a as Ge}from"./el-select-DinjeS4W.js";import{E as Pe}from"./el-dialog-B-t9W1v2.js";import{E as De}from"./el-input-number-CLGVcD2n.js";import{E as Le}from"./el-progress-QxrdzpaU.js";import{E as ze}from"./el-space-SYlGxfRX.js";import{E as Re}from"./el-switch-DeGokrBx.js";import{a as Se,E as Te}from"./el-table-CknU6KUt.js";import{a as Fe,E as qe}from"./el-tab-pane-CAlczT9T.js";import{v as Ie}from"./directive-CGqZKDhv.js";import{aF as U,aG as j,aH as Ae,d as Me,y as p,D as Je,G as Oe,ah as Ke,K as He,c as C,q as i,aa as u,g as F,s as l,w as a,ac as Qe,j as q,o as f,x as r,f as b,M as ee,ad as te,e as I,z as We,A as h,v as Xe}from"./index-Dd84m4NL.js";import"./el-scrollbar-CnqWU4CY.js";import"./el-popper-CXiDZrHI.js";import"./el-tooltip-l0sNRNKZ.js";import"./el-checkbox-DmCZOH3C.js";import{s as E,a as $}from"./status-Dl1fykxa.js";import{_ as Ye}from"./_plugin-vue_export-helper-DlAUqK2U.js";import"./castArray-Cc7cuNko.js";import"./_baseClone-C6YdWYHR.js";import"./raf-CGf5YZRu.js";import"./index-BkMrw1Qg.js";import"./index-DEuQ2B0Z.js";import"./index-KnEmF0FL.js";import"./vnode-CasYkit1.js";import"./index-C5oiM9Uu.js";import"./scroll-CJw98M_S.js";import"./clamp-MxoDdpzk.js";import"./toNumber-Dzu6kJGs.js";import"./_baseIteratee-CfOSjoYo.js";import"./index-B6n2yrjP.js";import"./use-dialog-CGW4SdZ1.js";import"./index-BsIWQhw5.js";import"./index-CrQUvw33.js";import"./validator-BEv3fs9p.js";import"./debounce-CqM0EiuE.js";import"./omit-njl9pMBF.js";const Ze=()=>U("/compute/nodes"),et=m=>j("/compute/nodes",m),tt=(m,w)=>Ae(`/compute/nodes/${m}`,w),lt=m=>j(`/compute/nodes/${m}/test-connection`),at=m=>j(`/compute/nodes/${m}/enable`),ot=m=>j(`/compute/nodes/${m}/disable`),st=m=>j(`/compute/nodes/${m}/drain`),nt=()=>U("/compute/gpus"),ut=()=>U("/compute/queue"),it=m=>U(`/compute/nodes/${m}/replicas`),dt=m=>U(`/compute/nodes/${m}/replicas/drift`),rt=(m,w)=>j(`/compute/nodes/${m}/replicas/repair`,w!=null&&w.length?{replica_ids:w}:{}),mt=m=>U(`/compute/sync-jobs/${m}`),pt={class:"compute-page"},_t={class:"compute-header"},ct={class:"header-actions"},ft={key:0,class:"last-updated"},gt={class:"summary-grid"},bt={class:"summary-tile"},vt={class:"summary-tile"},yt={class:"summary-tile"},ht={class:"summary-tile"},wt={class:"mono"},Vt={class:"muted mono"},Ct={class:"muted"},kt={class:"muted"},Nt={key:0,class:"muted"},xt={class:"muted"},Et={class:"replica-toolbar"},$t={key:0,class:"muted"},Ut={key:0,class:"sync-progress"},jt={class:"node-form-grid"},Bt=Me({__name:"ComputeNodesView",setup(m){const w=Qe(),ne=Xe(),A=p(String(w.query.tab||"nodes")),M=p(!0),J=p(!1),O=p(!1),K=p(!1),k=p([]),D=p([]),H=p([]),N=p([]),v=p(null),g=p(""),Q=p(""),x=p(!1),B=p("create"),W=p(!1),s=We({id:"",code:"",name:"",api_base_url:"",file_gateway_url:"",enabled:!0,scheduler_status:"offline",scheduler_weight:100,tags_text:"",max_parallel_jobs:1,data_root:"/data/yg-ft",model_root:"/data/yg-ft/models",log_root:"/opt/yg-ft/logs/training",description:""});let X=null,Y=!1;const le=q(()=>k.value.find(o=>o.id===g.value)),ue=q(()=>k.value.filter(o=>o.enabled).length),ie=q(()=>D.value.filter(o=>o.status==="busy"||o.status==="reserved").length),de=q(()=>k.value.reduce((o,e)=>o+e.current_running_jobs,0));function Gt(o){return o}Je(()=>w.query.tab,o=>{A.value=String(o||"nodes")});async function G(o={}){if(!Y){Y=!0,o.showLoading&&(M.value=!0),o.showButtonLoading&&(J.value=!0);try{const[e,d,n]=await Promise.all([Ze(),nt(),ut()]);k.value=e,D.value=d,H.value=n,(!g.value||!e.some(y=>y.id===g.value))&&e.length&&(g.value=e[0].id),await re(),await L(),Q.value=new Date().toLocaleTimeString("zh-CN",{hour12:!1})}finally{o.showLoading&&(M.value=!1),o.showButtonLoading&&(J.value=!1),Y=!1}}}async function re(){var o;if((o=v.value)!=null&&o.id)try{const e=await mt(v.value.id);v.value=e,["completed","failed","stopped","cancelled"].includes(e.status)&&await L()}catch{v.value=null}}async function L(){if(!g.value){N.