Files
tehran_tala/apps/user-app/dist/assets/LoginRegisterView-LOatOaFC.js
T
2026-10-14 15:30:33 +03:30

2 lines
11 KiB
JavaScript

import{d as B,h as F,S as j,T as ee,b as y,c as k,w as N,Z as te,e as c,f as q,g as U,F as P,r as se,H as M,G as K,$ as ae,V as ne,E as W,q as r,C as f,I as H,t as T,m as a,v as oe,a0 as le,U as z,R as A,y as E,a1 as ue,a2 as R,i as re,_ as Z,Q as ie,W as ce}from"./index-C662UA7n.js";import{P as G}from"./PageBar-CwzSn7Ei.js";import{a as J,F as C,I as S,T as de}from"./index-O7fdeTVJ.js";import"./FormItemContext-DzuqFYY2.js";import"./classCallCheck-D_xlFDpn.js";import"./raf-nDFcuFT6.js";const pe={class:"otp-single-input"},me=["type","placeholder","disabled"],fe={key:0},ve=["innerHTML"],he=B({__name:"SingleOtpInput",props:{inputType:{default:"tel"},value:{},separator:{},focus:{type:Boolean},inputClasses:{},shouldAutoFocus:{type:Boolean},isLastChild:{type:Boolean},placeholder:{},disabled:{type:Boolean}},emits:["on-change","on-keydown","on-paste","on-focus","on-blur"],setup(u,{emit:w}){const i=u,v=w,n=F(i.value||""),o=F(null),s=()=>(n.value=n.value.toString(),n.value.length>1&&(n.value=n.value.slice(0,1)),v("on-change",n.value)),p=t=>t>=48&&t<=57||t>=96&&t<=105,_=t=>{i.disabled&&t.preventDefault();const m=t||window.event,O=m.which?m.which:m.keyCode;p(O)||[8,9,13,37,39,46,86].includes(O)?v("on-keydown",t):m.preventDefault()},g=t=>v("on-paste",t),e=()=>(o.value.select(),v("on-focus")),b=()=>v("on-blur");return j(()=>i.value,(t,m)=>{t!==m&&(n.value=t??"")}),j(()=>i.focus,(t,m)=>{m!==t&&o.value&&i.focus&&(o.value.focus(),o.value.select())}),ee(()=>{o.value&&i.focus&&i.shouldAutoFocus&&(o.value.focus(),o.value.select())}),(t,m)=>(y(),k("div",pe,[N(c("input",{type:u.inputType,placeholder:u.placeholder,disabled:u.disabled,ref_key:"input",ref:o,min:"0",max:"9",maxlength:"1",pattern:"[0-9]","onUpdate:modelValue":m[0]||(m[0]=O=>n.value=O),class:q(u.inputClasses),onInput:s,onKeydown:_,onPaste:g,onFocus:e,onBlur:b},null,42,me),[[te,n.value]]),!u.isLastChild&&u.separator?(y(),k("span",fe,[c("span",{innerHTML:u.separator},null,8,ve)])):U("",!0)]))}}),_e={class:"flex ltr justify-around w-full"},ge=8,ye=37,be=39,we=46,ke=B({__name:"OtpInput",props:{defaultFocus:{type:Boolean},numInputs:{default:4},separator:{},inputClasses:{},inputType:{},shouldAutoFocus:{type:Boolean,default:!1},placeholder:{},disabled:{type:Boolean,default:!1}},emits:["on-change","on-complete"],setup(u,{emit:w}){const i=u,v=w,n=F(0),o=F([]),s=F([]),p=l=>{i.defaultFocus&&l<i.numInputs&&!o.value[l]?n.value=o.value.length:n.value=l},_=()=>{n.value=-1},g=()=>o.value.join("").length===i.numInputs?v("on-complete",o.value.join("")):"Wait until the user enters the required number of characters",e=l=>{n.value=Math.max(Math.min(i.numInputs-1,l),0)},b=()=>e(n.value+1),t=()=>e(n.value-1),m=l=>{s.value=Object.assign([],o.value),typeof l=="string"&&l===""?o.value.splice(n.value,1):o.value[n.value]=l,s.value.join("")!==o.value.join("")&&(v("on-change",o.value.join("")),g())},O=l=>{var V;l.preventDefault();const D=(((V=l.clipboardData)==null?void 0:V.getData("text/plain"))??"").slice(0,i.numInputs-n.value).split("");if(i.inputType==="number"&&!D.join("").match(/^\d+$/))return"Invalid pasted data";const L=o.value.slice(0,n.value).concat(D);return L.slice(0,i.numInputs).forEach((X,Y)=>{o.value[Y]=X}),e(L.slice(0,i.numInputs).length),g()},h=l=>{m(l),b()},d=l=>{switch(l.keyCode){case ge:l.preventDefault(),m(""),t();break;case we:l.preventDefault(),m("");break;case ye:l.preventDefault(),t();break;case be:l.preventDefault(),b();break}};return(l,$)=>(y(),k("div",null,[c("div",_e,[(y(!0),k(P,null,se(u.numInputs,(D,I)=>(y(),M(he,{key:I,focus:n.value===I,value:o.value[I],separator:u.separator,"input-type":u.inputType,"input-classes":u.inputClasses,"is-last-child":I===u.numInputs-1,"should-auto-focus":u.shouldAutoFocus,placeholder:u.placeholder,disabled:u.disabled,onOnChange:h,onOnKeydown:d,onOnPaste:O,onOnFocus:L=>p(I),onOnBlur:_},null,8,["focus","value","separator","input-type","input-classes","is-last-child","should-auto-focus","placeholder","disabled","onOnFocus"]))),128))])]))}}),Oe=u=>` مقدار ${u} نا معتبر است `,Q=u=>({pattern:/^(\+98|0098|98|0)?9\d{9}$/g,message:Oe(u)}),x=u=>({required:!0,message:` لطفا ${u} را وارد کنید `}),Ie={class:"auth"},Ce={class:"auth__intro"},xe={class:"auth__mark","aria-hidden":"true"},Fe={class:"auth__title"},$e={class:"auth__sub"},Se={class:"auth__card"},De={key:0,class:"auth__timer"},Be={key:1,class:"auth__timer"},Te=["disabled"],Ee={class:"auth__switch"},Re=B({__name:"LoginView",emits:["register"],setup(u,{emit:w}){const i=w,v=K(),n=ae(),o=ne(),s=A({username:void 0}),p=A({step:1,loading:!1,defaultFocus:!1}),_=F(0),g=()=>{_.value>0&&setTimeout(()=>{_.value>0&&(_.value-=1,g())},1e3)},e=async()=>{try{p.loading=!0,await E.requestOtp(String(s.username??"")),p.step=2,_.value=120,g(),await ue(()=>{p.defaultFocus=!0})}catch(h){const d=h instanceof Error&&/\((?:429|404|403)\)/.test(h.message)?t(h):null;R.error(d??"خطا در ارسال کد. لطفاً دوباره تلاش کنید.")}finally{p.loading=!1}},b=async h=>{try{p.loading=!0;const d=await E.verifyOtp(String(s.username??""),h),{token:l,customer:$}=d;if(o.login(l,$.id,$.mobile),d.iamBootstrapUrl){window.location.assign(d.iamBootstrapUrl);return}try{const I=await E.getExpertIdentity();o.setSalesExpert(I.isSalesExpert)}catch{o.setSalesExpert(!1)}const D=typeof n.query.redirect=="string"?n.query.redirect:void 0;await v.replace(D??{name:"home"}),R.success("با موفقیت وارد شدید")}catch(d){R.error(d instanceof Error&&/\(429\)/.test(d.message)?t(d)??"تعداد تلاش‌ها بیش از حد مجاز است.":"کد وارد شده صحیح نیست")}finally{p.loading=!1}};function t(h){const d=h.message.match(/\{.*\}/);if(!d)return null;try{const l=JSON.parse(d[0]);return typeof l.message=="string"?l.message:null}catch{return null}}const m=h=>h<10?"0"+h:h,O=re(()=>p.step===1?"دریافت رمز عبور":"دریافت مجدد رمز عبور");return(h,d)=>{const l=W("container");return y(),k("div",Ie,[r(G,{title:"ورود","back-to":"home"}),r(l,{class:"auth__body"},{default:f(()=>[c("section",Ce,[c("div",xe,[r(H,{icon:"vuesax-linear:security-user",size:"28"})]),c("h2",Fe,"ورود به "+T(a(oe).name),1),c("p",$e,T(p.step===1?"شماره موبایل خود را وارد کنید":"رمز یکبارمصرف را وارد کنید"),1)]),c("section",Se,[p.step===2?(y(),k(P,{key:0},[r(ke,{class:"auth__otp","input-classes":"otp-input",inputType:"tel","num-inputs":4,"should-auto-focus":!0,defaultFocus:p.defaultFocus,onOnComplete:b},null,8,["defaultFocus"]),_.value>0?(y(),k("p",De," امکان دریافت مجدد رمز در "+T(m(_.value))+" ثانیه دیگر ",1)):(y(),k("p",Be,"برای دریافت رمز عبور مجدد تلاش کنید"))],64)):U("",!0),r(a(J),{model:s,layout:"vertical",onFinish:e,class:"auth__form"},{default:f(()=>[N(r(a(C),{name:"username",label:"تلفن همراه",rules:[a(x)("تلفن همراه"),a(Q)("تلفن همراه")]},{default:f(()=>[r(a(S),{type:"number",value:s.username,"onUpdate:value":d[0]||(d[0]=$=>s.username=$)},null,8,["value"])]),_:1},8,["rules"]),[[le,p.step===1]]),c("button",{type:"submit",class:q(["auth__cta",{"is-loading":p.loading}]),disabled:p.loading||_.value>0&&p.step===2},T(O.value),11,Te)]),_:1},8,["model"])]),c("p",Ee,[d[2]||(d[2]=z(" اگر ثبت نام نکرده‌اید ",-1)),c("button",{type:"button",onClick:d[1]||(d[1]=$=>i("register",!0))},"ثبت نام کنید")])]),_:1})])}}}),Ue=Z(Re,[["__scopeId","data-v-b84daf1f"]]),Ae="/assets/registerDelay-C2Zjomix.svg",Le={class:"auth"},Me={class:"auth__intro"},Pe={class:"auth__mark","aria-hidden":"true"},Ve={class:"auth__card"},je={class:"auth__switch"},Ne=["src"],qe=B({__name:"RegisterView",emits:["register"],setup(u,{emit:w}){const i=w,v=K(),n=A({loading:!1}),o=F(!1),s=A({fname:void 0,lname:void 0,mobile:void 0,store_name:void 0,phone:void 0,address:void 0,city:void 0}),p=async()=>{try{n.loading=!0,await E.register({fname:String(s.fname??""),lname:String(s.lname??""),mobile:String(s.mobile??""),store_name:String(s.store_name??""),phone:String(s.phone??""),address:String(s.address??""),city:String(s.city??"")}),o.value=!0}catch(g){R.error(_(g)??"خطا در ثبت اطلاعات. لطفاً دوباره تلاش کنید.")}finally{n.loading=!1}};function _(g){const e=g instanceof Error?g.message.match(/\{.*\}/):null;if(!e)return null;try{const b=JSON.parse(e[0]);return Array.isArray(b.message)?b.message[0]??null:b.message??null}catch{return null}}return(g,e)=>{const b=W("container");return y(),k("div",Le,[r(G,{title:"ثبت نام","back-to":"home"}),r(ie,{spinning:n.loading,tip:"در حال ثبت اطلاعات"},{default:f(()=>[r(b,{class:"auth__body"},{default:f(()=>[c("section",Me,[c("div",Pe,[r(H,{icon:"vuesax-linear:user-add",size:"28"})]),e[10]||(e[10]=c("h2",{class:"auth__title"},"ساخت حساب کاربری",-1)),e[11]||(e[11]=c("p",{class:"auth__sub"},"اطلاعات فروشگاه خود را وارد کنید",-1))]),c("section",Ve,[r(a(J),{model:s,layout:"vertical",onFinish:p,class:"auth__form"},{default:f(()=>[r(a(C),{name:"fname",label:"نام",rules:a(x)("نام")},{default:f(()=>[r(a(S),{value:s.fname,"onUpdate:value":e[0]||(e[0]=t=>s.fname=t)},null,8,["value"])]),_:1},8,["rules"]),r(a(C),{name:"lname",label:"نام خانوادگی",rules:a(x)("نام خانوادگی")},{default:f(()=>[r(a(S),{value:s.lname,"onUpdate:value":e[1]||(e[1]=t=>s.lname=t)},null,8,["value"])]),_:1},8,["rules"]),r(a(C),{name:"mobile",label:"شماره موبایل",rules:[a(Q)("شماره موبایل"),a(x)("شماره موبایل")]},{default:f(()=>[r(a(S),{value:s.mobile,"onUpdate:value":e[2]||(e[2]=t=>s.mobile=t),type:"number"},null,8,["value"])]),_:1},8,["rules"]),r(a(C),{name:"store_name",label:"نام فروشگاه",rules:a(x)("نام فروشگاه")},{default:f(()=>[r(a(S),{value:s.store_name,"onUpdate:value":e[3]||(e[3]=t=>s.store_name=t)},null,8,["value"])]),_:1},8,["rules"]),r(a(C),{name:"phone",label:"تلفن فروشگاه",rules:[a(x)("تلفن فروشگاه")]},{default:f(()=>[r(a(S),{value:s.phone,"onUpdate:value":e[4]||(e[4]=t=>s.phone=t),type:"number"},null,8,["value"])]),_:1},8,["rules"]),r(a(C),{name:"address",label:"آدرس پستی",rules:a(x)("آدرس")},{default:f(()=>[r(a(de),{value:s.address,"onUpdate:value":e[5]||(e[5]=t=>s.address=t),rows:3},null,8,["value"])]),_:1},8,["rules"]),r(a(C),{name:"city",label:"شهر",rules:a(x)("شهر")},{default:f(()=>[r(a(S),{value:s.city,"onUpdate:value":e[6]||(e[6]=t=>s.city=t)},null,8,["value"])]),_:1},8,["rules"]),e[12]||(e[12]=c("button",{type:"submit",class:"auth__cta"},"ثبت اطلاعات",-1))]),_:1},8,["model"])]),c("p",je,[e[13]||(e[13]=z(" اگر حساب کاربری دارید ",-1)),c("button",{type:"button",onClick:e[7]||(e[7]=t=>i("register",!1))},"وارد شوید")])]),_:1})]),_:1},8,["spinning"]),r(ce,{timeOut:-1,show:o.value,"onUpdate:show":e[9]||(e[9]=t=>o.value=t),closeOnClickOverlay:!1},{img:f(()=>[c("img",{src:a(Ae),alt:"",class:"opacity-80"},null,8,Ne)]),title:f(()=>[...e[14]||(e[14]=[c("div",{class:"p-5"}," ثبت نام شما با موفقیت انجام شد. منتظر تایید اطلاعات ثبت نامی شما توسط کارشناسان بمانید. ",-1)])]),button:f(()=>[c("div",{class:"text-center",onClick:e[8]||(e[8]=t=>a(v).push({name:"home"}))},"متوجه شدم")]),_:1},8,["show"])])}}}),Ke=Z(qe,[["__scopeId","data-v-46169e57"]]),Qe=B({__name:"LoginRegisterView",setup(u){const w=F(!1),i=v=>w.value=v;return(v,n)=>(y(),k(P,null,[w.value?U("",!0):(y(),M(Ue,{key:0,onRegister:i})),w.value?(y(),M(Ke,{key:1,onRegister:i})):U("",!0)],64))}});export{Qe as default};