import{n as e,t}from"./radio-group-rg4nj-El.js";import{$ as n,G as r,H as i,J as a,K as o,L as s,N as c,Q as l,Qt as u,U as d,Ut as f,V as p,Vn as m,W as h,Wt as g,Zt as _,_n as v,et as y,ln as b,ot as x,q as S,qn as C,tt as w,yn as T,zn as E}from"./index-CjPx3lfT.js";var D=C(m()),O=C(E()),k=l({username:n().min(2,{message:`账号只能是4~16个字符`}),password:n().min(2,{message:`密码只能是4~32个字符`})}),A=`森睿智传`;function j(){let n=v(),[l,m]=(0,D.useState)(null),[C,E]=(0,D.useState)(``),j=w({resolver:y(k),defaultValues:{username:``,password:``}}),M=e=>{x.setState({token:e.data.token}),n.navigate({to:decodeURIComponent(decodeURIComponent(n.state.location.search.redirect||`/`)),replace:!0})},{mutateAsync:N,isPending:P}=T({mutationFn:async e=>{try{return await f(e)}catch(e){var t;if((e==null?void 0:e.code)===`600`&&!(e==null||(t=e.errorData)==null||(t=t.orgs)==null)&&t.length)return{needSelectOrg:!0,...e.errorData};throw e}},onSuccess(e){if(e!=null&&e.needSelectOrg){E(String(e.orgs[0].orgId)),m({tempToken:e.tempToken,orgs:e.orgs});return}M(e)}}),{mutateAsync:F,isPending:I}=T({mutationFn:e=>g(e.tempToken,e.orgId),onSuccess(e){M(e)}}),L=e=>{let t=N({...e,userType:1});b.promise(t,{loading:`登录中...`,success:e=>e!=null&&e.needSelectOrg?`请选择机构`:`登录成功`})};return(0,O.jsx)(`div`,{className:`flex items-center justify-center min-h-screen box-border`,children:(0,O.jsxs)(`div`,{children:[(0,O.jsxs)(`div`,{className:`flex justify-center items-center mb-4 gap-2`,children:[(0,O.jsx)(`img`,{src:s,alt:``,className:`size-12 object-contain rounded-full bg-white overflow-hidden`}),(0,O.jsx)(`div`,{className:`text-3xl`,children:A})]}),(0,O.jsx)(`div`,{className:`w-[480px] p-10 bg-white rounded-xl`,children:l?(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(`div`,{className:`text-center text-2xl`,children:`选择机构`}),(0,O.jsx)(`div`,{className:`text-center text-sm text-black/50 mt-2`,children:`当前账号属于多个机构,请选择要登录的机构`}),(0,O.jsx)(t,{value:C,onValueChange:E,className:`space-y-1 mt-8`,children:l.orgs.map(t=>(0,O.jsxs)(`div`,{onClick:()=>E(String(t.orgId)),className:`flex items-center gap-3 rounded-lg border p-3 cursor-pointer transition-colors ${C===String(t.orgId)?`border-primary bg-primary/10`:`hover:bg-black/5`}`,children:[(0,O.jsx)(e,{value:String(t.orgId),id:`org-${t.orgId}`}),(0,O.jsxs)(a,{htmlFor:`org-${t.orgId}`,className:`flex items-center gap-2 flex-1 cursor-pointer`,children:[(0,O.jsx)(`span`,{children:t.orgName}),t.administrator&&(0,O.jsx)(c,{variant:`outline`,className:`text-primary border-primary`,children:`管理员`})]})]},t.orgId))}),(0,O.jsxs)(`div`,{className:`space-y-3 mt-8`,children:[(0,O.jsxs)(u,{className:`w-full`,disabled:I||!C,onClick:()=>{if(!C||!l)return;let e=F({tempToken:l.tempToken,orgId:C});b.promise(e,{loading:`登录中...`,success:`登录成功`})},children:[I&&(0,O.jsx)(_,{}),`进入系统`]}),(0,O.jsx)(u,{variant:`outline`,className:`w-full`,disabled:I,onClick:()=>m(null),children:`返回登录`})]})]}):(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(`div`,{className:`text-center text-2xl`,children:`用户登录`}),(0,O.jsx)(i,{...j,children:(0,O.jsxs)(`form`,{onSubmit:j.handleSubmit(L),className:`space-y-8 mt-12`,children:[(0,O.jsx)(h,{control:j.control,name:`username`,render:({field:e})=>(0,O.jsxs)(r,{children:[(0,O.jsx)(o,{children:`用户名`}),(0,O.jsx)(d,{children:(0,O.jsx)(p,{placeholder:`用户名`,...e})}),(0,O.jsx)(S,{})]})}),(0,O.jsx)(h,{control:j.control,name:`password`,render:({field:e})=>(0,O.jsxs)(r,{children:[(0,O.jsx)(o,{children:`密码`}),(0,O.jsx)(d,{children:(0,O.jsx)(p,{type:`password`,placeholder:`密码`,...e})}),(0,O.jsx)(S,{})]})}),(0,O.jsxs)(u,{type:`submit`,className:`w-full`,disabled:P,children:[P&&(0,O.jsx)(_,{}),`提交`]})]})})]})})]})})}export{j as component};