import{aI as H,bw as j,bx as J,bv as Q,b9 as u,aE as m,aF as C,aB as a,ai as h,bj as k,b4 as S,bt as r,bq as M,aH as s,bJ as o,O as X,R as Y,Q as K,bz as Z,a_ as ee,b3 as f,bo as ae,b0 as se,ag as te,bf as oe,aG as p,aA as le,ay as ne,u as re,T as de,x as ie,y as ue,S as me,r as pe,N as ce,bh as P,bg as W,ax as ve,X as b,ak as fe}from"./index-Dg4NaXsE.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-l0sNRNKZ.js";import{_ as be}from"./FRLD-logo-white-no_title-BE78iS6n.js";const ge={class:"login-page"},_e={class:"bg-stars","aria-hidden":"true"},ye={class:"login-card"},Ve={class:"hero"},we={class:"hero-stars","aria-hidden":"true"},he={class:"hero-points"},ke={class:"feat"},Me={class:"feat-title"},Pe={class:"feat-desc"},Ee={class:"panel"},xe={class:"scope-wrap"},Ce={class:"launch-mode-head"},Se={class:"scope-wrap launch-wrap"},We={class:"row row-between"},$e={class:"adv-grid"},ze={class:"footer-stamp"},Ie=H({__name:"LoginView",setup(Ae){const $=j(),z=J(),E=Q(),I=[{title:"路径规划与导航",desc:"全局 + 实时双层路径算法,智能寻优路线"},{title:"交通管制",desc:"任务队列 + 优先级动态调度,提前规避路口拥堵冲突"},{title:"安全可靠性",desc:"约束设备运行规范,实现 AGV 与产线设备协同安全作业"},{title:"高级任务调度",desc:"按任务优先级、现场资源动态分配搬运任务"},{title:"插件扩展",desc:"插件化架构,支持功能定制、二次开发适配场景"}],g=P(),_=P(!1),c=P([]),l=W({username:"admin",password:"admin",scope:"Platform",launchMode:"DesktopAndWeb",remember:!0}),d=W({host:"0.0.0.0",apiPort:7001,platformPort:8080,vrPort:8223}),A={username:[{required:!0,message:"请输入用户名",trigger:"blur"}],password:[{required:!0,message:"请输入密码",trigger:"blur"}],scope:[{required:!0,message:"请选择 scope",trigger:"change"}],launchMode:[{required:!0,message:"请选择启动模式",trigger:"change"}]},L=ve(()=>new Date().getFullYear());function x(v){return Array.from({length:v},()=>{const e=1.5+Math.random()*2.8;return{top:`${Math.random()*100}%`,left:`${Math.random()*100}%`,width:`${e}px`,height:`${e}px`,opacity:`${.35+Math.random()*.5}`,animationDelay:`${-Math.random()*6}s`,animationDuration:`${2.6+Math.random()*3.4}s`}})}const R=x(48),D=x(22);async function N(){g.value&&await g.value.validate(async v=>{if(v){_.value=!0;try{const e=await E.login({username:l.username,password:l.password,scope:l.scope,launchMode:l.launchMode});b.success(`欢迎,${E.user?.displayName??l.username}`),e.launchWarning?b({message:e.launchWarning,type:"warning",duration:6e3,showClose:!0}):e.runMode==="Detached"&&b({message:"SimpleLite 未启动(Platform.Server 单独运行),/api/sl/* 相关功能将不可用。",type:"warning",duration:6e3,showClose:!0});const n=$.query.redirect??(l.scope==="Platform"?"/admin/dashboard":"/monitor/map");z.push(n)}catch(e){const n=e instanceof Error?e.message:String(e);b.error(`登录失败:${n}`)}finally{_.value=!1}}})}return(v,e)=>{const n=K,y=Y,i=X,q=te,T=re,U=de,V=me,F=ue,B=ie,G=pe,O=ce;return u(),m("div",ge,[e[28]||(e[28]=C('
',5)),a("div",_e,[(u(!0),m(h,null,k(r(R),(t,w)=>(u(),m("span",{key:w,style:S(t)},null,4))),128))]),a("div",ye,[a("div",Ve,[a("div",we,[(u(!0),m(h,null,k(r(D),(t,w)=>(u(),m("span",{key:w,style:S(t)},null,4))),128))]),e[14]||(e[14]=C('
迷毂
迷 毂
智 能 调 度 平 台
INTELLIGENT · DISPATCH · PLATFORM
',4)),a("ul",he,[(u(),m(h,null,k(I,t=>a("li",{key:t.title},[e[13]||(e[13]=a("span",{class:"dot"},null,-1)),a("div",ke,[a("span",Me,M(t.title),1),a("span",Pe,M(t.desc),1)])])),64))]),e[15]||(e[15]=a("div",{class:"hero-footnote"},[a("span",{class:"badge"},"v1.7"),a("span",null,"稳定 · 高效 · 安全的智能调度内核")],-1))]),a("div",Ee,[e[27]||(e[27]=a("div",{class:"panel-head"},[a("div",{class:"panel-title"},"登 录"),a("div",{class:"panel-sub"},"登录以进入智能调度平台")],-1)),s(O,{ref_key:"formRef",ref:g,model:l,rules:A,class:"glass-form","hide-required-asterisk":""},{default:o(()=>[s(i,{prop:"username"},{default:o(()=>[s(y,{modelValue:l.username,"onUpdate:modelValue":e[0]||(e[0]=t=>l.username=t),size:"large",placeholder:"用户名",autocomplete:"username",clearable:""},{prefix:o(()=>[s(n,null,{default:o(()=>[s(r(Z))]),_:1})]),_:1},8,["modelValue"])]),_:1}),s(i,{prop:"password"},{default:o(()=>[s(y,{modelValue:l.password,"onUpdate:modelValue":e[1]||(e[1]=t=>l.password=t),type:"password",size:"large","show-password":"",placeholder:"密码(Mock,任意非空)",autocomplete:"current-password"},{prefix:o(()=>[s(n,null,{default:o(()=>[s(r(ee))]),_:1})]),_:1},8,["modelValue"])]),_:1}),s(i,{prop:"scope",class:"scope-item"},{default:o(()=>[a("div",xe,[a("button",{type:"button",class:f(["scope-tab",{active:l.scope==="Platform"}]),onClick:e[2]||(e[2]=t=>l.scope="Platform")},[s(n,null,{default:o(()=>[s(r(ae))]),_:1}),e[16]||(e[16]=a("div",{class:"scope-meta"},[a("div",{class:"scope-name"},"管理员"),a("div",{class:"scope-desc"},"platform-vue · 全功能")],-1))],2),a("button",{type:"button",class:f(["scope-tab",{active:l.scope==="RCSMonitor"}]),onClick:e[3]||(e[3]=t=>l.scope="RCSMonitor")},[s(n,null,{default:o(()=>[s(r(se))]),_:1}),e[17]||(e[17]=a("div",{class:"scope-meta"},[a("div",{class:"scope-name"},"运营"),a("div",{class:"scope-desc"},"rcsmonitor-vue · 受限")],-1))],2)])]),_:1}),s(i,{prop:"launchMode",class:"scope-item launch-mode-item"},{default:o(()=>[a("div",Ce,[e[19]||(e[19]=a("span",{class:"launch-mode-title"},"SimpleLite 启动模式",-1)),s(q,{placement:"top"},{content:o(()=>[...e[18]||(e[18]=[a("div",{class:"launch-tip"},[a("div",null,[a("b",null,"本地+Web"),p(":登录后由 Platform 后端拉起 SimpleLite,同时打开桌面端 ImGui 窗口与浏览器端 webVRender。")]),a("div",null,[a("b",null,"仅 Web"),p(":只起 WebTerminal,不弹本地桌面窗口,适合远程办公 / 服务器部署。")])],-1)])]),default:o(()=>[s(n,{class:"launch-mode-help"},{default:o(()=>[s(r(oe))]),_:1})]),_:1})]),a("div",Se,[a("button",{type:"button",class:f(["scope-tab",{active:l.launchMode==="DesktopAndWeb"}]),onClick:e[4]||(e[4]=t=>l.launchMode="DesktopAndWeb")},[s(n,null,{default:o(()=>[s(r(le))]),_:1}),e[20]||(e[20]=a("div",{class:"scope-meta"},[a("div",{class:"scope-name"},"本地 + Web"),a("div",{class:"scope-desc"},"桌面窗口 & 浏览器同时启动")],-1))],2),a("button",{type:"button",class:f(["scope-tab",{active:l.launchMode==="WebOnly"}]),onClick:e[5]||(e[5]=t=>l.launchMode="WebOnly")},[s(n,null,{default:o(()=>[s(r(ne))]),_:1}),e[21]||(e[21]=a("div",{class:"scope-meta"},[a("div",{class:"scope-name"},"仅 Web"),a("div",{class:"scope-desc"},"不启桌面窗口 · 浏览器使用")],-1))],2)])]),_:1}),a("div",We,[s(T,{modelValue:l.remember,"onUpdate:modelValue":e[6]||(e[6]=t=>l.remember=t),size:"default",class:"remember"},{default:o(()=>[...e[22]||(e[22]=[p("下次自动按当前 scope 进入",-1)])]),_:1},8,["modelValue"]),s(U,{underline:"never",class:"adv-link",onClick:e[7]||(e[7]=t=>c.value=c.value.length?[]:["adv"])},{default:o(()=>[...e[23]||(e[23]=[p("高级 ›",-1)])]),_:1})]),s(B,{modelValue:c.value,"onUpdate:modelValue":e[12]||(e[12]=t=>c.value=t),class:"adv-collapse"},{default:o(()=>[s(F,{name:"adv"},{title:o(()=>[...e[24]||(e[24]=[a("span",{class:"adv-title"},"Web-Enabled · 端口与监听",-1)])]),default:o(()=>[a("div",$e,[s(i,{label:"监听地址"},{default:o(()=>[s(y,{modelValue:d.host,"onUpdate:modelValue":e[8]||(e[8]=t=>d.host=t),size:"default"},null,8,["modelValue"])]),_:1}),s(i,{label:"WebAPI"},{default:o(()=>[s(V,{modelValue:d.apiPort,"onUpdate:modelValue":e[9]||(e[9]=t=>d.apiPort=t),min:1,max:65535,size:"default","controls-position":"right"},null,8,["modelValue"])]),_:1}),s(i,{label:"Platform"},{default:o(()=>[s(V,{modelValue:d.platformPort,"onUpdate:modelValue":e[10]||(e[10]=t=>d.platformPort=t),min:1,max:65535,size:"default","controls-position":"right"},null,8,["modelValue"])]),_:1}),s(i,{label:"webVRender"},{default:o(()=>[s(V,{modelValue:d.vrPort,"onUpdate:modelValue":e[11]||(e[11]=t=>d.vrPort=t),min:1,max:65535,size:"default","controls-position":"right"},null,8,["modelValue"])]),_:1})])]),_:1})]),_:1},8,["modelValue"]),s(G,{type:"primary",loading:_.value,class:"btn-login",size:"large",onClick:N},{default:o(()=>[...e[25]||(e[25]=[p(" 登 录 ",-1)])]),_:1},8,["loading"]),e[26]||(e[26]=a("div",{class:"bottom-note"}," 任意非空用户名 + 任意密码即可登录;scope 决定进入 admin / monitor 视图;权限按 Mock 表生成。 ",-1))]),_:1},8,["model"])])]),a("div",ze," 迷 毂 · 智能调度平台 · "+M(L.value),1)])}}}),je=fe(Ie,[["__scopeId","data-v-a9a6f95c"]]);export{je as default};