import{aG as N,bu as q,bv as F,bt as B,bw as H,b7 as C,aC as M,aD as P,az as a,ah as O,bh as G,b2 as Y,br as r,bo as y,aF as s,bH as o,O as j,R as Q,Q as X,bx as J,aY as K,b1 as c,bm as Z,a_ as ee,af as ae,bd as se,aE as p,ay as oe,aw as te,u as le,T as ne,x as de,y as re,S as ie,r as ue,N as pe,bf as h,be as x,av as me,X as f,aj as ce}from"./index-D5OuyicD.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-l0sNRNKZ.js";const fe={class:"login-page"},ve={class:"bg-stars","aria-hidden":"true"},be={class:"login-card mg-glass-lg"},ge={class:"hero"},_e={class:"hero-footnote"},we={class:"panel"},Ve={class:"scope-wrap"},ye={class:"launch-mode-head"},he={class:"scope-wrap launch-wrap"},ke={class:"row row-between"},Ee={class:"adv-grid"},Ce={class:"footer-stamp"},Me=N({__name:"LoginView",setup(Pe){const R=q(),S=F(),k=B(),E=H(),v=h(),b=h(!1),m=h([]),l=x({username:"admin",password:"admin",scope:"Platform",launchMode:"DesktopAndWeb",remember:!0}),i=x({host:"0.0.0.0",apiPort:7001,platformPort:8080,vrPort:8223}),W={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"}]},T=me(()=>new Date().getFullYear()),I=Array.from({length:18},(g,e)=>{const n=Math.random()*100,u=Math.random()*100,d=2+Math.random()*3,_=-Math.random()*6,w=.35+Math.random()*.45;return{top:`${n}%`,left:`${u}%`,width:`${d}px`,height:`${d}px`,opacity:`${w}`,animationDelay:`${_}s`}});async function $(){v.value&&await v.value.validate(async g=>{if(g){b.value=!0;try{const e=await k.login({username:l.username,password:l.password,scope:l.scope,launchMode:l.launchMode});f.success(`欢迎,${k.user?.displayName??l.username}`),e.launchWarning?f({message:e.launchWarning,type:"warning",duration:6e3,showClose:!0}):e.runMode==="Detached"&&f({message:"SimpleLite 未启动(Platform.Server 单独运行),/api/sl/* 相关功能将不可用。",type:"warning",duration:6e3,showClose:!0});const n=R.query.redirect??(l.scope==="Platform"?"/admin/dashboard":"/monitor/map");S.push(n)}catch(e){const n=e instanceof Error?e.message:String(e);f.error(`登录失败:${n}`)}finally{b.value=!1}}})}return(g,e)=>{const n=X,u=Q,d=j,_=ae,w=le,z=ne,V=ie,L=re,U=de,A=ue,D=pe;return C(),M("div",fe,[e[27]||(e[27]=P('
',5)),a("div",ve,[(C(),M(O,null,G(18,t=>a("span",{key:t,style:Y(r(I)[t-1])},null,4)),64))]),a("div",be,[a("div",ge,[e[14]||(e[14]=P('智 能 调 度 平 台
INTELLIGENT · DISPATCH · PLATFORM
- 复刻 ARCHITECTURE.md §3.2 启动登录窗
- Web-Enabled · 管理员 / 运营 双视图
- 嵌入 webVRender 真实 3D 场景
',5)),a("div",_e,[e[13]||(e[13]=a("span",{class:"badge"},"v1.7",-1)),a("span",null,y(r(E).activeTheme.name)+" · "+y(r(E).activeTheme.preview),1)])]),a("div",we,[e[26]||(e[26]=a("div",{class:"panel-head"},[a("div",{class:"panel-title"},"登 录"),a("div",{class:"panel-sub"},"访问 SimpleLite 的 Vue 外壳")],-1)),s(D,{ref_key:"formRef",ref:v,model:l,rules:W,class:"glass-form","hide-required-asterisk":""},{default:o(()=>[s(d,{prop:"username"},{default:o(()=>[s(u,{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(J))]),_:1})]),_:1},8,["modelValue"])]),_:1}),s(d,{prop:"password"},{default:o(()=>[s(u,{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(K))]),_:1})]),_:1},8,["modelValue"])]),_:1}),s(d,{prop:"scope",class:"scope-item"},{default:o(()=>[a("div",Ve,[a("button",{type:"button",class:c(["scope-tab",{active:l.scope==="Platform"}]),onClick:e[2]||(e[2]=t=>l.scope="Platform")},[s(n,null,{default:o(()=>[s(r(Z))]),_:1}),e[15]||(e[15]=a("div",{class:"scope-meta"},[a("div",{class:"scope-name"},"管理员"),a("div",{class:"scope-desc"},"platform-vue · 全功能")],-1))],2),a("button",{type:"button",class:c(["scope-tab",{active:l.scope==="RCSMonitor"}]),onClick:e[3]||(e[3]=t=>l.scope="RCSMonitor")},[s(n,null,{default:o(()=>[s(r(ee))]),_:1}),e[16]||(e[16]=a("div",{class:"scope-meta"},[a("div",{class:"scope-name"},"运营"),a("div",{class:"scope-desc"},"rcsmonitor-vue · 受限")],-1))],2)])]),_:1}),s(d,{prop:"launchMode",class:"scope-item launch-mode-item"},{default:o(()=>[a("div",ye,[e[18]||(e[18]=a("span",{class:"launch-mode-title"},"SimpleLite 启动模式",-1)),s(_,{placement:"top"},{content:o(()=>[...e[17]||(e[17]=[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(se))]),_:1})]),_:1})]),a("div",he,[a("button",{type:"button",class:c(["scope-tab",{active:l.launchMode==="DesktopAndWeb"}]),onClick:e[4]||(e[4]=t=>l.launchMode="DesktopAndWeb")},[s(n,null,{default:o(()=>[s(r(oe))]),_:1}),e[19]||(e[19]=a("div",{class:"scope-meta"},[a("div",{class:"scope-name"},"本地 + Web"),a("div",{class:"scope-desc"},"桌面窗口 & 浏览器同时启动")],-1))],2),a("button",{type:"button",class:c(["scope-tab",{active:l.launchMode==="WebOnly"}]),onClick:e[5]||(e[5]=t=>l.launchMode="WebOnly")},[s(n,null,{default:o(()=>[s(r(te))]),_:1}),e[20]||(e[20]=a("div",{class:"scope-meta"},[a("div",{class:"scope-name"},"仅 Web"),a("div",{class:"scope-desc"},"不启桌面窗口 · 浏览器使用")],-1))],2)])]),_:1}),a("div",ke,[s(w,{modelValue:l.remember,"onUpdate:modelValue":e[6]||(e[6]=t=>l.remember=t),size:"default",class:"remember"},{default:o(()=>[...e[21]||(e[21]=[p("下次自动按当前 scope 进入",-1)])]),_:1},8,["modelValue"]),s(z,{underline:"never",class:"adv-link",onClick:e[7]||(e[7]=t=>m.value=m.value.length?[]:["adv"])},{default:o(()=>[...e[22]||(e[22]=[p("高级 ›",-1)])]),_:1})]),s(U,{modelValue:m.value,"onUpdate:modelValue":e[12]||(e[12]=t=>m.value=t),class:"adv-collapse"},{default:o(()=>[s(L,{name:"adv"},{title:o(()=>[...e[23]||(e[23]=[a("span",{class:"adv-title"},"Web-Enabled · 端口与监听",-1)])]),default:o(()=>[a("div",Ee,[s(d,{label:"监听地址"},{default:o(()=>[s(u,{modelValue:i.host,"onUpdate:modelValue":e[8]||(e[8]=t=>i.host=t),size:"default"},null,8,["modelValue"])]),_:1}),s(d,{label:"WebAPI"},{default:o(()=>[s(V,{modelValue:i.apiPort,"onUpdate:modelValue":e[9]||(e[9]=t=>i.apiPort=t),min:1,max:65535,size:"default","controls-position":"right"},null,8,["modelValue"])]),_:1}),s(d,{label:"Platform"},{default:o(()=>[s(V,{modelValue:i.platformPort,"onUpdate:modelValue":e[10]||(e[10]=t=>i.platformPort=t),min:1,max:65535,size:"default","controls-position":"right"},null,8,["modelValue"])]),_:1}),s(d,{label:"webVRender"},{default:o(()=>[s(V,{modelValue:i.vrPort,"onUpdate:modelValue":e[11]||(e[11]=t=>i.vrPort=t),min:1,max:65535,size:"default","controls-position":"right"},null,8,["modelValue"])]),_:1})])]),_:1})]),_:1},8,["modelValue"]),s(A,{type:"primary",loading:b.value,class:"btn-login",size:"large",onClick:$},{default:o(()=>[...e[24]||(e[24]=[p(" 登 录 ",-1)])]),_:1},8,["loading"]),e[25]||(e[25]=a("div",{class:"bottom-note"}," 任意非空用户名 + 任意密码即可登录;scope 决定进入 admin / monitor 视图;权限按 Mock 表生成。 ",-1))]),_:1},8,["model"])])]),a("div",Ce," 迷毂 · "+y(T.value)+" · ARCHITECTURE v1.6 · powered by webVRender ",1)])}}}),De=ce(Me,[["__scopeId","data-v-a5f3efd2"]]);export{De as default};