2 lines
12 KiB
JavaScript
2 lines
12 KiB
JavaScript
import{_ as L}from"./button.vue_vue_type_style_index_0_lang-1caad4e7.js";import{_ as X}from"./BasicInput.vue_vue_type_style_index_0_lang-0064d90a.js";import{G as Y,J as V,f as Z,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 ee,p as N,R as U,S as ne,D as F,T as z,U as W,E as T,v as te,V as se,W as ae,k as q,l as oe,F as le,n as ie,e as ue}from"./index-a08997de.js";import{n as re}from"./phone-6ff17ec0.js";import{u as de,I as ce}from"./Icon-c87fac13.js";import{F as P,_ as D}from"./index-1b6f1280.js";import{S as A}from"./index-23f9a644.js";import{T as K,a as pe}from"./index-a6b85004.js";import"./_plugin-vue_export-helper-20260c74.js";import"./usePrice-bc935b83.js";import"./index-8b4fbdda.js";import"./FormItemContext-5c31efc9.js";import"./vnode-ddd966cb.js";import"./isPlainObject-a1ebcbd7.js";import"./isSymbol-6a02f777.js";import"./_flatRest-e8546dba.js";import"./Col-231bd990.js";import"./styleChecker-0d78d27e.js";import"./toArray-efae666c.js";import"./useState-4330fc6d.js";import"./useRefs-e28c9a2f.js";const me="/assets/logo-dd2a3541.png",fe=async e=>{const a=re(e.username),{data:l,error:n}=await Y.auth.signInWithPassword({email:`${a}@example.com`,password:e.password});if(n)throw n;return l},ve=async e=>await V.post("/auth/login",e),ye=async e=>await V.post("/auth/verify",e),H=Z("login",()=>{const e=w(""),a=w(null);return{mobile:e,id:a,setMobile:s=>{e.value=s},setId:s=>{a.value=s}}}),he={class:"grid grid-cols-1 md:grid-cols-12 h-full bg-gradient"},ge={class:"md:col-span-3 flex justify-center items-center"},_e={class:"min-h-[300px]"},we={key:1},Oe={key:1},be=d("div",{class:"md:col-span-9 md:flex md:justify-center md:items-center hidden"},[d("img",{src:me,alt:"machartaa logo",class:"w-40vw"})],-1),Ie=B({__name:"Panel",emits:["verify"],setup(e,{emit:a}){const l=w(0),n=w(!1),s=M(),y=E(),{prefixCls:g}=de("login"),O=H(),i=R({username:"",password:""}),b=async u=>{var t,m,_,v;try{if(n.value=!0,u.username&&u.password){const h={...u,provider:"user"};console.log("Login payload:",h);const S=await fe(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{ne(),F.error("شما دسترسی ادمین ندارید");return}z(y.routePermissionKeys,s,y.isSuperAdmin),await W(s)}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 u=>{try{if(n.value=!0,u.username!==""){O.setMobile(u.username);let t=await ve({...u,provider:"user"});O.setId(t.id),a("verify",!0)}else F.error("وارد کردن تمامی فیلدها الزامی است")}catch(t){console.log(t),F.error("خطا در ورود به پنل کاربری")}finally{n.value=!1}};return(u,t)=>{const m=X,_=L;return p(),I("div",{class:N(["h-screen bg-image overflow-hidden",[`${o(g)}`]])},[d("div",he,[d("div",ge,[d("div",_e,[c(o(pe),{activeKey:o(l),"onUpdate:activeKey":t[3]||(t[3]=v=>ee(l)?l.value=v:null)},{default:f(()=>[(p(),$(o(K),{tab:"ورود با شماره تلفن",key:0,"force-render":""},{default:f(()=>[c(o(P),{model:o(i),onFinish:b},{default:f(()=>[c(o(D),{label:"شماره تلفن",name:"username"},{default:f(()=>[c(m,{"place-holder":"مثال: 09123456789",value:o(i).username,"onUpdate:value":t[0]||(t[0]=v=>o(i).username=v)},null,8,["value"])]),_:1}),c(o(D),{label:"کلمه عبور",name:"password"},{default:f(()=>[c(m,{"is-password":"","place-holder":"کلمه عبور",value:o(i).password,"onUpdate:value":t[1]||(t[1]=v=>o(i).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(A),{key:0,size:"small"})):(p(),I("div",we,"ورود"))])]),_:1},8,["disabled"])]),_:1})]),_:1},8,["model"])]),_:1})),(p(),$(o(K),{tab:"ورود با رمز یک بار مصرف",key:1},{default:f(()=>[c(o(P),{model:o(i),onFinish:k},{default:f(()=>[c(o(D),{label:"تلفن همراه",name:"username"},{default:f(()=>[c(m,{"place-holder":"تلفن همراه",value:o(i).username,"onUpdate:value":t[2]||(t[2]=v=>o(i).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(A),{key:0,size:"small"})):(p(),I("div",Oe,"ورود"))])]),_:1},8,["disabled"])]),_:1})]),_:1},8,["model"])]),_:1}))]),_:1},8,["activeKey"])])]),be])],2)}}});var x=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,i=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")),u=()=>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())}),te(()=>{s.value&&e.focus&&e.shouldAutoFocus&&(s.value.focus(),s.value.select())}),{handleOnChange:y,handleOnKeyDown:i,handleOnPaste:b,handleOnFocus:k,handleOnBlur:u,input:s,model:n,inputTypeValue:e.inputType==="letter-numeric"?"text":e.inputType}}});const ke={style:{display:"flex","align-items":"center"}},Ce=["type","inputmode","placeholder","disabled"],$e={key:0},Se=["innerHTML"];function Fe(e,a,l,n,s,y){return p(),I("div",ke,[se(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,Ce),[[ae,e.model]]),!e.isLastChild&&e.separator?(p(),I("span",$e,[d("span",{innerHTML:e.separator},null,8,Se)])):q("",!0)])}x.render=Fe;const De=8,Be=37,Te=39,Pe=46;var G=B({name:"Vue3OtpInput",components:{SingleOtpInput:x},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},i=()=>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)},u=()=>{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("")),i())};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(J,Q){s.value[Q]=J}),b(j.slice(0,e.numInputs).length),i()},handleOnKeyDown:r=>{switch(r.keyCode){case De:r.preventDefault(),t(""),u();break;case Pe:r.preventDefault(),t("");break;case Be:r.preventDefault(),u();break;case Te:r.preventDefault(),k();break}},handleOnBlur:O,changeCodeAtFocus:t,focusInput:b,focusNextInput:k,focusPrevInput:u,handleOnFocus:g,checkFilledAllInputs:i,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"}},je={key:0,autocomplete:"off",name:"hidden",type:"text",style:{display:"none"}};function Ke(e,a,l,n,s,y){const g=oe("SingleOtpInput");return p(),I("div",Ae,[e.inputType==="password"?(p(),I("input",je)):q("",!0),(p(!0),I(le,null,ie(e.numInputs,(O,i)=>(p(),$(g,{key:i,focus:e.activeInput===i,value:e.otp[i],separator:e.separator,"input-type":e.inputType,inputmode:e.inputmode,"input-classes":e.inputClasses,conditionalClass:e.conditionalClass[i],"is-last-child":i===e.numInputs-1,"should-auto-focus":e.shouldAutoFocus,placeholder:e.placeholder[i],"is-disabled":e.isDisabled,onOnChange:e.handleOnChange,onOnKeydown:e.handleOnKeyDown,onOnPaste:e.handleOnPaste,onOnFocus:b=>e.handleOnFocus(i),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))])}G.render=Ke;var Le=(()=>{const e=G;return e.install=a=>{a.component("Vue3OtpInput",e)},e})();const Ve={class:"background"},Me={class:"h-full flex justify-center items-center"},Ee={class:"flex flex-col items-center min-w-[300px]"},Re=d("span",{class:"text-xl font-semibold"},"کد پیامک شده را وارد کنید",-1),Ne={class:"flex items-center"},Ue=d("span",{class:"text-gray-400 mt-1"},"09121234567",-1),ze={class:"flex items-center text-gray-700 cursor-pointer"},We=d("span",{class:"mx-2"},"ویرایش شماره",-1),qe={class:"mt-5"},He={class:"mt-4 w-full grid grid-cols-1 gap-4"},xe={key:1},Ge=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 i(){try{n.value=!0;const u={...O,provider:"user"},{access_token:t}=await ye(u);await U(t),await y.getMyInfo(),z(["*"],g),await W(g)}catch(u){console.log(u,"login error"),F.error("خطا در ورود به پنل کاربری")}finally{n.value=!1}}function b(u){O.token=u}async function k(u){O.token=u,await i()}return(u,t)=>{const m=ce,_=D,v=L,h=P;return p(),I("div",null,[d("div",Ve,[d("div",Me,[d("div",Ee,[Re,d("div",Ne,[Ue,d("div",ze,[We,c(m,{icon:"vuesax-linear:edit",size:"18"})])]),d("div",qe,[c(h,null,{default:f(()=>[c(_,{class:"error-token",rules:[{required:!0,message:"کد ارسال شده را وارد نمایید"},{min:4,max:4,message:"کد ارسال شده را وارد نمایید"}],name:"token"},{default:f(()=>[c(o(Le),{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:i},{default:f(()=>[d("div",null,[n.value?(p(),$(o(A),{key:0,size:"small"})):(p(),I("div",xe,"ورود"))])]),_:1},8,["disabled"]),c(v,{class:"w-full",onClick:t[0]||(t[0]=S=>a("verify",!1))},{default:f(()=>[ue("بازگشت به صفحه ورود")]),_:1})])]),_:1})])])])])])}}});const gn=B({__name:"index",setup(e){const a=w(!1);return(l,n)=>(p(),I("div",null,[o(a)?(p(),$(Ge,{key:0,onVerify:n[0]||(n[0]=s=>a.value=s)})):(p(),$(Ie,{key:1,onVerify:n[1]||(n[1]=s=>a.value=s)}))]))}});export{gn as default};
|