2 lines
12 KiB
JavaScript
2 lines
12 KiB
JavaScript
import{_ as L}from"./button.vue_vue_type_style_index_0_lang-851afdd8.js";import{_ as Q}from"./BasicInput.vue_vue_type_style_index_0_lang-5aefde0f.js";import{I as X,a1 as V,f as Y,g as _,d as B,u as M,A as E,r as R,o as p,c as I,a as d,b as c,w as f,i as $,j as o,y as Z,q as N,a3 as U,a4 as ee,a5 as z,D as F,P as T,x as ne,a6 as te,a7 as se,k as W,n as ae,F as oe,p as le,e as ue}from"./index-82b07f49.js";import{u as ie,I as re}from"./Icon-04c02c0b.js";import{F as A,_ as D}from"./index-2a5d6560.js";import{S as P}from"./index-1f61ecf5.js";import{T as K,a as de}from"./index-a4d2dbbb.js";import"./_plugin-vue_export-helper-f81f33f1.js";import"./usePrice-7afab779.js";import"./index-c6d6dccd.js";import"./FormItemContext-f4f190fd.js";import"./vnode-007df887.js";import"./isPlainObject-f3a46277.js";import"./shallowequal-17b27246.js";import"./Col-5d52aed9.js";import"./toArray-e3bbd719.js";import"./useState-e0a5bff5.js";import"./useRefs-e9385981.js";const ce="/assets/logo-dd2a3541.png",pe=async e=>{const{data:a,error:l}=await X.auth.signInWithPassword({email:e.username+"@example.com",password:e.password});if(l)throw l;return a},me=async e=>await V.post("/auth/login",e),fe=async e=>await V.post("/auth/verify",e),q=Y("login",()=>{const e=_(""),a=_(null);return{mobile:e,id:a,setMobile:s=>{e.value=s},setId:s=>{a.value=s}}}),ve={class:"grid grid-cols-1 md:grid-cols-12 h-full bg-gradient"},ye={class:"md:col-span-3 flex justify-center items-center"},he={class:"min-h-[300px]"},ge={key:1},_e={key:1},we=d("div",{class:"md:col-span-9 md:flex md:justify-center md:items-center hidden"},[d("img",{src:ce,alt:"machartaa logo",class:"w-40vw"})],-1),Oe=B({__name:"Panel",emits:["verify"],setup(e,{emit:a}){const l=_(0),t=_(!1),s=M(),w=E(),{prefixCls:h}=ie("login"),O=q(),u=R({username:"",password:""}),b=async i=>{var n,m,g,v;try{if(t.value=!0,i.username&&i.password){const y={...i,provider:"user"};console.log("Login payload:",y);const S=await pe(y);console.log("Login response:",S),(n=S==null?void 0:S.session)!=null&&n.access_token?(await U(S.session.access_token),console.log("Token stored:",ee()),await w.getMyInfo(),z(["*"],s),await s.push({name:"dashboard"})):F.error("توکن دریافتی نامعتبر است")}else F.error("وارد کردن تمامی فیلدها الزامی است")}catch(y){console.log("Login error:",y),console.log("Error response:",(m=y==null?void 0:y.response)==null?void 0:m.data),F.error(((v=(g=y==null?void 0:y.response)==null?void 0:g.data)==null?void 0:v.message)||"خطا در ورود به پنل کاربری")}finally{t.value=!1}},k=async i=>{try{if(t.value=!0,i.username!==""){O.setMobile(i.username);let n=await me({...i,provider:"user"});O.setId(n.id),a("verify",!0)}else F.error("وارد کردن تمامی فیلدها الزامی است")}catch(n){console.log(n),F.error("خطا در ورود به پنل کاربری")}finally{t.value=!1}};return(i,n)=>{const m=Q,g=L;return p(),I("div",{class:N(["h-screen bg-image overflow-hidden",[`${o(h)}`]])},[d("div",ve,[d("div",ye,[d("div",he,[c(o(de),{activeKey:o(l),"onUpdate:activeKey":n[3]||(n[3]=v=>Z(l)?l.value=v:null)},{default:f(()=>[(p(),$(o(K),{tab:"ورود با نام کاربری",key:0,"force-render":""},{default:f(()=>[c(o(A),{model:o(u),onFinish:b},{default:f(()=>[c(o(D),{label:"نام کاربری",name:"username"},{default:f(()=>[c(m,{"place-holder":"نام کاربری",value:o(u).username,"onUpdate:value":n[0]||(n[0]=v=>o(u).username=v)},null,8,["value"])]),_:1}),c(o(D),{label:"کلمه عبور",name:"password"},{default:f(()=>[c(m,{"is-password":"","place-holder":"کلمه عبور",value:o(u).password,"onUpdate:value":n[1]||(n[1]=v=>o(u).password=v)},null,8,["value"])]),_:1}),c(o(D),null,{default:f(()=>[c(g,{class:"mt-5 w-full",disabled:o(t),type:"primary","html-type":"submit"},{default:f(()=>[d("div",null,[o(t)?(p(),$(o(P),{key:0,size:"small"})):(p(),I("div",ge,"ورود"))])]),_:1},8,["disabled"])]),_:1})]),_:1},8,["model"])]),_:1})),(p(),$(o(K),{tab:"ورود با رمز یک بار مصرف",key:1},{default:f(()=>[c(o(A),{model:o(u),onFinish:k},{default:f(()=>[c(o(D),{label:"تلفن همراه",name:"username"},{default:f(()=>[c(m,{"place-holder":"تلفن همراه",value:o(u).username,"onUpdate:value":n[2]||(n[2]=v=>o(u).username=v)},null,8,["value"])]),_:1}),c(o(D),null,{default:f(()=>[c(g,{class:"mt-5 w-full",disabled:o(t),type:"primary","html-type":"submit"},{default:f(()=>[d("div",null,[o(t)?(p(),$(o(P),{key:0,size:"small"})):(p(),I("div",_e,"ورود"))])]),_:1},8,["disabled"])]),_:1})]),_:1},8,["model"])]),_:1}))]),_:1},8,["activeKey"])])]),we])],2)}}});var H=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,a){let{emit:l}=a;const t=_(e.value||""),s=_(null),w=()=>(t.value=t.value.toString(),t.value.length>1&&(t.value=t.value.slice(0,1)),l("on-change",t.value)),h=n=>n>=65&&n<=90,O=n=>n>=48&&n<=57||n>=96&&n<=105,u=n=>{e.isDisabled&&n.preventDefault();const m=n||window.event,g=m.which?m.which:m.keyCode;O(g)||e.inputType==="letter-numeric"&&h(g)||[8,9,13,37,39,46,86].includes(g)?l("on-keydown",n):m.preventDefault()},b=n=>l("on-paste",n),k=()=>(s.value.select(),l("on-focus")),i=()=>l("on-blur");return T(()=>e.value,(n,m)=>{n!==m&&(t.value=n)}),T(()=>e.focus,(n,m)=>{m!==n&&s.value&&e.focus&&(s.value.focus(),s.value.select())}),ne(()=>{s.value&&e.focus&&e.shouldAutoFocus&&(s.value.focus(),s.value.select())}),{handleOnChange:w,handleOnKeyDown:u,handleOnPaste:b,handleOnFocus:k,handleOnBlur:i,input:s,model:t,inputTypeValue:e.inputType==="letter-numeric"?"text":e.inputType}}});const be={style:{display:"flex","align-items":"center"}},Ie=["type","inputmode","placeholder","disabled"],ke={key:0},Ce=["innerHTML"];function $e(e,a,l,t,s,w){return p(),I("div",be,[te(d("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":a[0]||(a[0]=h=>e.model=h),class:N([e.inputClasses,e.conditionalClass,{"is-complete":e.model}]),onInput:a[1]||(a[1]=function(){return e.handleOnChange&&e.handleOnChange(...arguments)}),onKeydown:a[2]||(a[2]=function(){return e.handleOnKeyDown&&e.handleOnKeyDown(...arguments)}),onPaste:a[3]||(a[3]=function(){return e.handleOnPaste&&e.handleOnPaste(...arguments)}),onFocus:a[4]||(a[4]=function(){return e.handleOnFocus&&e.handleOnFocus(...arguments)}),onBlur:a[5]||(a[5]=function(){return e.handleOnBlur&&e.handleOnBlur(...arguments)})},null,42,Ie),[[se,e.model]]),!e.isLastChild&&e.separator?(p(),I("span",ke,[d("span",{innerHTML:e.separator},null,8,Ce)])):W("",!0)])}H.render=$e;const Se=8,Fe=37,De=39,Be=46;var x=B({name:"Vue3OtpInput",components:{SingleOtpInput:H},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,a){let{emit:l}=a;const t=_(0),s=_([]),w=_([]);T(()=>e.value,r=>{const C=o(r).split("");s.value=C},{immediate:!0});const h=r=>{t.value=r},O=()=>{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=>{w.value=Object.assign([],s.value),s.value[t.value]=r,w.value.join("")!==s.value.join("")&&(l("update:value",s.value.join("")),l("on-change",s.value.join("")),u())};return{activeInput:t,otp:s,oldOtp:w,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 j=s.value.slice(0,t.value).concat(C);return j.slice(0,e.numInputs).forEach(function(G,J){s.value[J]=G}),b(j.slice(0,e.numInputs).length),u()},handleOnKeyDown:r=>{switch(r.keyCode){case Se:r.preventDefault(),n(""),i();break;case Be:r.preventDefault(),n("");break;case Fe:r.preventDefault(),i();break;case De:r.preventDefault(),k();break}},handleOnBlur:O,changeCodeAtFocus:n,focusInput:b,focusNextInput:k,focusPrevInput:i,handleOnFocus:h,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 Te={style:{display:"flex"}},Ae={key:0,autocomplete:"off",name:"hidden",type:"text",style:{display:"none"}};function Pe(e,a,l,t,s,w){const h=ae("SingleOtpInput");return p(),I("div",Te,[e.inputType==="password"?(p(),I("input",Ae)):W("",!0),(p(!0),I(oe,null,le(e.numInputs,(O,u)=>(p(),$(h,{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))])}x.render=Pe;var je=(()=>{const e=x;return e.install=a=>{a.component("Vue3OtpInput",e)},e})();const Ke={class:"background"},Le={class:"h-full flex justify-center items-center"},Ve={class:"flex flex-col items-center min-w-[300px]"},Me=d("span",{class:"text-xl font-semibold"},"کد پیامک شده را وارد کنید",-1),Ee={class:"flex items-center"},Re=d("span",{class:"text-gray-400 mt-1"},"09121234567",-1),Ne={class:"flex items-center text-gray-700 cursor-pointer"},Ue=d("span",{class:"mx-2"},"ویرایش شماره",-1),ze={class:"mt-5"},We={class:"mt-4 w-full grid grid-cols-1 gap-4"},qe={key:1},He=B({__name:"Verification",emits:["verify"],setup(e,{emit:a}){const l=_(null),t=_(!1),s=q(),w=E(),h=M(),O=R({id:s.id,token:""});async function u(){try{t.value=!0;const i={...O,provider:"user"},{access_token:n}=await fe(i);await U(n),await w.getMyInfo(),z(["*"],h),await h.push({name:"dashboard"})}catch(i){console.log(i,"login error"),F.error("خطا در ورود به پنل کاربری")}finally{t.value=!1}}function b(i){O.token=i}async function k(i){O.token=i,await u()}return(i,n)=>{const m=re,g=D,v=L,y=A;return p(),I("div",null,[d("div",Ke,[d("div",Le,[d("div",Ve,[Me,d("div",Ee,[Re,d("div",Ne,[Ue,c(m,{icon:"vuesax-linear:edit",size:"18"})])]),d("div",ze,[c(y,null,{default:f(()=>[c(g,{class:"error-token",rules:[{required:!0,message:"کد ارسال شده را وارد نمایید"},{min:4,max:4,message:"کد ارسال شده را وارد نمایید"}],name:"token"},{default:f(()=>[c(o(je),{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}),d("div",We,[c(v,{class:"w-full",disabled:t.value,type:"primary","html-type":"submit",onClick:u},{default:f(()=>[d("div",null,[t.value?(p(),$(o(P),{key:0,size:"small"})):(p(),I("div",qe,"ورود"))])]),_:1},8,["disabled"]),c(v,{class:"w-full",onClick:n[0]||(n[0]=S=>a("verify",!1))},{default:f(()=>[ue("بازگشت به صفحه ورود")]),_:1})])]),_:1})])])])])])}}});const mn=B({__name:"index",setup(e){const a=_(!1);return(l,t)=>(p(),I("div",null,[o(a)?(p(),$(He,{key:0,onVerify:t[0]||(t[0]=s=>a.value=s)})):(p(),$(Oe,{key:1,onVerify:t[1]||(t[1]=s=>a.value=s)}))]))}});export{mn as default};
|