Files
machartaa_admin_dist/dist/assets/index-3921c35c.js
T
2026-08-22 12:46:02 +03:30

2 lines
13 KiB
JavaScript

import{_ as V}from"./button.vue_vue_type_style_index_0_lang-6c8a1754.js";import{_ as Z}from"./BasicInput.vue_vue_type_style_index_0_lang-716e704a.js";import{N as j,f as J,g as O,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 Q,p as N,V as z,W as ee,D as F,X as U,Y as W,E as T,v as ne,Z as te,$ as se,k as q,l as ae,F as oe,n as le,e as ie}from"./index-b8949cd5.js";import{n as ue}from"./phone-6ff17ec0.js";import{u as re,I as de}from"./Icon-a994075d.js";import{F as A,_ as D}from"./index-9f670063.js";import{S as P}from"./index-f14a229e.js";import{_ as L,T as ce}from"./index-6175522e.js";import"./index-8b168f42.js";import"./_plugin-vue_export-helper-80a7ceaa.js";import"./usePrice-bc935b83.js";import"./index-be8f184f.js";import"./SearchOutlined-78438a74.js";import"./omit-df5a2f6f.js";import"./vnode-30b649a7.js";import"./FormItemContext-9a696347.js";import"./isPlainObject-ca054af0.js";import"./index-3f37bcfd.js";import"./isSymbol-71c709aa.js";import"./_flatRest-1538f4ef.js";import"./Col-729d4045.js";import"./styleChecker-b373a9d5.js";import"./toArray-6496b5b4.js";import"./index-21c91830.js";import"./shallowequal-a1fb5178.js";import"./useState-3541c1c7.js";import"./useRefs-ac0fbe98.js";import"./isMobile-e2e89480.js";const pe="/assets/logo-dd2a3541.png",me=async e=>{const a=ue(e.username),l=a.includes("@")?a:`${a}@example.com`;return await j.post("/auth/login-admin",{username:l,password:e.password})},fe=async e=>await j.post("/auth/login",e),ve=async e=>await j.post("/auth/verify",e),H=J("login",()=>{const e=O(""),a=O(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},Oe={key:1},we=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=O(0),t=O(!1),s=M(),y=E(),{prefixCls:g}=re("login"),w=H(),i=R({username:"",password:""}),b=async u=>{var n,m,_,v;try{if(t.value=!0,u.username&&u.password){const h={...u,provider:"user"};console.log("Login payload:",h);const S=await me(h);if(console.log("Login response:",S),(n=S==null?void 0:S.session)!=null&&n.access_token){await z(S.session.access_token);try{await y.getMyInfo()}catch{ee(),F.error("شما دسترسی ادمین ندارید");return}U(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{t.value=!1}},k=async u=>{try{if(t.value=!0,u.username!==""){w.setMobile(u.username);let n=await fe({...u,provider:"user"});w.setId(n.id),a("verify",!0)}else F.error("وارد کردن تمامی فیلدها الزامی است")}catch(n){console.log(n),F.error("خطا در ورود به پنل کاربری")}finally{t.value=!1}};return(u,n)=>{const m=Z,_=V;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":n[3]||(n[3]=v=>Q(l)?l.value=v:null)},{default:f(()=>[(p(),$(o(L),{tab:"ورود با شماره تلفن",key:0,"force-render":""},{default:f(()=>[c(o(A),{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":n[0]||(n[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":n[1]||(n[1]=v=>o(i).password=v)},null,8,["value"])]),_:1}),c(o(D),null,{default:f(()=>[c(_,{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})),(p(),$(o(L),{tab:"ورود با رمز یک بار مصرف",key:1},{default:f(()=>[c(o(A),{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":n[2]||(n[2]=v=>o(i).username=v)},null,8,["value"])]),_:1}),c(o(D),null,{default:f(()=>[c(_,{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",Oe,"ورود"))])]),_:1},8,["disabled"])]),_:1})]),_:1},8,["model"])]),_:1}))]),_:1},8,["activeKey"])])]),we])],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 t=O(e.value||""),s=O(null),y=()=>(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,i=n=>{e.isDisabled&&n.preventDefault();const m=n||window.event,_=m.which?m.which:m.keyCode;w(_)||e.inputType==="letter-numeric"&&g(_)||[8,9,13,37,39,46,86].includes(_)?l("on-keydown",n):m.preventDefault()},b=n=>l("on-paste",n),k=()=>(s.value.select(),l("on-focus")),u=()=>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:y,handleOnKeyDown:i,handleOnPaste:b,handleOnFocus:k,handleOnBlur:u,input:s,model:t,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,t,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)])):q("",!0)])}x.render=Se;const Fe=8,De=37,Be=39,Te=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 t=O(0),s=O([]),y=O([]);T(()=>e.value,r=>{const C=o(r).split("");s.value=C},{immediate:!0});const g=r=>{t.value=r},w=()=>{t.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=>{t.value=Math.max(Math.min(e.numInputs-1,r),0)},k=()=>{b(t.value+1)},u=()=>{b(t.value-1)},n=r=>{y.value=Object.assign([],s.value),s.value[t.value]=r,y.value.join("")!==s.value.join("")&&(l("update:value",s.value.join("")),l("on-change",s.value.join("")),i())};return{activeInput:t,otp:s,oldOtp:y,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),i()},handleOnKeyDown:r=>{switch(r.keyCode){case Fe:r.preventDefault(),n(""),u();break;case Te:r.preventDefault(),n("");break;case De:r.preventDefault(),u();break;case Be:r.preventDefault(),k();break}},handleOnBlur:w,changeCodeAtFocus:n,focusInput:b,focusNextInput:k,focusPrevInput:u,handleOnFocus:g,checkFilledAllInputs:i,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 Ae={style:{display:"flex"}},Pe={key:0,autocomplete:"off",name:"hidden",type:"text",style:{display:"none"}};function je(e,a,l,t,s,y){const g=ae("SingleOtpInput");return p(),I("div",Ae,[e.inputType==="password"?(p(),I("input",Pe)):q("",!0),(p(!0),I(oe,null,le(e.numInputs,(w,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=je;var Ke=(()=>{const e=G;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),ze={class:"flex items-center text-gray-700 cursor-pointer"},Ue=d("span",{class:"mx-2"},"ویرایش شماره",-1),We={class:"mt-5"},qe={class:"mt-4 w-full grid grid-cols-1 gap-4"},He={key:1},xe=B({__name:"Verification",emits:["verify"],setup(e,{emit:a}){const l=O(null),t=O(!1),s=H(),y=E(),g=M(),w=R({id:s.id,token:""});async function i(){try{t.value=!0;const u={...w,provider:"user"},{access_token:n}=await ve(u);await z(n),await y.getMyInfo(),U(["*"],g),await W(g)}catch(u){console.log(u,"login error"),F.error("خطا در ورود به پنل کاربری")}finally{t.value=!1}}function b(u){w.token=u}async function k(u){w.token=u,await i()}return(u,n)=>{const m=de,_=D,v=V,h=A;return p(),I("div",null,[d("div",Le,[d("div",Ve,[d("div",Me,[Ee,d("div",Re,[Ne,d("div",ze,[Ue,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",qe,[c(v,{class:"w-full",disabled:t.value,type:"primary","html-type":"submit",onClick:i},{default:f(()=>[d("div",null,[t.value?(p(),$(o(P),{key:0,size:"small"})):(p(),I("div",He,"ورود"))])]),_:1},8,["disabled"]),c(v,{class:"w-full",onClick:n[0]||(n[0]=S=>a("verify",!1))},{default:f(()=>[ie("بازگشت به صفحه ورود")]),_:1})])]),_:1})])])])])])}}});const kn=B({__name:"index",setup(e){const a=O(!1);return(l,t)=>(p(),I("div",null,[o(a)?(p(),$(xe,{key:0,onVerify:t[0]||(t[0]=s=>a.value=s)})):(p(),$(be,{key:1,onVerify:t[1]||(t[1]=s=>a.value=s)}))]))}});export{kn as default};