2 lines
4.6 KiB
JavaScript
2 lines
4.6 KiB
JavaScript
|
|
import{u as P,r as t,f as b,s as y,j as e,T as E,R,a as B,b as L,B as w,c as z,g as U,d as q,l as F,e as M}from"./index-D2cxrzyv.js";import{F as r}from"./index-KuslyOWx.js";import{I as u}from"./index-4zw5l6IX.js";import{C as O}from"./index-Iw46KAPi.js";import"./useForm-CaItC8xb.js";import"./row-C5EMotZ4.js";import"./index-COTHVrjr.js";const{Text:$}=E;function N(a){return a instanceof Error&&a.message.toLowerCase().includes("captcha disabled")}function Q(){const{t:a}=P(),[l,o]=t.useState(null),[d,m]=t.useState(!0),[h,p]=t.useState(!1),[n,I]=t.useState(null),[v]=r.useForm(),C="汇智CRM管理后台",f=t.useCallback(async()=>{const s=await b();o(s)},[]),x=t.useCallback(async()=>{try{await f()}catch(s){o(null),N(s)&&m(!1)}},[f]);t.useEffect(()=>{let s=!1;return(async()=>{const[c,T]=await Promise.all([U("security.captcha.enabled","true").catch(()=>"true"),q().catch(()=>null)]);if(s)return;I(T);const j=c!=="false";if(m(j),!j){o(null);return}try{const g=await b();if(s)return;o(g)}catch(g){if(s)return;o(null),N(g)&&m(!1)}})(),()=>{s=!0}},[]),t.useEffect(()=>{new URLSearchParams(window.location.search).get("timeout")==="1"&&(y.warning(a("login.loginTimeout")),window.history.replaceState({},document.title,window.location.pathname))},[a]);const S=async s=>{p(!0);try{const i=await F({username:s.username,password:s.password,tenantCode:s.tenantCode,captchaId:d?l==null?void 0:l.captchaId:void 0,captchaCode:d?s.captchaCode:void 0});if(localStorage.setItem("accessToken",i.accessToken),localStorage.setItem("refreshToken",i.refreshToken),localStorage.setItem("username",s.username),i.availableTenants){localStorage.setItem("availableTenants",JSON.stringify(i.availableTenants));const c=JSON.parse(atob(i.accessToken.split(".")[1]));localStorage.setItem("activeTenantId",String(c.tenantId))}try{const c=await M();sessionStorage.setItem("userProfile",JSON.stringify(c))}catch{sessionStorage.removeItem("userProfile")}y.success(a("common.success")),window.location.href="/"}catch{d&&await x()}finally{p(!1)}},k=n!=null&&n.loginBgUrl?{backgroundImage:`url(${n.loginBgUrl})`,backgroundSize:"cover",backgroundPosition:"center",position:"relative"}:{};return e.jsxs("div",{className:"login-page",style:k,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:(n==null?void 0:n.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:C})]})]})}),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($,{type:"secondary",children:a("login.subtitle")})]}),e.jsxs(r,{form:v,layout:"vertical",onFinish:S,className:"login-form",requiredMark:!1,autoComplete:"off",children:[e.jsx(r.Item,{name:"username",rules:[{required:!0,message:a("login.username")}],children:e.jsx(u,{size:"large",prefix:e.jsx(R,{className:"text-gray-400","aria-hidden":"true"}),placeholder:a("login.username"),autoComplete:"username",spellCheck:!1,"aria-label":a("login.username")})}),e.jsx(r.Item,{name:"password",rules:[{required:!0,message:a("login.password")}],children:e.jsx(u.Password,{size:"large",prefix:e.jsx(B,{className:"text-gray-400","aria-hidden":"true"}),placeholder:a("login.password"),autoComplete:"current-password","aria-label":a("login.password")})}),d?e.jsx(r.Item,{name:"captchaCode",rules:[{required:!0,message:a("login.captcha")}],children:e.jsxs("div",{className:"captcha-wrapper",children:[e.jsx(u,{size:"large",prefix:e.jsx(L,{className:"text-gray-400","aria-hidden":"true"}),placeholder:
|