2026-06-08 18:18:48 +08:00
|
|
|
import{aN as J,bW as X,bX as H,bV as K,bs as u,aG as m,aI as S,aD as a,ai as k,bE as h,bl as x,bS as r,bL as M,aK as s,c8 as o,O as Q,R as Y,Q as j,b_ as Z,bd as ee,bk as f,bJ as ae,bh as se,ag as te,bz as oe,aJ as p,aC as le,az as ne,u as re,T as de,x as ie,y as ue,S as me,r as pe,N as ce,bC as C,bA as W,ay as ve,X as b,ak as fe}from"./index-D5GfLbIx.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"},ke={class:"hero-points"},he={class:"feat"},Me={class:"feat-title"},Ce={class:"feat-desc"},Pe={class:"panel"},Ee={class:"scope-wrap"},Se={class:"launch-mode-head"},xe={class:"scope-wrap launch-wrap"},We={class:"row row-between"},$e={class:"adv-grid"},ze={class:"footer-stamp"},Ie=J({__name:"LoginView",setup(Le){const $=X(),z=H(),P=K(),I=[{title:"路径规划与导航",desc:"全局 + 实时双层路径算法,智能寻优路线"},{title:"交通管制",desc:"任务队列 + 优先级动态调度,提前规避路口拥堵冲突"},{title:"安全可靠性",desc:"约束设备运行规范,实现 AGV 与产线设备协同安全作业"},{title:"高级任务调度",desc:"按任务优先级、现场资源动态分配搬运任务"},{title:"插件扩展",desc:"插件化架构,支持功能定制、二次开发适配场景"}],g=C(),_=C(!1),c=C([]),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}),L={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"}]},A=ve(()=>new Date().getFullYear());function E(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 D=E(48),N=E(22);async function R(){g.value&&await g.value.validate(async v=>{if(v){_.value=!0;try{const e=await P.login({username:l.username,password:l.password,scope:l.scope,launchMode:l.launchMode});b.success(`欢迎,${P.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=j,y=Y,i=Q,T=te,U=re,q=de,V=me,F=ue,B=ie,G=pe,O=ce;return u(),m("div",ge,[e[28]||(e[28]=S('<div class="bg-image" data-v-a9a6f95c></div><div class="bg-overlay" data-v-a9a6f95c></div><div class="bg-orb bg-orb-a" data-v-a9a6f95c></div><div class="bg-orb bg-orb-b" data-v-a9a6f95c></div><div class="bg-orb bg-orb-c" data-v-a9a6f95c></div>',5)),a("div",_e,[(u(!0),m(k,null,h(r(D),(t,w)=>(u(),m("span",{key:w,style:x(t)},null,4))),128))]),a("div",ye,[a("div",Ve,[a("div",we,[(u(!0),m(k,null,h(r(N),(t,w)=>(u(),m("span",{key:w,style:x(t)},null,4))),128))]),e[14]||(e[14]=S('<div class="hero-brand" data-v-a9a6f95c><span class="hero-mark" data-v-a9a6f95c><img src="'+be+'" alt="迷毂" class="hero-mark-img" data-v-a9a6f95c></span><div class="hero-name" data-v-a9a6f95c>迷 毂</div></div><div class="hero-tagline" data-v-a9a6
|