2 lines
5.2 KiB
JavaScript
2 lines
5.2 KiB
JavaScript
import{u as k,r as l,f as T,s as b,j as e,T as P,R as B,a as U,b as C,B as f,c as F,g as L,d as R,l as E,e as z}from"./index-CYM97J2V.js";import{F as n}from"./index-CacOxAQN.js";import{I as g}from"./index-DV4zjsPW.js";import{C as q}from"./index-M0Ae7f04.js";import"./useForm-B5uILH8t.js";import"./row-DNGQ3hV2.js";const{Title:O,Text:m,Link:$}=P;function H(){const{t:a}=k(),[i,y]=l.useState(null),[o,h]=l.useState(!0),[u,p]=l.useState(!1),[s,N]=l.useState(null),[w]=n.useForm(),c=l.useCallback(async()=>{if(!o)return;const t=await T();y(t)},[o]);l.useEffect(()=>{(async()=>{try{const[r,d]=await Promise.all([L("security.captcha.enabled","true"),R()]);N(d);const j=r!=="false";h(j),j&&await c()}catch{h(!0),await c()}})()},[c]),l.useEffect(()=>{new URLSearchParams(window.location.search).get("timeout")==="1"&&(b.warning(a("login.loginTimeout")),window.history.replaceState({},document.title,window.location.pathname))},[a]);const v=async t=>{p(!0);try{const r=await E({username:t.username,password:t.password,tenantCode:t.tenantCode,captchaId:o?i==null?void 0:i.captchaId:void 0,captchaCode:o?t.captchaCode:void 0});if(localStorage.setItem("accessToken",r.accessToken),localStorage.setItem("refreshToken",r.refreshToken),localStorage.setItem("username",t.username),r.availableTenants){localStorage.setItem("availableTenants",JSON.stringify(r.availableTenants));const d=JSON.parse(atob(r.accessToken.split(".")[1]));localStorage.setItem("activeTenantId",String(d.tenantId))}try{const d=await z();sessionStorage.setItem("userProfile",JSON.stringify(d))}catch{sessionStorage.removeItem("userProfile")}b.success(a("common.success")),window.location.href="/"}catch{o&&await c()}finally{p(!1)}},x=s!=null&&s.loginBgUrl?{backgroundImage:`url(${s.loginBgUrl})`,backgroundSize:"cover",backgroundPosition:"center",position:"relative"}:{},I=s!=null&&s.loginBgUrl?{...x,background:"rgba(255, 255, 255, 0.2)",backdropFilter:"blur(10px)"}:{},S=s!=null&&s.loginBgUrl?{background:"rgba(255, 255, 255, 0.85)",backdropFilter:"blur(20px)"}:{};return e.jsxs("div",{className:"login-page",style:x,children:[e.jsxs("div",{className:"login-left",style:I,children:[e.jsxs("div",{className:"login-brand",children:[e.jsx("img",{src:(s==null?void 0:s.logoUrl)||"/logo.svg",alt:"Logo",className:"brand-logo-img"}),e.jsx("span",{className:"brand-name",children:(s==null?void 0:s.projectName)||"UnisBase"})]}),e.jsxs("div",{className:"login-hero",children:[e.jsxs("h1",{className:"hero-title",children:[a("login.heroTitle1"),e.jsx("br",{}),e.jsx("span",{className:"hero-accent",children:a("login.heroTitle2")}),e.jsx("br",{}),a("login.heroTitle3")]}),e.jsx("p",{className:"hero-desc",children:(s==null?void 0:s.systemDescription)||a("login.heroDesc")})]}),e.jsxs("div",{className:"login-left-footer",children:[e.jsx("div",{className:"footer-item",children:a("login.enterpriseSecurity")}),e.jsx("div",{className:"footer-divider","aria-hidden":"true"}),e.jsx("div",{className:"footer-item",children:a("login.multiLang")}),s!=null&&s.icpInfo?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"footer-divider","aria-hidden":"true"}),e.jsx("div",{className:"footer-item",children:s.icpInfo})]}):null]})]}),e.jsx("div",{className:"login-right",style:S,children:e.jsxs("div",{className:"login-container",children:[e.jsxs("div",{className:"login-header",children:[e.jsx(O,{level:2,children:a("login.welcome")}),e.jsx(m,{type:"secondary",children:a("login.subtitle")})]}),e.jsxs(n,{form:w,layout:"vertical",onFinish:v,className:"login-form",requiredMark:!1,autoComplete:"off",children:[e.jsx(n.Item,{name:"username",rules:[{required:!0,message:a("login.username")}],children:e.jsx(g,{size:"large",prefix:e.jsx(B,{className:"text-gray-400","aria-hidden":"true"}),placeholder:a("login.username"),autoComplete:"username",spellCheck:!1,"aria-label":a("login.username")})}),e.jsx(n.Item,{name:"password",rules:[{required:!0,message:a("login.password")}],children:e.jsx(g.Password,{size:"large",prefix:e.jsx(U,{className:"text-gray-400","aria-hidden":"true"}),placeholder:a("login.password"),autoComplete:"current-password","aria-label":a("login.password")})}),o?e.jsx(n.Item,{name:"captchaCode",rules:[{required:!0,message:a("login.captcha")}],children:e.jsxs("div",{className:"captcha-wrapper",children:[e.jsx(g,{size:"large",prefix:e.jsx(C,{className:"text-gray-400","aria-hidden":"true"}),placeholder:a("login.captcha"),maxLength:6,"aria-label":a("login.captcha")}),e.jsx(f,{className:"captcha-image-btn",onClick:()=>void c(),icon:i?null:e.jsx(F,{spin:!0}),"aria-label":"刷新验证码",children:i?e.jsx("img",{src:i.imageBase64,alt:"验证码"}):null})]})}):null,e.jsxs("div",{className:"login-extra",children:[e.jsx(n.Item,{name:"remember",valuePropName:"checked",noStyle:!0,children:e.jsx(q,{children:a("login.rememberMe")})}),e.jsx($,{className:"forgot-password",children:a("login.forgotPassword")})]}),e.jsx(n.Item,{children:e.jsx(f,{type:"primary",htmlType:"submit",loading:u,block:!0,size:"large",className:"login-submit-btn",children:a(u?"login.loggingIn":"login.submit")})})]}),e.jsx("div",{className:"login-footer",children:e.jsxs(m,{type:"secondary",children:[a("login.demoAccount")," ",e.jsx(m,{strong:!0,className:"tabular-nums",children:"admin"})," / ",a("login.password")," ",e.jsx(m,{strong:!0,className:"tabular-nums",children:"123456"})]})})]})})]})}export{H as default};
|