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