| 1 |
- import{d as A,N as y,a as r,b as t,w as l,c as N,ap as B,aq as E,ar as R,as as P,at as Y,au as Z,av as j,a5 as G,ah as H,J as v,a6 as K,a7 as X,r as c,o as h,W as V,Z as D,Y as x,$ as J,ae as ee,a1 as _,v as d,ai as F}from"./vendor-CsNcCXs6.js";import{_ as ae}from"./index-DCBjyNLd.js";const oe=A({name:"login",components:{UserOutlined:B,LockOutlined:E,WechatOutlined:R,QqOutlined:P,DingdingOutlined:Y,MobileOutlined:Z,SafetyCertificateOutlined:j},setup(){const a=G(),o=H(),w=v(),I=v(!1),k=v(!1),u=v("account"),b=v(0),s=K({username:"",password:"",merchant_code:"E20250212000624fd2a92",mobile:"",verification_code:""}),f={username:[{required:!0,message:"请输入账号"},{min:4,message:"账号长度不能小于4位"}],password:[{required:!0,message:"请输入密码"},{min:6,message:"密码长度不能小于6位"}],merchant_code:[{required:!0,message:"请输入商户编码"},{min:1,message:"商户编码长度不能小于1位"}],mobile:[{required:!0,message:"请输入手机号"},{pattern:/^1[3-9]\d{9}$/,message:"请输入正确的手机号"}],verification_code:[{required:!0,message:"请输入验证码"},{len:6,message:"验证码长度必须为6位"}]},T=async()=>{var e,n;try{await w.value.validateFields(["mobile"]);const i=await _.post("https://aiapi.raycos.com.cn/user/send_verification_code",{mobile:s.mobile,merchant_code:s.merchant_code});if(i.data.code===200){d.success("验证码发送成功"),b.value=60;const p=setInterval(()=>{b.value--,b.value<=0&&clearInterval(p)},1e3)}else d.error(i.data.message||"验证码发送失败")}catch(i){console.error("验证码发送失败:",i),d.error(((n=(e=i.response)==null?void 0:e.data)==null?void 0:n.message)||"验证码发送失败")}},$=async()=>{var e,n;try{I.value=!0,await w.value.validate();let i;if(u.value==="account"?i=await _.post("https://aiapi.raycos.com.cn/user/login",{username:s.username,password:s.password,merchant_code:s.merchant_code}):u.value==="mobile"?i=await _.post("https://aiapi.raycos.com.cn/user/mobile_login",{mobile:s.mobile,verification_code:s.verification_code,merchant_code:s.merchant_code}):i=await _.post("https://aiapi.raycos.com.cn/user/wechat_login",{wechat_state:s.wechat_state}),i.data.code===200){localStorage.setItem("token",i.data.data.token);try{const p=await _.get("https://aiapi.raycos.com.cn/user/info",{headers:{Authorization:`JWT ${i.data.data.token}`}});console.log(p),p.data.code===200?(a.commit("app/setUser",{user:p.data.data,permission:p.data.data||[]}),localStorage.setItem("userInfo",JSON.stringify(p.data.data)),localStorage.setItem("permissions",JSON.stringify(p.data.data||[]))):d.warning("获取用户信息失败")}catch(p){console.error("获取用户信息失败:",p),d.warning("获取用户信息失败,请重新登录");return}k.value&&(u.value==="account"?localStorage.setItem("username",s.username):u.value==="mobile"&&localStorage.setItem("mobile",s.mobile)),d.success("登录成功"),o.push("/")}else d.error(i.data.message||"登录失败")}catch(i){console.error("登录失败:",i),d.error(((n=(e=i.response)==null?void 0:e.data)==null?void 0:n.message)||"登录失败,请检查网络连接")}finally{I.value=!1}},O=(e=[])=>{const n={};return e.filter(i=>i.type==="btn").forEach(i=>{n[i.path]?n[i.path][i.key]=!0:n[i.path]={[i.key]:!0}}),n};localStorage.getItem("username")?(s.username=localStorage.getItem("username"),k.value=!0):localStorage.getItem("mobile")&&(s.mobile=localStorage.getItem("mobile"),u.value="mobile",k.value=!0);const U=()=>{u.value="mobile",s.username="",s.password="";const e=localStorage.getItem("mobile");e&&(s.mobile=e),F(()=>{var n;(n=w.value)==null||n.resetFields()}),d.info("已切换到手机号登录模式")},S=()=>{u.value="account",s.mobile="",s.verification_code="";const e=localStorage.getItem("mobile");e&&(s.mobile=e),F(()=>{var n;(n=w.value)==null||n.resetFields()}),d.info("已切换到账号密码登录模式")},M=async()=>{u.value="wechat",s.username="",s.password="",s.mobile="",s.verification_code="",await g(),F(()=>{var e;(e=w.value)==null||e.resetFields()}),d.info("已切换到微信扫码登录模式")},C=v(!1),q=v(""),L=v("");let m=null;const g=async()=>{try{const e=await _.get("https://aiapi.raycos.com.cn/api/user/wechat/qrcode");e.data.code===200?(q.value=e.data.data.qrcode_url,L.value=e.data.data.state,W()):d.error("获取微信二维码失败")}catch(e){console.error("获取微信二维码失败:",e),d.error("获取微信二维码失败,请稍后重试")}},W=()=>{m=setInterval(async()=>{try{const e=await _.get("https://aiapi.raycos.com.cn/api/user/wechat/check_login",{params:{state:L.value}});e.data.code===200&&(clearInterval(m),C.value=!1,localStorage.setItem("token",e.data.data.token),await Q(e.data.data.token),d.success("微信登录成功"),o.push("/"))}catch(e){console.error("检查微信登录状态失败:",e)}},2e3)},z=()=>{C.value=!1,m&&(clearInterval(m),m=null)},Q=async e=>{try{const n=await _.get("https://aiapi.raycos.com.cn/user/info",{headers:{Authorization:`JWT ${e}`}});n.data.code===200?a.commit("app/setUser",{user:n.data.data.userInfo,permission:n.data.data.permissions||[],auth:O(n.data.data.permissions)}):d.warning("获取用户信息失败")}catch(n){throw console.error("获取用户信息失败:",n),d.warning("获取用户信息失败,请重新登录"),n}};return X(()=>{m&&(clearInterval(m),m=null)}),{loginForm:w,formData:s,rules:f,loading:I,rememberMe:k,loginType:u,countdown:b,handleLogin:$,sendVerificationCode:T,switchToMobileLogin:U,switchToAccountLogin:S,switchToWechatLogin:M,wechatLoginModal:C,wechatQrCode:q,getWechatQrCode:g,handleWechatLoginCancel:z}}}),te={class:"login-page"},se={class:"login-container"},ne={class:"login-content"},ie={class:"verification-code-input"},le={key:2,class:"wechat-login-container"},re={key:0,class:"wechat-qrcode-wrapper"},ce=["src"],de={key:1,class:"qrcode-loading"},ue={class:"form-options"},me={class:"login-footer"},pe={class:"other-login"},fe={class:"social-login"},ge={class:"wechat-qrcode-container"},ve=["src"];function he(a,o,w,I,k,u){const b=c("UserOutlined"),s=c("a-input"),f=c("a-form-item"),T=c("LockOutlined"),$=c("a-input-password"),O=c("MobileOutlined"),U=c("SafetyCertificateOutlined"),S=c("a-button"),M=c("a-spin"),C=c("a-checkbox"),q=c("router-link"),L=c("a-form"),m=c("WechatOutlined"),g=c("a-tooltip"),W=c("QqOutlined"),z=c("DingdingOutlined"),Q=c("a-modal");return h(),y("div",te,[r("div",se,[r("div",ne,[o[13]||(o[13]=r("div",{class:"login-header"},[r("h2",null,"欢迎登录"),r("p",{class:"sub-title"},"请输入您的账号信息")],-1)),t(L,{ref:"loginForm",model:a.formData,rules:a.rules,layout:"vertical"},{default:l(()=>[a.loginType==="account"?(h(),y(V,{key:0},[t(f,{label:"账号",name:"username"},{default:l(()=>[t(s,{value:a.formData.username,"onUpdate:value":o[0]||(o[0]=e=>a.formData.username=e),placeholder:"请输入账号",size:"large"},{prefix:l(()=>[t(b,{style:{color:"rgba(0,0,0,.25)"}})]),_:1},8,["value"])]),_:1}),t(f,{label:"密码",name:"password"},{default:l(()=>[t($,{value:a.formData.password,"onUpdate:value":o[1]||(o[1]=e=>a.formData.password=e),placeholder:"请输入密码",size:"large"},{prefix:l(()=>[t(T,{style:{color:"rgba(0,0,0,.25)"}})]),_:1},8,["value"])]),_:1}),t(f,{label:"商户编码",name:"merchant_code"},{default:l(()=>[t(s,{value:a.formData.merchant_code,"onUpdate:value":o[2]||(o[2]=e=>a.formData.merchant_code=e),placeholder:"请输入商户编码",size:"large"},null,8,["value"])]),_:1})],64)):a.loginType==="mobile"?(h(),y(V,{key:1},[t(f,{label:"手机号",name:"mobile"},{default:l(()=>[t(s,{value:a.formData.mobile,"onUpdate:value":o[3]||(o[3]=e=>a.formData.mobile=e),placeholder:"请输入手机号",size:"large"},{prefix:l(()=>[t(O,{style:{color:"rgba(0,0,0,.25)"}})]),_:1},8,["value"])]),_:1}),t(f,{label:"验证码",name:"verification_code"},{default:l(()=>[r("div",ie,[t(s,{value:a.formData.verification_code,"onUpdate:value":o[4]||(o[4]=e=>a.formData.verification_code=e),placeholder:"请输入验证码",size:"large"},{prefix:l(()=>[t(U,{style:{color:"rgba(0,0,0,.25)"}})]),_:1},8,["value"]),t(S,{disabled:!!a.countdown||!a.formData.mobile,onClick:a.sendVerificationCode,size:"large"},{default:l(()=>[D(x(a.countdown?`${a.countdown}秒后重试`:"获取验证码"),1)]),_:1},8,["disabled","onClick"])])]),_:1})],64)):J("",!0),a.loginType==="wechat"?(h(),y("div",le,[a.wechatQrCode?(h(),y("div",re,[r("img",{src:a.wechatQrCode,alt:"微信登录二维码",class:"wechat-qrcode"},null,8,ce),o[7]||(o[7]=r("p",{class:"qrcode-tip"},"请使用微信扫描二维码登录",-1)),o[8]||(o[8]=r("p",{class:"qrcode-sub-tip"},"扫码后请在微信中确认登录",-1))])):(h(),y("div",de,[t(M,{tip:"正在加载二维码..."})]))])):J("",!0),r("div",ue,[t(C,{checked:a.rememberMe,"onUpdate:checked":o[5]||(o[5]=e=>a.rememberMe=e)},{default:l(()=>o[9]||(o[9]=[D("记住账号")])),_:1},8,["checked"]),t(q,{to:"/forget-password",class:"forgot-password"},{default:l(()=>o[10]||(o[10]=[D("忘记密码?")])),_:1})]),t(f,null,{default:l(()=>[t(S,{type:"primary",loading:a.loading,size:"large",block:"",onClick:a.handleLogin},{default:l(()=>o[11]||(o[11]=[D(" 登录 ")])),_:1},8,["loading","onClick"])]),_:1})]),_:1},8,["model","rules"]),r("div",me,[r("div",pe,[o[12]||(o[12]=r("div",{class:"divider"},[r("span",null,"其他登录方式")],-1)),r("div",fe,[t(g,{title:"微信登录"},{default:l(()=>[t(m,{class:ee(["social-icon",{active:a.loginType==="wechat"}]),onClick:a.switchToWechatLogin},null,8,["class","onClick"])]),_:1}),t(g,{title:"QQ登录"},{default:l(()=>[t(W,{class:"social-icon"})]),_:1}),t(g,{title:"钉钉登录"},{default:l(()=>[t(z,{class:"social-icon"})]),_:1}),a.loginType==="account"?(h(),N(g,{key:0,title:"手机号登录"},{default:l(()=>[t(O,{class:"social-icon",onClick:a.switchToMobileLogin},null,8,["onClick"])]),_:1})):(h(),N(g,{key:1,title:"账号密码登录"},{default:l(()=>[t(b,{class:"social-icon",onClick:a.switchToAccountLogin},null,8,["onClick"])]),_:1}))])])])])]),t(Q,{visible:a.wechatLoginModal,"onUpdate:visible":o[6]||(o[6]=e=>a.wechatLoginModal=e),title:"微信扫码登录",footer:null,onCancel:a.handleWechatLoginCancel,width:"360px",centered:""},{default:l(()=>[r("div",ge,[r("img",{src:a.wechatQrCode,alt:"微信登录二维码",class:"wechat-qrcode"},null,8,ve),o[14]||(o[14]=r("p",{class:"qrcode-tip"},"请使用微信扫描二维码登录",-1))])]),_:1},8,["visible","onCancel"])])}const be=ae(oe,[["render",he],["__scopeId","data-v-459a5630"]]);export{be as default};
|