import{j as b,a as j,d as V,B as de,C as pe,z as Se,D as X,F as Ie,G as te,H as ze,I as E,J as K,E as Re,K as De,L as Ye,M as Y,N as xe,y as S,O as Pe,P as Ce,Q as Ze,b as Ee,i as Q,R as ee,S as Qe,T as Xe,U as We,V as je,W as P,X as ue,o as w,e as ne,w as $,h as F,Y as et,Z as tt,_ as re,$ as nt,a0 as ge,a1 as st,a2 as at,a3 as ot,a4 as lt,a5 as it,a6 as Ue,a7 as rt,a8 as Be,c as B,f as M,q as a,n as W,a9 as ut,x as ce,aa as z,l as ct,ab as we,ac as Te,v as Ve,m as dt,s as R,ad as Le,g as ke,ae as pt,af as mt,ag as ft,ah as Fe,ai as vt,r as ht}from"./index-Dd84m4NL.js";import{E as fe}from"./el-popper-CXiDZrHI.js";import{E as bt}from"./el-scrollbar-CnqWU4CY.js";import{E as gt}from"./el-avatar-mjjCoJkE.js";import{E as _t}from"./index-CY_fcpS9.js";import{T as yt,E as Mt}from"./index-9zpOHVFd.js";import{f as It}from"./vnode-CasYkit1.js";import{C as kt}from"./index-C5oiM9Uu.js";import"./el-tooltip-l0sNRNKZ.js";import{_ as St}from"./logo-CxXS7KxG.js";import{_ as Ne}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{u as xt}from"./models-DxMjE4y2.js";import"./index-DEuQ2B0Z.js";import"./index-KnEmF0FL.js";import"./model-SG-pVLXE.js";const Oe="rootMenu",me="subMenu:";function qe(e,n){const o=b(()=>{let t=e.parent;const c=[n.value];for(;t.type.name!=="ElMenu";)t.props.index&&c.unshift(t.props.index),t=t.parent;return c});return{parentMenu:b(()=>{let t=e.parent;for(;t&&!["ElMenu","ElSubMenu"].includes(t.type.name);)t=t.parent;return t}),indexPath:o}}function Ct(e){return b(()=>{const n=e.backgroundColor;return n?new yt(n).shade(20).toString():""})}const Ge=(e,n)=>{const o=j("menu");return b(()=>o.cssVarBlock({"text-color":e.textColor||"","hover-text-color":e.textColor||"","bg-color":e.backgroundColor||"","hover-bg-color":Ct(e).value||"","active-color":e.activeTextColor||"",level:`${n}`}))},Et=Ee({index:{type:String,required:!0},showTimeout:Number,hideTimeout:Number,popperClass:String,popperStyle:{type:ee([String,Object])},disabled:Boolean,teleported:{type:Boolean,default:void 0},popperOffset:Number,expandCloseIcon:{type:Q},expandOpenIcon:{type:Q},collapseCloseIcon:{type:Q},collapseOpenIcon:{type:Q}}),_e="ElSubMenu";var $e=V({name:_e,props:Et,setup(e,{slots:n,expose:o}){const t=xe(),{indexPath:c,parentMenu:N}=qe(t,b(()=>e.index)),u=j("menu"),g=j("sub-menu"),l=de(Oe);l||pe(_e,"can not inject root menu");const h=de(`${me}${N.value.uid}`);h||pe(_e,"can not inject sub menu");const _=S({}),v=S({});let p;const I=S(!1),m=S(),r=S(),L=b(()=>h.level===0),T=b(()=>U.value==="horizontal"&&L.value?"bottom-start":"right-start"),O=b(()=>U.value==="horizontal"&&L.value||U.value==="vertical"&&!l.props.collapse?e.expandCloseIcon&&e.expandOpenIcon?D.value?e.expandOpenIcon:e.expandCloseIcon:Qe:e.collapseCloseIcon&&e.collapseOpenIcon?D.value?e.collapseOpenIcon:e.collapseCloseIcon:Xe),q=b(()=>{const d=e.teleported;return We(d)?L.value:d}),se=b(()=>l.props.collapse?`${u.namespace.value}-zoom-in-left`:`${u.namespace.value}-zoom-in-top`),ve=b(()=>U.value==="horizontal"&&L.value?["bottom-start","bottom-end","top-start","top-end","right-start","left-start"]:["right-start","right","right-end","left-start","bottom-start","bottom-end","top-start","top-end"]),D=b(()=>l.openedMenus.includes(e.index)),G=b(()=>[...Object.values(_.value),...Object.values(v.value)].some(({active:d})=>d)),U=b(()=>l.props.mode),ae=b(()=>l.props.persistent),H=Se({index:e.index,indexPath:c,active:G}),oe=Ge(l.props,h.level+1),le=b(()=>e.popperOffset??l.props.popperOffset),Z=b(()=>e.popperClass??l.props.popperClass),J=b(()=>e.popperStyle??l.props.popperStyle),ie=b(()=>e.showTimeout??l.props.showTimeout),he=b(()=>e.hideTimeout??l.props.hideTimeout),s=()=>{var d,C,y;return(y=(C=(d=r.value)==null?void 0:d.popperRef)==null?void 0:C.popperInstanceRef)==null?void 0:y.destroy()},i=d=>{d||s()},f=()=>{l.props.menuTrigger==="hover"&&l.props.mode==="horizontal"||l.props.collapse&&l.props.mode==="vertical"||e.disabled||l.handleSubMenuClick({index:e.index,indexPath:c.value,active:G.value})},x=(d,C=ie.value)=>{var y;if(d.type!=="focus"){if(l.props.menuTrigger==="click"&&l.props.mode==="horizontal"||!l.props.collapse&&l.props.mode==="vertical"||e.disabled){h.mouseInChild.value=!0;return}h.mouseInChild.value=!0,p==null||p(),{stop:p}=Pe(()=>{l.openMenu(e.index,c.value)},C),q.value&&((y=N.value.vnode.el)==null||y.dispatchEvent(new MouseEvent("mouseenter"))),d.type==="mouseenter"&&d.target&&Ce(()=>{Ze(d.target,{preventScroll:!0})})}},k=(d=!1)=>{var C;if(l.props.menuTrigger==="click"&&l.props.mode==="horizontal"||!l.props.collapse&&l.props.mode==="vertical"){h.mouseInChild.value=!1;return}p==null||p(),h.mouseInChild.value=!1,{stop:p}=Pe(()=>!I.value&&l.closeMenu(e.index,c.value),he.value),q.value&&d&&((C=h.handleMouseleave)==null||C.call(h,!0))};X(()=>l.props.collapse,d=>i(!!d));{const d=y=>{v.value[y.index]=y},C=y=>{delete v.value[y.index]};Ie(`${me}${t.uid}`,{addSubMenu:d,removeSubMenu:C,handleMouseleave:k,mouseInChild:I,level:h.level+1})}return o({opened:D}),te(()=>{l.addSubMenu(H),h.addSubMenu(H)}),ze(()=>{h.removeSubMenu(H),l.removeSubMenu(H)}),()=>{var y;const d=[(y=n.title)==null?void 0:y.call(n),E(Re,{class:g.e("icon-arrow"),style:{transform:D.value?e.expandCloseIcon&&e.expandOpenIcon||e.collapseCloseIcon&&e.collapseOpenIcon&&l.props.collapse?"none":"rotateZ(180deg)":"none"}},{default:()=>K(O.value)?E(t.appContext.components[O.value]):E(O.value)})],C=l.isMenuPopup?E(fe,{ref:r,visible:D.value,effect:"light",pure:!0,offset:le.value,showArrow:!1,persistent:ae.value,popperClass:Z.value,popperStyle:J.value,placement:T.value,teleported:q.value,fallbackPlacements:ve.value,transition:se.value,gpuAcceleration:!1},{content:()=>{var A;return E("div",{class:[u.m(U.value),u.m("popup-container"),Z.value],onMouseenter:be=>x(be,100),onMouseleave:()=>k(!0),onFocus:be=>x(be,100)},[E("ul",{class:[u.b(),u.m("popup"),u.m(`popup-${T.value}`)],style:oe.value},[(A=n.default)==null?void 0:A.call(n)])])},default:()=>E("div",{class:g.e("title"),onClick:f},d)}):E(Y,{},[E("div",{class:g.e("title"),ref:m,onClick:f},d),E(_t,{},{default:()=>{var A;return De(E("ul",{role:"menu",class:[u.b(),u.m("inline")],style:oe.value},[(A=n.default)==null?void 0:A.call(n)]),[[Ye,D.value]])}})]);return E("li",{class:[g.b(),g.is("active",G.value),g.is("opened",D.value),g.is("disabled",e.disabled)],role:"menuitem",ariaHaspopup:!0,ariaExpanded:D.value,onMouseenter:x,onMouseleave:()=>k(),onFocus:x},[C])}}}),wt=class{constructor(e,n){this.parent=e,this.domNode=n,this.subIndex=0,this.subMenuItems=this.domNode.querySelectorAll("li"),this.addListeners()}gotoSubIndex(e){e===this.subMenuItems.length?e=0:e<0&&(e=this.subMenuItems.length-1),this.subMenuItems[e].focus(),this.subIndex=e}addListeners(){const e=this.parent.domNode;this.subMenuItems.forEach(n=>{n.addEventListener("keydown",o=>{const t=je(o);let c=!1;switch(t){case P.down:this.gotoSubIndex(this.subIndex+1),c=!0;break;case P.up:this.gotoSubIndex(this.subIndex-1),c=!0;break;case P.tab:ue(e,"mouseleave");break;case P.enter:case P.numpadEnter:case P.space:c=!0,o.currentTarget.click();break}return c&&(o.preventDefault(),o.stopPropagation()),!1})})}},Tt=class{constructor(e,n){this.domNode=e,this.submenu=null,this.init(n)}init(e){this.domNode.setAttribute("tabindex","0");const n=this.domNode.querySelector(`.${e}-menu`);n&&(this.submenu=new wt(this,n)),this.addListeners()}addListeners(){this.domNode.addEventListener("keydown",e=>{var t,c;const n=je(e);let o=!1;switch(n){case P.down:ue(e.currentTarget,"mouseenter"),(t=this.submenu)==null||t.gotoSubIndex(0),o=!0;break;case P.up:ue(e.currentTarget,"mouseenter"),(c=this.submenu)==null||c.gotoSubIndex(this.submenu.subMenuItems.length-1),o=!0;break;case P.tab:ue(e.currentTarget,"mouseleave");break;case P.enter:case P.numpadEnter:case P.space:o=!0,e.currentTarget.click();break}o&&e.preventDefault()})}},Nt=class{constructor(e,n){this.domNode=e,this.init(n)}init(e){const n=this.domNode.childNodes;Array.from(n).forEach(o=>{o.nodeType===1&&new Tt(o,e)})}},Ot=V({name:"ElMenuCollapseTransition",__name:"menu-collapse-transition",setup(e){const n=j("menu"),o={onBeforeEnter:t=>t.style.opacity="0.2",onEnter(t,c){re(t,`${n.namespace.value}-opacity-transition`),t.style.opacity="1",c()},onAfterEnter(t){ge(t,`${n.namespace.value}-opacity-transition`),t.style.opacity=""},onBeforeLeave(t){t.dataset||(t.dataset={}),nt(t,n.m("collapse"))?(ge(t,n.m("collapse")),t.dataset.oldOverflow=t.style.overflow,t.dataset.scrollWidth=t.clientWidth.toString(),re(t,n.m("collapse"))):(re(t,n.m("collapse")),t.dataset.oldOverflow=t.style.overflow,t.dataset.scrollWidth=t.clientWidth.toString(),ge(t,n.m("collapse"))),t.style.width=`${t.scrollWidth}px`,t.style.overflow="hidden"},onLeave(t){re(t,"horizontal-collapse-transition"),t.style.width=`${t.dataset.scrollWidth}px`}};return(t,c)=>(w(),ne(tt,et({mode:"out-in"},o),{default:$(()=>[F(t.$slots,"default")]),_:3},16))}}),$t=Ot;const Pt=Ee({mode:{type:String,values:["horizontal","vertical"],default:"vertical"},defaultActive:{type:String,default:""},defaultOpeneds:{type:ee(Array),default:()=>it([])},uniqueOpened:Boolean,router:Boolean,menuTrigger:{type:String,values:["hover","click"],default:"hover"},collapse:Boolean,backgroundColor:String,textColor:String,activeTextColor:String,closeOnClickOutside:Boolean,collapseTransition:{type:Boolean,default:!0},ellipsis:{type:Boolean,default:!0},popperOffset:{type:Number,default:6},ellipsisIcon:{type:Q,default:()=>lt},popperEffect:{type:ee(String),default:"dark"},popperClass:String,popperStyle:{type:ee([String,Object])},showTimeout:{type:Number,default:300},hideTimeout:{type:Number,default:300},persistent:{type:Boolean,default:!0}}),ye=e=>Ue(e)&&e.every(n=>K(n)),Bt={close:(e,n)=>K(e)&&ye(n),open:(e,n)=>K(e)&&ye(n),select:(e,n,o,t)=>K(e)&&ye(n)&&ot(o)&&(We(t)||t instanceof Promise)},Ae=64;var Lt=V({name:"ElMenu",props:Pt,emits:Bt,setup(e,{emit:n,slots:o,expose:t}){const c=xe(),N=c.appContext.config.globalProperties.$router,u=S(),g=S(),l=j("menu"),h=j("sub-menu");let _=Ae;const v=S(-1),p=S(e.defaultOpeneds&&!e.collapse?e.defaultOpeneds.slice(0):[]),I=S(e.defaultActive),m=S({}),r=S({}),L=b(()=>e.mode==="horizontal"||e.mode==="vertical"&&e.collapse),T=()=>{const s=I.value&&m.value[I.value];!s||e.mode==="horizontal"||e.collapse||s.indexPath.forEach(i=>{const f=r.value[i];f&&O(i,f.indexPath)})},O=(s,i)=>{p.value.includes(s)||(e.uniqueOpened&&(p.value=p.value.filter(f=>i.includes(f))),p.value.push(s),n("open",s,i))},q=s=>{const i=p.value.indexOf(s);i!==-1&&p.value.splice(i,1)},se=(s,i)=>{q(s),n("close",s,i)},ve=({index:s,indexPath:i})=>{p.value.includes(s)?se(s,i):O(s,i)},D=s=>{(e.mode==="horizontal"||e.collapse)&&(p.value=[]);const{index:i,indexPath:f}=s;if(!(Be(i)||Be(f)))if(e.router&&N){const x=s.route||i,k=N.push(x).then(d=>(d||(I.value=i),d));n("select",i,f,{index:i,indexPath:f,route:x},k)}else I.value=i,n("select",i,f,{index:i,indexPath:f})},G=s=>{var f;const i=m.value;I.value=((f=i[s]||I.value&&i[I.value]||i[e.defaultActive])==null?void 0:f.index)??s},U=s=>{const i=getComputedStyle(s),f=Number.parseInt(i.marginLeft,10),x=Number.parseInt(i.marginRight,10);return s.offsetWidth+f+x||0},ae=()=>{if(!u.value)return-1;const s=Array.from(u.value.childNodes).filter(y=>y.nodeName!=="#comment"&&(y.nodeName!=="#text"||y.nodeValue)),i=getComputedStyle(u.value),f=Number.parseInt(i.paddingLeft,10),x=Number.parseInt(i.paddingRight,10),k=u.value.clientWidth-f-x;let d=0,C=0;return s.forEach((y,A)=>{d+=U(y),d<=k-_&&(C=A+1)}),C===s.length?-1:C},H=s=>r.value[s].indexPath,oe=(s,i=33.34)=>{let f;return()=>{f&&clearTimeout(f),f=setTimeout(()=>{s()},i)}};let le=!0;const Z=()=>{const s=at(g);if(s&&(_=U(s)||Ae),v.value===ae())return;const i=()=>{v.value=-1,Ce(()=>{v.value=ae()})};le?i():oe(i)(),le=!1};X(()=>e.defaultActive,s=>{m.value[s]||(I.value=""),G(s)}),X(()=>e.collapse,s=>{s&&(p.value=[])}),X(m.value,T);let J;st(()=>{e.mode==="horizontal"&&e.ellipsis?J=rt(u,Z).stop:J==null||J()});const ie=S(!1);{const s=k=>{r.value[k.index]=k},i=k=>{delete r.value[k.index]};Ie(Oe,Se({props:e,openedMenus:p,items:m,subMenus:r,activeIndex:I,isMenuPopup:L,addMenuItem:k=>{m.value[k.index]=k},removeMenuItem:k=>{delete m.value[k.index]},addSubMenu:s,removeSubMenu:i,openMenu:O,closeMenu:se,handleMenuItemClick:D,handleSubMenuClick:ve})),Ie(`${me}${c.uid}`,{addSubMenu:s,removeSubMenu:i,mouseInChild:ie,level:0})}te(()=>{e.mode==="horizontal"&&new Nt(c.vnode.el,l.namespace.value)}),t({open:i=>{const{indexPath:f}=r.value[i];f.forEach(x=>O(x,f))},close:q,updateActiveIndex:G,handleResize:Z});const he=Ge(e,0);return()=>{var k;let s=((k=o.default)==null?void 0:k.call(o))??[];const i=[];if(e.mode==="horizontal"&&u.value){const d=It(s).filter(A=>(A==null?void 0:A.shapeFlag)!==8),C=v.value===-1?d:d.slice(0,v.value),y=v.value===-1?[]:d.slice(v.value);y!=null&&y.length&&e.ellipsis&&(s=C,i.push(E($e,{ref:g,index:"sub-menu-more",class:h.e("hide-arrow"),popperOffset:e.popperOffset},{title:()=>E(Re,{class:h.e("icon-more")},{default:()=>E(e.ellipsisIcon)}),default:()=>y})))}const f=e.closeOnClickOutside?[[kt,()=>{p.value.length&&(ie.value||(p.value.forEach(d=>n("close",d,H(d))),p.value=[]))}]]:[],x=De(E("ul",{key:String(e.collapse),role:"menubar",ref:u,style:he.value,class:{[l.b()]:!0,[l.m(e.mode)]:!0,[l.m("collapse")]:e.collapse}},[...s,...i]),f);return e.collapseTransition&&e.mode==="vertical"?E($t,()=>x):x}}});const At=Ee({index:{type:String,required:!0},route:{type:ee([String,Object])},disabled:Boolean}),zt={click:e=>K(e.index)&&Ue(e.indexPath)},Rt={title:String},Me="ElMenuItem";var Dt=V({name:Me,__name:"menu-item",props:At,emits:zt,setup(e,{expose:n,emit:o}){const t=e,c=o,N=xe(),u=de(Oe),g=j("menu"),l=j("menu-item");u||pe(Me,"can not inject root menu");const{parentMenu:h,indexPath:_}=qe(N,ut(t,"index")),v=de(`${me}${h.value.uid}`);v||pe(Me,"can not inject sub menu");const p=b(()=>t.index===u.activeIndex),I=Se({index:t.index,indexPath:_,active:p}),m=()=>{t.disabled||(u.handleMenuItemClick({index:t.index,indexPath:_.value,route:t.route}),c("click",I))};return te(()=>{v.addSubMenu(I),u.addMenuItem(I)}),ze(()=>{v.removeSubMenu(I),u.removeMenuItem(I)}),n({parentMenu:h,rootMenu:u,active:p,nsMenu:g,nsMenuItem:l,handleClick:m}),(r,L)=>(w(),B("li",{class:W([M(l).b(),M(l).is("active",p.value),M(l).is("disabled",e.disabled)]),role:"menuitem",tabindex:"-1",onClick:m},[M(h).type.name==="ElMenu"&&M(u).props.collapse&&r.$slots.title?(w(),ne(M(fe),{key:0,effect:M(u).props.popperEffect,placement:"right","fallback-placements":["left"],"popper-class":M(u).props.popperClass,"popper-style":M(u).props.popperStyle,persistent:M(u).props.persistent,"focus-on-target":""},{content:$(()=>[F(r.$slots,"title")]),default:$(()=>[a("div",{class:W(M(g).be("tooltip","trigger"))},[F(r.$slots,"default")],2)]),_:3},8,["effect","popper-class","popper-style","persistent"])):(w(),B(Y,{key:1},[F(r.$slots,"default"),F(r.$slots,"title")],64))],2))}}),He=Dt,Wt=V({name:"ElMenuItemGroup",__name:"menu-item-group",props:Rt,setup(e){const n=j("menu-item-group");return(o,t)=>(w(),B("li",{class:W(M(n).b())},[a("div",{class:W(M(n).e("title"))},[o.$slots.title?F(o.$slots,"title",{key:1}):(w(),B(Y,{key:0},[ce(z(e.title),1)],64))],2),a("ul",null,[F(o.$slots,"default")])],2))}}),Je=Wt;const jt=ct(Lt,{MenuItem:He,MenuItemGroup:Je,SubMenu:$e}),Ut=we(He);we(Je);we($e);const Vt={class:"app-sidebar"},Ft={key:0,class:"sidebar-section-title"},qt={class:"sidebar-footer"},Gt={key:0,class:"footer-user"},Ht={class:"user-info"},Jt={class:"user-name"},Kt={class:"user-role"},Yt=V({__name:"AppSidebar",setup(e){const n=Te(),o=Ve(),t=dt(),c=b(()=>{const _=n.path.split("/")[1]||"dashboard";return _==="training-log"?"fine-tune":n.path.includes("model-eval/dimension")?"model-eval":n.path.startsWith("/model-compare/chat")?"model-inference":n.path==="/model-manage/merge"||n.path.match(/^\/model-manage\/\d+\/edit/)?"model-manage":n.path.match(/^\/dataset\/(\d+)/)?"dataset":n.path.match(/^\/tools\/[^/]+\/edit/)?"tools":_}),N=[{showTitle:!1,items:[{key:"dashboard",label:"服务看板",icon:"fa-tachometer",to:"/dashboard",permission:"dashboard"}]},{title:"模型服务",items:[{key:"fine-tune",label:"模型训练",icon:"fa-cogs",to:"/fine-tune",permission:"fine-tune"},{key:"model-eval",label:"模型评测",icon:"fa-line-chart",to:"/model-eval",permission:"model-eval"},{key:"model-inference",label:"模型推理",icon:"fa-server",to:"/model-inference",permission:"model-inference"},{key:"model-manage",label:"模型管理",icon:"fa-cube",to:"/model-manage",permission:"model-manage"}]},{title:"数据治理",items:[{key:"dataset",label:"数据集管理",icon:"fa-file-text",to:"/dataset",permission:"dataset"},{key:"data-process",label:"数据处理",icon:"fa-filter",to:"/data-process",permission:"data-process"}]},{title:"其他工具",items:[{key:"data-convert",label:"数据类型转换",icon:"fa-exchange",to:"/data-convert",permission:"data-convert"}]},{title:"算力资源",items:[{key:"compute",label:"算力节点",icon:"fa-microchip",to:"/compute",permission:"compute"}]},{title:"系统设置",items:[{key:"user-settings",label:"用户设置",icon:"fa-users",to:"/user-settings",permission:"user-settings"},{key:"hardware",label:"平台性能",icon:"fa-bar-chart",to:"/hardware",permission:"hardware"},{key:"logs",label:"查看日志",icon:"fa-file-text",to:"/logs",permission:"logs"}]}],u=b(()=>N.map(_=>({..._,items:_.items.filter(v=>t.hasPermission(v.permission))})).filter(_=>_.items.length>0)),g=S(c.value);X(c,_=>{g.value=_});async function l(_){const p=u.value.flatMap(m=>m.items).find(m=>m.key===_);if(!p)return;await o.push(p.to)&&(g.value="",await Ce(),g.value=c.value)}function h(){t.logout(),o.push("/login")}return(_,v)=>{const p=Ut,I=jt,m=bt,r=gt,L=fe;return w(),B("aside",Vt,[v[1]||(v[1]=a("div",{class:"sidebar-logo"},[a("img",{src:St,alt:"Logo",class:"sidebar-logo-img"}),a("span",{class:"logo-text"},"远光软件微调平台")],-1)),R(m,{class:"sidebar-nav","wrap-class":"nav-scrollbar-wrap"},{default:$(()=>[R(I,{"default-active":g.value,class:"sidebar-menu","background-color":"transparent","text-color":"var(--sidebar-text)","active-text-color":"var(--sidebar-active-text)",onSelect:l},{default:$(()=>[(w(!0),B(Y,null,Le(u.value,T=>(w(),B(Y,{key:T.title||T.items[0].key},[T.title?(w(),B("div",Ft,z(T.title),1)):ke("",!0),(w(!0),B(Y,null,Le(T.items,O=>(w(),ne(p,{key:O.key,index:O.key},{default:$(()=>[a("i",{class:W(["fa",O.icon])},null,2),a("span",null,z(O.label),1)]),_:2},1032,["index"]))),128))],64))),128))]),_:1},8,["default-active"])]),_:1}),a("div",qt,[M(t).username?(w(),B("div",Gt,[R(r,{size:36,src:"https://picsum.photos/id/1005/36/36",class:"user-avatar"}),a("div",Ht,[a("span",Jt,z(M(t).displayName),1),a("span",Kt,z(M(t).roleLabel),1)]),R(L,{content:"退出登录",placement:"top"},{default:$(()=>[a("div",{class:"logout-btn",onClick:h},[...v[0]||(v[0]=[a("i",{class:"fa fa-sign-out"},null,-1)])])]),_:1})])):ke("",!0)])])}}}),Zt=Ne(Yt,[["__scopeId","data-v-cc00d83d"]]),Ke=pt("system",()=>{const e=S({});let n=null,o=!1;async function t(){if(!(o||document.hidden)){o=!0;try{e.value=await mt()}catch{}finally{o=!1}}}function c(){document.hidden||t()}function N(){n||(t(),n=setInterval(t,3e4),document.addEventListener("visibilitychange",c))}function u(){n&&(clearInterval(n),n=null),document.removeEventListener("visibilitychange",c)}return{metrics:e,fetchMetrics:t,start:N,stop:u}}),Qt={class:"app-header"},Xt={class:"header-left"},en={class:"header-right"},tn={class:"metric-badge"},nn={class:"metric-badge"},sn={class:"metric-badge"},an={class:"system-info"},on={class:"info-item"},ln={class:"info-item"},rn={class:"info-item time-item"},un=V({__name:"AppHeader",setup(e){const n=Ke(),{metrics:o}=ft(n),t=Te(),c=Ve(),N=b(()=>t.path.split("/").filter(Boolean).length>1);function u(){const m=t.meta.backRouteName;if(typeof m=="string"&&m){c.push({name:m});return}c.back()}function g(m){return m!=null&&m>80?"is-danger":""}const l=S(""),h=S("");let _=null;function v(){const m=new Date;l.value=m.toLocaleTimeString("zh-CN",{hour12:!1}),h.value=m.toLocaleDateString("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit"}).replace(/\//g,"-")}function p(){const m=c.resolve({name:"guide"}).href;window.open(m,"_blank","noopener,noreferrer")}const I=S(window.location.hostname);return te(()=>{v(),_=setInterval(v,1e3)}),Fe(()=>{_&&clearInterval(_)}),(m,r)=>{const L=Mt,T=fe;return w(),B("header",Qt,[a("div",Xt,[N.value?(w(),ne(L,{key:0,class:"back-btn",link:"",onClick:u},{default:$(()=>[...r[1]||(r[1]=[a("div",{class:"back-icon-wrap"},[a("i",{class:"fa fa-arrow-left"})],-1),a("span",{class:"back-text"},"返回上一页",-1)])]),_:1})):ke("",!0)]),a("div",en,[a("div",{class:"metrics-dashboard",onClick:r[0]||(r[0]=O=>M(c).push("/hardware"))},[R(T,{content:"CPU 使用率",placement:"bottom"},{default:$(()=>[a("div",tn,[r[3]||(r[3]=a("i",{class:"fa fa-microchip icon cpu"},null,-1)),a("span",{class:W(["value",g(M(o).cpu_percent)])},[ce(z(M(o).cpu_percent??"--"),1),r[2]||(r[2]=a("small",null,"%",-1))],2)])]),_:1}),R(T,{content:"内存 使用率",placement:"bottom"},{default:$(()=>[a("div",nn,[r[5]||(r[5]=a("i",{class:"fa fa-database icon mem"},null,-1)),a("span",{class:W(["value",g(M(o).memory_percent)])},[ce(z(M(o).memory_percent??"--"),1),r[4]||(r[4]=a("small",null,"%",-1))],2)])]),_:1}),R(T,{content:"磁盘 使用率",placement:"bottom"},{default:$(()=>[a("div",sn,[r[7]||(r[7]=a("i",{class:"fa fa-hdd-o icon disk"},null,-1)),a("span",{class:W(["value",g(M(o).disk_percent)])},[ce(z(M(o).disk_percent??"--"),1),r[6]||(r[6]=a("small",null,"%",-1))],2)])]),_:1})]),r[12]||(r[12]=a("div",{class:"divider"},null,-1)),a("div",an,[a("div",on,[r[8]||(r[8]=a("i",{class:"fa fa-server"},null,-1)),a("span",null,z(I.value),1)]),a("div",ln,[r[9]||(r[9]=a("i",{class:"fa fa-calendar"},null,-1)),a("span",null,z(h.value),1)]),a("div",rn,[r[10]||(r[10]=a("i",{class:"fa fa-clock-o"},null,-1)),a("span",null,z(l.value),1)])]),r[13]||(r[13]=a("div",{class:"divider document-divider"},null,-1)),R(T,{content:"使用文档",placement:"bottom"},{default:$(()=>[a("button",{type:"button",class:"documentation-btn","aria-label":"打开使用文档",onClick:p},[...r[11]||(r[11]=[a("i",{class:"fa fa-book","aria-hidden":"true"},null,-1)])])]),_:1})])])}}}),cn=Ne(un,[["__scopeId","data-v-f6cdd568"]]),dn={class:"main-layout"},pn={class:"layout-main"},mn={class:"layout-content"},fn=V({__name:"MainLayout",setup(e){const n=Ke(),o=xt(),t=Te();return te(()=>{n.start(),o.load()}),Fe(()=>{n.stop()}),(c,N)=>{const u=vt("router-view");return w(),B("div",dn,[R(Zt),a("div",pn,[R(cn),a("main",mn,[a("div",{class:W(["page-canvas",{"is-self-surface":M(t).meta.pageSurface==="self"}])},[R(u,null,{default:$(({Component:g})=>[(w(),ne(ht(g)))]),_:1})],2)])])])}}}),Nn=Ne(fn,[["__scopeId","data-v-59b6052e"]]);export{Nn as default};