2 lines
4.3 KiB
JavaScript
2 lines
4.3 KiB
JavaScript
import{u as I,r,f as v,s as x,j as e,T as S,R as k,a as C,b as T,B as j,c as P,g as R,d as B,l as E,e as U}from"./index-Dv-rJwbZ.js";import{F as l}from"./index-DmVlNV9v.js";import{I as m}from"./index-DFGcC-dW.js";import{C as z}from"./index-58fJYkx8.js";import"./useForm-43P2UNGc.js";import"./row-NVxLItiq.js";const{Text:L}=S;function V(){const{t:a}=I(),[i,f]=r.useState(null),[o,g]=r.useState(!0),[u,h]=r.useState(!1),[s,b]=r.useState(null),[y]=l.useForm(),c=r.useCallback(async()=>{if(!o)return;const t=await v();f(t)},[o]);r.useEffect(()=>{(async()=>{try{const[n,d]=await Promise.all([R("security.captcha.enabled","true"),B()]);b(d);const p=n!=="false";g(p),p&&await c()}catch{g(!0),await c()}})()},[c]),r.useEffect(()=>{new URLSearchParams(window.location.search).get("timeout")==="1"&&(x.warning(a("login.loginTimeout")),window.history.replaceState({},document.title,window.location.pathname))},[a]);const N=async t=>{h(!0);try{const n=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",n.accessToken),localStorage.setItem("refreshToken",n.refreshToken),localStorage.setItem("username",t.username),n.availableTenants){localStorage.setItem("availableTenants",JSON.stringify(n.availableTenants));const d=JSON.parse(atob(n.accessToken.split(".")[1]));localStorage.setItem("activeTenantId",String(d.tenantId))}try{const d=await U();sessionStorage.setItem("userProfile",JSON.stringify(d))}catch{sessionStorage.removeItem("userProfile")}x.success(a("common.success")),window.location.href="/"}catch{o&&await c()}finally{h(!1)}},w=s!=null&&s.loginBgUrl?{backgroundImage:`url(${s.loginBgUrl})`,backgroundSize:"cover",backgroundPosition:"center",position:"relative"}:{};return e.jsxs("div",{className:"login-page",style:w,children:[e.jsx("div",{className:"login-page-backdrop"}),e.jsx("div",{className:"login-page-grid",children:e.jsx("section",{className:"login-panel",children:e.jsx("div",{className:"login-panel-card",children:e.jsxs("div",{className:"login-panel-layout",children:[e.jsx("div",{className:"login-left",children:e.jsxs("div",{className:"login-brand",children:[e.jsx("div",{className:"brand-logo-wrap",children:e.jsx("img",{src:(s==null?void 0:s.logoUrl)||"/logo.svg",alt:"Logo",className:"brand-logo-img"})}),e.jsxs("div",{className:"brand-copy",children:[e.jsx("p",{className:"brand-kicker",children:"智慧销售协同平台"}),e.jsx("span",{className:"brand-name",children:(s==null?void 0:s.projectName)||"UnisBase"})]})]})}),e.jsx("div",{className:"login-right",children:e.jsxs("div",{className:"login-container",children:[e.jsxs("div",{className:"login-header",children:[e.jsx("p",{className:"login-panel-eyebrow",children:a("login.welcome")}),e.jsx(L,{type:"secondary",children:a("login.subtitle")})]}),e.jsxs(l,{form:y,layout:"vertical",onFinish:N,className:"login-form",requiredMark:!1,autoComplete:"off",children:[e.jsx(l.Item,{name:"username",rules:[{required:!0,message:a("login.username")}],children:e.jsx(m,{size:"large",prefix:e.jsx(k,{className:"text-gray-400","aria-hidden":"true"}),placeholder:a("login.username"),autoComplete:"username",spellCheck:!1,"aria-label":a("login.username")})}),e.jsx(l.Item,{name:"password",rules:[{required:!0,message:a("login.password")}],children:e.jsx(m.Password,{size:"large",prefix:e.jsx(C,{className:"text-gray-400","aria-hidden":"true"}),placeholder:a("login.password"),autoComplete:"current-password","aria-label":a("login.password")})}),o?e.jsx(l.Item,{name:"captchaCode",rules:[{required:!0,message:a("login.captcha")}],children:e.jsxs("div",{className:"captcha-wrapper",children:[e.jsx(m,{size:"large",prefix:e.jsx(T,{className:"text-gray-400","aria-hidden":"true"}),placeholder:a("login.captcha"),maxLength:6,"aria-label":a("login.captcha")}),e.jsx(j,{className:"captcha-image-btn",onClick:()=>void c(),icon:i?null:e.jsx(P,{spin:!0}),"aria-label":"刷新验证码",children:i?e.jsx("img",{src:i.imageBase64,alt:"验证码"}):null})]})}):null,e.jsx("div",{className:"login-extra",children:e.jsx(l.Item,{name:"remember",valuePropName:"checked",noStyle:!0,children:e.jsx(z,{children:a("login.rememberMe")})})}),e.jsx(l.Item,{children:e.jsx(j,{type:"primary",htmlType:"submit",loading:u,block:!0,size:"large",className:"login-submit-btn",children:a(u?"login.loggingIn":"login.submit")})})]})]})})]})})})})]})}export{V as default};
|