2 lines
9.3 KiB
JavaScript
2 lines
9.3 KiB
JavaScript
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-368apsQG.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('<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(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('<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
|