2 lines
13 KiB
JavaScript
2 lines
13 KiB
JavaScript
import{_ as V}from"./button.vue_vue_type_style_index_0_lang-2b2ee941.js";import{_ as Y}from"./BasicInput.vue_vue_type_style_index_0_lang-c6922e3c.js";import{Q as j,g as ee,i as O,d as B,u as M,D 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,z as ne,s as z,Z as N,$ as te,G as F,a0 as U,a as q,a1 as W,r as H,y as T,x as se,O as oe,a2 as ae,n as x,p as le,F as ue,q as ie,f as re}from"./index-ab3b0b84.js";import{n as de}from"./phone-6ff17ec0.js";import{u as ce,I as pe}from"./Icon-b552f0cb.js";import{F as A,_ as D}from"./index-993bd9f9.js";import{S as P}from"./index-cbd716ee.js";import{_ as L,T as me}from"./index-b305a6df.js";import"./index-086ff91e.js";import"./_plugin-vue_export-helper-6c5748cb.js";import"./usePrice-bc935b83.js";import"./index-adf5fd7f.js";import"./SearchOutlined-a36e5cce.js";import"./omit-837670e8.js";import"./vnode-602d90c4.js";import"./FormItemContext-548f4b58.js";import"./isPlainObject-d617fbb5.js";import"./index-d5e11315.js";import"./isSymbol-5cc45ff5.js";import"./_flatRest-289ae805.js";import"./Col-48c01651.js";import"./styleChecker-558deef9.js";import"./toArray-78940ccb.js";import"./index-b2118e3c.js";import"./shallowequal-39bf2166.js";import"./useState-7883cedd.js";import"./useRefs-3f675f69.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=q();await W(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=Y,_=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 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,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)])}Q.render=De;const Be=8,Te=37,Ae=39,Pe=46;var Z=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,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(J,X){s.value[X]=J}),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))])}Z.render=Le;var Ve=(()=>{const e=Z;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),qe={class:"flex items-center text-gray-700 cursor-pointer"},We=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},Qe=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=q();await W(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",qe,[We,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(Qe,{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};
|