Files
nademitex_user/dist/assets/ProfileEditView-BPZL0Ss-.js
T
2026-10-29 15:26:08 +03:30

1 line
7.6 KiB
JavaScript

import{G as e,K as t,M as n,Pt as r,_ as i,c as a,d as o,f as s,g as ee,k as c,l,nt as u,t as te,u as d,ut as f,v as p}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{o as ne,t as re}from"./BasicIcon-DPmc0iaK.js";import{t as m}from"./http-CU_N-R2R.js";import{C as h,c as g,i as _,r as ie,u as ae}from"./index-DYwnTikp.js";import{t as oe}from"./FormErrorBanner-Ud1D04xf.js";import{n as se,r as v,t as ce}from"./formErrors-DglFjYkZ.js";import{t as y}from"./BaseInput-CpE3bVJZ.js";import{t as le}from"./addresses-tV-zgZYG.js";import{t as ue}from"./ProfileSubpageLayout-CbD3-u8j.js";var b=512,x=.82;async function de(e){if(!e.type.startsWith(`image/`))throw Error(`فقط فایل تصویری مجاز است.`);if(e.size>8388608)throw Error(`حجم تصویر نباید بیشتر از ۸ مگابایت باشد.`);return C(await S(e))}function S(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(String(r.result??``)),r.onerror=()=>n(Error(`خواندن تصویر ناموفق بود.`)),r.readAsDataURL(e)})}function C(e){return new Promise((t,n)=>{let r=new Image;r.onload=()=>{let e=Math.min(1,b/Math.max(r.width,r.height)),i=Math.max(1,Math.round(r.width*e)),a=Math.max(1,Math.round(r.height*e)),o=document.createElement(`canvas`);o.width=i,o.height=a;let s=o.getContext(`2d`);if(!s){n(Error(`پردازش تصویر ناموفق بود.`));return}s.drawImage(r,0,0,i,a),t(o.toDataURL(`image/jpeg`,x))},r.onerror=()=>n(Error(`تصویر نامعتبر است.`)),r.src=e})}var w={class:`profile-edit`},T={class:`avatar-editor`},E={class:`avatar-editor__actions`},D={class:`avatar-editor__btns`},O=[`disabled`],k=[`disabled`],A={class:`profile-edit__intro`},j={class:`profile-edit__intro-icon`,"aria-hidden":`true`},M={class:`profile-edit__grid`},N={key:1,class:`form-group profile-edit__full`},P={key:0,class:`input-error-text`},F={key:2,class:`form-group profile-edit__full profile-edit__saved-address`},I={key:0,class:`profile-edit__address-hint`},L={key:1,class:`profile-edit__address-text`},fe={key:2,class:`profile-edit__address-hint`},R={class:`profile-edit__actions`},z={key:0,class:`profile-edit__saved`},B=te(p({__name:`ProfileEditView`,setup(te){let p=g(),b=h(),x=u(null),S=u(!0),C=u(p.user?.firstName??``),B=u(p.user?.lastName??``),V=u(p.user?.nationalId??``),H=u(p.user?.address??``),U=u(p.user?.avatarUrl??null),W=u(null),G=u({}),K=u(``),q=u(!1),J=u(!1),Y=u(!1),X=ae(),pe=a(()=>`${C.value.trim().charAt(0)}${B.value.trim().charAt(0)}`||`؟`),me=a(()=>p.user?.agentCode?.trim()||`—`);function Z(e){G.value=se(G.value,e),v(G.value)||(K.value=``)}function he(){W.value?.click()}async function Q(e){Y.value=!0,K.value=``;try{let t=await p.updateProfile({avatarUrl:e??``});t?U.value=t.avatarUrl??null:U.value=e}catch(e){K.value=e instanceof Error?e.message:`ذخیره تصویر ناموفق بود.`}finally{Y.value=!1}}async function ge(e){let t=e.target,n=t.files?.[0];if(t.value=``,n){Y.value=!0,K.value=``;try{let e=await de(n);U.value=e,await Q(e)}catch(e){K.value=e instanceof Error?e.message:`بارگذاری تصویر ناموفق بود.`,Y.value=!1}}}async function $(){U.value=null,await Q(null)}c(async()=>{S.value=!0;try{let e=await le.list(),t=e.find(e=>e.isDefault)??e[0];x.value=t?.text??null}catch{x.value=null}finally{S.value=!1}});async function _e(){G.value={},K.value=``,q.value=!1;let e={};if(C.value.trim()||(e.firstName=`نام الزامی است.`),B.value.trim()||(e.lastName=`نام خانوادگی الزامی است.`),V.value&&V.value.length!==10&&(e.nationalId=`کد ملی باید ۱۰ رقم باشد.`),v(e)){G.value=e,K.value=ce,X.show(`لطفاً فیلدهای مشخص‌شده را اصلاح کنید.`,{tone:`error`});return}let t={firstName:C.value.trim(),lastName:B.value.trim(),nationalId:V.value||void 0,avatarUrl:U.value??``};p.isAgent&&(t.address=H.value.trim()),J.value=!0;try{if(!await p.updateProfile(t)){K.value=`ذخیره پروفایل ناموفق بود.`,X.show(`ذخیره اطلاعات انجام نشد. دوباره تلاش کنید.`,{tone:`error`});return}q.value=!0,X.show(`اطلاعات کاربری با موفقیت ذخیره شد.`),setTimeout(()=>{q.value=!1},2e3)}catch(e){let t=e instanceof m||e instanceof Error?e.message:`ذخیره پروفایل ناموفق بود.`;K.value=t,X.show(t,{tone:`error`})}finally{J.value=!1}}return(a,c)=>(n(),d(ue,{title:`اطلاعات کاربری`,subtitle:`ویرایش تصویر، نام و کد ملی حساب کاربری`},{default:e(()=>[i(oe,{message:K.value},null,8,[`message`]),l(`div`,w,[l(`div`,T,[i(_,{src:U.value,initials:pe.value,size:96,class:`avatar-editor__photo`},null,8,[`src`,`initials`]),l(`div`,E,[c[9]||=l(`p`,{class:`avatar-editor__title`},`تصویر پروفایل`,-1),c[10]||=l(`p`,{class:`avatar-editor__hint`},`افزودن، تغییر یا حذف عکس نمایش‌داده‌شده در پروفایل`,-1),l(`div`,D,[l(`button`,{type:`button`,class:`avatar-btn`,disabled:Y.value,onClick:he},r(U.value?`تغییر تصویر`:`افزودن تصویر`),9,O),U.value?(n(),s(`button`,{key:0,type:`button`,class:`avatar-btn avatar-btn--danger`,disabled:Y.value,onClick:$},` حذف تصویر `,8,k)):o(``,!0)])]),l(`input`,{ref_key:`fileInput`,ref:W,type:`file`,accept:`image/*`,class:`avatar-editor__file`,onChange:ge},null,544)]),l(`div`,A,[l(`span`,j,[i(re,{icon:`vuesax-linear:profile-circle`,size:22,"stroke-width":1.5})]),c[11]||=l(`div`,{class:`profile-edit__intro-text`},[l(`strong`,null,`مشخصات فردی`),l(`p`,null,`این اطلاعات روی سفارش‌ها و چک‌های ثبت‌شده نمایش داده می‌شود.`)],-1)]),l(`div`,M,[i(y,{modelValue:C.value,"onUpdate:modelValue":[c[0]||=e=>C.value=e,c[1]||=e=>Z(`firstName`)],label:`نام`,error:G.value.firstName},null,8,[`modelValue`,`error`]),i(y,{modelValue:B.value,"onUpdate:modelValue":[c[2]||=e=>B.value=e,c[3]||=e=>Z(`lastName`)],label:`نام خانوادگی`,error:G.value.lastName},null,8,[`modelValue`,`error`]),i(y,{modelValue:V.value,"onUpdate:modelValue":[c[4]||=e=>V.value=e,c[5]||=e=>Z(`nationalId`)],class:`profile-edit__full`,label:`کد ملی`,maxlength:`10`,inputmode:`numeric`,dir:`ltr`,hint:`برای ثبت چک الزامی است`,error:G.value.nationalId},null,8,[`modelValue`,`error`]),f(p).isAgent?(n(),d(y,{key:0,class:`profile-edit__full`,"model-value":me.value,label:`کد واسطه`,dir:`ltr`,disabled:``,hint:`این کد را به مشتریان معرفی‌شده بدهید تا هنگام ثبت‌نام در اپ وارد کنند.`},null,8,[`model-value`])):o(``,!0),f(p).isAgent?(n(),s(`div`,N,[c[12]||=l(`label`,{class:`form-label`,for:`profile-address`},`آدرس (واسطه)`,-1),t(l(`textarea`,{id:`profile-address`,"onUpdate:modelValue":c[6]||=e=>H.value=e,class:`profile-edit__textarea`,rows:`3`,maxlength:`500`,placeholder:`آدرس کامل محل فعالیت`,onInput:c[7]||=e=>Z(`address`)},null,544),[[ne,H.value]]),G.value.address?(n(),s(`p`,P,r(G.value.address),1)):o(``,!0)])):(n(),s(`div`,F,[c[13]||=l(`label`,{class:`form-label`},`آدرس ثبت‌شده`,-1),S.value?(n(),s(`p`,I,`در حال بارگذاری…`)):x.value?(n(),s(`p`,L,r(x.value),1)):(n(),s(`p`,fe,` هنوز آدرسی ثبت نشده. هنگام درخواست کالیته یا از بخش «آدرس‌ها» می‌توانید آدرس اضافه کنید. `)),l(`button`,{type:`button`,class:`profile-edit__address-link`,onClick:c[8]||=e=>f(b).push(`/profile/addresses`)},` مدیریت آدرس‌ها `)]))]),l(`div`,R,[i(ie,{class:`profile-edit__save`,loading:J.value,onClick:_e},{default:e(()=>[...c[14]||=[ee(` ثبت تغییرات `,-1)]]),_:1},8,[`loading`]),q.value?(n(),s(`p`,z,`ذخیره شد ✓`)):o(``,!0)])])]),_:1}))}}),[[`__scopeId`,`data-v-bb556af8`]]);export{B as default};