2 lines
12 KiB
JavaScript
2 lines
12 KiB
JavaScript
|
|
import{aA as U,aB as q,r as L,l as h,c as y,m as A,al as I,z as H,A as c,B as t,D as E,R as v,a5 as B,P as f,M as w,J as k,O as M,u as N}from"./vue-vendor-164775a6.js";import{_ as R,u as z,a as D,s as F,l as J,b as O}from"./index-9349eeb8.js";import{E as u}from"./element-plus-83a396df.js";import"./utils-edfcd65b.js";const W={class:"login-page"},j={class:"login-card"},G={class:"login-tabs"},Q={width:"248",height:"59",viewBox:"0 0 248 59",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:"tabs-svg"},X={class:"login-form"},Y={class:"email-login"},e2={class:"email-input-group"},s2={key:0,class:"input-error"},o2={key:0,class:"code-input-wrapper"},a2={key:0,class:"input-error"},t2={key:1,class:"password-input-group"},l2={key:0,class:"input-error"},r2={class:"agreement-text"},n2={__name:"Login",setup(i2){const K=U(),b=q(),g=z(),p=L(0);let x=null;const r=L("email"),o=h({email:"",code:"",password:""}),a=h({email:"",code:"",password:"",server:""}),d=L(null),C=L(null),V=L(null),_=y(()=>/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(o.email)),S=y(()=>/^\d{6}$/.test(o.code)),$=y(()=>o.password&&o.password.length>=6);y(()=>r.value==="email"?_.value&&S.value:_.value&&$.value),A(()=>{b.query.email&&(o.email=b.query.email)});const P=async()=>{var m,e,n;if(a.email="",a.code="",a.password="",a.server="",!o.email){a.email="请输入邮箱地址",d.value&&d.value.focus&&d.value.focus();return}if(!_.value){a.email="请输入正确的邮箱地址",d.value&&d.value.focus&&d.value.focus();return}try{const s=await F(o.email);s.data&&s.data.success?(u.success("验证码已发送到您的邮箱"),T()):u.error(((m=s.data)==null?void 0:m.message)||"发送失败")}catch(s){console.error("发送验证码失败:",s),u.error(((n=(e=s.response)==null?void 0:e.data)==null?void 0:n.message)||"网络错误,请稍后重试")}},T=()=>{p.value=60,x=setInterval(()=>{p.value--,p.value<=0&&(clearInterval(x),x=null)},1e3)},Z=async()=>{var m,e,n;if(!o.email){u.warning("请输入邮箱地址");return}if(!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(o.email)){u.warning("请输入正确的邮箱地址");return}try{console.log("开始登录... 登录方式:",r);let s=null;if(r.value==="email"){if(!o.code){a.code="请输入验证码",C.value&&C.value.focus&&C.value.focus();return}if(!S.value){a.code="验证码格式不正确,请输入6位数字",C.value&&C.value.focus&&C.value.focus();return}s=await J({email:o.email,code:o.code})}else{if(!o.password){a.password="请输入密码",V.value&&V.value.focus&&V.value.focus();return}if(!$.value){a.password="密码至少 6 位",V.value&&V.value.focus&&V.value.focus();return}s=await O({email:o.email,password:o.password})}if(s&&s.data&&s.data.success){sessionStorage.setItem("token",s.data.data.token),sessionStorage.setItem("user",JSON.stringify(s.data.data.user)),g.user=s.data.data.user,g.token=s.data.data.token,console.log("登录成功,用户信息:",g.user),u.success("登录成功"),await new Promise(i=>setTimeout(i,200));const l=b.query.redirect||"/profile";console.log("准备跳转到:",l),await K.replace(l),console.log("路由跳转完成")}else{const l=((m=s==null?void 0:s.data)==null?void 0:m.message)||"登录失败";a.server=l,u.error(l)}}catch(s){console.error("Login error:",s);const l=((n=(e=s.response)==null?void 0:e.data)==null?void 0:n.message)||"登录失败,请重试";a.server=l,u.error(l)}};return(m,e)=>{const n=I("el-input"),s=I("el-button"),l=I("router-link");return H(),c("div",W,[e[13]||(e[13]=t("div",{class:"logo"},[t("img",{src:D,alt:"Logo"})],-1)),t("div",j,[e[12]||(e[12]=t("div",{class:"welcome-title"},[t("span",{class:"welcome-text"},"欢迎来到"),t("span",{class:"brand-name"},"VidFlow")],-1)),t("div",G,[(H(),c("svg",Q,[t("g",{class:E(["tab-email",{active:r.value==="email"}]),onClick:e[0]||(e[0]=i=>r.value="email"),style:{cursor:"pointer"}},[...e[5]||(e[5]=[t("path",{d:"M13.598 21.112V40.638H11.076V39.13H4.316V40.638H1.768V21.112H6.344V17.55H8.996V21.112H13.598ZM4.316 36.712H6.344V31.122H4.316V36.712ZM8.996 36.712H11.076V31.122H8.996V36.712ZM4.316 28.73H6.344V23.556H4.316V28.73ZM8.996 23.556V28.73H11.076V23.556H8.996
|