2 lines
13 KiB
JavaScript
2 lines
13 KiB
JavaScript
import{_ as V}from"./button.vue_vue_type_style_index_0_lang-fbfa965d.js";import{_ as Z}from"./BasicInput.vue_vue_type_style_index_0_lang-06536e2e.js";import{R as j,g as ee,i as O,d as B,u as M,E as R,h as E,o as m,c as I,b as c,e as p,w as f,k as S,l as a,W as ne,s as z,a0 as N,a1 as te,H as F,a2 as U,a as W,a3 as q,r as H,z as T,x as se,P as oe,a4 as ae,n as x,p as le,F as ue,q as ie,f as re}from"./index-c678e119.js";import{n as de}from"./phone-6ff17ec0.js";import{u as ce,I as pe}from"./Icon-671f08f9.js";import{F as A,_ as D}from"./index-679d69b0.js";import{S as P}from"./index-5203b45e.js";import{_ as L,T as me}from"./index-88858982.js";import"./index-c5016c96.js";import"./_plugin-vue_export-helper-edd5ed68.js";import"./usePrice-bc935b83.js";import"./index-e517c667.js";import"./SearchOutlined-445bfd70.js";import"./omit-30cc2465.js";import"./vnode-34fe2aaf.js";import"./FormItemContext-53695780.js";import"./isPlainObject-2f8cd8cc.js";import"./index-ea10bb13.js";import"./isSymbol-5130882b.js";import"./_flatRest-89cece1c.js";import"./Col-65d77001.js";import"./styleChecker-c202e4d7.js";import"./toArray-acd138e5.js";import"./index-27b4bb6d.js";import"./shallowequal-93b92d94.js";import"./useState-fb1fd992.js";import"./useRefs-d469f03d.js";import"./isMobile-e2e89480.js";const fe="/assets/logo-dd2a3541.png",ve=async e=>{const o=de(e.username),l=o.includes("@")?o:`${o}@example.com`;return await j.post("/auth/login-admin",{username:l,password:e.password})},ye=async e=>await j.post("/auth/login",e),he=async e=>await j.post("/auth/verify",e),G=ee("login",()=>{const e=O(""),o=O(null);return{mobile:e,id:o,setMobile:s=>{e.value=s},setId:s=>{o.value=s}}}),ge={class:"grid grid-cols-1 md:grid-cols-12 h-full bg-gradient"},_e={class:"md:col-span-3 flex justify-center items-center"},Oe={class:"min-h-[300px]"},we={key:1},be={key:1},Ie=c("div",{class:"md:col-span-9 md:flex md:justify-center md:items-center hidden"},[c("img",{src:fe,alt:"machartaa logo",class:"w-40vw"})],-1),ke=B({__name:"Panel",emits:["verify"],setup(e,{emit:o}){const l=O(0),t=O(!1),s=M(),v=R(),{prefixCls:g}=ce("login"),w=G(),u=E({username:"",password:""}),b=async i=>{var n,d,_,y;try{if(t.value=!0,i.username&&i.password){const h={...i,provider:"user"};console.log("Login payload:",h);const $=await ve(h);if(console.log("Login response:",$),(n=$==null?void 0:$.session)!=null&&n.access_token){await N($.session.access_token);try{await v.getMyInfo()}catch{te(),F.error("شما دسترسی ادمین ندارید");return}U(v.routePermissionKeys,s,v.isSuperAdmin);const r=W();await q(s,H(r.routes))}else F.error("توکن دریافتی نامعتبر است")}else F.error("وارد کردن تمامی فیلدها الزامی است")}catch(h){console.log("Login error:",h),console.log("Error response:",(d=h==null?void 0:h.response)==null?void 0:d.data),F.error(((y=(_=h==null?void 0:h.response)==null?void 0:_.data)==null?void 0:y.message)||"خطا در ورود به پنل کاربری")}finally{t.value=!1}},k=async i=>{try{if(t.value=!0,i.username!==""){w.setMobile(i.username);let n=await ye({...i,provider:"user"});w.setId(n.id),o("verify",!0)}else F.error("وارد کردن تمامی فیلدها الزامی است")}catch(n){console.log(n),F.error("خطا در ورود به پنل کاربری")}finally{t.value=!1}};return(i,n)=>{const d=Z,_=V;return m(),I("div",{class:z(["h-screen bg-image overflow-hidden",[`${a(g)}`]])},[c("div",ge,[c("div",_e,[c("div",Oe,[p(a(me),{activeKey:a(l),"onUpdate:activeKey":n[3]||(n[3]=y=>ne(l)?l.value=y:null)},{default:f(()=>[(m(),S(a(L),{tab:"ورود با شماره تلفن",key:0,"force-render":""},{default:f(()=>[p(a(A),{model:a(u),onFinish:b},{default:f(()=>[p(a(D),{label:"شماره تلفن",name:"username"},{default:f(()=>[p(d,{"place-holder":"مثال: 09123456789",value:a(u).username,"onUpdate:value":n[0]||(n[0]=y=>a(u).username=y)},null,8,["value"])]),_:1}),p(a(D),{label:"کلمه عبور",name:"password"},{default:f(()=>[p(d,{"is-password":"","place-holder":"کلمه عبور",value:a(u).password,"onUpdate:value":n[1]||(n[1]=y=>a(u).password=y)},null,8,["value"])]),_:1}),p(a(D),null,{default:f(()=>[p(_,{class:"mt-5 w-full",disabled:a(t),type:"primary","html-type":"submit"},{default:f(()=>[c("div",null,[a(t)?(m(),S(a(P),{key:0,size:"small"})):(m(),I("div",we,"ورود"))])]),_:1},8,["disabled"])]),_:1})]),_:1},8,["model"])]),_:1})),(m(),S(a(L),{tab:"ورود با رمز یک بار مصرف",key:1},{default:f(()=>[p(a(A),{model:a(u),onFinish:k},{default:f(()=>[p(a(D),{label:"تلفن همراه",name:"username"},{default:f(()=>[p(d,{"place-holder":"تلفن همراه",value:a(u).username,"onUpdate:value":n[2]||(n[2]=y=>a(u).username=y)},null,8,["value"])]),_:1}),p(a(D),null,{default:f(()=>[p(_,{class:"mt-5 w-full",disabled:a(t),type:"primary","html-type":"submit"},{default:f(()=>[c("div",null,[a(t)?(m(),S(a(P),{key:0,size:"small"})):(m(),I("div",be,"ورود"))])]),_:1},8,["disabled"])]),_:1})]),_:1},8,["model"])]),_:1}))]),_:1},8,["activeKey"])])]),Ie])],2)}}});var J=B({name:"SingleOtpInput",props:{inputType:{type:String,validator:e=>["number","tel","letter-numeric","password"].includes(e),default:"tel"},inputmode:{type:String,default:"numeric"},value:{type:[String,Number]},separator:{type:String},focus:{type:Boolean},inputClasses:{type:[String,Array]},conditionalClass:{type:String},shouldAutoFocus:{type:Boolean},isLastChild:{type:Boolean},placeholder:{type:String},isDisabled:{type:Boolean}},emits:["on-change","on-keydown","on-paste","on-focus","on-blur"],setup(e,o){let{emit:l}=o;const t=O(e.value||""),s=O(null),v=()=>(t.value=t.value.toString(),t.value.length>1&&(t.value=t.value.slice(0,1)),l("on-change",t.value)),g=n=>n>=65&&n<=90,w=n=>n>=48&&n<=57||n>=96&&n<=105,u=n=>{e.isDisabled&&n.preventDefault();const d=n||window.event,_=d.which?d.which:d.keyCode;w(_)||e.inputType==="letter-numeric"&&g(_)||[8,9,13,37,39,46,86].includes(_)?l("on-keydown",n):d.preventDefault()},b=n=>l("on-paste",n),k=()=>(s.value.select(),l("on-focus")),i=()=>l("on-blur");return T(()=>e.value,(n,d)=>{n!==d&&(t.value=n)}),T(()=>e.focus,(n,d)=>{d!==n&&s.value&&e.focus&&(s.value.focus(),s.value.select())}),se(()=>{s.value&&e.focus&&e.shouldAutoFocus&&(s.value.focus(),s.value.select())}),{handleOnChange:v,handleOnKeyDown:u,handleOnPaste:b,handleOnFocus:k,handleOnBlur:i,input:s,model:t,inputTypeValue:e.inputType==="letter-numeric"?"text":e.inputType}}});const Ce={style:{display:"flex","align-items":"center"}},Se=["type","inputmode","placeholder","disabled"],$e={key:0},Fe=["innerHTML"];function De(e,o,l,t,s,v){return m(),I("div",Ce,[oe(c("input",{"data-test":"single-input",type:e.inputTypeValue,inputmode:e.inputmode,placeholder:e.placeholder,disabled:e.isDisabled,ref:"input",min:"0",max:"9",maxlength:"1",pattern:"[0-9]","onUpdate:modelValue":o[0]||(o[0]=g=>e.model=g),class:z([e.inputClasses,e.conditionalClass,{"is-complete":e.model}]),onInput:o[1]||(o[1]=function(){return e.handleOnChange&&e.handleOnChange(...arguments)}),onKeydown:o[2]||(o[2]=function(){return e.handleOnKeyDown&&e.handleOnKeyDown(...arguments)}),onPaste:o[3]||(o[3]=function(){return e.handleOnPaste&&e.handleOnPaste(...arguments)}),onFocus:o[4]||(o[4]=function(){return e.handleOnFocus&&e.handleOnFocus(...arguments)}),onBlur:o[5]||(o[5]=function(){return e.handleOnBlur&&e.handleOnBlur(...arguments)})},null,42,Se),[[ae,e.model]]),!e.isLastChild&&e.separator?(m(),I("span",$e,[c("span",{innerHTML:e.separator},null,8,Fe)])):x("",!0)])}J.render=De;const Be=8,Te=37,Ae=39,Pe=46;var Q=B({name:"Vue3OtpInput",components:{SingleOtpInput:J},props:{value:{type:String,default:"",required:!0},numInputs:{default:4},separator:{type:String,default:"**"},inputClasses:{type:[String,Array]},conditionalClass:{type:Array,default:[]},inputType:{type:String,validator:e=>["number","tel","letter-numeric","password"].includes(e)},inputmode:{type:String,validator:e=>["numeric","text","tel","none"].includes(e),default:"numeric"},shouldAutoFocus:{type:Boolean,default:!1},placeholder:{type:Array,default:[]},isDisabled:{type:Boolean,default:!1}},setup(e,o){let{emit:l}=o;const t=O(0),s=O([]),v=O([]);T(()=>e.value,r=>{const C=a(r).split("");s.value=C},{immediate:!0});const g=r=>{t.value=r},w=()=>{t.value=-1},u=()=>s.value.join("").length===e.numInputs?(l("update:value",s.value.join("")),l("on-complete",s.value.join(""))):"Wait until the user enters the required number of characters",b=r=>{t.value=Math.max(Math.min(e.numInputs-1,r),0)},k=()=>{b(t.value+1)},i=()=>{b(t.value-1)},n=r=>{v.value=Object.assign([],s.value),s.value[t.value]=r,v.value.join("")!==s.value.join("")&&(l("update:value",s.value.join("")),l("on-change",s.value.join("")),u())};return{activeInput:t,otp:s,oldOtp:v,clearInput:()=>{s.value.length>0&&(l("update:value",""),l("on-change","")),s.value=[],t.value=0},handleOnPaste:r=>{r.preventDefault();const C=r.clipboardData.getData("text/plain").slice(0,e.numInputs-t.value).split("");if(e.inputType==="number"&&!C.join("").match(/^\d+$/)||e.inputType==="letter-numeric"&&!C.join("").match(/^\w+$/))return"Invalid pasted data";const K=s.value.slice(0,t.value).concat(C);return K.slice(0,e.numInputs).forEach(function(X,Y){s.value[Y]=X}),b(K.slice(0,e.numInputs).length),u()},handleOnKeyDown:r=>{switch(r.keyCode){case Be:r.preventDefault(),n(""),i();break;case Pe:r.preventDefault(),n("");break;case Te:r.preventDefault(),i();break;case Ae:r.preventDefault(),k();break}},handleOnBlur:w,changeCodeAtFocus:n,focusInput:b,focusNextInput:k,focusPrevInput:i,handleOnFocus:g,checkFilledAllInputs:u,handleOnChange:r=>{n(r),k()},fillInput:r=>{const C=r.split("");C.length===e.numInputs&&(s.value=C,l("update:value",s.value.join("")),l("on-complete",s.value.join("")))}}}});const je={style:{display:"flex"}},Ke={key:0,autocomplete:"off",name:"hidden",type:"text",style:{display:"none"}};function Le(e,o,l,t,s,v){const g=le("SingleOtpInput");return m(),I("div",je,[e.inputType==="password"?(m(),I("input",Ke)):x("",!0),(m(!0),I(ue,null,ie(e.numInputs,(w,u)=>(m(),S(g,{key:u,focus:e.activeInput===u,value:e.otp[u],separator:e.separator,"input-type":e.inputType,inputmode:e.inputmode,"input-classes":e.inputClasses,conditionalClass:e.conditionalClass[u],"is-last-child":u===e.numInputs-1,"should-auto-focus":e.shouldAutoFocus,placeholder:e.placeholder[u],"is-disabled":e.isDisabled,onOnChange:e.handleOnChange,onOnKeydown:e.handleOnKeyDown,onOnPaste:e.handleOnPaste,onOnFocus:b=>e.handleOnFocus(u),onOnBlur:e.handleOnBlur},null,8,["focus","value","separator","input-type","inputmode","input-classes","conditionalClass","is-last-child","should-auto-focus","placeholder","is-disabled","onOnChange","onOnKeydown","onOnPaste","onOnFocus","onOnBlur"]))),128))])}Q.render=Le;var Ve=(()=>{const e=Q;return e.install=o=>{o.component("Vue3OtpInput",e)},e})();const Me={class:"background"},Re={class:"h-full flex justify-center items-center"},Ee={class:"flex flex-col items-center min-w-[300px]"},ze=c("span",{class:"text-xl font-semibold"},"کد پیامک شده را وارد کنید",-1),Ne={class:"flex items-center"},Ue=c("span",{class:"text-gray-400 mt-1"},"09121234567",-1),We={class:"flex items-center text-gray-700 cursor-pointer"},qe=c("span",{class:"mx-2"},"ویرایش شماره",-1),He={class:"mt-5"},xe={class:"mt-4 w-full grid grid-cols-1 gap-4"},Ge={key:1},Je=B({__name:"Verification",emits:["verify"],setup(e,{emit:o}){const l=O(null),t=O(!1),s=G(),v=R(),g=M(),w=E({id:s.id,token:""});async function u(){try{t.value=!0;const i={...w,provider:"user"},{access_token:n}=await he(i);await N(n),await v.getMyInfo(),U(v.routePermissionKeys,g,v.isSuperAdmin);const d=W();await q(g,H(d.routes))}catch(i){console.log(i,"login error"),F.error("خطا در ورود به پنل کاربری")}finally{t.value=!1}}function b(i){w.token=i}async function k(i){w.token=i,await u()}return(i,n)=>{const d=pe,_=D,y=V,h=A;return m(),I("div",null,[c("div",Me,[c("div",Re,[c("div",Ee,[ze,c("div",Ne,[Ue,c("div",We,[qe,p(d,{icon:"vuesax-linear:edit",size:"18"})])]),c("div",He,[p(h,null,{default:f(()=>[p(_,{class:"error-token",rules:[{required:!0,message:"کد ارسال شده را وارد نمایید"},{min:4,max:4,message:"کد ارسال شده را وارد نمایید"}],name:"token"},{default:f(()=>[p(a(Ve),{style:{direction:"ltr"},class:"justify-center",ref_key:"refOtpInput",ref:l,autocomplete:"one-time-code","input-classes":"otp-input",separator:"","num-inputs":4,"should-auto-focus":!0,"is-input-num":!0,onOnChange:b,onOnComplete:k},null,512)]),_:1}),c("div",xe,[p(y,{class:"w-full",disabled:t.value,type:"primary","html-type":"submit",onClick:u},{default:f(()=>[c("div",null,[t.value?(m(),S(a(P),{key:0,size:"small"})):(m(),I("div",Ge,"ورود"))])]),_:1},8,["disabled"]),p(y,{class:"w-full",onClick:n[0]||(n[0]=$=>o("verify",!1))},{default:f(()=>[re("بازگشت به صفحه ورود")]),_:1})])]),_:1})])])])])])}}});const Sn=B({__name:"index",setup(e){const o=O(!1);return(l,t)=>(m(),I("div",null,[a(o)?(m(),S(Je,{key:0,onVerify:t[0]||(t[0]=s=>o.value=s)})):(m(),S(ke,{key:1,onVerify:t[1]||(t[1]=s=>o.value=s)}))]))}});export{Sn as default};
|