1 |
- import{a as j,aC as U,aB as z,aH as L,_ as R,r as G,f as K,q as H,ag as J,aj as c,c as A,o as I,S as a,M as $,K as t,J as O,b as F,G as Q,P as W,Q as X,a7 as Y,R as Z}from"./vue.YrNK8sx4.js";import{v as x,u as ee,d as T,f as D,K as oe,h as ae,S as M,a6 as se,a7 as te,M as re,A as ne,E as le,N as ce}from"./index.kH9BKUh7.js";import{a as me}from"./formatTime.in1fXasu.js";import{g as E,l as ie}from"./api.5so08cq1.js";import{M as de}from"./md5.DLPczxzP.js";import{_ as ue}from"./_plugin-vue_export-helper.DlAUqK2U.js";const pe=j({name:"loginAccount",setup(){const{t:e}=x.useI18n(),n=ee(),{themeConfig:v}=U(n),{userInfos:B}=U(T());z();const V=L(),r=R({isShowPassword:!1,ruleForm:{username:"",password:"",captcha:"",captchaKey:"",captchaImgBase:"",tenant_id:1},loading:{signIn:!1},agreePolicy:!0,rememberPassword:!1}),C=R({username:[{required:!0,message:"请填写账号",trigger:"blur"}],password:[{required:!0,message:"请填写密码",trigger:"blur"}],captcha:[{required:!0,message:"请填写验证码",trigger:"blur"}]}),u=G(),f=K(()=>me(new Date)),p=K(()=>D().systemConfig["base.captcha_state"]),_=async()=>{E().then(o=>{r.ruleForm.captchaImgBase=o.data.image_base,r.ruleForm.captchaKey=o.data.key})},b=async()=>{window.open(oe("/api/system/apply_for_trial/"))},g=async()=>{r.ruleForm.captcha="",E().then(o=>{r.ruleForm.captchaImgBase=o.data.image_base,r.ruleForm.captchaKey=o.data.key})},P=(o,s)=>{let m="";for(let i=0;i<o.length;i++){const d=o.charCodeAt(i),S=s.charCodeAt(i%s.length);m+=String.fromCharCode(d^S)}return btoa(m)},h=(o,s)=>{try{const m=atob(o);let i="";for(let d=0;d<m.length;d++){const S=m.charCodeAt(d),q=s.charCodeAt(d%s.length);i+=String.fromCharCode(S^q)}return i}catch{return console.warn("解密失败,可能是数据损坏"),""}},w=o=>"DVA_ADMIN_2024"+o,y=()=>{if(r.rememberPassword){const o=w(r.ruleForm.username),s=P(r.ruleForm.password,o);localStorage.setItem("rememberedUsername",r.ruleForm.username),localStorage.setItem("rememberedPassword",s),localStorage.setItem("rememberPasswordChecked","true"),console.log("密码已加密存储")}else localStorage.removeItem("rememberedUsername"),localStorage.removeItem("rememberedPassword"),localStorage.removeItem("rememberPasswordChecked")},l=()=>{const o=localStorage.getItem("rememberedUsername"),s=localStorage.getItem("rememberedPassword");if(localStorage.getItem("rememberPasswordChecked")==="true"&&o&&s){r.ruleForm.username=o;const i=w(o),d=h(s,i);d?(r.ruleForm.password=d,r.rememberPassword=!0,console.log("已成功加载并解密记住的密码")):(localStorage.removeItem("rememberedUsername"),localStorage.removeItem("rememberedPassword"),localStorage.removeItem("rememberPasswordChecked"),console.warn("密码解密失败,已清除存储数据"))}},N=async()=>{u.value&&await u.value.validate(o=>{o?ie({...r.ruleForm,password:de.hashStr(r.ruleForm.password)}).then(s=>{if(s.code===2e3){const{data:m}=s;ae.set("username",s.data.username),M.set("token",s.data.access),M.set("merchant_info",s.data.merchant_info),T().setPwdChangeCount(m.pwd_change_count),y(),v.value.isRequestRoutes?(te(),k()):(se(),k())}}).catch(s=>{g()}):re("请填写登录信息")})},k=()=>{ne().getSystemDictionarys();let o=f.value;B.value.pwd_change_count,V.push("/"),r.loading.signIn=!0;const s=e("message.signInText");le.success(`${o},${s}`),ce.start()};return H(()=>{_(),D().getSystemConfigs(),l()}),{refreshCaptcha:g,loginClick:N,loginSuccess:k,isShowCaptcha:p,state:r,formRef:u,rules:C,applyBtnClick:b,showApply:()=>window.location.href.indexOf("public")!=-1,handleRememberPassword:y,initRememberPassword:l,...J(r)}}}),ge={key:0,style:{"text-align":"center"}};function fe(e,n,v,B,V,r){const C=c("ele-User"),u=c("el-icon"),f=c("el-input"),p=c("el-form-item"),_=c("ele-Unlock"),b=c("ele-Position"),g=c("el-col"),P=c("el-image"),h=c("el-button"),w=c("el-checkbox"),y=c("el-form");return I(),A(Z,null,[a(y,{ref:"formRef",size:"large",class:"login-content-form",model:e.state.ruleForm,rules:e.rules,onKeyup:Y(e.loginClick,["enter"])},{default:t(()=>[a(p,{class:"login-animation1",prop:"username"},{default:t(()=>[a(f,{type:"text",placeholder:e.$t("message.account.accountPlaceholder1"),modelValue:e.ruleForm.username,"onUpdate:modelValue":n[0]||(n[0]=l=>e.ruleForm.username=l),clearable:"",autocomplete:"off"},{prefix:t(()=>[a(u,{class:"el-input__icon"},{default:t(()=>[a(C)]),_:1})]),_:1},8,["placeholder","modelValue"])]),_:1}),a(p,{class:"login-animation2",prop:"password"},{default:t(()=>[a(f,{type:e.isShowPassword?"text":"password",placeholder:e.$t("message.account.accountPlaceholder2"),modelValue:e.ruleForm.password,"onUpdate:modelValue":n[2]||(n[2]=l=>e.ruleForm.password=l)},{prefix:t(()=>[a(u,{class:"el-input__icon"},{default:t(()=>[a(_)]),_:1})]),suffix:t(()=>[F("i",{class:Q(["iconfont el-input__icon login-content-password",e.isShowPassword?"icon-yincangmima":"icon-xianshimima"]),onClick:n[1]||(n[1]=l=>e.isShowPassword=!e.isShowPassword)},null,2)]),_:1},8,["type","placeholder","modelValue"])]),_:1}),e.isShowCaptcha?(I(),O(p,{key:0,class:"login-animation3",prop:"captcha"},{default:t(()=>[a(g,{span:15},{default:t(()=>[a(f,{type:"text",maxlength:"4",placeholder:e.$t("message.account.accountPlaceholder3"),modelValue:e.ruleForm.captcha,"onUpdate:modelValue":n[3]||(n[3]=l=>e.ruleForm.captcha=l),clearable:"",autocomplete:"off"},{prefix:t(()=>[a(u,{class:"el-input__icon"},{default:t(()=>[a(b)]),_:1})]),_:1},8,["placeholder","modelValue"])]),_:1}),a(g,{span:1}),a(g,{span:8},{default:t(()=>[a(h,{class:"login-content-captcha"},{default:t(()=>[a(P,{src:e.ruleForm.captchaImgBase,onClick:e.refreshCaptcha},null,8,["src","onClick"])]),_:1})]),_:1})]),_:1})):$("",!0),a(p,null,{default:t(()=>[a(w,{modelValue:e.state.rememberPassword,"onUpdate:modelValue":n[4]||(n[4]=l=>e.state.rememberPassword=l)},{default:t(()=>n[5]||(n[5]=[W(" 记住密码 ")])),_:1},8,["modelValue"])]),_:1}),a(p,{class:"login-animation4"},{default:t(()=>[a(h,{type:"primary",class:"login-content-submit",round:"",onClick:e.loginClick,loading:e.loading.signIn,disabled:!e.state.agreePolicy},{default:t(()=>[F("span",null,X(e.$t("message.account.accountBtnText")),1)]),_:1},8,["onClick","loading","disabled"])]),_:1})]),_:1},8,["model","rules","onKeyup"]),e.showApply()?(I(),A("div",ge,[a(h,{class:"login-content-apply",link:"",type:"primary",plain:"",round:"",onClick:e.applyBtnClick},{default:t(()=>n[6]||(n[6]=[F("span",null,"申请试用",-1)])),_:1},8,["onClick"])])):$("",!0)],64)}const ke=ue(pe,[["render",fe],["__scopeId","data-v-c0279bc6"]]);export{ke as default};
|