diff --git a/dist/assets/AddressCompletionModal-CtlERD8F.js b/dist/assets/AddressCompletionModal-ChC4X__L.js similarity index 98% rename from dist/assets/AddressCompletionModal-CtlERD8F.js rename to dist/assets/AddressCompletionModal-ChC4X__L.js index 653e14c..c9f6973 100644 --- a/dist/assets/AddressCompletionModal-CtlERD8F.js +++ b/dist/assets/AddressCompletionModal-ChC4X__L.js @@ -1 +1 @@ -import{D as e,G as t,K as n,M as r,Pt as i,U as a,_ as o,d as s,f as c,g as l,l as u,nt as d,o as f,t as p,u as m,v as h}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{l as g,o as _}from"./BasicIcon-DPmc0iaK.js";import{t as v}from"./http-CU_N-R2R.js";import{r as y,u as b}from"./index-CE4Fw0WE.js";import{t as x}from"./catalogRequests-COPPKp3x.js";import{t as S}from"./addresses-tV-zgZYG.js";var C=`درخواست دریافت فیزیکی کالیته برای شما ثبت شد و به زودی همکاران ما برای شما خواهند آورد`;function w(){let e=x(),t=b(),n=d(!1),r=d(!1),i=d(null),a=d(``);function o(){r.value=!1,i.value=null,a.value=``}async function s(n,r){let i=await e.create({items:[{productId:n.id,productName:n.name,productCode:n.code,quantity:1}],note:`آدرس: ${r}`});return i.success?(t.show(C),!0):(a.value=i.message,!1)}async function c(e){a.value=``;let t=``;try{let e=await S.list();t=(e.find(e=>e.isDefault)??e[0])?.text.trim()??``}catch{t=``}if(t){n.value=!0;try{await s(e,t)}finally{n.value=!1}return}i.value=e,r.value=!0}async function l(e){let t=e.trim();if(!t)return a.value=`آدرس الزامی است.`,!1;let r=i.value;if(!r)return!1;a.value=``,n.value=!0;try{await S.create({text:t});let e=await s(r,t);return e&&o(),e}catch(e){return a.value=e instanceof v||e instanceof Error?e.message:`ذخیره آدرس ناموفق بود.`,!1}finally{n.value=!1}}return{requesting:n,addressModalOpen:r,addressError:a,requestCatalog:c,submitAddressAndRequest:l,closeAddressModal:o}}var T={class:`dialog card address-modal`},E={class:`address-modal__field`},D={key:0,class:`address-modal__error`},O={class:`dialog-actions address-modal__actions`},k=p(h({__name:`AddressCompletionModal`,props:{open:{type:Boolean},loading:{type:Boolean},error:{}},emits:[`close`,`submit`],setup(p,{emit:h}){let v=p,b=h,x=d(``);a(()=>v.open,e=>{e&&(x.value=``)});function S(e){e.key===`Escape`&&v.open&&b(`close`)}a(()=>v.open,e=>{document.body.style.overflow=e?`hidden`:``,e?window.addEventListener(`keydown`,S):window.removeEventListener(`keydown`,S)},{immediate:!0}),e(()=>{document.body.style.overflow=``,window.removeEventListener(`keydown`,S)});function C(){b(`submit`,x.value)}return(e,a)=>(r(),m(f,{to:`body`},[p.open?(r(),c(`div`,{key:0,class:`dialog-overlay address-modal-overlay`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`address-modal-title`,onClick:a[2]||=g(e=>b(`close`),[`self`])},[u(`div`,T,[a[5]||=u(`h3`,{id:`address-modal-title`,class:`address-modal__title`},`تکمیل آدرس`,-1),a[6]||=u(`p`,{class:`address-modal__hint`},` برای ارسال کالیته فیزیکی، آدرس محل فعالیت خود را وارد کنید. این آدرس در اطلاعات کاربری شما ذخیره میشود. `,-1),u(`label`,E,[a[3]||=u(`span`,{class:`form-label`},`آدرس`,-1),n(u(`textarea`,{"onUpdate:modelValue":a[0]||=e=>x.value=e,class:`address-modal__textarea`,rows:`3`,maxlength:`500`,placeholder:`آدرس کامل محل فعالیت`},null,512),[[_,x.value]])]),p.error?(r(),c(`p`,D,i(p.error),1)):s(``,!0),u(`div`,O,[o(y,{variant:`outline`,disabled:p.loading,onClick:a[1]||=e=>b(`close`)},{default:t(()=>[...a[4]||=[l(` انصراف `,-1)]]),_:1},8,[`disabled`]),o(y,{disabled:p.loading,onClick:C},{default:t(()=>[l(i(p.loading?`در حال ثبت...`:`ثبت درخواست`),1)]),_:1},8,[`disabled`])])])])):s(``,!0)]))}}),[[`__scopeId`,`data-v-0a7c2418`]]);export{w as n,k as t}; \ No newline at end of file +import{D as e,G as t,K as n,M as r,Pt as i,U as a,_ as o,d as s,f as c,g as l,l as u,nt as d,o as f,t as p,u as m,v as h}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{l as g,o as _}from"./BasicIcon-DPmc0iaK.js";import{t as v}from"./http-CU_N-R2R.js";import{r as y,u as b}from"./index-D_xSF6a7.js";import{t as x}from"./catalogRequests-COPPKp3x.js";import{t as S}from"./addresses-tV-zgZYG.js";var C=`درخواست دریافت فیزیکی کالیته برای شما ثبت شد و به زودی همکاران ما برای شما خواهند آورد`;function w(){let e=x(),t=b(),n=d(!1),r=d(!1),i=d(null),a=d(``);function o(){r.value=!1,i.value=null,a.value=``}async function s(n,r){let i=await e.create({items:[{productId:n.id,productName:n.name,productCode:n.code,quantity:1}],note:`آدرس: ${r}`});return i.success?(t.show(C),!0):(a.value=i.message,!1)}async function c(e){a.value=``;let t=``;try{let e=await S.list();t=(e.find(e=>e.isDefault)??e[0])?.text.trim()??``}catch{t=``}if(t){n.value=!0;try{await s(e,t)}finally{n.value=!1}return}i.value=e,r.value=!0}async function l(e){let t=e.trim();if(!t)return a.value=`آدرس الزامی است.`,!1;let r=i.value;if(!r)return!1;a.value=``,n.value=!0;try{await S.create({text:t});let e=await s(r,t);return e&&o(),e}catch(e){return a.value=e instanceof v||e instanceof Error?e.message:`ذخیره آدرس ناموفق بود.`,!1}finally{n.value=!1}}return{requesting:n,addressModalOpen:r,addressError:a,requestCatalog:c,submitAddressAndRequest:l,closeAddressModal:o}}var T={class:`dialog card address-modal`},E={class:`address-modal__field`},D={key:0,class:`address-modal__error`},O={class:`dialog-actions address-modal__actions`},k=p(h({__name:`AddressCompletionModal`,props:{open:{type:Boolean},loading:{type:Boolean},error:{}},emits:[`close`,`submit`],setup(p,{emit:h}){let v=p,b=h,x=d(``);a(()=>v.open,e=>{e&&(x.value=``)});function S(e){e.key===`Escape`&&v.open&&b(`close`)}a(()=>v.open,e=>{document.body.style.overflow=e?`hidden`:``,e?window.addEventListener(`keydown`,S):window.removeEventListener(`keydown`,S)},{immediate:!0}),e(()=>{document.body.style.overflow=``,window.removeEventListener(`keydown`,S)});function C(){b(`submit`,x.value)}return(e,a)=>(r(),m(f,{to:`body`},[p.open?(r(),c(`div`,{key:0,class:`dialog-overlay address-modal-overlay`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`address-modal-title`,onClick:a[2]||=g(e=>b(`close`),[`self`])},[u(`div`,T,[a[5]||=u(`h3`,{id:`address-modal-title`,class:`address-modal__title`},`تکمیل آدرس`,-1),a[6]||=u(`p`,{class:`address-modal__hint`},` برای ارسال کالیته فیزیکی، آدرس محل فعالیت خود را وارد کنید. این آدرس در اطلاعات کاربری شما ذخیره میشود. `,-1),u(`label`,E,[a[3]||=u(`span`,{class:`form-label`},`آدرس`,-1),n(u(`textarea`,{"onUpdate:modelValue":a[0]||=e=>x.value=e,class:`address-modal__textarea`,rows:`3`,maxlength:`500`,placeholder:`آدرس کامل محل فعالیت`},null,512),[[_,x.value]])]),p.error?(r(),c(`p`,D,i(p.error),1)):s(``,!0),u(`div`,O,[o(y,{variant:`outline`,disabled:p.loading,onClick:a[1]||=e=>b(`close`)},{default:t(()=>[...a[4]||=[l(` انصراف `,-1)]]),_:1},8,[`disabled`]),o(y,{disabled:p.loading,onClick:C},{default:t(()=>[l(i(p.loading?`در حال ثبت...`:`ثبت درخواست`),1)]),_:1},8,[`disabled`])])])])):s(``,!0)]))}}),[[`__scopeId`,`data-v-0a7c2418`]]);export{w as n,k as t}; \ No newline at end of file diff --git a/dist/assets/AddressesView-2ETl40m5.js b/dist/assets/AddressesView-DXivpkRa.js similarity index 98% rename from dist/assets/AddressesView-2ETl40m5.js rename to dist/assets/AddressesView-DXivpkRa.js index 0aa9596..c4f032b 100644 --- a/dist/assets/AddressesView-2ETl40m5.js +++ b/dist/assets/AddressesView-DXivpkRa.js @@ -1 +1 @@ -import{At as e,D as t,F as ee,G as n,K as r,M as i,Pt as a,U as o,_ as s,d as c,f as l,g as u,i as d,k as te,l as f,nt as p,o as m,t as ne,u as h,ut as g,v as _}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{l as v,n as re,o as y,t as b}from"./BasicIcon-DPmc0iaK.js";import{n as ie}from"./dist-Bc4P4ngC.js";import{t as x}from"./http-CU_N-R2R.js";import{t as ae}from"./IconPlus-Dk2FJATn.js";import{r as S,u as oe}from"./index-CE4Fw0WE.js";import{t as se}from"./IconTrash-B73-wwf6.js";import{t as C}from"./addresses-tV-zgZYG.js";import{t as ce}from"./ProfileSubpageLayout-TZxLAQ-r.js";var w=_({__name:`IconMapPin`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(t,ee)=>(i(),h(b,{icon:`vuesax-linear:location`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),T=_({__name:`IconVerified`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(t,ee)=>(i(),h(b,{icon:`vuesax-linear:verify`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),le={class:`addresses-page`},ue={class:`addresses-page__toolbar`},de={key:0,class:`addr-error`,role:`alert`},fe={key:1,class:`addr-muted`},pe={key:2,class:`addr-list`},E={class:`addr-card__main`},D={class:`addr-card__icon`,"aria-hidden":`true`},O={class:`addr-card__body`},k={class:`addr-card__head`},A={key:0,class:`addr-default-badge`},j={class:`addr-card__label`},M={class:`addr-card__text`},N={class:`addr-card__actions`},P=[`onClick`],F=[`onClick`],I={key:3,class:`addr-empty`},L={class:`addr-add-sheet`},R={class:`addr-field`},z={class:`addr-field`},B={key:0,class:`addr-error`,role:`alert`},me={class:`dialog card addr-add-modal`},he={class:`addr-field`},ge={class:`addr-field`},_e={key:0,class:`addr-error`,role:`alert`},ve={class:`dialog-actions addr-add-modal__actions`},V=ne(_({__name:`AddressesView`,setup(ne){let _=ie(`(min-width: 768px)`),b=oe(),V=p([]),H=p(``),U=p(``),W=p(``),G=p(``),K=p(!0),q=p(!1),J=p(!1);async function ye(){K.value=!0,W.value=``;try{V.value=await C.list()}catch(e){W.value=e instanceof x||e instanceof Error?e.message:`دریافت آدرسها ناموفق بود.`}finally{K.value=!1}}te(ye);function Y(){H.value=``,U.value=``,G.value=``}function X(){Y(),J.value=!0}function Z(){q.value||(J.value=!1,Y())}function Q(e){e.key===`Escape`&&J.value&&Z()}o(J,e=>{document.body.style.overflow=e?`hidden`:``,e?window.addEventListener(`keydown`,Q):window.removeEventListener(`keydown`,Q)}),t(()=>{document.body.style.overflow=``,window.removeEventListener(`keydown`,Q)});async function $(){let e=H.value.trim();if(e.length<3||q.value){G.value=`آدرس را کاملتر بنویسید.`;return}q.value=!0,G.value=``;try{await C.create({text:e,label:U.value.trim()||void 0}),V.value=await C.list(),Z(),b.show(`آدرس با موفقیت ثبت شد.`,{tone:`success`})}catch(e){G.value=e instanceof x||e instanceof Error?e.message:`ذخیره آدرس ناموفق بود.`}finally{q.value=!1}}async function be(e){W.value=``;try{V.value=await C.makeDefault(e),b.show(`آدرس پیشفرض بهروزرسانی شد.`,{tone:`success`})}catch(e){W.value=e instanceof Error?e.message:`تغییر آدرس پیشفرض ناموفق بود.`}}async function xe(e){W.value=``;try{V.value=await C.remove(e),b.show(`آدرس حذف شد.`,{tone:`success`})}catch(e){W.value=e instanceof Error?e.message:`حذف آدرس ناموفق بود.`}}return(t,o)=>(i(),l(`div`,le,[s(ce,{title:`آدرسها`,subtitle:`برای ارسال کالیته از آدرس پیشفرض استفاده میشود`},{default:n(()=>[f(`div`,ue,[o[5]||=f(`p`,{class:`addresses-page__hint`},`آدرسهای محل فعالیت برای ارسال کالیته`,-1),s(S,{class:`addresses-page__new-btn`,size:`sm`,onClick:X},{default:n(()=>[s(ae,{size:18}),o[4]||=u(` آدرس جدید `,-1)]),_:1})]),W.value?(i(),l(`p`,de,a(W.value),1)):c(``,!0),K.value?(i(),l(`p`,fe,`در حال دریافت…`)):V.value.length?(i(),l(`ul`,pe,[(i(!0),l(d,null,ee(V.value,t=>(i(),l(`li`,{key:t.id,class:e([`addr-card`,{"addr-card--default":t.isDefault}])},[f(`div`,E,[f(`div`,D,[s(w,{size:20})]),f(`div`,O,[f(`div`,k,[t.isDefault?(i(),l(`span`,A,[s(T,{size:16}),o[6]||=u(` پیشفرض ارسال `,-1)])):c(``,!0),f(`strong`,j,a(t.label||`آدرس`),1)]),f(`p`,M,a(t.text),1)])]),f(`div`,N,[t.isDefault?c(``,!0):(i(),l(`button`,{key:0,type:`button`,class:`addr-icon-btn`,"aria-label":`انتخاب بهعنوان آدرس پیشفرض`,title:`پیشفرض`,onClick:e=>be(t.id)},[s(T,{size:20})],8,P)),f(`button`,{type:`button`,class:`addr-icon-btn addr-icon-btn--danger`,"aria-label":`حذف آدرس`,title:`حذف`,onClick:e=>xe(t.id)},[s(se,{size:20})],8,F)])],2))),128))])):(i(),l(`div`,I,[s(w,{size:40,class:`addr-empty__icon`}),o[8]||=f(`p`,{class:`addr-muted`},`هنوز آدرسی ثبت نشده است.`,-1),s(S,{size:`sm`,variant:`outline`,onClick:X},{default:n(()=>[...o[7]||=[u(`افزودن اولین آدرس`,-1)]]),_:1})]))]),_:1}),(i(),h(m,{to:`body`},[s(re,{name:`addr-sheet`},{default:n(()=>[J.value&&!g(_)?(i(),l(`div`,{key:0,class:`addr-add-panel`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`addr-add-title-mobile`,onClick:v(Z,[`self`])},[f(`div`,L,[o[13]||=f(`div`,{class:`addr-add-sheet__handle`,"aria-hidden":`true`},null,-1),f(`header`,{class:`addr-add-sheet__head`},[o[9]||=f(`h2`,{id:`addr-add-title-mobile`},`آدرس جدید`,-1),f(`button`,{type:`button`,class:`addr-add-sheet__close`,"aria-label":`بستن`,onClick:Z},` × `)]),f(`form`,{class:`addr-form`,onSubmit:v($,[`prevent`])},[f(`label`,R,[o[10]||=f(`span`,null,`عنوان (اختیاری)`,-1),r(f(`input`,{"onUpdate:modelValue":o[0]||=e=>U.value=e,type:`text`,maxlength:`40`,placeholder:`مثلاً فروشگاه`},null,512),[[y,U.value]])]),f(`label`,z,[o[11]||=f(`span`,null,`آدرس`,-1),r(f(`textarea`,{"onUpdate:modelValue":o[1]||=e=>H.value=e,rows:`3`,maxlength:`500`,placeholder:`آدرس کامل محل فعالیت`},null,512),[[y,H.value]])]),G.value?(i(),l(`p`,B,a(G.value),1)):c(``,!0),s(S,{type:`submit`,class:`addr-form__submit`,loading:q.value},{default:n(()=>[...o[12]||=[u(` افزودن آدرس `,-1)]]),_:1},8,[`loading`])],32)])])):c(``,!0)]),_:1})])),(i(),h(m,{to:`body`},[J.value&&g(_)?(i(),l(`div`,{key:0,class:`dialog-overlay addr-add-overlay`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`addr-add-title-desktop`,onClick:v(Z,[`self`])},[f(`div`,me,[o[18]||=f(`h2`,{id:`addr-add-title-desktop`,class:`addr-add-modal__title`},`آدرس جدید`,-1),o[19]||=f(`p`,{class:`addr-add-modal__hint`},`آدرس کامل محل فعالیت را وارد کنید.`,-1),f(`form`,{class:`addr-form`,onSubmit:v($,[`prevent`])},[f(`label`,he,[o[14]||=f(`span`,null,`عنوان (اختیاری)`,-1),r(f(`input`,{"onUpdate:modelValue":o[2]||=e=>U.value=e,type:`text`,maxlength:`40`,placeholder:`مثلاً فروشگاه`},null,512),[[y,U.value]])]),f(`label`,ge,[o[15]||=f(`span`,null,`آدرس`,-1),r(f(`textarea`,{"onUpdate:modelValue":o[3]||=e=>H.value=e,rows:`3`,maxlength:`500`,placeholder:`آدرس کامل محل فعالیت`},null,512),[[y,H.value]])]),G.value?(i(),l(`p`,_e,a(G.value),1)):c(``,!0),f(`div`,ve,[s(S,{type:`button`,variant:`outline`,disabled:q.value,onClick:Z},{default:n(()=>[...o[16]||=[u(` انصراف `,-1)]]),_:1},8,[`disabled`]),s(S,{type:`submit`,loading:q.value},{default:n(()=>[...o[17]||=[u(`افزودن آدرس`,-1)]]),_:1},8,[`loading`])])],32)])])):c(``,!0)]))]))}}),[[`__scopeId`,`data-v-c10ac267`]]);export{V as default}; \ No newline at end of file +import{At as e,D as t,F as ee,G as n,K as r,M as i,Pt as a,U as o,_ as s,d as c,f as l,g as u,i as d,k as te,l as f,nt as p,o as m,t as ne,u as h,ut as g,v as _}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{l as v,n as re,o as y,t as b}from"./BasicIcon-DPmc0iaK.js";import{n as ie}from"./dist-Bc4P4ngC.js";import{t as x}from"./http-CU_N-R2R.js";import{t as ae}from"./IconPlus-Dk2FJATn.js";import{r as S,u as oe}from"./index-D_xSF6a7.js";import{t as se}from"./IconTrash-B73-wwf6.js";import{t as C}from"./addresses-tV-zgZYG.js";import{t as ce}from"./ProfileSubpageLayout-BDOqY9RG.js";var w=_({__name:`IconMapPin`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(t,ee)=>(i(),h(b,{icon:`vuesax-linear:location`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),T=_({__name:`IconVerified`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(t,ee)=>(i(),h(b,{icon:`vuesax-linear:verify`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),le={class:`addresses-page`},ue={class:`addresses-page__toolbar`},de={key:0,class:`addr-error`,role:`alert`},fe={key:1,class:`addr-muted`},pe={key:2,class:`addr-list`},E={class:`addr-card__main`},D={class:`addr-card__icon`,"aria-hidden":`true`},O={class:`addr-card__body`},k={class:`addr-card__head`},A={key:0,class:`addr-default-badge`},j={class:`addr-card__label`},M={class:`addr-card__text`},N={class:`addr-card__actions`},P=[`onClick`],F=[`onClick`],I={key:3,class:`addr-empty`},L={class:`addr-add-sheet`},R={class:`addr-field`},z={class:`addr-field`},B={key:0,class:`addr-error`,role:`alert`},me={class:`dialog card addr-add-modal`},he={class:`addr-field`},ge={class:`addr-field`},_e={key:0,class:`addr-error`,role:`alert`},ve={class:`dialog-actions addr-add-modal__actions`},V=ne(_({__name:`AddressesView`,setup(ne){let _=ie(`(min-width: 768px)`),b=oe(),V=p([]),H=p(``),U=p(``),W=p(``),G=p(``),K=p(!0),q=p(!1),J=p(!1);async function ye(){K.value=!0,W.value=``;try{V.value=await C.list()}catch(e){W.value=e instanceof x||e instanceof Error?e.message:`دریافت آدرسها ناموفق بود.`}finally{K.value=!1}}te(ye);function Y(){H.value=``,U.value=``,G.value=``}function X(){Y(),J.value=!0}function Z(){q.value||(J.value=!1,Y())}function Q(e){e.key===`Escape`&&J.value&&Z()}o(J,e=>{document.body.style.overflow=e?`hidden`:``,e?window.addEventListener(`keydown`,Q):window.removeEventListener(`keydown`,Q)}),t(()=>{document.body.style.overflow=``,window.removeEventListener(`keydown`,Q)});async function $(){let e=H.value.trim();if(e.length<3||q.value){G.value=`آدرس را کاملتر بنویسید.`;return}q.value=!0,G.value=``;try{await C.create({text:e,label:U.value.trim()||void 0}),V.value=await C.list(),Z(),b.show(`آدرس با موفقیت ثبت شد.`,{tone:`success`})}catch(e){G.value=e instanceof x||e instanceof Error?e.message:`ذخیره آدرس ناموفق بود.`}finally{q.value=!1}}async function be(e){W.value=``;try{V.value=await C.makeDefault(e),b.show(`آدرس پیشفرض بهروزرسانی شد.`,{tone:`success`})}catch(e){W.value=e instanceof Error?e.message:`تغییر آدرس پیشفرض ناموفق بود.`}}async function xe(e){W.value=``;try{V.value=await C.remove(e),b.show(`آدرس حذف شد.`,{tone:`success`})}catch(e){W.value=e instanceof Error?e.message:`حذف آدرس ناموفق بود.`}}return(t,o)=>(i(),l(`div`,le,[s(ce,{title:`آدرسها`,subtitle:`برای ارسال کالیته از آدرس پیشفرض استفاده میشود`},{default:n(()=>[f(`div`,ue,[o[5]||=f(`p`,{class:`addresses-page__hint`},`آدرسهای محل فعالیت برای ارسال کالیته`,-1),s(S,{class:`addresses-page__new-btn`,size:`sm`,onClick:X},{default:n(()=>[s(ae,{size:18}),o[4]||=u(` آدرس جدید `,-1)]),_:1})]),W.value?(i(),l(`p`,de,a(W.value),1)):c(``,!0),K.value?(i(),l(`p`,fe,`در حال دریافت…`)):V.value.length?(i(),l(`ul`,pe,[(i(!0),l(d,null,ee(V.value,t=>(i(),l(`li`,{key:t.id,class:e([`addr-card`,{"addr-card--default":t.isDefault}])},[f(`div`,E,[f(`div`,D,[s(w,{size:20})]),f(`div`,O,[f(`div`,k,[t.isDefault?(i(),l(`span`,A,[s(T,{size:16}),o[6]||=u(` پیشفرض ارسال `,-1)])):c(``,!0),f(`strong`,j,a(t.label||`آدرس`),1)]),f(`p`,M,a(t.text),1)])]),f(`div`,N,[t.isDefault?c(``,!0):(i(),l(`button`,{key:0,type:`button`,class:`addr-icon-btn`,"aria-label":`انتخاب بهعنوان آدرس پیشفرض`,title:`پیشفرض`,onClick:e=>be(t.id)},[s(T,{size:20})],8,P)),f(`button`,{type:`button`,class:`addr-icon-btn addr-icon-btn--danger`,"aria-label":`حذف آدرس`,title:`حذف`,onClick:e=>xe(t.id)},[s(se,{size:20})],8,F)])],2))),128))])):(i(),l(`div`,I,[s(w,{size:40,class:`addr-empty__icon`}),o[8]||=f(`p`,{class:`addr-muted`},`هنوز آدرسی ثبت نشده است.`,-1),s(S,{size:`sm`,variant:`outline`,onClick:X},{default:n(()=>[...o[7]||=[u(`افزودن اولین آدرس`,-1)]]),_:1})]))]),_:1}),(i(),h(m,{to:`body`},[s(re,{name:`addr-sheet`},{default:n(()=>[J.value&&!g(_)?(i(),l(`div`,{key:0,class:`addr-add-panel`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`addr-add-title-mobile`,onClick:v(Z,[`self`])},[f(`div`,L,[o[13]||=f(`div`,{class:`addr-add-sheet__handle`,"aria-hidden":`true`},null,-1),f(`header`,{class:`addr-add-sheet__head`},[o[9]||=f(`h2`,{id:`addr-add-title-mobile`},`آدرس جدید`,-1),f(`button`,{type:`button`,class:`addr-add-sheet__close`,"aria-label":`بستن`,onClick:Z},` × `)]),f(`form`,{class:`addr-form`,onSubmit:v($,[`prevent`])},[f(`label`,R,[o[10]||=f(`span`,null,`عنوان (اختیاری)`,-1),r(f(`input`,{"onUpdate:modelValue":o[0]||=e=>U.value=e,type:`text`,maxlength:`40`,placeholder:`مثلاً فروشگاه`},null,512),[[y,U.value]])]),f(`label`,z,[o[11]||=f(`span`,null,`آدرس`,-1),r(f(`textarea`,{"onUpdate:modelValue":o[1]||=e=>H.value=e,rows:`3`,maxlength:`500`,placeholder:`آدرس کامل محل فعالیت`},null,512),[[y,H.value]])]),G.value?(i(),l(`p`,B,a(G.value),1)):c(``,!0),s(S,{type:`submit`,class:`addr-form__submit`,loading:q.value},{default:n(()=>[...o[12]||=[u(` افزودن آدرس `,-1)]]),_:1},8,[`loading`])],32)])])):c(``,!0)]),_:1})])),(i(),h(m,{to:`body`},[J.value&&g(_)?(i(),l(`div`,{key:0,class:`dialog-overlay addr-add-overlay`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`addr-add-title-desktop`,onClick:v(Z,[`self`])},[f(`div`,me,[o[18]||=f(`h2`,{id:`addr-add-title-desktop`,class:`addr-add-modal__title`},`آدرس جدید`,-1),o[19]||=f(`p`,{class:`addr-add-modal__hint`},`آدرس کامل محل فعالیت را وارد کنید.`,-1),f(`form`,{class:`addr-form`,onSubmit:v($,[`prevent`])},[f(`label`,he,[o[14]||=f(`span`,null,`عنوان (اختیاری)`,-1),r(f(`input`,{"onUpdate:modelValue":o[2]||=e=>U.value=e,type:`text`,maxlength:`40`,placeholder:`مثلاً فروشگاه`},null,512),[[y,U.value]])]),f(`label`,ge,[o[15]||=f(`span`,null,`آدرس`,-1),r(f(`textarea`,{"onUpdate:modelValue":o[3]||=e=>H.value=e,rows:`3`,maxlength:`500`,placeholder:`آدرس کامل محل فعالیت`},null,512),[[y,H.value]])]),G.value?(i(),l(`p`,_e,a(G.value),1)):c(``,!0),f(`div`,ve,[s(S,{type:`button`,variant:`outline`,disabled:q.value,onClick:Z},{default:n(()=>[...o[16]||=[u(` انصراف `,-1)]]),_:1},8,[`disabled`]),s(S,{type:`submit`,loading:q.value},{default:n(()=>[...o[17]||=[u(`افزودن آدرس`,-1)]]),_:1},8,[`loading`])])],32)])])):c(``,!0)]))]))}}),[[`__scopeId`,`data-v-c10ac267`]]);export{V as default}; \ No newline at end of file diff --git a/dist/assets/AuthShell-prz1TrpO.js b/dist/assets/AuthShell-DZUEZY_4.js similarity index 92% rename from dist/assets/AuthShell-prz1TrpO.js rename to dist/assets/AuthShell-DZUEZY_4.js index 11457f7..0924bb5 100644 --- a/dist/assets/AuthShell-prz1TrpO.js +++ b/dist/assets/AuthShell-DZUEZY_4.js @@ -1 +1 @@ -import{I as e,M as t,_ as n,d as r,f as i,l as a,t as o,ut as s,v as c}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{C as l}from"./index-CE4Fw0WE.js";import{t as u}from"./IconChevronBack-BsHmfODG.js";import{t as d}from"./nademitex-auth-logo-CQhPwje_.js";var f={class:`auth-shell`},p={class:`auth-shell__body`},m={class:`auth-shell__brand`},h=[`src`],g=o(c({__name:`AuthShell`,props:{backTo:{}},setup(o){let c=l();return(l,g)=>(t(),i(`div`,f,[o.backTo?(t(),i(`button`,{key:0,type:`button`,class:`auth-shell__back`,"aria-label":`بازگشت`,onClick:g[0]||=e=>s(c).push(o.backTo)},[n(u,{size:22,color:`#1e293b`})])):r(``,!0),a(`div`,p,[a(`div`,m,[a(`img`,{class:`auth-shell__logo`,src:s(d),alt:`Nademi Tex`,draggable:`false`},null,8,h)]),e(l.$slots,`default`,{},void 0,!0)])]))}}),[[`__scopeId`,`data-v-3dfa06a5`]]);export{g as t}; \ No newline at end of file +import{I as e,M as t,_ as n,d as r,f as i,l as a,t as o,ut as s,v as c}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{C as l}from"./index-D_xSF6a7.js";import{t as u}from"./IconChevronBack-BsHmfODG.js";import{t as d}from"./nademitex-auth-logo-CQhPwje_.js";var f={class:`auth-shell`},p={class:`auth-shell__body`},m={class:`auth-shell__brand`},h=[`src`],g=o(c({__name:`AuthShell`,props:{backTo:{}},setup(o){let c=l();return(l,g)=>(t(),i(`div`,f,[o.backTo?(t(),i(`button`,{key:0,type:`button`,class:`auth-shell__back`,"aria-label":`بازگشت`,onClick:g[0]||=e=>s(c).push(o.backTo)},[n(u,{size:22,color:`#1e293b`})])):r(``,!0),a(`div`,p,[a(`div`,m,[a(`img`,{class:`auth-shell__logo`,src:s(d),alt:`Nademi Tex`,draggable:`false`},null,8,h)]),e(l.$slots,`default`,{},void 0,!0)])]))}}),[[`__scopeId`,`data-v-3dfa06a5`]]);export{g as t}; \ No newline at end of file diff --git a/dist/assets/CartView-BIcoGdy0.css b/dist/assets/CartView-BIcoGdy0.css deleted file mode 100644 index 743724d..0000000 --- a/dist/assets/CartView-BIcoGdy0.css +++ /dev/null @@ -1 +0,0 @@ -.cart-mobile-page[data-v-e5c9a8c0]{background:var(--color-bg);width:100%;min-height:0;color:var(--color-text);flex-direction:column;flex:1;padding:12px 0 0;display:flex;overflow:hidden}.cart-mobile-page__nav[data-v-e5c9a8c0]{grid-template-columns:40px 1fr 40px;align-items:center;margin-bottom:12px;padding-inline:8px;display:grid}.cart-mobile-page__hint[data-v-e5c9a8c0]{text-align:center;color:var(--color-text-muted);margin:0 0 12px;padding:0 4px;font-size:.75rem;line-height:1.7}.cart-mobile-page__title[data-v-e5c9a8c0]{text-align:center;color:var(--color-text);margin:0;font-size:1.0625rem;font-weight:700}.nav-btn[data-v-e5c9a8c0]{width:40px;height:40px;color:var(--color-text);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:flex}.nav-btn--ghost[data-v-e5c9a8c0]{visibility:hidden}.nav-btn__flip[data-v-e5c9a8c0]{transform:scaleX(-1)}.cart-mobile-page__body[data-v-e5c9a8c0]{flex-direction:column;flex:1;min-height:0;padding-inline:16px;display:flex}.cart-mobile-page__meta[data-v-e5c9a8c0]{color:var(--color-text-muted);margin:0 0 16px;font-size:.875rem}.cart-mobile-page__scroll[data-v-e5c9a8c0]{flex:1;min-height:0;overflow-y:auto}.cart-mobile-table[data-v-e5c9a8c0]{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-elevated);overflow:hidden}.cart-mobile-table__head[data-v-e5c9a8c0],.cart-mobile-table__row[data-v-e5c9a8c0]{grid-template-columns:1fr 88px 52px;align-items:center;gap:8px;padding:10px 12px;display:grid}.cart-mobile-table__head[data-v-e5c9a8c0]{background:var(--color-summary-bg);color:var(--color-text-muted);font-size:.75rem;font-weight:600}.cart-mobile-table__row[data-v-e5c9a8c0]{border-top:1px solid var(--color-border);color:var(--color-text)}.col-product strong[data-v-e5c9a8c0]{font-size:.875rem;display:block}.col-product span[data-v-e5c9a8c0]{color:var(--color-text-muted);font-size:.75rem;display:block}.col-product__company[data-v-e5c9a8c0]{margin-top:2px;font-weight:600;color:var(--color-primary)!important}.col-meterage[data-v-e5c9a8c0]{text-align:center;font-weight:700}.col-delete[data-v-e5c9a8c0]{justify-content:center;display:flex}.col-delete button[data-v-e5c9a8c0]{cursor:pointer;color:var(--color-text-muted);background:0 0;border:none}.cart-mobile-page__footer[data-v-e5c9a8c0]{padding:14px 16px calc(16px + env(safe-area-inset-bottom,0));border-top:1px solid var(--color-border);background:#fff;flex-shrink:0;margin:0;position:absolute;bottom:0;left:0;right:0;box-shadow:0 -8px 24px #0f172a0f}.cart-mobile-summary[data-v-e5c9a8c0]{color:var(--color-text);background:#f8fafc;border:1px solid #e8edf3;border-radius:16px;margin-bottom:12px;padding:4px 14px}.cart-mobile-summary__row[data-v-e5c9a8c0]{justify-content:space-between;align-items:center;gap:12px;padding:8px 0;font-size:.875rem;display:flex}.cart-mobile-summary__row--sub[data-v-e5c9a8c0]{color:var(--color-text-muted);font-size:.8125rem}.cart-mobile-summary__cap[data-v-e5c9a8c0]{color:var(--color-text-muted);font-weight:500}.cart-mobile-summary__row[data-v-e5c9a8c0]:not(:last-child){border-bottom:1px solid #e8edf3}.cart-mobile-summary__row--remain strong[data-v-e5c9a8c0]{color:#1e293b;font-weight:800}.cart-desktop-page[data-v-e944f7f3]{width:100%;padding-bottom:24px}.cart-desktop-page__head[data-v-e944f7f3]{margin-bottom:20px}.cart-desktop-page__title[data-v-e944f7f3]{color:var(--color-text);margin:0 0 6px;font-size:1.375rem;font-weight:700}.cart-desktop-page__subtitle[data-v-e944f7f3]{color:var(--color-text-muted);margin:0;font-size:.875rem}.cart-desktop-page__layout[data-v-e944f7f3]{direction:ltr;grid-template-columns:minmax(0,1fr);align-items:start;gap:20px;margin-bottom:24px;display:grid}@media (width>=1100px){.cart-desktop-page__layout[data-v-e944f7f3]{grid-template-columns:minmax(0,1fr) 300px}}.cart-desktop-page__main[data-v-e944f7f3],.cart-desktop-page__sidebar[data-v-e944f7f3]{direction:rtl}.cart-desktop-page__sidebar[data-v-e944f7f3]{flex-direction:column;gap:16px;display:flex}.cart-empty-card[data-v-e944f7f3],.cart-items-card[data-v-e944f7f3]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.cart-empty-card[data-v-e944f7f3]{text-align:center;flex-direction:column;align-items:center;min-height:360px;padding:48px 32px 40px;display:flex}.cart-empty-card__visual[data-v-e944f7f3]{width:140px;height:100px;margin-bottom:24px;position:relative}.cart-empty-card__circle[data-v-e944f7f3]{background:var(--color-primary-soft);color:var(--color-primary);border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;inset:12px 24px}.cart-empty-card__spark[data-v-e944f7f3]{color:#93c5fd;font-size:1.125rem;font-weight:700;line-height:1;position:absolute}.cart-empty-card__spark--1[data-v-e944f7f3]{top:8px;right:18px}.cart-empty-card__spark--2[data-v-e944f7f3]{font-size:1.5rem;top:28px;left:8px}.cart-empty-card__spark--3[data-v-e944f7f3]{font-size:1.25rem;bottom:16px;right:10px}.cart-empty-card__heading[data-v-e944f7f3]{color:var(--color-text);margin:0 0 10px;font-size:1.0625rem;font-weight:700}.cart-empty-card__text[data-v-e944f7f3]{max-width:380px;color:var(--color-text-muted);margin:0 0 28px;font-size:.8125rem;line-height:1.7}.cart-empty-card__actions[data-v-e944f7f3]{flex-direction:column;align-items:center;gap:12px;display:flex}.cart-btn[data-v-e944f7f3]{border-radius:var(--radius-md);cursor:pointer;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:0 22px;font-family:inherit;font-size:.875rem;font-weight:600;transition:opacity .15s,background .15s;display:inline-flex}.cart-btn--primary[data-v-e944f7f3]{background:var(--color-primary);color:var(--color-surface);border:none}.cart-btn--primary[data-v-e944f7f3]:hover{background:var(--color-primary-dark)}.cart-btn--outline[data-v-e944f7f3]{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-primary)}.cart-btn--outline[data-v-e944f7f3]:hover{background:var(--color-primary-soft)}.cart-items-card__scroll[data-v-e944f7f3]{overflow-x:auto}.cart-items-table[data-v-e944f7f3]{border-collapse:collapse;width:100%;min-width:520px;font-size:.875rem}.cart-items-table th[data-v-e944f7f3]{text-align:start;color:var(--color-text-muted);background:var(--color-bg);border-bottom:1px solid var(--color-border);padding:14px 18px;font-size:.8125rem;font-weight:600}.cart-items-table td[data-v-e944f7f3]{border-bottom:1px solid var(--color-border);color:var(--color-text);vertical-align:middle;padding:16px 18px}.cart-items-table tr:last-child td[data-v-e944f7f3]{border-bottom:none}.cart-items-table__name[data-v-e944f7f3]{font-weight:600}.cart-items-table__delete[data-v-e944f7f3]{cursor:pointer;color:var(--color-text-muted);background:0 0;border:none;padding:4px;display:inline-flex}.cart-items-table__delete[data-v-e944f7f3]:hover{color:var(--color-danger)}.cart-summary-card[data-v-e944f7f3],.cart-guide-card[data-v-e944f7f3]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:18px}.cart-summary-card__title[data-v-e944f7f3],.cart-guide-card__title[data-v-e944f7f3]{color:var(--color-text);align-items:center;gap:8px;margin:0 0 14px;font-size:.9375rem;font-weight:700;display:flex}.cart-summary-card__title-icon[data-v-e944f7f3],.cart-guide-card__title-icon[data-v-e944f7f3]{color:var(--color-primary);justify-content:center;align-items:center;display:flex}.cart-summary-card__rows[data-v-e944f7f3]{flex-direction:column;gap:4px;margin-bottom:16px;display:flex}.cart-summary-card__row[data-v-e944f7f3]{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:12px;padding:10px 0;font-size:.8125rem;display:flex}.cart-summary-card__row--sub[data-v-e944f7f3]{color:var(--color-text-muted);padding-block:6px;font-size:.8125rem}.cart-summary-card__cap[data-v-e944f7f3]{color:var(--color-text-muted);font-weight:500}.cart-summary-card__row[data-v-e944f7f3]:last-child{border-bottom:none}.cart-summary-card__row-label[data-v-e944f7f3]{color:var(--color-text-muted);align-items:center;gap:8px;display:inline-flex}.cart-summary-card__row strong[data-v-e944f7f3]{font-variant-numeric:tabular-nums;color:var(--color-text)}.cart-summary-card__hint-value[data-v-e944f7f3]{color:var(--color-text-muted);font-size:.75rem}.cart-summary-card__note[data-v-e944f7f3]{color:var(--color-text-muted);margin:10px 0 0;font-size:.75rem;line-height:1.6}.cart-summary-card__cta[data-v-e944f7f3]{border-radius:var(--radius-md);background:var(--color-primary);width:100%;min-height:44px;color:var(--color-surface);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;font-family:inherit;font-size:.875rem;font-weight:600;transition:background .15s,color .15s,border-color .15s;display:flex}.cart-summary-card__cta[data-v-e944f7f3]:hover:not(:disabled){background:var(--color-primary-dark)}.cart-summary-card__cta[data-v-e944f7f3]:disabled{background:var(--color-elevated);border-color:var(--color-border);color:var(--color-text-muted);cursor:not-allowed}.cart-guide-card__text[data-v-e944f7f3]{color:var(--color-text-muted);margin:0;font-size:.75rem;line-height:1.75}.cart-quick-nav[data-v-e944f7f3]{direction:ltr;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:20px;display:grid}.cart-quick-nav__item[data-v-e944f7f3]{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-card);cursor:pointer;text-align:right;direction:rtl;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:16px 18px;font-family:inherit;transition:border-color .15s,box-shadow .15s;display:grid}.cart-quick-nav__item[data-v-e944f7f3]:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md)}.cart-quick-nav__icon[data-v-e944f7f3]{border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;display:flex}.cart-quick-nav__icon--blue[data-v-e944f7f3]{background:var(--color-primary-soft);color:var(--color-primary)}.cart-quick-nav__icon--green[data-v-e944f7f3]{background:var(--color-success-soft);color:var(--color-success)}.cart-quick-nav__body[data-v-e944f7f3]{flex-direction:column;gap:4px;min-width:0;display:flex}.cart-quick-nav__title[data-v-e944f7f3]{color:var(--color-text);font-size:.875rem;font-weight:700}.cart-quick-nav__desc[data-v-e944f7f3]{color:var(--color-text-muted);font-size:.6875rem;line-height:1.4}.cart-quick-nav__chevron[data-v-e944f7f3]{color:var(--color-text-muted);flex-shrink:0}.cart-desktop-page__footer[data-v-e944f7f3]{text-align:center;color:var(--color-text-muted);margin:0;font-size:.75rem}.cart-view[data-v-2f81af33]{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.cart-view__error[data-v-2f81af33]{margin:0 var(--page-padding)}.dialog h3[data-v-2f81af33]{margin:0 0 12px}@media (width>=768px){.cart-view[data-v-2f81af33]{flex:1 0 auto;min-height:auto;overflow:visible}.dialog-actions[data-v-2f81af33]{flex-direction:row;justify-content:flex-end}} diff --git a/dist/assets/CartView-BzWckiuC.css b/dist/assets/CartView-BzWckiuC.css new file mode 100644 index 0000000..62d33a4 --- /dev/null +++ b/dist/assets/CartView-BzWckiuC.css @@ -0,0 +1 @@ +.cart-mobile-page[data-v-dda208c7]{background:var(--color-bg);width:100%;min-height:0;color:var(--color-text);flex-direction:column;flex:1;padding:12px 0 0;display:flex;overflow:hidden}.cart-mobile-page__nav[data-v-dda208c7]{grid-template-columns:40px 1fr 40px;align-items:center;margin-bottom:12px;padding-inline:8px;display:grid}.cart-mobile-page__hint[data-v-dda208c7]{text-align:center;color:var(--color-text-muted);margin:0 0 12px;padding:0 4px;font-size:.75rem;line-height:1.7}.cart-mobile-page__title[data-v-dda208c7]{text-align:center;color:var(--color-text);margin:0;font-size:1.0625rem;font-weight:700}.nav-btn[data-v-dda208c7]{width:40px;height:40px;color:var(--color-text);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:flex}.nav-btn--ghost[data-v-dda208c7]{visibility:hidden}.nav-btn__flip[data-v-dda208c7]{transform:scaleX(-1)}.cart-mobile-page__body[data-v-dda208c7]{flex-direction:column;flex:1;min-height:0;padding-inline:16px;display:flex}.cart-mobile-page__meta[data-v-dda208c7]{color:var(--color-text-muted);margin:0 0 16px;font-size:.875rem}.cart-mobile-page__scroll[data-v-dda208c7]{flex:1;min-height:0;overflow-y:auto}.cart-mobile-table[data-v-dda208c7]{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-elevated);overflow:hidden}.cart-mobile-table__head[data-v-dda208c7],.cart-mobile-table__row[data-v-dda208c7]{grid-template-columns:1fr 88px 52px;align-items:center;gap:8px;padding:10px 12px;display:grid}.cart-mobile-table__head[data-v-dda208c7]{background:var(--color-summary-bg);color:var(--color-text-muted);font-size:.75rem;font-weight:600}.cart-mobile-table__row[data-v-dda208c7]{border-top:1px solid var(--color-border);color:var(--color-text)}.col-product strong[data-v-dda208c7]{font-size:.875rem;display:block}.col-product span[data-v-dda208c7]{color:var(--color-text-muted);font-size:.75rem;display:block}.col-product__company[data-v-dda208c7]{margin-top:2px;font-weight:600;color:var(--color-primary)!important}.col-meterage[data-v-dda208c7]{text-align:center;font-weight:700}.col-delete[data-v-dda208c7]{justify-content:center;display:flex}.col-delete button[data-v-dda208c7]{cursor:pointer;color:var(--color-text-muted);background:0 0;border:none}.cart-mobile-page__footer[data-v-dda208c7]{padding:14px 16px calc(16px + env(safe-area-inset-bottom,0));border-top:1px solid var(--color-border);background:#fff;flex-shrink:0;margin:0;position:absolute;bottom:0;left:0;right:0;box-shadow:0 -8px 24px #0f172a0f}.cart-mobile-summary[data-v-dda208c7]{color:var(--color-text);background:#f8fafc;border:1px solid #e8edf3;border-radius:16px;margin-bottom:12px;padding:4px 14px}.cart-mobile-summary__row[data-v-dda208c7]{justify-content:space-between;align-items:center;gap:12px;padding:8px 0;font-size:.875rem;display:flex}.cart-mobile-summary__row--sub[data-v-dda208c7]{color:var(--color-text-muted);font-size:.8125rem}.cart-mobile-summary__cap[data-v-dda208c7]{color:var(--color-text-muted);font-weight:500}.cart-mobile-summary__row[data-v-dda208c7]:not(:last-child){border-bottom:1px solid #e8edf3}.cart-mobile-summary__row--remain strong[data-v-dda208c7]{color:#1e293b;font-weight:800}.cart-desktop-page[data-v-feede98a]{width:100%;padding-bottom:24px}.cart-desktop-page__head[data-v-feede98a]{margin-bottom:20px}.cart-desktop-page__title[data-v-feede98a]{color:var(--color-text);margin:0 0 6px;font-size:1.375rem;font-weight:700}.cart-desktop-page__subtitle[data-v-feede98a]{color:var(--color-text-muted);margin:0;font-size:.875rem}.cart-desktop-page__layout[data-v-feede98a]{direction:ltr;grid-template-columns:minmax(0,1fr);align-items:start;gap:20px;margin-bottom:24px;display:grid}@media (width>=1100px){.cart-desktop-page__layout[data-v-feede98a]{grid-template-columns:minmax(0,1fr) 300px}}.cart-desktop-page__main[data-v-feede98a],.cart-desktop-page__sidebar[data-v-feede98a]{direction:rtl}.cart-desktop-page__sidebar[data-v-feede98a]{flex-direction:column;gap:16px;display:flex}.cart-empty-card[data-v-feede98a],.cart-items-card[data-v-feede98a]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.cart-empty-card[data-v-feede98a]{text-align:center;flex-direction:column;align-items:center;min-height:360px;padding:48px 32px 40px;display:flex}.cart-empty-card__visual[data-v-feede98a]{width:140px;height:100px;margin-bottom:24px;position:relative}.cart-empty-card__circle[data-v-feede98a]{background:var(--color-primary-soft);color:var(--color-primary);border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;inset:12px 24px}.cart-empty-card__spark[data-v-feede98a]{color:#93c5fd;font-size:1.125rem;font-weight:700;line-height:1;position:absolute}.cart-empty-card__spark--1[data-v-feede98a]{top:8px;right:18px}.cart-empty-card__spark--2[data-v-feede98a]{font-size:1.5rem;top:28px;left:8px}.cart-empty-card__spark--3[data-v-feede98a]{font-size:1.25rem;bottom:16px;right:10px}.cart-empty-card__heading[data-v-feede98a]{color:var(--color-text);margin:0 0 10px;font-size:1.0625rem;font-weight:700}.cart-empty-card__text[data-v-feede98a]{max-width:380px;color:var(--color-text-muted);margin:0 0 28px;font-size:.8125rem;line-height:1.7}.cart-empty-card__actions[data-v-feede98a]{flex-direction:column;align-items:center;gap:12px;display:flex}.cart-btn[data-v-feede98a]{border-radius:var(--radius-md);cursor:pointer;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:0 22px;font-family:inherit;font-size:.875rem;font-weight:600;transition:opacity .15s,background .15s;display:inline-flex}.cart-btn--primary[data-v-feede98a]{background:var(--color-primary);color:var(--color-surface);border:none}.cart-btn--primary[data-v-feede98a]:hover{background:var(--color-primary-dark)}.cart-btn--outline[data-v-feede98a]{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-primary)}.cart-btn--outline[data-v-feede98a]:hover{background:var(--color-primary-soft)}.cart-items-card__scroll[data-v-feede98a]{overflow-x:auto}.cart-items-table[data-v-feede98a]{border-collapse:collapse;width:100%;min-width:520px;font-size:.875rem}.cart-items-table th[data-v-feede98a]{text-align:start;color:var(--color-text-muted);background:var(--color-bg);border-bottom:1px solid var(--color-border);padding:14px 18px;font-size:.8125rem;font-weight:600}.cart-items-table td[data-v-feede98a]{border-bottom:1px solid var(--color-border);color:var(--color-text);vertical-align:middle;padding:16px 18px}.cart-items-table tr:last-child td[data-v-feede98a]{border-bottom:none}.cart-items-table__name[data-v-feede98a]{font-weight:600}.cart-items-table__delete[data-v-feede98a]{cursor:pointer;color:var(--color-text-muted);background:0 0;border:none;padding:4px;display:inline-flex}.cart-items-table__delete[data-v-feede98a]:hover{color:var(--color-danger)}.cart-summary-card[data-v-feede98a],.cart-guide-card[data-v-feede98a]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:18px}.cart-summary-card__title[data-v-feede98a],.cart-guide-card__title[data-v-feede98a]{color:var(--color-text);align-items:center;gap:8px;margin:0 0 14px;font-size:.9375rem;font-weight:700;display:flex}.cart-summary-card__title-icon[data-v-feede98a],.cart-guide-card__title-icon[data-v-feede98a]{color:var(--color-primary);justify-content:center;align-items:center;display:flex}.cart-summary-card__rows[data-v-feede98a]{flex-direction:column;gap:4px;margin-bottom:16px;display:flex}.cart-summary-card__row[data-v-feede98a]{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:12px;padding:10px 0;font-size:.8125rem;display:flex}.cart-summary-card__row--sub[data-v-feede98a]{color:var(--color-text-muted);padding-block:6px;font-size:.8125rem}.cart-summary-card__cap[data-v-feede98a]{color:var(--color-text-muted);font-weight:500}.cart-summary-card__row[data-v-feede98a]:last-child{border-bottom:none}.cart-summary-card__row-label[data-v-feede98a]{color:var(--color-text-muted);align-items:center;gap:8px;display:inline-flex}.cart-summary-card__row strong[data-v-feede98a]{font-variant-numeric:tabular-nums;color:var(--color-text)}.cart-summary-card__hint-value[data-v-feede98a]{color:var(--color-text-muted);font-size:.75rem}.cart-summary-card__note[data-v-feede98a]{color:var(--color-text-muted);margin:10px 0 0;font-size:.75rem;line-height:1.6}.cart-summary-card__cta[data-v-feede98a]{border-radius:var(--radius-md);background:var(--color-primary);width:100%;min-height:44px;color:var(--color-surface);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;font-family:inherit;font-size:.875rem;font-weight:600;transition:background .15s,color .15s,border-color .15s;display:flex}.cart-summary-card__cta[data-v-feede98a]:hover:not(:disabled){background:var(--color-primary-dark)}.cart-summary-card__cta[data-v-feede98a]:disabled{background:var(--color-elevated);border-color:var(--color-border);color:var(--color-text-muted);cursor:not-allowed}.cart-guide-card__text[data-v-feede98a]{color:var(--color-text-muted);margin:0;font-size:.75rem;line-height:1.75}.cart-quick-nav[data-v-feede98a]{direction:ltr;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:20px;display:grid}.cart-quick-nav__item[data-v-feede98a]{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-card);cursor:pointer;text-align:right;direction:rtl;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:16px 18px;font-family:inherit;transition:border-color .15s,box-shadow .15s;display:grid}.cart-quick-nav__item[data-v-feede98a]:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md)}.cart-quick-nav__icon[data-v-feede98a]{border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;display:flex}.cart-quick-nav__icon--blue[data-v-feede98a]{background:var(--color-primary-soft);color:var(--color-primary)}.cart-quick-nav__icon--green[data-v-feede98a]{background:var(--color-success-soft);color:var(--color-success)}.cart-quick-nav__body[data-v-feede98a]{flex-direction:column;gap:4px;min-width:0;display:flex}.cart-quick-nav__title[data-v-feede98a]{color:var(--color-text);font-size:.875rem;font-weight:700}.cart-quick-nav__desc[data-v-feede98a]{color:var(--color-text-muted);font-size:.6875rem;line-height:1.4}.cart-quick-nav__chevron[data-v-feede98a]{color:var(--color-text-muted);flex-shrink:0}.cart-desktop-page__footer[data-v-feede98a]{text-align:center;color:var(--color-text-muted);margin:0;font-size:.75rem}.cart-view[data-v-ef862cba]{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.cart-view__error[data-v-ef862cba]{margin:0 var(--page-padding)}.dialog h3[data-v-ef862cba]{margin:0 0 12px}@media (width>=768px){.cart-view[data-v-ef862cba]{flex:1 0 auto;min-height:auto;overflow:visible}.dialog-actions[data-v-ef862cba]{flex-direction:row;justify-content:flex-end}} diff --git a/dist/assets/CartView-_JOMEanl.js b/dist/assets/CartView-_JOMEanl.js deleted file mode 100644 index 0acbbd9..0000000 --- a/dist/assets/CartView-_JOMEanl.js +++ /dev/null @@ -1 +0,0 @@ -import{At as e,F as t,G as n,M as r,Pt as i,R as a,_ as o,c as s,d as c,f as l,g as u,i as d,k as f,l as p,nt as m,t as h,u as g,ut as _,v}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{l as y,t as b}from"./BasicIcon-DPmc0iaK.js";import{a as x,o as S}from"./format-C72AoJ2H.js";import{t as C}from"./cart-F5Rptvi1.js";import{t as w}from"./IconCart-D9TX5E-P.js";import{t as T}from"./IconOrders-Cf-FXBIB.js";import{C as E,f as D,n as ee,o as O,r as k,x as A}from"./index-CE4Fw0WE.js";import{t as te}from"./EmptyState-DoHTAy4d.js";import{t as j}from"./IconChevronBack-BsHmfODG.js";import{t as M}from"./FormErrorBanner-Ud1D04xf.js";import{t as N}from"./IconTrash-B73-wwf6.js";import{t as P}from"./CheckoutStepper-DptjKnv0.js";import{t as F}from"./IconClipboardEmpty-DMrB9tzG.js";import{n as I,t as L}from"./IconDiamond-BZQtRyIy.js";function R(){let e=E(),t=C(),n=D(),r=m(!1),i=m(!1),a=m(``),o=s(()=>t.activeCart?.items??[]),c=s(()=>o.value.length===0),l=s(()=>t.companyNamesLabel||t.activeCart?.companyName||``),u=s(()=>t.companySummaries);async function d(e){let n=o.value.find(t=>t.id===e);await ee({title:`حذف از سبد`,message:n?`آیا از حذف «${n.productName}» از سبد خرید مطمئن هستید؟`:`آیا از حذف این آیتم از سبد خرید مطمئن هستید؟`,confirmLabel:`حذف`,cancelLabel:`انصراف`,tone:`danger`})&&t.removeItem(e)}async function p(){if(!(!t.activeCart||o.value.length===0||i.value)){i.value=!0,a.value=``;try{if(await t.hydrate(),!t.activeCart?.items.length){a.value=`سبد خرید خالی است یا با سرور همگام نشد.`;return}let r=await n.submitOrder(t.activeCart);await t.hydrate(),e.replace(`/orders/${r.id}/success`)}catch(e){a.value=e instanceof Error?e.message:`ثبت سفارش ناموفق بود.`,await t.hydrate()}finally{i.value=!1}}}function h(){if(o.value.length!==0){if(t.isFull){r.value=!0;return}p()}}function g(){r.value=!1,p()}async function _(){await t.createNewCartForSameCompany(),r.value=!1,e.push(`/categories`)}return f(()=>{t.ensureActiveCartForCartPage()}),{cartStore:t,items:o,isEmpty:c,companyName:l,companySummaries:u,showFullDialog:r,submitting:i,submitError:a,removeItem:d,proceedToCheckout:h,proceedAnyway:g,createNewInvoice:_}}var z={class:`cart-mobile-page`},B={class:`cart-mobile-page__nav`},V={type:`button`,class:`nav-btn nav-btn--ghost`,"aria-hidden":`true`,tabindex:`-1`},H={key:0,class:`cart-mobile-page__body`},U={key:0,class:`cart-mobile-page__meta`},W={class:`cart-mobile-page__scroll`},G={class:`cart-mobile-table`},K={class:`col-product`},q={class:`col-meterage`},J={class:`col-delete`},Y=[`onClick`],X={class:`cart-mobile-page__footer`},Z={class:`cart-mobile-summary`},Q={class:`cart-mobile-summary__row`},ne={class:`cart-mobile-summary__cap`},re={key:1,class:`cart-mobile-summary__row`},ie={class:`cart-mobile-summary__row cart-mobile-summary__row--remain`},ae=h(v({__name:`MobileCartPage`,props:{items:{},companyName:{},companySummaries:{},totalMeterage:{},maxMeterage:{},remainingCapacity:{},isEmpty:{type:Boolean},submitting:{type:Boolean}},emits:[`back`,`remove`,`checkout`,`selectCompany`],setup(e,{emit:a}){let s=a;return(a,f)=>(r(),l(`div`,z,[p(`header`,B,[p(`button`,{type:`button`,class:`nav-btn`,"aria-label":`بازگشت`,onClick:f[0]||=e=>s(`back`)},[o(j,{size:20})]),f[3]||=p(`h1`,{class:`cart-mobile-page__title`},`سبد خرید`,-1),p(`button`,V,[o(j,{size:18,class:`nav-btn__flip`})])]),e.isEmpty?(r(),g(te,{key:1,variant:`cart`,message:`از دستهبندی یا کالیته محصول را انتخاب کنید`},{default:n(()=>[o(k,{onClick:f[2]||=e=>s(`selectCompany`)},{default:n(()=>[...f[10]||=[u(`مشاهده محصولات`,-1)]]),_:1})]),_:1})):(r(),l(`div`,H,[e.companyName?(r(),l(`p`,U,` تأمینکننده: `+i(e.companyName),1)):c(``,!0),p(`div`,W,[p(`div`,G,[f[4]||=p(`div`,{class:`cart-mobile-table__head`},[p(`span`,null,`محصول`),p(`span`,null,`متراژ (متر)`),p(`span`,null,`حذف`)],-1),(r(!0),l(d,null,t(e.items,e=>(r(),l(`div`,{key:e.id,class:`cart-mobile-table__row`},[p(`div`,K,[p(`strong`,null,i(e.productName),1),p(`span`,null,`کد: `+i(e.productCode),1)]),p(`div`,q,i(_(S)(e.meterage)),1),p(`div`,J,[p(`button`,{type:`button`,"aria-label":`حذف`,onClick:t=>s(`remove`,e.id)},[o(N,{size:20})],8,Y)])]))),128))])]),p(`div`,X,[p(`div`,Z,[p(`div`,Q,[f[5]||=p(`span`,null,`جمع متراژ کل`,-1),p(`strong`,null,i(_(x)(e.totalMeterage)),1)]),e.companySummaries?.length?(r(!0),l(d,{key:0},t(e.companySummaries,e=>(r(),l(`div`,{key:e.companyId,class:`cart-mobile-summary__row cart-mobile-summary__row--sub`},[p(`span`,null,i(e.companyName),1),p(`strong`,null,[u(i(_(x)(e.meterage))+` `,1),p(`span`,ne,`/ `+i(_(x)(e.maxMeterage)),1)])]))),128)):(r(),l(`div`,re,[f[6]||=p(`span`,null,`حداکثر مجاز`,-1),p(`strong`,null,i(_(x)(e.maxMeterage)),1)])),p(`div`,ie,[f[7]||=p(`span`,null,`باقی مانده`,-1),p(`strong`,null,i(_(x)(e.remainingCapacity)),1)])]),f[9]||=p(`p`,{class:`cart-mobile-page__hint`},` پس از ثبت سفارش، کارشناسان قیمتگذاری میکنند و فاکتور برای شما صادر میشود. `,-1),o(k,{block:``,loading:e.submitting,onClick:f[1]||=e=>s(`checkout`)},{default:n(()=>[...f[8]||=[u(`ثبت پیشسفارش`,-1)]]),_:1},8,[`loading`])])]))]))}}),[[`__scopeId`,`data-v-e5c9a8c0`]]),oe=v({__name:`IconLightbulb`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(t,n)=>(r(),g(b,{icon:`vuesax-linear:lamp-on`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),se={class:`desktop-page cart-desktop-page`},ce={class:`cart-desktop-page__head`},le={key:0,class:`cart-desktop-page__subtitle`},ue={class:`cart-desktop-page__layout`},de={class:`cart-desktop-page__main`},fe={key:0,class:`cart-empty-card`},pe={class:`cart-empty-card__visual`,"aria-hidden":`true`},me={class:`cart-empty-card__circle`},he={class:`cart-empty-card__actions`},ge={key:1,class:`cart-items-card`},_e={class:`cart-items-card__scroll`},ve={class:`cart-items-table`},ye={class:`cart-items-table__name`},be=[`onClick`],xe={class:`cart-desktop-page__sidebar`},Se={class:`cart-summary-card`},Ce={class:`cart-summary-card__title`},we={class:`cart-summary-card__title-icon`,"aria-hidden":`true`},Te={class:`cart-summary-card__rows`},Ee={class:`cart-summary-card__row`},De={class:`cart-summary-card__row-label`},Oe={class:`cart-summary-card__row`},ke={class:`cart-summary-card__row-label`},Ae={class:`cart-summary-card__row-label`},je={class:`cart-summary-card__cap`},Me={class:`cart-summary-card__row cart-summary-card__row--hint`},Ne={class:`cart-summary-card__row-label`},Pe=[`disabled`],$={class:`cart-guide-card`},Fe={class:`cart-guide-card__title`},Ie={class:`cart-guide-card__title-icon`,"aria-hidden":`true`},Le={class:`cart-guide-card__text`},Re={class:`cart-quick-nav`,"aria-label":`دسترسی سریع`},ze=[`onClick`],Be={class:`cart-quick-nav__body`},Ve={class:`cart-quick-nav__title`},He={class:`cart-quick-nav__desc`},Ue=h(v({__name:`DesktopCartPage`,props:{items:{},companyName:{},companySummaries:{},totalMeterage:{},maxMeterage:{},remainingCapacity:{},isEmpty:{type:Boolean},submitting:{type:Boolean}},emits:[`remove`,`checkout`,`selectCompany`,`back`],setup(n,{emit:s}){let f=s,m=E(),h=[{title:`کالیتهها`,desc:`مرور کالیته و طرحها`,icon:I,tone:`blue`,action:()=>m.push(`/catalogs`)},{title:`دستهبندی`,desc:`مشاهده محصولات بر اساس کاربرد`,icon:L,tone:`green`,action:()=>m.push(`/categories`)},{title:`سفارشهای من`,desc:`پیگیری وضعیت سفارشها`,icon:T,tone:`blue`,action:()=>m.push(`/orders`)}];return(s,v)=>(r(),l(`div`,se,[o(P,{"current-step":1}),p(`header`,ce,[v[3]||=p(`h1`,{class:`cart-desktop-page__title`},`سبد خرید`,-1),n.companyName?(r(),l(`p`,le,` تأمینکننده: `+i(n.companyName),1)):c(``,!0)]),p(`div`,ue,[p(`section`,de,[n.isEmpty?(r(),l(`div`,fe,[p(`div`,pe,[v[4]||=p(`span`,{class:`cart-empty-card__spark cart-empty-card__spark--1`},`+`,-1),v[5]||=p(`span`,{class:`cart-empty-card__spark cart-empty-card__spark--2`},`·`,-1),p(`span`,me,[o(w,{size:40})]),v[6]||=p(`span`,{class:`cart-empty-card__spark cart-empty-card__spark--3`},`·`,-1)]),v[9]||=p(`h2`,{class:`cart-empty-card__heading`},`سبد خرید شما خالی است`,-1),v[10]||=p(`p`,{class:`cart-empty-card__text`},` از دستهبندی یا کالیته محصول را انتخاب کنید، جزئیات را ببینید و به سبد اضافه کنید. `,-1),p(`div`,he,[p(`button`,{type:`button`,class:`cart-btn cart-btn--primary`,onClick:v[0]||=e=>f(`selectCompany`)},[o(L,{size:16}),v[7]||=u(` دستهبندی محصولات `,-1)]),p(`button`,{type:`button`,class:`cart-btn cart-btn--outline`,onClick:v[1]||=e=>_(m).push(`/catalogs`)},[o(I,{size:18}),v[8]||=u(` مشاهده کالیتهها `,-1)])])])):(r(),l(`div`,ge,[p(`div`,_e,[p(`table`,ve,[v[11]||=p(`thead`,null,[p(`tr`,null,[p(`th`,{scope:`col`},`محصول`),p(`th`,{scope:`col`},`کد`),p(`th`,{scope:`col`},`متراژ (متر)`),p(`th`,{scope:`col`},`حذف`)])],-1),p(`tbody`,null,[(r(!0),l(d,null,t(n.items,e=>(r(),l(`tr`,{key:e.id},[p(`td`,null,[p(`strong`,ye,i(e.productName),1)]),p(`td`,null,i(e.productCode),1),p(`td`,null,i(_(S)(e.meterage)),1),p(`td`,null,[p(`button`,{type:`button`,class:`cart-items-table__delete`,"aria-label":`حذف`,onClick:t=>f(`remove`,e.id)},[o(N,{size:18})],8,be)])]))),128))])])])]))]),p(`aside`,xe,[p(`div`,Se,[p(`h2`,Ce,[p(`span`,we,[o(F,{size:22})]),v[12]||=u(` خلاصه سفارش `,-1)]),p(`div`,Te,[p(`div`,Ee,[p(`span`,De,[o(I,{size:16}),v[13]||=u(` تعداد آیتمها `,-1)]),p(`strong`,null,i(_(S)(n.items.length)),1)]),p(`div`,Oe,[p(`span`,ke,[o(L,{size:16}),v[14]||=u(` متراژ کل `,-1)]),p(`strong`,null,i(_(x)(n.totalMeterage)),1)]),(r(!0),l(d,null,t(n.companySummaries??[],e=>(r(),l(`div`,{key:e.companyId,class:`cart-summary-card__row cart-summary-card__row--sub`},[p(`span`,Ae,i(e.companyName),1),p(`strong`,null,[u(i(_(x)(e.meterage))+` `,1),p(`span`,je,`/ `+i(_(x)(e.maxMeterage)),1)])]))),128)),p(`div`,Me,[p(`span`,Ne,[o(T,{size:16}),v[15]||=u(` مبلغ فاکتور `,-1)]),v[16]||=p(`span`,{class:`cart-summary-card__hint-value`},` پس از قیمتگذاری مدیریت `,-1)])]),p(`button`,{type:`button`,class:`cart-summary-card__cta`,disabled:n.isEmpty||n.submitting,onClick:v[2]||=e=>f(`checkout`)},[o(O,{size:16}),u(` `+i(n.submitting?`در حال ثبت…`:`ثبت پیشسفارش`),1)],8,Pe),v[17]||=p(`p`,{class:`cart-summary-card__note`},` پس از ثبت سفارش، مدیریت قیمتگذاری میکند و فاکتور صادر میشود؛ سپس روش تسویه را انتخاب میکنید. `,-1)]),p(`div`,$,[p(`h3`,Fe,[p(`span`,Ie,[o(oe,{size:18})]),v[18]||=u(` راهنمای گام بعدی `,-1)]),p(`p`,Le,[v[19]||=u(` محصولات موردنظر را به سبد اضافه کنید، متراژ کل را بررسی کنید و «ثبت پیشسفارش» را بزنید. `,-1),n.isEmpty?c(``,!0):(r(),l(d,{key:0},[u(` سقف مجاز: `+i(_(x)(n.maxMeterage))+` — باقیمانده: `+i(_(x)(n.remainingCapacity))+`. `,1)],64)),v[20]||=u(` پس از قیمتگذاری، از صفحه سفارش روش تسویه را انتخاب میکنید. `,-1)])])])]),p(`nav`,Re,[(r(),l(d,null,t(h,t=>p(`button`,{key:t.title,type:`button`,class:`cart-quick-nav__item`,onClick:e=>t.action()},[p(`span`,{class:e([`cart-quick-nav__icon`,`cart-quick-nav__icon--${t.tone}`])},[(r(),g(a(t.icon),{size:20}))],2),p(`span`,Be,[p(`strong`,Ve,i(t.title),1),p(`span`,He,i(t.desc),1)]),o(O,{size:16,class:`cart-quick-nav__chevron`,"aria-hidden":`true`})],8,ze)),64))]),v[21]||=p(`p`,{class:`cart-desktop-page__footer`},`پارس بافت — سامانه سفارشگذاری پارچه`,-1)]))}}),[[`__scopeId`,`data-v-e944f7f3`]]),We={class:`cart-view`},Ge={class:`dialog card`},Ke={class:`dialog-actions`},qe=h(v({__name:`CartView`,setup(e){let t=E(),{cartStore:i,items:a,isEmpty:s,companyName:d,companySummaries:f,showFullDialog:m,submitting:h,submitError:v,removeItem:b,proceedToCheckout:x,proceedAnyway:S,createNewInvoice:C}=R();function w(){t.push(A)}return(e,T)=>(r(),l(`div`,We,[_(v)?(r(),g(M,{key:0,message:_(v),class:`cart-view__error`},null,8,[`message`])):c(``,!0),o(ae,{class:`mobile-only`,items:_(a),"company-name":_(d),"company-summaries":_(f),"total-meterage":_(i).totalMeterage,"max-meterage":_(i).maxMeterage,"remaining-capacity":_(i).remainingCapacity,"is-empty":_(s),submitting:_(h),onBack:T[0]||=e=>_(t).push(`/`),onRemove:_(b),onCheckout:_(x),onSelectCompany:T[1]||=e=>w()},null,8,[`items`,`company-name`,`company-summaries`,`total-meterage`,`max-meterage`,`remaining-capacity`,`is-empty`,`submitting`,`onRemove`,`onCheckout`]),o(Ue,{class:`desktop-only`,items:_(a),"company-name":_(d),"company-summaries":_(f),"total-meterage":_(i).totalMeterage,"max-meterage":_(i).maxMeterage,"remaining-capacity":_(i).remainingCapacity,"is-empty":_(s),submitting:_(h),onRemove:_(b),onCheckout:_(x),onSelectCompany:T[2]||=e=>w(),onBack:w},null,8,[`items`,`company-name`,`company-summaries`,`total-meterage`,`max-meterage`,`remaining-capacity`,`is-empty`,`submitting`,`onRemove`,`onCheckout`]),_(m)?(r(),l(`div`,{key:1,class:`dialog-overlay`,onClick:T[3]||=y(e=>m.value=!1,[`self`])},[p(`div`,Ge,[T[6]||=p(`h3`,null,`سقف متراژ تکمیل شد`,-1),T[7]||=p(`p`,{class:`text-sm`},` سقف متراژ مجاز این سفارش پر شده است. میتوانید همین پیشسفارش را ثبت کنید یا سبد را خالی کرده و سفارش جدید بسازید. `,-1),p(`div`,Ke,[o(k,{variant:`outline`,loading:_(h),onClick:_(S)},{default:n(()=>[...T[4]||=[u(` ثبت همین فاکتور `,-1)]]),_:1},8,[`loading`,`onClick`]),o(k,{onClick:_(C)},{default:n(()=>[...T[5]||=[u(`فاکتور جدید`,-1)]]),_:1},8,[`onClick`])])])])):c(``,!0)]))}}),[[`__scopeId`,`data-v-2f81af33`]]);export{qe as default}; \ No newline at end of file diff --git a/dist/assets/CartView-zv4oXlED.js b/dist/assets/CartView-zv4oXlED.js new file mode 100644 index 0000000..d6e8fa0 --- /dev/null +++ b/dist/assets/CartView-zv4oXlED.js @@ -0,0 +1 @@ +import{At as e,F as t,G as n,M as r,Pt as i,R as a,_ as o,c as s,d as c,f as l,g as u,i as d,k as f,l as p,nt as m,t as h,u as g,ut as _,v}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{l as y,t as b}from"./BasicIcon-DPmc0iaK.js";import{a as x,o as S}from"./format-C72AoJ2H.js";import{t as C}from"./cart-F5Rptvi1.js";import{t as w}from"./IconCart-D9TX5E-P.js";import{t as T}from"./IconOrders-Cf-FXBIB.js";import{C as E,f as D,n as O,o as k,r as A,x as ee}from"./index-D_xSF6a7.js";import{t as te}from"./EmptyState-DoHTAy4d.js";import{t as j}from"./IconChevronBack-BsHmfODG.js";import{t as M}from"./FormErrorBanner-Ud1D04xf.js";import{t as N}from"./IconTrash-B73-wwf6.js";import{t as P}from"./PreorderPaymentFields-D3RvbpAa.js";import{t as F}from"./CheckoutStepper-DptjKnv0.js";import{t as I}from"./IconClipboardEmpty-DMrB9tzG.js";import{n as L,t as R}from"./IconDiamond-BZQtRyIy.js";function z(){let e=E(),t=C(),n=D(),r=m(!1),i=m(!1),a=m(``),o=m(null),c=m(null),l=s(()=>t.activeCart?.items??[]),u=s(()=>l.value.length===0),d=s(()=>t.companyNamesLabel||t.activeCart?.companyName||``),p=s(()=>t.companySummaries);async function h(e){let n=l.value.find(t=>t.id===e);await O({title:`حذف از سبد`,message:n?`آیا از حذف «${n.productName}» از سبد خرید مطمئن هستید؟`:`آیا از حذف این آیتم از سبد خرید مطمئن هستید؟`,confirmLabel:`حذف`,cancelLabel:`انصراف`,tone:`danger`})&&t.removeItem(e)}async function g(){if(!(!t.activeCart||l.value.length===0||i.value)){if(!o.value){a.value=`قبل از ثبت پیشسفارش روش پرداخت را انتخاب کنید.`;return}if((o.value===`check`||o.value===`cash_check`)&&!c.value){a.value=`مدت چک را از ۱ تا ۴ ماه انتخاب کنید.`;return}i.value=!0,a.value=``;try{if(await t.hydrate(),!t.activeCart?.items.length){a.value=`سبد خرید خالی است یا با سرور همگام نشد.`;return}let r=await n.submitOrder(t.activeCart,{settlementType:o.value,checkTermMonths:c.value});await t.hydrate(),e.replace(`/orders/${r.id}/success`)}catch(e){a.value=e instanceof Error?e.message:`ثبت سفارش ناموفق بود.`,await t.hydrate()}finally{i.value=!1}}}function _(){if(l.value.length!==0){if(t.isFull){r.value=!0;return}g()}}function v(){r.value=!1,g()}async function y(){await t.createNewCartForSameCompany(),r.value=!1,e.push(`/categories`)}return f(()=>{t.ensureActiveCartForCartPage()}),{cartStore:t,items:l,isEmpty:u,companyName:d,companySummaries:p,showFullDialog:r,submitting:i,submitError:a,settlementType:o,checkTermMonths:c,removeItem:h,proceedToCheckout:_,proceedAnyway:v,createNewInvoice:y}}var B={class:`cart-mobile-page`},V={class:`cart-mobile-page__nav`},H={type:`button`,class:`nav-btn nav-btn--ghost`,"aria-hidden":`true`,tabindex:`-1`},U={key:0,class:`cart-mobile-page__body`},W={key:0,class:`cart-mobile-page__meta`},G={class:`cart-mobile-page__scroll`},K={class:`cart-mobile-table`},q={class:`col-product`},J={class:`col-meterage`},Y={class:`col-delete`},X=[`onClick`],Z={class:`cart-mobile-page__footer`},Q={class:`cart-mobile-summary`},ne={class:`cart-mobile-summary__row`},re={class:`cart-mobile-summary__cap`},ie={key:1,class:`cart-mobile-summary__row`},ae={class:`cart-mobile-summary__row cart-mobile-summary__row--remain`},oe=h(v({__name:`MobileCartPage`,props:{items:{},companyName:{},companySummaries:{},totalMeterage:{},maxMeterage:{},remainingCapacity:{},isEmpty:{type:Boolean},submitting:{type:Boolean},settlementType:{},checkTermMonths:{}},emits:[`back`,`remove`,`checkout`,`selectCompany`,`update:settlementType`,`update:checkTermMonths`],setup(e,{emit:a}){let s=a;return(a,f)=>(r(),l(`div`,B,[p(`header`,V,[p(`button`,{type:`button`,class:`nav-btn`,"aria-label":`بازگشت`,onClick:f[0]||=e=>s(`back`)},[o(j,{size:20})]),f[5]||=p(`h1`,{class:`cart-mobile-page__title`},`سبد خرید`,-1),p(`button`,H,[o(j,{size:18,class:`nav-btn__flip`})])]),e.isEmpty?(r(),g(te,{key:1,variant:`cart`,message:`از دستهبندی یا کالیته محصول را انتخاب کنید`},{default:n(()=>[o(A,{onClick:f[4]||=e=>s(`selectCompany`)},{default:n(()=>[...f[12]||=[u(`مشاهده محصولات`,-1)]]),_:1})]),_:1})):(r(),l(`div`,U,[e.companyName?(r(),l(`p`,W,` تأمینکننده: `+i(e.companyName),1)):c(``,!0),p(`div`,G,[p(`div`,K,[f[6]||=p(`div`,{class:`cart-mobile-table__head`},[p(`span`,null,`محصول`),p(`span`,null,`متراژ (متر)`),p(`span`,null,`حذف`)],-1),(r(!0),l(d,null,t(e.items,e=>(r(),l(`div`,{key:e.id,class:`cart-mobile-table__row`},[p(`div`,q,[p(`strong`,null,i(e.productName),1),p(`span`,null,`کد: `+i(e.productCode),1)]),p(`div`,J,i(_(S)(e.meterage)),1),p(`div`,Y,[p(`button`,{type:`button`,"aria-label":`حذف`,onClick:t=>s(`remove`,e.id)},[o(N,{size:20})],8,X)])]))),128))])]),p(`div`,Z,[p(`div`,Q,[p(`div`,ne,[f[7]||=p(`span`,null,`جمع متراژ کل`,-1),p(`strong`,null,i(_(x)(e.totalMeterage)),1)]),e.companySummaries?.length?(r(!0),l(d,{key:0},t(e.companySummaries,e=>(r(),l(`div`,{key:e.companyId,class:`cart-mobile-summary__row cart-mobile-summary__row--sub`},[p(`span`,null,i(e.companyName),1),p(`strong`,null,[u(i(_(x)(e.meterage))+` `,1),p(`span`,re,`/ `+i(_(x)(e.maxMeterage)),1)])]))),128)):(r(),l(`div`,ie,[f[8]||=p(`span`,null,`حداکثر مجاز`,-1),p(`strong`,null,i(_(x)(e.maxMeterage)),1)])),p(`div`,ae,[f[9]||=p(`span`,null,`باقی مانده`,-1),p(`strong`,null,i(_(x)(e.remainingCapacity)),1)])]),o(P,{"settlement-type":e.settlementType,"check-term-months":e.checkTermMonths,"onUpdate:settlementType":f[1]||=e=>s(`update:settlementType`,e),"onUpdate:checkTermMonths":f[2]||=e=>s(`update:checkTermMonths`,e)},null,8,[`settlement-type`,`check-term-months`]),f[11]||=p(`p`,{class:`cart-mobile-page__hint`},` پس از ثبت، مدیریت بر اساس همین روش پرداخت قیمت و متراژ را اعلام میکند. `,-1),o(A,{block:``,loading:e.submitting,onClick:f[3]||=e=>s(`checkout`)},{default:n(()=>[...f[10]||=[u(`ثبت پیشسفارش`,-1)]]),_:1},8,[`loading`])])]))]))}}),[[`__scopeId`,`data-v-dda208c7`]]),se=v({__name:`IconLightbulb`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(t,n)=>(r(),g(b,{icon:`vuesax-linear:lamp-on`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),ce={class:`desktop-page cart-desktop-page`},le={class:`cart-desktop-page__head`},ue={key:0,class:`cart-desktop-page__subtitle`},de={class:`cart-desktop-page__layout`},fe={class:`cart-desktop-page__main`},pe={key:0,class:`cart-empty-card`},me={class:`cart-empty-card__visual`,"aria-hidden":`true`},he={class:`cart-empty-card__circle`},ge={class:`cart-empty-card__actions`},_e={key:1,class:`cart-items-card`},ve={class:`cart-items-card__scroll`},ye={class:`cart-items-table`},be={class:`cart-items-table__name`},xe=[`onClick`],Se={class:`cart-desktop-page__sidebar`},Ce={class:`cart-summary-card`},we={class:`cart-summary-card__title`},Te={class:`cart-summary-card__title-icon`,"aria-hidden":`true`},Ee={class:`cart-summary-card__rows`},De={class:`cart-summary-card__row`},Oe={class:`cart-summary-card__row-label`},ke={class:`cart-summary-card__row`},Ae={class:`cart-summary-card__row-label`},je={class:`cart-summary-card__row-label`},Me={class:`cart-summary-card__cap`},Ne={class:`cart-summary-card__row cart-summary-card__row--hint`},Pe={class:`cart-summary-card__row-label`},$=[`disabled`],Fe={class:`cart-guide-card`},Ie={class:`cart-guide-card__title`},Le={class:`cart-guide-card__title-icon`,"aria-hidden":`true`},Re={class:`cart-guide-card__text`},ze={class:`cart-quick-nav`,"aria-label":`دسترسی سریع`},Be=[`onClick`],Ve={class:`cart-quick-nav__body`},He={class:`cart-quick-nav__title`},Ue={class:`cart-quick-nav__desc`},We=h(v({__name:`DesktopCartPage`,props:{items:{},companyName:{},companySummaries:{},totalMeterage:{},maxMeterage:{},remainingCapacity:{},isEmpty:{type:Boolean},submitting:{type:Boolean},settlementType:{},checkTermMonths:{}},emits:[`remove`,`checkout`,`selectCompany`,`back`,`update:settlementType`,`update:checkTermMonths`],setup(n,{emit:s}){let f=s,m=E(),h=[{title:`کالیتهها`,desc:`مرور کالیته و طرحها`,icon:L,tone:`blue`,action:()=>m.push(`/catalogs`)},{title:`دستهبندی`,desc:`مشاهده محصولات بر اساس کاربرد`,icon:R,tone:`green`,action:()=>m.push(`/categories`)},{title:`سفارشهای من`,desc:`پیگیری وضعیت سفارشها`,icon:T,tone:`blue`,action:()=>m.push(`/orders`)}];return(s,v)=>(r(),l(`div`,ce,[o(F,{"current-step":1}),p(`header`,le,[v[5]||=p(`h1`,{class:`cart-desktop-page__title`},`سبد خرید`,-1),n.companyName?(r(),l(`p`,ue,` تأمینکننده: `+i(n.companyName),1)):c(``,!0)]),p(`div`,de,[p(`section`,fe,[n.isEmpty?(r(),l(`div`,pe,[p(`div`,me,[v[6]||=p(`span`,{class:`cart-empty-card__spark cart-empty-card__spark--1`},`+`,-1),v[7]||=p(`span`,{class:`cart-empty-card__spark cart-empty-card__spark--2`},`·`,-1),p(`span`,he,[o(w,{size:40})]),v[8]||=p(`span`,{class:`cart-empty-card__spark cart-empty-card__spark--3`},`·`,-1)]),v[11]||=p(`h2`,{class:`cart-empty-card__heading`},`سبد خرید شما خالی است`,-1),v[12]||=p(`p`,{class:`cart-empty-card__text`},` از دستهبندی یا کالیته محصول را انتخاب کنید، جزئیات را ببینید و به سبد اضافه کنید. `,-1),p(`div`,ge,[p(`button`,{type:`button`,class:`cart-btn cart-btn--primary`,onClick:v[0]||=e=>f(`selectCompany`)},[o(R,{size:16}),v[9]||=u(` دستهبندی محصولات `,-1)]),p(`button`,{type:`button`,class:`cart-btn cart-btn--outline`,onClick:v[1]||=e=>_(m).push(`/catalogs`)},[o(L,{size:18}),v[10]||=u(` مشاهده کالیتهها `,-1)])])])):(r(),l(`div`,_e,[p(`div`,ve,[p(`table`,ye,[v[13]||=p(`thead`,null,[p(`tr`,null,[p(`th`,{scope:`col`},`محصول`),p(`th`,{scope:`col`},`کد`),p(`th`,{scope:`col`},`متراژ (متر)`),p(`th`,{scope:`col`},`حذف`)])],-1),p(`tbody`,null,[(r(!0),l(d,null,t(n.items,e=>(r(),l(`tr`,{key:e.id},[p(`td`,null,[p(`strong`,be,i(e.productName),1)]),p(`td`,null,i(e.productCode),1),p(`td`,null,i(_(S)(e.meterage)),1),p(`td`,null,[p(`button`,{type:`button`,class:`cart-items-table__delete`,"aria-label":`حذف`,onClick:t=>f(`remove`,e.id)},[o(N,{size:18})],8,xe)])]))),128))])])])]))]),p(`aside`,Se,[p(`div`,Ce,[p(`h2`,we,[p(`span`,Te,[o(I,{size:22})]),v[14]||=u(` خلاصه سفارش `,-1)]),p(`div`,Ee,[p(`div`,De,[p(`span`,Oe,[o(L,{size:16}),v[15]||=u(` تعداد آیتمها `,-1)]),p(`strong`,null,i(_(S)(n.items.length)),1)]),p(`div`,ke,[p(`span`,Ae,[o(R,{size:16}),v[16]||=u(` متراژ کل `,-1)]),p(`strong`,null,i(_(x)(n.totalMeterage)),1)]),(r(!0),l(d,null,t(n.companySummaries??[],e=>(r(),l(`div`,{key:e.companyId,class:`cart-summary-card__row cart-summary-card__row--sub`},[p(`span`,je,i(e.companyName),1),p(`strong`,null,[u(i(_(x)(e.meterage))+` `,1),p(`span`,Me,`/ `+i(_(x)(e.maxMeterage)),1)])]))),128)),p(`div`,Ne,[p(`span`,Pe,[o(T,{size:16}),v[17]||=u(` مبلغ فاکتور `,-1)]),v[18]||=p(`span`,{class:`cart-summary-card__hint-value`},` پس از قیمتگذاری مدیریت `,-1)])]),o(P,{"settlement-type":n.settlementType,"check-term-months":n.checkTermMonths,"onUpdate:settlementType":v[2]||=e=>f(`update:settlementType`,e),"onUpdate:checkTermMonths":v[3]||=e=>f(`update:checkTermMonths`,e)},null,8,[`settlement-type`,`check-term-months`]),p(`button`,{type:`button`,class:`cart-summary-card__cta`,disabled:n.isEmpty||n.submitting,onClick:v[4]||=e=>f(`checkout`)},[o(k,{size:16}),u(` `+i(n.submitting?`در حال ثبت…`:`ثبت پیشسفارش`),1)],8,$),v[19]||=p(`p`,{class:`cart-summary-card__note`},` روش پرداخت الان ثبت میشود. مدیریت بعد از آن قیمت و متراژ را اعلام میکند. `,-1)]),p(`div`,Fe,[p(`h3`,Ie,[p(`span`,Le,[o(se,{size:18})]),v[20]||=u(` راهنمای گام بعدی `,-1)]),p(`p`,Re,[v[21]||=u(` محصولات موردنظر را به سبد اضافه کنید، متراژ کل را بررسی کنید و «ثبت پیشسفارش» را بزنید. `,-1),n.isEmpty?c(``,!0):(r(),l(d,{key:0},[u(` سقف مجاز: `+i(_(x)(n.maxMeterage))+` — باقیمانده: `+i(_(x)(n.remainingCapacity))+`. `,1)],64)),v[22]||=u(` پس از قیمتگذاری، از صفحه سفارش روش تسویه را انتخاب میکنید. `,-1)])])])]),p(`nav`,ze,[(r(),l(d,null,t(h,t=>p(`button`,{key:t.title,type:`button`,class:`cart-quick-nav__item`,onClick:e=>t.action()},[p(`span`,{class:e([`cart-quick-nav__icon`,`cart-quick-nav__icon--${t.tone}`])},[(r(),g(a(t.icon),{size:20}))],2),p(`span`,Ve,[p(`strong`,He,i(t.title),1),p(`span`,Ue,i(t.desc),1)]),o(k,{size:16,class:`cart-quick-nav__chevron`,"aria-hidden":`true`})],8,Be)),64))]),v[23]||=p(`p`,{class:`cart-desktop-page__footer`},`پارس بافت — سامانه سفارشگذاری پارچه`,-1)]))}}),[[`__scopeId`,`data-v-feede98a`]]),Ge={class:`cart-view`},Ke={class:`dialog card`},qe={class:`dialog-actions`},Je=h(v({__name:`CartView`,setup(e){let t=E(),{cartStore:i,items:a,isEmpty:s,companyName:d,companySummaries:f,showFullDialog:m,submitting:h,submitError:v,settlementType:b,checkTermMonths:x,removeItem:S,proceedToCheckout:C,proceedAnyway:w,createNewInvoice:T}=z();function D(){t.push(ee)}return(e,E)=>(r(),l(`div`,Ge,[_(v)?(r(),g(M,{key:0,message:_(v),class:`cart-view__error`},null,8,[`message`])):c(``,!0),o(oe,{class:`mobile-only`,items:_(a),"company-name":_(d),"company-summaries":_(f),"total-meterage":_(i).totalMeterage,"max-meterage":_(i).maxMeterage,"remaining-capacity":_(i).remainingCapacity,"is-empty":_(s),submitting:_(h),"settlement-type":_(b),"check-term-months":_(x),"onUpdate:settlementType":E[0]||=e=>b.value=e,"onUpdate:checkTermMonths":E[1]||=e=>x.value=e,onBack:E[2]||=e=>_(t).push(`/`),onRemove:_(S),onCheckout:_(C),onSelectCompany:E[3]||=e=>D()},null,8,[`items`,`company-name`,`company-summaries`,`total-meterage`,`max-meterage`,`remaining-capacity`,`is-empty`,`submitting`,`settlement-type`,`check-term-months`,`onRemove`,`onCheckout`]),o(We,{class:`desktop-only`,items:_(a),"company-name":_(d),"company-summaries":_(f),"total-meterage":_(i).totalMeterage,"max-meterage":_(i).maxMeterage,"remaining-capacity":_(i).remainingCapacity,"is-empty":_(s),submitting:_(h),"settlement-type":_(b),"check-term-months":_(x),"onUpdate:settlementType":E[4]||=e=>b.value=e,"onUpdate:checkTermMonths":E[5]||=e=>x.value=e,onRemove:_(S),onCheckout:_(C),onSelectCompany:E[6]||=e=>D(),onBack:D},null,8,[`items`,`company-name`,`company-summaries`,`total-meterage`,`max-meterage`,`remaining-capacity`,`is-empty`,`submitting`,`settlement-type`,`check-term-months`,`onRemove`,`onCheckout`]),_(m)?(r(),l(`div`,{key:1,class:`dialog-overlay`,onClick:E[7]||=y(e=>m.value=!1,[`self`])},[p(`div`,Ke,[E[10]||=p(`h3`,null,`سقف متراژ تکمیل شد`,-1),E[11]||=p(`p`,{class:`text-sm`},` سقف متراژ مجاز این سفارش پر شده است. میتوانید همین پیشسفارش را ثبت کنید یا سبد را خالی کرده و سفارش جدید بسازید. `,-1),p(`div`,qe,[o(A,{variant:`outline`,loading:_(h),onClick:_(w)},{default:n(()=>[...E[8]||=[u(` ثبت همین فاکتور `,-1)]]),_:1},8,[`loading`,`onClick`]),o(A,{onClick:_(T)},{default:n(()=>[...E[9]||=[u(`فاکتور جدید`,-1)]]),_:1},8,[`onClick`])])])])):c(``,!0)]))}}),[[`__scopeId`,`data-v-ef862cba`]]);export{Je as default}; \ No newline at end of file diff --git a/dist/assets/CashSettlementView-DMsMuhva.js b/dist/assets/CashSettlementView-BMu57c8Y.js similarity index 95% rename from dist/assets/CashSettlementView-DMsMuhva.js rename to dist/assets/CashSettlementView-BMu57c8Y.js index f1292ec..b30b875 100644 --- a/dist/assets/CashSettlementView-DMsMuhva.js +++ b/dist/assets/CashSettlementView-BMu57c8Y.js @@ -1 +1 @@ -import{F as e,G as t,M as n,Pt as r,U as i,_ as a,c as o,f as s,g as c,i as l,l as u,nt as ee,t as te,ut as d,v as f}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{i as ne,n as re}from"./format-C72AoJ2H.js";import{t as ie}from"./catalog-DWpH1dVc.js";import{C as p,f as m,r as h,t as g}from"./index-CE4Fw0WE.js";import"./constants-ptWoEwwP.js";import{t as ae}from"./PageHeader-BDPrFkve.js";import{t as oe}from"./useRequirePricedOrder-B78MxGXz.js";var se={class:`page cash-mobile-page mobile-only`},ce={class:`cash-page__scroll page__scroll`},le={class:`cash-page__success cash-page__success--done`},ue={class:`cash-page__success-title`},de={class:`cash-page__success-subtitle`},_={class:`accounts-panel`},v={class:`accounts-panel__title`},y={class:`bank-card__head`},b={class:`bank-card__name`},x={class:`bank-card__icon`,"aria-hidden":`true`},S={class:`bank-card__field`},C={class:`bank-card__value`,dir:`ltr`},w={class:`bank-card__field`},T={class:`bank-card__value`,dir:`ltr`},E={class:`cash-page__footer`},D={class:`desktop-checkout-shell cash-desktop-page desktop-only`},O={class:`desktop-page__head`},k={class:`desktop-page__subtitle`},A={class:`cash-page__success cash-page__success--done`},j={class:`cash-page__success-title`},M={class:`accounts-panel`},N={class:`accounts-panel__title`},P={class:`desktop-grid-2`},F={class:`bank-card__head`},fe={class:`bank-card__name`},I={class:`bank-card__icon`,"aria-hidden":`true`},L={class:`bank-card__field`},R={class:`bank-card__value`,dir:`ltr`},z={class:`bank-card__field`},B={class:`bank-card__value`,dir:`ltr`},V={class:`cash-desktop-page__actions`},H=te(f({__name:`CashSettlementView`,setup(te){let f=p(),H=m(),U=ie(),W=ee([]),{orderId:G,order:K}=oe(),pe=o(()=>U.companies.find(e=>e.slug===`nademitex`)?.name??`نادمی تکس`);i(G,async e=>{e&&!H.getOrderById(e)&&await H.fetchOrder(e)},{immediate:!0}),i(()=>K.value?.id,async e=>{if(!e||!K.value){W.value=[];return}U.companies.length||await U.loadCompanies(),W.value=await H.getBankAccountsForOrder(K.value)},{immediate:!0});let q=o(()=>K.value?.finalAmount?re(K.value.finalAmount):`—`),J=o(()=>{let e=K.value?.cashInvoiceExpiresAt;return e?`مهلت پرداخت این فاکتور تا ${ne(e)} است.`:`مبلغ فاکتور را به یکی از حسابهای زیر واریز و رسید را ثبت کنید.`}),Y=o(()=>`شماره حسابهای واریز — ${pe.value}`);function X(e){return e.replace(/\D/g,``).replace(/(\d{4})(?=\d)/g,`$1 `).trim()}function Z(e){return e.replace(/\s/g,``).toUpperCase().replace(/(.{4})/g,`$1 `).trim()}function Q(){f.replace(`/orders/${G.value}?track=1`)}function $(){f.replace(`/orders/${G.value}?track=1&receipt=1`)}return(i,o)=>(n(),s(l,null,[u(`div`,se,[a(ae,{title:`تسویه نقدی`,"show-back":``,centered:``,onBack:o[0]||=e=>d(f).push(`/orders/${d(G)}`)}),u(`div`,ce,[u(`div`,le,[a(g,{size:56}),u(`p`,ue,`مبلغ قابل پرداخت `+r(q.value),1),u(`p`,de,r(J.value),1)]),u(`section`,_,[u(`h2`,v,r(Y.value),1),(n(!0),s(l,null,e(W.value,e=>(n(),s(`article`,{key:e.id,class:`bank-card`},[u(`div`,y,[u(`span`,b,r(e.bankName),1),u(`span`,x,r(e.bankName.charAt(0)),1)]),u(`div`,S,[o[1]||=u(`span`,{class:`bank-card__label`},`شماره کارت`,-1),u(`strong`,C,r(X(e.cardNumber)),1)]),u(`div`,w,[o[2]||=u(`span`,{class:`bank-card__label`},`شماره شبا`,-1),u(`strong`,T,r(Z(e.iban)),1)])]))),128))])]),u(`div`,E,[a(h,{variant:`outline`,block:``,onClick:Q},{default:t(()=>[...o[3]||=[c(`مشاهده سفارش`,-1)]]),_:1}),a(h,{block:``,class:`cash-page__submit`,onClick:$},{default:t(()=>[...o[4]||=[c(` ثبت رسید پرداخت `,-1)]]),_:1})])]),u(`div`,D,[u(`header`,O,[o[5]||=u(`h1`,{class:`desktop-page__title`},`تسویه نقدی`,-1),u(`p`,k,r(J.value),1)]),u(`div`,A,[a(g,{size:56}),u(`p`,j,`مبلغ قابل پرداخت `+r(q.value),1)]),u(`section`,M,[u(`h2`,N,r(Y.value),1),u(`div`,P,[(n(!0),s(l,null,e(W.value,e=>(n(),s(`article`,{key:e.id,class:`bank-card`},[u(`div`,F,[u(`span`,fe,r(e.bankName),1),u(`span`,I,r(e.bankName.charAt(0)),1)]),u(`div`,L,[o[6]||=u(`span`,{class:`bank-card__label`},`شماره کارت`,-1),u(`strong`,R,r(X(e.cardNumber)),1)]),u(`div`,z,[o[7]||=u(`span`,{class:`bank-card__label`},`شماره شبا`,-1),u(`strong`,B,r(Z(e.iban)),1)])]))),128))])]),u(`div`,V,[a(h,{variant:`outline`,class:`desktop-btn-compact`,onClick:Q},{default:t(()=>[...o[8]||=[c(` مشاهده سفارش `,-1)]]),_:1}),a(h,{class:`desktop-btn-compact`,onClick:$},{default:t(()=>[...o[9]||=[c(` ثبت رسید پرداخت `,-1)]]),_:1})])])],64))}}),[[`__scopeId`,`data-v-fa758115`]]);export{H as default}; \ No newline at end of file +import{F as e,G as t,M as n,Pt as r,U as i,_ as a,c as o,f as s,g as c,i as l,l as u,nt as ee,t as te,ut as d,v as f}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{i as ne,n as re}from"./format-C72AoJ2H.js";import{t as ie}from"./catalog-DWpH1dVc.js";import{C as p,f as m,r as h,t as g}from"./index-D_xSF6a7.js";import"./constants-ptWoEwwP.js";import{t as ae}from"./PageHeader-CD5rAJke.js";import{t as oe}from"./useRequirePricedOrder-CUcMimHo.js";var se={class:`page cash-mobile-page mobile-only`},ce={class:`cash-page__scroll page__scroll`},le={class:`cash-page__success cash-page__success--done`},ue={class:`cash-page__success-title`},de={class:`cash-page__success-subtitle`},_={class:`accounts-panel`},v={class:`accounts-panel__title`},y={class:`bank-card__head`},b={class:`bank-card__name`},x={class:`bank-card__icon`,"aria-hidden":`true`},S={class:`bank-card__field`},C={class:`bank-card__value`,dir:`ltr`},w={class:`bank-card__field`},T={class:`bank-card__value`,dir:`ltr`},E={class:`cash-page__footer`},D={class:`desktop-checkout-shell cash-desktop-page desktop-only`},O={class:`desktop-page__head`},k={class:`desktop-page__subtitle`},A={class:`cash-page__success cash-page__success--done`},j={class:`cash-page__success-title`},M={class:`accounts-panel`},N={class:`accounts-panel__title`},P={class:`desktop-grid-2`},F={class:`bank-card__head`},fe={class:`bank-card__name`},I={class:`bank-card__icon`,"aria-hidden":`true`},L={class:`bank-card__field`},R={class:`bank-card__value`,dir:`ltr`},z={class:`bank-card__field`},B={class:`bank-card__value`,dir:`ltr`},V={class:`cash-desktop-page__actions`},H=te(f({__name:`CashSettlementView`,setup(te){let f=p(),H=m(),U=ie(),W=ee([]),{orderId:G,order:K}=oe(),pe=o(()=>U.companies.find(e=>e.slug===`nademitex`)?.name??`نادمی تکس`);i(G,async e=>{e&&!H.getOrderById(e)&&await H.fetchOrder(e)},{immediate:!0}),i(()=>K.value?.id,async e=>{if(!e||!K.value){W.value=[];return}U.companies.length||await U.loadCompanies(),W.value=await H.getBankAccountsForOrder(K.value)},{immediate:!0});let q=o(()=>K.value?.finalAmount?re(K.value.finalAmount):`—`),J=o(()=>{let e=K.value?.cashInvoiceExpiresAt;return e?`مهلت پرداخت این فاکتور تا ${ne(e)} است.`:`مبلغ فاکتور را به یکی از حسابهای زیر واریز و رسید را ثبت کنید.`}),Y=o(()=>`شماره حسابهای واریز — ${pe.value}`);function X(e){return e.replace(/\D/g,``).replace(/(\d{4})(?=\d)/g,`$1 `).trim()}function Z(e){return e.replace(/\s/g,``).toUpperCase().replace(/(.{4})/g,`$1 `).trim()}function Q(){f.replace(`/orders/${G.value}?track=1`)}function $(){f.replace(`/orders/${G.value}?track=1&receipt=1`)}return(i,o)=>(n(),s(l,null,[u(`div`,se,[a(ae,{title:`تسویه نقدی`,"show-back":``,centered:``,onBack:o[0]||=e=>d(f).push(`/orders/${d(G)}`)}),u(`div`,ce,[u(`div`,le,[a(g,{size:56}),u(`p`,ue,`مبلغ قابل پرداخت `+r(q.value),1),u(`p`,de,r(J.value),1)]),u(`section`,_,[u(`h2`,v,r(Y.value),1),(n(!0),s(l,null,e(W.value,e=>(n(),s(`article`,{key:e.id,class:`bank-card`},[u(`div`,y,[u(`span`,b,r(e.bankName),1),u(`span`,x,r(e.bankName.charAt(0)),1)]),u(`div`,S,[o[1]||=u(`span`,{class:`bank-card__label`},`شماره کارت`,-1),u(`strong`,C,r(X(e.cardNumber)),1)]),u(`div`,w,[o[2]||=u(`span`,{class:`bank-card__label`},`شماره شبا`,-1),u(`strong`,T,r(Z(e.iban)),1)])]))),128))])]),u(`div`,E,[a(h,{variant:`outline`,block:``,onClick:Q},{default:t(()=>[...o[3]||=[c(`مشاهده سفارش`,-1)]]),_:1}),a(h,{block:``,class:`cash-page__submit`,onClick:$},{default:t(()=>[...o[4]||=[c(` ثبت رسید پرداخت `,-1)]]),_:1})])]),u(`div`,D,[u(`header`,O,[o[5]||=u(`h1`,{class:`desktop-page__title`},`تسویه نقدی`,-1),u(`p`,k,r(J.value),1)]),u(`div`,A,[a(g,{size:56}),u(`p`,j,`مبلغ قابل پرداخت `+r(q.value),1)]),u(`section`,M,[u(`h2`,N,r(Y.value),1),u(`div`,P,[(n(!0),s(l,null,e(W.value,e=>(n(),s(`article`,{key:e.id,class:`bank-card`},[u(`div`,F,[u(`span`,fe,r(e.bankName),1),u(`span`,I,r(e.bankName.charAt(0)),1)]),u(`div`,L,[o[6]||=u(`span`,{class:`bank-card__label`},`شماره کارت`,-1),u(`strong`,R,r(X(e.cardNumber)),1)]),u(`div`,z,[o[7]||=u(`span`,{class:`bank-card__label`},`شماره شبا`,-1),u(`strong`,B,r(Z(e.iban)),1)])]))),128))])]),u(`div`,V,[a(h,{variant:`outline`,class:`desktop-btn-compact`,onClick:Q},{default:t(()=>[...o[8]||=[c(` مشاهده سفارش `,-1)]]),_:1}),a(h,{class:`desktop-btn-compact`,onClick:$},{default:t(()=>[...o[9]||=[c(` ثبت رسید پرداخت `,-1)]]),_:1})])])],64))}}),[[`__scopeId`,`data-v-fa758115`]]);export{H as default}; \ No newline at end of file diff --git a/dist/assets/CatalogRequestsView-Daf5j2GU.js b/dist/assets/CatalogRequestsView-qpQtlXSN.js similarity index 93% rename from dist/assets/CatalogRequestsView-Daf5j2GU.js rename to dist/assets/CatalogRequestsView-qpQtlXSN.js index 712a23d..4d06918 100644 --- a/dist/assets/CatalogRequestsView-Daf5j2GU.js +++ b/dist/assets/CatalogRequestsView-qpQtlXSN.js @@ -1 +1 @@ -import{F as e,M as t,Pt as n,_ as r,d as i,f as a,i as o,k as s,l as c,t as l,ut as u,v as d}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{o as f}from"./format-C72AoJ2H.js";import{C as p}from"./index-CE4Fw0WE.js";import{t as m}from"./PageHeader-BDPrFkve.js";import{t as h}from"./catalogRequests-COPPKp3x.js";var g={class:`page catalog-requests-page`},_={class:`desktop-page__head desktop-only catalog-requests-desk-head`},v={class:`page__scroll page__scroll--with-nav body`},y={key:0,class:`empty`},b={class:`card__top`},x={class:`badge`},S={key:0,class:`note`},C=l(d({__name:`CatalogRequestsView`,setup(l){let d=p(),C=h();return s(()=>C.hydrate()),(s,l)=>(t(),a(`div`,g,[r(m,{class:`mobile-only`,title:`وضعیت کالیتهها`,"show-back":``,centered:``,onBack:l[0]||=e=>u(d).push(`/products`)}),c(`header`,_,[l[3]||=c(`div`,null,[c(`h1`,{class:`desktop-page__title`},`وضعیت کالیتهها`),c(`p`,{class:`desktop-page__subtitle`},`پیگیری درخواستهای کالیته ثبتشده`)],-1),c(`button`,{type:`button`,class:`desk-new-btn`,onClick:l[1]||=e=>u(d).push(`/categories`)},` درخواست کالیته جدید `)]),c(`div`,v,[c(`button`,{type:`button`,class:`new-btn mobile-only`,onClick:l[2]||=e=>u(d).push(`/categories`)},` درخواست کالیته جدید `),u(C).sorted.length?i(``,!0):(t(),a(`p`,y,`هنوز درخواستی ثبت نکردهاید.`)),(t(!0),a(o,null,e(u(C).sorted,r=>(t(),a(`article`,{key:r.id,class:`card`},[c(`div`,b,[c(`strong`,null,`درخواست `+n(r.id.slice(-6)),1),c(`span`,x,n(u(C).statusLabel(r.status)),1)]),c(`p`,null,n(r.createdAt.slice(0,10)),1),c(`p`,null,n(u(f)(r.items.length))+` قلم`,1),c(`ul`,null,[(t(!0),a(o,null,e(r.items,e=>(t(),a(`li`,{key:e.productId},n(e.productName)+` × `+n(u(f)(e.quantity)),1))),128))]),r.note?(t(),a(`p`,S,n(r.note),1)):i(``,!0)]))),128))])]))}}),[[`__scopeId`,`data-v-90b3d301`]]);export{C as default}; \ No newline at end of file +import{F as e,M as t,Pt as n,_ as r,d as i,f as a,i as o,k as s,l as c,t as l,ut as u,v as d}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{o as f}from"./format-C72AoJ2H.js";import{C as p}from"./index-D_xSF6a7.js";import{t as m}from"./PageHeader-CD5rAJke.js";import{t as h}from"./catalogRequests-COPPKp3x.js";var g={class:`page catalog-requests-page`},_={class:`desktop-page__head desktop-only catalog-requests-desk-head`},v={class:`page__scroll page__scroll--with-nav body`},y={key:0,class:`empty`},b={class:`card__top`},x={class:`badge`},S={key:0,class:`note`},C=l(d({__name:`CatalogRequestsView`,setup(l){let d=p(),C=h();return s(()=>C.hydrate()),(s,l)=>(t(),a(`div`,g,[r(m,{class:`mobile-only`,title:`وضعیت کالیتهها`,"show-back":``,centered:``,onBack:l[0]||=e=>u(d).push(`/products`)}),c(`header`,_,[l[3]||=c(`div`,null,[c(`h1`,{class:`desktop-page__title`},`وضعیت کالیتهها`),c(`p`,{class:`desktop-page__subtitle`},`پیگیری درخواستهای کالیته ثبتشده`)],-1),c(`button`,{type:`button`,class:`desk-new-btn`,onClick:l[1]||=e=>u(d).push(`/categories`)},` درخواست کالیته جدید `)]),c(`div`,v,[c(`button`,{type:`button`,class:`new-btn mobile-only`,onClick:l[2]||=e=>u(d).push(`/categories`)},` درخواست کالیته جدید `),u(C).sorted.length?i(``,!0):(t(),a(`p`,y,`هنوز درخواستی ثبت نکردهاید.`)),(t(!0),a(o,null,e(u(C).sorted,r=>(t(),a(`article`,{key:r.id,class:`card`},[c(`div`,b,[c(`strong`,null,`درخواست `+n(r.id.slice(-6)),1),c(`span`,x,n(u(C).statusLabel(r.status)),1)]),c(`p`,null,n(r.createdAt.slice(0,10)),1),c(`p`,null,n(u(f)(r.items.length))+` قلم`,1),c(`ul`,null,[(t(!0),a(o,null,e(r.items,e=>(t(),a(`li`,{key:e.productId},n(e.productName)+` × `+n(u(f)(e.quantity)),1))),128))]),r.note?(t(),a(`p`,S,n(r.note),1)):i(``,!0)]))),128))])]))}}),[[`__scopeId`,`data-v-90b3d301`]]);export{C as default}; \ No newline at end of file diff --git a/dist/assets/CategoriesView-BUy2GAk9.js b/dist/assets/CategoriesView-Q_JSFugy.js similarity index 97% rename from dist/assets/CategoriesView-BUy2GAk9.js rename to dist/assets/CategoriesView-Q_JSFugy.js index 412a25d..f544ac2 100644 --- a/dist/assets/CategoriesView-BUy2GAk9.js +++ b/dist/assets/CategoriesView-Q_JSFugy.js @@ -1 +1 @@ -import{At as e,F as t,K as n,M as r,Nt as i,Pt as a,R as o,_ as s,c,d as l,f as u,g as d,i as f,k as p,l as m,nt as h,t as g,u as _,ut as v,v as y}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{c as b,l as x,s as S,t as C}from"./BasicIcon-DPmc0iaK.js";import{t as w}from"./IconCatalog-BaNuPmu8.js";import{C as T,a as E,o as D,s as O,y as k}from"./index-CE4Fw0WE.js";import{t as A}from"./IconChevronBack-BsHmfODG.js";import{t as j}from"./IconDiamond-BZQtRyIy.js";import{t as ee}from"./PageSkeleton-DYdjm4l9.js";import{t as M}from"./crm-CgnSby61.js";import{n as N,r as P,t as F}from"./useSlotBanners-fCEY91jj.js";import{t as I}from"./useGoBack-BrwZYRKb.js";import{t as L}from"./useTouchSwipe-C8fUyAcQ.js";import{t as R}from"./bannerLink-BW8t2Oqp.js";var z=y({__name:`IconSearch`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(t,n)=>(r(),_(C,{icon:`vuesax-linear:search-normal`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),B=[`aria-label`],V={class:`slot-banner__content`},H={key:0,class:`slot-banner__title`},U={key:1,class:`slot-banner__tagline`},W={key:0,class:`slot-banner__dots`,role:`tablist`,"aria-label":`بنرها`},G=[`aria-label`,`aria-selected`,`onClick`],K=g(y({__name:`AppSlotBanner`,props:{bannerSlot:{},hideWhenEmpty:{type:Boolean,default:!0}},setup(o){let s=o,d=T(),{banners:p,loading:g}=F(s.bannerSlot),_=h(0),y=c(()=>p.value[_.value]??null),b=c(()=>y.value?.bannerLink?.trim()||``),C=c(()=>{let e=y.value?.imageUrl?.trim();if(e)return{backgroundImage:`url(${e})`}});function w(){let e=y.value?.ctaLink?.trim();e&&R(e,d)}function E(e){b.value&&(e.target.closest(`.slot-banner__cta, .slot-banner__dots`)||R(b.value,d))}function D(e){p.value.length&&(_.value=(e%p.value.length+p.value.length)%p.value.length)}let{onTouchStart:O,onTouchEnd:k}=L({enabled:()=>p.value.length>1,onSwipe(e){D(_.value+e)}});return(s,c)=>!o.hideWhenEmpty||y.value?n((r(),u(`section`,{key:0,class:e([`slot-banner`,{"slot-banner--photo":!!y.value?.imageUrl,"slot-banner--linked":!!b.value}]),style:i(C.value),"aria-label":y.value?.title||`بنر`,onClick:E,onTouchstartPassive:c[0]||=(...e)=>v(O)&&v(O)(...e),onTouchendPassive:c[1]||=(...e)=>v(k)&&v(k)(...e)},[y.value?(r(),u(f,{key:0},[m(`div`,V,[y.value.showTitle!==!1&&y.value.title?(r(),u(`h2`,H,a(y.value.title),1)):l(``,!0),y.value.showSubtitle!==!1&&y.value.subtitle?(r(),u(`p`,U,a(y.value.subtitle),1)):l(``,!0),y.value.showCta!==!1&&y.value.ctaLabel?(r(),u(`button`,{key:2,type:`button`,class:`slot-banner__cta`,onClick:x(w,[`stop`])},a(y.value.ctaLabel),1)):l(``,!0)]),v(p).length>1?(r(),u(`div`,W,[(r(!0),u(f,null,t(v(p),(t,n)=>(r(),u(`button`,{key:t.id,type:`button`,class:e([`slot-banner__dot`,{"slot-banner__dot--active":n===_.value}]),"aria-label":t.title,"aria-selected":n===_.value,onClick:x(e=>D(n),[`stop`])},null,10,G))),128))])):l(``,!0)],64)):l(``,!0)],46,B)),[[S,!v(g)&&y.value]]):l(``,!0)}}),[[`__scopeId`,`data-v-e2649f82`]]),q={class:`page categories-page`},J={class:`cat-top mobile-only`},Y={class:`cat-top__actions`},X={class:`page__scroll page__scroll--with-nav cat-scroll`},Z={key:0},te={class:`usage-grid`},Q=[`onClick`],ne={key:0,class:`usage-card__icon`},re={class:`usage-card__body`},ie={key:0},ae={key:1,class:`usage-card__link`},oe={class:`season-stack`},se=[`onClick`],ce={class:`season-card__content`},le={key:0,class:`season-card__title-row`},ue={key:0,class:`season-card__icon`},de={key:1},fe={key:1},pe={key:2,class:`season-card__link`},$={class:`feature-row`,"aria-label":`ویژگیها`},me={class:`feature-card`},he={class:`feature-card__icon`,"aria-hidden":`true`},ge={class:`feature-card`},_e={class:`feature-card__icon`,"aria-hidden":`true`},ve={class:`feature-card__icon`,"aria-hidden":`true`},ye=g(y({__name:`CategoriesView`,setup(n){let c=T(),{goBack:g}=I(`/`),y=M(),x=h([]),S=h([]),C=h(!0),F=h(null);function L(e){return e.icon||(e.id===`summer`?`bolt`:e.id===`winter`?`feather`:`diamond`)}p(async()=>{try{let e=await y.loadCategories();x.value=e.usage,S.value=e.seasons}catch(e){F.value=e instanceof Error?e.message:`بارگذاری دستهها ناموفق بود.`}finally{C.value=!1}});function R(e){c.push({path:`/products`,query:{categoryId:e,filterAxis:`usage`}})}function B(e){c.push({path:`/products`,query:{season:e,filterAxis:`season`}})}return(n,p)=>(r(),u(`div`,q,[m(`header`,J,[m(`button`,{type:`button`,class:`icon-btn`,"aria-label":`بازگشت`,onClick:p[0]||=(...e)=>v(g)&&v(g)(...e)},[s(A,{size:20})]),p[5]||=m(`h1`,{class:`cat-top__title`},`دستهبندیها`,-1),m(`div`,Y,[s(E,{variant:`inline`}),m(`button`,{type:`button`,class:`icon-btn`,"aria-label":`جستجو`,onClick:p[1]||=e=>v(c).push({path:`/products`,query:{q:``}})},[s(z,{size:20})]),m(`button`,{type:`button`,class:`icon-btn`,"aria-label":`اعلانها`,onClick:p[2]||=e=>v(c).push(`/profile/notifications`)},[s(O,{size:20})])])]),p[13]||=m(`header`,{class:`desktop-page__head desktop-only`},[m(`h1`,{class:`desktop-page__title`},`دستهبندیها`),m(`p`,{class:`desktop-page__subtitle`},`دسته موردنظر خود را انتخاب کنید`)],-1),m(`div`,X,[F.value?(r(),u(`p`,Z,a(F.value),1)):C.value?(r(),_(ee,{key:1,variant:`grid`})):(r(),u(f,{key:2},[s(K,{"banner-slot":`categories_hero`,class:`categories-page__hero`}),m(`section`,null,[p[6]||=m(`h2`,{class:`block-title`},`انتخاب بر اساس کاربرد`,-1),p[7]||=m(`p`,{class:`block-sub`},`دسته موردنظر خود را انتخاب کنید`,-1),m(`div`,te,[(r(!0),u(f,null,t(x.value,t=>(r(),u(`button`,{key:t.id,type:`button`,class:`usage-card`,onClick:e=>R(t.id)},[m(`div`,{class:e([`usage-card__image`,`usage-card__image--${t.id}`]),style:i(t.imageUrl?{backgroundImage:`url(${t.imageUrl})`}:void 0)},[t.showIcon===!1?l(``,!0):(r(),u(`span`,ne,[(r(),_(o(v(N)(v(P)(t),w)),{size:18}))]))],6),m(`div`,re,[t.showTitle===!1?l(``,!0):(r(),u(`strong`,ie,a(t.title),1)),t.showSubtitle===!1?l(``,!0):(r(),u(`span`,ae,[d(a(t.subtitle||`مشاهده محصولات`)+` `,1),s(D,{size:14})]))])],8,Q))),128))])]),m(`section`,null,[p[8]||=m(`h2`,{class:`block-title`},`انتخاب بر اساس فصل`,-1),p[9]||=m(`p`,{class:`block-sub`},`بر اساس فصل مناسب، پارچه دلخواه را پیدا کنید`,-1),m(`div`,oe,[(r(!0),u(f,null,t(S.value,t=>(r(),u(`button`,{key:t.id,type:`button`,class:e([`season-card`,[`season-card--${t.id}`,{"season-card--banner":!!t.imageUrl}]]),style:i(t.imageUrl?{backgroundImage:`url(${t.imageUrl})`}:void 0),onClick:e=>B(t.id)},[m(`div`,ce,[t.showTitle!==!1||t.showIcon!==!1?(r(),u(`div`,le,[t.showIcon===!1?l(``,!0):(r(),u(`span`,ue,[(r(),_(o(v(N)(L(t),j)),{size:16}))])),t.showTitle===!1?l(``,!0):(r(),u(`strong`,de,a(t.title),1))])):l(``,!0),t.showDescription===!1?l(``,!0):(r(),u(`p`,fe,a(t.description),1)),t.showCta===!1?l(``,!0):(r(),u(`span`,pe,[d(a(t.ctaLabel||`مشاهده محصولات`)+` `,1),s(D,{size:14})]))])],14,se))),128))])]),m(`section`,$,[m(`div`,me,[m(`span`,he,[s(k,{size:22})]),p[10]||=m(`div`,{class:`feature-card__text`},[m(`strong`,null,`پشتیبانی اختصاصی`),m(`span`,null,`در کنار شما هستیم`)],-1)]),m(`div`,ge,[m(`span`,_e,[s(j,{size:22})]),p[11]||=m(`div`,{class:`feature-card__text`},[m(`strong`,null,`مزایای مشتریان ویژه`),m(`span`,null,`بر اساس سطح شما`)],-1)]),m(`div`,{class:`feature-card feature-card--link`,role:`button`,tabindex:`0`,onClick:p[3]||=e=>v(c).push(`/products`),onKeydown:p[4]||=b(e=>v(c).push(`/products`),[`enter`])},[m(`span`,ve,[s(w,{size:22})]),p[12]||=m(`div`,{class:`feature-card__text`},[m(`strong`,null,`درخواست کالیته فیزیکی`),m(`span`,null,`کالیته را دریافت کنید`)],-1)],32)])],64))])]))}}),[[`__scopeId`,`data-v-f5361aa5`]]);export{ye as default}; \ No newline at end of file +import{At as e,F as t,K as n,M as r,Nt as i,Pt as a,R as o,_ as s,c,d as l,f as u,g as d,i as f,k as p,l as m,nt as h,t as g,u as _,ut as v,v as y}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{c as b,l as x,s as S,t as C}from"./BasicIcon-DPmc0iaK.js";import{t as w}from"./IconCatalog-BaNuPmu8.js";import{C as T,a as E,o as D,s as O,y as k}from"./index-D_xSF6a7.js";import{t as A}from"./IconChevronBack-BsHmfODG.js";import{t as j}from"./IconDiamond-BZQtRyIy.js";import{t as ee}from"./PageSkeleton-DYdjm4l9.js";import{t as M}from"./crm-CgnSby61.js";import{n as N,r as P,t as F}from"./useSlotBanners-DjLkHYX2.js";import{t as I}from"./useGoBack-B0BZsxtn.js";import{t as L}from"./useTouchSwipe-C8fUyAcQ.js";import{t as R}from"./bannerLink-BW8t2Oqp.js";var z=y({__name:`IconSearch`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(t,n)=>(r(),_(C,{icon:`vuesax-linear:search-normal`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),B=[`aria-label`],V={class:`slot-banner__content`},H={key:0,class:`slot-banner__title`},U={key:1,class:`slot-banner__tagline`},W={key:0,class:`slot-banner__dots`,role:`tablist`,"aria-label":`بنرها`},G=[`aria-label`,`aria-selected`,`onClick`],K=g(y({__name:`AppSlotBanner`,props:{bannerSlot:{},hideWhenEmpty:{type:Boolean,default:!0}},setup(o){let s=o,d=T(),{banners:p,loading:g}=F(s.bannerSlot),_=h(0),y=c(()=>p.value[_.value]??null),b=c(()=>y.value?.bannerLink?.trim()||``),C=c(()=>{let e=y.value?.imageUrl?.trim();if(e)return{backgroundImage:`url(${e})`}});function w(){let e=y.value?.ctaLink?.trim();e&&R(e,d)}function E(e){b.value&&(e.target.closest(`.slot-banner__cta, .slot-banner__dots`)||R(b.value,d))}function D(e){p.value.length&&(_.value=(e%p.value.length+p.value.length)%p.value.length)}let{onTouchStart:O,onTouchEnd:k}=L({enabled:()=>p.value.length>1,onSwipe(e){D(_.value+e)}});return(s,c)=>!o.hideWhenEmpty||y.value?n((r(),u(`section`,{key:0,class:e([`slot-banner`,{"slot-banner--photo":!!y.value?.imageUrl,"slot-banner--linked":!!b.value}]),style:i(C.value),"aria-label":y.value?.title||`بنر`,onClick:E,onTouchstartPassive:c[0]||=(...e)=>v(O)&&v(O)(...e),onTouchendPassive:c[1]||=(...e)=>v(k)&&v(k)(...e)},[y.value?(r(),u(f,{key:0},[m(`div`,V,[y.value.showTitle!==!1&&y.value.title?(r(),u(`h2`,H,a(y.value.title),1)):l(``,!0),y.value.showSubtitle!==!1&&y.value.subtitle?(r(),u(`p`,U,a(y.value.subtitle),1)):l(``,!0),y.value.showCta!==!1&&y.value.ctaLabel?(r(),u(`button`,{key:2,type:`button`,class:`slot-banner__cta`,onClick:x(w,[`stop`])},a(y.value.ctaLabel),1)):l(``,!0)]),v(p).length>1?(r(),u(`div`,W,[(r(!0),u(f,null,t(v(p),(t,n)=>(r(),u(`button`,{key:t.id,type:`button`,class:e([`slot-banner__dot`,{"slot-banner__dot--active":n===_.value}]),"aria-label":t.title,"aria-selected":n===_.value,onClick:x(e=>D(n),[`stop`])},null,10,G))),128))])):l(``,!0)],64)):l(``,!0)],46,B)),[[S,!v(g)&&y.value]]):l(``,!0)}}),[[`__scopeId`,`data-v-e2649f82`]]),q={class:`page categories-page`},J={class:`cat-top mobile-only`},Y={class:`cat-top__actions`},X={class:`page__scroll page__scroll--with-nav cat-scroll`},Z={key:0},te={class:`usage-grid`},Q=[`onClick`],ne={key:0,class:`usage-card__icon`},re={class:`usage-card__body`},ie={key:0},ae={key:1,class:`usage-card__link`},oe={class:`season-stack`},se=[`onClick`],ce={class:`season-card__content`},le={key:0,class:`season-card__title-row`},ue={key:0,class:`season-card__icon`},de={key:1},fe={key:1},pe={key:2,class:`season-card__link`},$={class:`feature-row`,"aria-label":`ویژگیها`},me={class:`feature-card`},he={class:`feature-card__icon`,"aria-hidden":`true`},ge={class:`feature-card`},_e={class:`feature-card__icon`,"aria-hidden":`true`},ve={class:`feature-card__icon`,"aria-hidden":`true`},ye=g(y({__name:`CategoriesView`,setup(n){let c=T(),{goBack:g}=I(`/`),y=M(),x=h([]),S=h([]),C=h(!0),F=h(null);function L(e){return e.icon||(e.id===`summer`?`bolt`:e.id===`winter`?`feather`:`diamond`)}p(async()=>{try{let e=await y.loadCategories();x.value=e.usage,S.value=e.seasons}catch(e){F.value=e instanceof Error?e.message:`بارگذاری دستهها ناموفق بود.`}finally{C.value=!1}});function R(e){c.push({path:`/products`,query:{categoryId:e,filterAxis:`usage`}})}function B(e){c.push({path:`/products`,query:{season:e,filterAxis:`season`}})}return(n,p)=>(r(),u(`div`,q,[m(`header`,J,[m(`button`,{type:`button`,class:`icon-btn`,"aria-label":`بازگشت`,onClick:p[0]||=(...e)=>v(g)&&v(g)(...e)},[s(A,{size:20})]),p[5]||=m(`h1`,{class:`cat-top__title`},`دستهبندیها`,-1),m(`div`,Y,[s(E,{variant:`inline`}),m(`button`,{type:`button`,class:`icon-btn`,"aria-label":`جستجو`,onClick:p[1]||=e=>v(c).push({path:`/products`,query:{q:``}})},[s(z,{size:20})]),m(`button`,{type:`button`,class:`icon-btn`,"aria-label":`اعلانها`,onClick:p[2]||=e=>v(c).push(`/profile/notifications`)},[s(O,{size:20})])])]),p[13]||=m(`header`,{class:`desktop-page__head desktop-only`},[m(`h1`,{class:`desktop-page__title`},`دستهبندیها`),m(`p`,{class:`desktop-page__subtitle`},`دسته موردنظر خود را انتخاب کنید`)],-1),m(`div`,X,[F.value?(r(),u(`p`,Z,a(F.value),1)):C.value?(r(),_(ee,{key:1,variant:`grid`})):(r(),u(f,{key:2},[s(K,{"banner-slot":`categories_hero`,class:`categories-page__hero`}),m(`section`,null,[p[6]||=m(`h2`,{class:`block-title`},`انتخاب بر اساس کاربرد`,-1),p[7]||=m(`p`,{class:`block-sub`},`دسته موردنظر خود را انتخاب کنید`,-1),m(`div`,te,[(r(!0),u(f,null,t(x.value,t=>(r(),u(`button`,{key:t.id,type:`button`,class:`usage-card`,onClick:e=>R(t.id)},[m(`div`,{class:e([`usage-card__image`,`usage-card__image--${t.id}`]),style:i(t.imageUrl?{backgroundImage:`url(${t.imageUrl})`}:void 0)},[t.showIcon===!1?l(``,!0):(r(),u(`span`,ne,[(r(),_(o(v(N)(v(P)(t),w)),{size:18}))]))],6),m(`div`,re,[t.showTitle===!1?l(``,!0):(r(),u(`strong`,ie,a(t.title),1)),t.showSubtitle===!1?l(``,!0):(r(),u(`span`,ae,[d(a(t.subtitle||`مشاهده محصولات`)+` `,1),s(D,{size:14})]))])],8,Q))),128))])]),m(`section`,null,[p[8]||=m(`h2`,{class:`block-title`},`انتخاب بر اساس فصل`,-1),p[9]||=m(`p`,{class:`block-sub`},`بر اساس فصل مناسب، پارچه دلخواه را پیدا کنید`,-1),m(`div`,oe,[(r(!0),u(f,null,t(S.value,t=>(r(),u(`button`,{key:t.id,type:`button`,class:e([`season-card`,[`season-card--${t.id}`,{"season-card--banner":!!t.imageUrl}]]),style:i(t.imageUrl?{backgroundImage:`url(${t.imageUrl})`}:void 0),onClick:e=>B(t.id)},[m(`div`,ce,[t.showTitle!==!1||t.showIcon!==!1?(r(),u(`div`,le,[t.showIcon===!1?l(``,!0):(r(),u(`span`,ue,[(r(),_(o(v(N)(L(t),j)),{size:16}))])),t.showTitle===!1?l(``,!0):(r(),u(`strong`,de,a(t.title),1))])):l(``,!0),t.showDescription===!1?l(``,!0):(r(),u(`p`,fe,a(t.description),1)),t.showCta===!1?l(``,!0):(r(),u(`span`,pe,[d(a(t.ctaLabel||`مشاهده محصولات`)+` `,1),s(D,{size:14})]))])],14,se))),128))])]),m(`section`,$,[m(`div`,me,[m(`span`,he,[s(k,{size:22})]),p[10]||=m(`div`,{class:`feature-card__text`},[m(`strong`,null,`پشتیبانی اختصاصی`),m(`span`,null,`در کنار شما هستیم`)],-1)]),m(`div`,ge,[m(`span`,_e,[s(j,{size:22})]),p[11]||=m(`div`,{class:`feature-card__text`},[m(`strong`,null,`مزایای مشتریان ویژه`),m(`span`,null,`بر اساس سطح شما`)],-1)]),m(`div`,{class:`feature-card feature-card--link`,role:`button`,tabindex:`0`,onClick:p[3]||=e=>v(c).push(`/products`),onKeydown:p[4]||=b(e=>v(c).push(`/products`),[`enter`])},[m(`span`,ve,[s(w,{size:22})]),p[12]||=m(`div`,{class:`feature-card__text`},[m(`strong`,null,`درخواست کالیته فیزیکی`),m(`span`,null,`کالیته را دریافت کنید`)],-1)],32)])],64))])]))}}),[[`__scopeId`,`data-v-f5361aa5`]]);export{ye as default}; \ No newline at end of file diff --git a/dist/assets/CheckFormView-tFovxTRe.js b/dist/assets/CheckFormView-9WEayFvY.js similarity index 97% rename from dist/assets/CheckFormView-tFovxTRe.js rename to dist/assets/CheckFormView-9WEayFvY.js index bbc3f38..5a7f551 100644 --- a/dist/assets/CheckFormView-tFovxTRe.js +++ b/dist/assets/CheckFormView-9WEayFvY.js @@ -1 +1 @@ -import{At as e,G as t,M as n,Pt as r,U as i,_ as a,c as o,d as s,f as c,g as l,i as ee,l as u,nt as d,t as te,u as f,ut as p,v as m}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{t as h}from"./BasicIcon-DPmc0iaK.js";import{n as g,o as ne,u as _}from"./format-C72AoJ2H.js";import{i as re,n as v,o as ie,t as ae}from"./validation-Duyyve7l.js";import{t as oe}from"./IconCheckBook-IuV8Li8k.js";import{C as se,f as ce,r as le}from"./index-CE4Fw0WE.js";import{t as ue}from"./FormErrorBanner-Ud1D04xf.js";import{n as y,r as b,t as de}from"./formErrors-DglFjYkZ.js";import{t as fe}from"./PageHeader-BDPrFkve.js";import{t as pe}from"./useRequirePricedOrder-B78MxGXz.js";import{t as x}from"./BaseInput-CpE3bVJZ.js";import{t as me}from"./CurrencyInput-Cu2dRPFo.js";import{t as he}from"./PersianDateInput-BcTTynHd.js";var ge=m({__name:`IconCash`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(t,r)=>(n(),f(h,{icon:`vuesax-linear:money-4`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),_e={class:`page`},ve={class:`page__scroll checkout-page__scroll`},ye={class:`mb-3 flex items-start gap-3`},be={class:`flex h-10 w-10 shrink-0 items-center justify-center rounded-full bg-[var(--color-primary-soft)] text-[var(--color-primary)]`,"aria-hidden":`true`},xe={class:`flex flex-col gap-2`},Se={class:`flex items-center justify-between gap-3 text-sm`},Ce={class:`font-tabular text-[var(--color-text)]`},we={class:`flex items-center justify-between gap-3 text-sm`},S={class:`inline-flex items-center gap-1.5 text-[var(--color-text-muted)]`},C={key:0,class:`text-xs`},w={class:`font-tabular text-[var(--color-text)]`},T={class:`mt-1 flex items-center justify-between gap-3 border-t border-[var(--color-border)] pt-3`},E={class:`card`},D={class:`form-group`},O=[`src`],k={key:1,class:`upload-box__placeholder`},Te={key:0,class:`input-error-text`},Ee={key:2,class:`form-group`},De={class:`upload-box`},Oe=[`src`],ke={key:1,class:`upload-box__placeholder`},A=te(m({__name:`CheckFormView`,setup(te){let f=se(),m=ce(),{orderId:h,order:A}=pe(),j=o(()=>m.draftCheckMode===`full`),M=d(``),N=d(``),P=d(``),F=d(``),I=d(``),L=d(``),R=d(``),z=d(``),B=d(``),V=d(``),H=d(``),U=d(``),W=d({}),G=d(``),K=d(!1),q=o(()=>A.value?.finalAmount??0),J=o(()=>m.draftChecks.reduce((e,t)=>e+t.amount,0)),Y=o(()=>_(M.value)||0),X=o(()=>Math.max(0,q.value-J.value)),Ae=o(()=>Math.max(0,q.value-J.value-Y.value)),Z=o(()=>q.value>0&&J.value+Y.value>=q.value),Q=o(()=>q.value>0&&J.value+Y.value>q.value);i([q,X],()=>{K.value||M.value||X.value<=0||(M.value=String(X.value),K.value=!0)},{immediate:!0}),i(M,()=>{W.value=y(W.value,`amount`),b(W.value)||(G.value=``)}),i(N,()=>{W.value=y(W.value,`dueDate`),b(W.value)||(G.value=``)}),i(P,()=>{W.value=y(W.value,`sayadId`),b(W.value)||(G.value=``)}),i(I,()=>{W.value=y(W.value,`ownerNationalId`),b(W.value)||(G.value=``)}),i(V,()=>{W.value=y(W.value,`frontImage`),b(W.value)||(G.value=``)});async function $(e,t){let n=e.target.files?.[0];if(!n)return;let r=v(n);if(!r.valid){t===`front`&&(W.value={...W.value,frontImage:r.message??`خطا`});return}let i=await ae(n);t===`front`?V.value=i:H.value=i}function je(){X.value<=0||(M.value=String(X.value))}function Me(){W.value={},G.value=``;let e={},t=_(M.value);return(!t||t<=0)&&(e.amount=`مبلغ چک باید بزرگتر از صفر باشد.`),N.value||(e.dueDate=`تاریخ سررسید الزامی است.`),V.value||(e.frontImage=`تصویر روی چک الزامی است.`),j.value&&(ie(P.value)||(e.sayadId=`شناسه صیادی باید ۱۶ رقم باشد.`),re(I.value)||(e.ownerNationalId=`کد ملی صاحب چک معتبر نیست.`),m.draftChecks.some(e=>e.sayadId===P.value.replace(/\s/g,``))&&(e.sayadId=`شناسه صیادی تکراری است.`)),W.value=e,!b(e)||(G.value=de,!1)}function Ne(){Me()&&(m.addDraftCheck({amount:_(M.value),dueDate:N.value,sayadId:j.value?P.value.replace(/\s/g,``):void 0,checkNumber:j.value?F.value:void 0,ownerNationalId:j.value?I.value:void 0,ownerFirstName:j.value?L.value:void 0,ownerLastName:j.value?R.value:void 0,bankName:j.value?z.value:void 0,branchName:j.value?B.value:void 0,frontImage:V.value,backImage:H.value||void 0,notes:U.value||void 0,mode:m.draftCheckMode??`brief`}),Pe(),f.push(`/orders/${h.value}/check-list`))}function Pe(){M.value=``,N.value=``,P.value=``,F.value=``,I.value=``,L.value=``,R.value=``,z.value=``,B.value=``,V.value=``,H.value=``,U.value=``,W.value={},G.value=``,K.value=!1}return(i,o)=>(n(),c(`div`,_e,[a(fe,{title:j.value?`ثبت چک - حالت کامل`:`ثبت چک - حالت مختصر`,"show-back":``,onBack:o[0]||=e=>p(f).push(`/orders/${p(h)}/check-mode`)},null,8,[`title`]),u(`div`,ve,[a(ue,{message:G.value},null,8,[`message`]),q.value>0?(n(),c(`div`,{key:0,class:e([`check-balance mb-4 rounded-[var(--radius-md)] border border-[var(--color-border)] bg-[var(--color-surface)] p-4`,{"check-balance--ok":Z.value&&!Q.value,"check-balance--warn":Q.value}])},[u(`div`,ye,[u(`span`,be,[a(ge,{size:22})]),o[13]||=u(`div`,{class:`min-w-0 flex-1`},[u(`p`,{class:`m-0 text-sm font-semibold text-[var(--color-text)]`},`مانده فاکتور`),u(`p`,{class:`m-0 mt-1 text-xs leading-relaxed text-[var(--color-text-muted)]`},` با هر چک، مبلغ باقیمانده بهروز میشود تا پوشش کامل فاکتور را از دست ندهید. `)],-1)]),u(`div`,xe,[u(`div`,Se,[o[14]||=u(`span`,{class:`text-[var(--color-text-muted)]`},`مبلغ فاکتور`,-1),u(`strong`,Ce,r(p(g)(q.value)),1)]),u(`div`,we,[u(`span`,S,[a(oe,{size:14}),o[15]||=l(` چکهای ثبتشده `,-1),p(m).draftChecks.length?(n(),c(`span`,C,` (`+r(p(ne)(p(m).draftChecks.length))+`) `,1)):s(``,!0)]),u(`strong`,w,r(p(g)(J.value)),1)]),u(`div`,T,[o[16]||=u(`span`,{class:`text-sm font-semibold text-[var(--color-text)]`},`باقیمانده`,-1),u(`strong`,{class:e([`font-tabular text-base`,Z.value&&!Q.value?`text-[var(--color-success)]`:Q.value?`text-[var(--color-danger)]`:`text-[var(--color-primary)]`])},r(Q.value?`${p(g)(J.value+Y.value-q.value)} بیش از فاکتور`:Z.value?`پوشش کامل شد`:p(g)(Ae.value)),3)])])],2)):s(``,!0),o[20]||=u(`div`,{class:`steps`},[u(`span`,{class:`step active`},`۱. اطلاعات چک`),u(`span`,{class:`step`},`۲. چک بعدی`),u(`span`,{class:`step`},`۳. خلاصه`)],-1),u(`div`,E,[a(me,{modelValue:M.value,"onUpdate:modelValue":o[1]||=e=>M.value=e,label:`مبلغ چک (تومان)`,placeholder:`مبلغ`,error:W.value.amount},null,8,[`modelValue`,`error`]),X.value>0&&Y.value!==X.value?(n(),c(`button`,{key:0,type:`button`,class:`check-fill-remaining mb-3 text-sm font-medium text-[var(--color-primary)]`,onClick:je},` پر کردن با باقیمانده (`+r(p(g)(X.value))+`) `,1)):s(``,!0),a(he,{modelValue:N.value,"onUpdate:modelValue":o[2]||=e=>N.value=e,label:`تاریخ سررسید`,error:W.value.dueDate},null,8,[`modelValue`,`error`]),j.value?(n(),c(ee,{key:1},[a(x,{modelValue:P.value,"onUpdate:modelValue":o[3]||=e=>P.value=e,label:`شناسه صیادی`,placeholder:`۱۶ رقم`,maxlength:`16`,inputmode:`numeric`,dir:`ltr`,error:W.value.sayadId},null,8,[`modelValue`,`error`]),a(x,{modelValue:F.value,"onUpdate:modelValue":o[4]||=e=>F.value=e,label:`شماره چک`,inputmode:`numeric`,dir:`ltr`},null,8,[`modelValue`]),a(x,{modelValue:I.value,"onUpdate:modelValue":o[5]||=e=>I.value=e,label:`کد ملی صاحب چک`,maxlength:`10`,inputmode:`numeric`,dir:`ltr`,error:W.value.ownerNationalId},null,8,[`modelValue`,`error`]),a(x,{modelValue:L.value,"onUpdate:modelValue":o[6]||=e=>L.value=e,label:`نام صاحب چک`},null,8,[`modelValue`]),a(x,{modelValue:R.value,"onUpdate:modelValue":o[7]||=e=>R.value=e,label:`نام خانوادگی صاحب چک`},null,8,[`modelValue`]),a(x,{modelValue:z.value,"onUpdate:modelValue":o[8]||=e=>z.value=e,label:`نام بانک`},null,8,[`modelValue`]),a(x,{modelValue:B.value,"onUpdate:modelValue":o[9]||=e=>B.value=e,label:`نام شعبه`},null,8,[`modelValue`])],64)):s(``,!0),u(`div`,D,[o[17]||=u(`label`,{class:`form-label`},`تصویر روی چک *`,-1),u(`label`,{class:e([`upload-box`,{"upload-box--error":W.value.frontImage}])},[u(`input`,{type:`file`,accept:`image/*`,class:`upload-box__input`,onChange:o[10]||=e=>$(e,`front`)},null,32),V.value?(n(),c(`img`,{key:0,src:V.value,class:`upload-box__preview`,alt:`روی چک`},null,8,O)):(n(),c(`span`,k,`بارگذاری تصویر چک`))],2),W.value.frontImage?(n(),c(`p`,Te,r(W.value.frontImage),1)):s(``,!0)]),j.value?(n(),c(`div`,Ee,[o[18]||=u(`label`,{class:`form-label`},`تصویر پشت چک`,-1),u(`label`,De,[u(`input`,{type:`file`,accept:`image/*`,class:`upload-box__input`,onChange:o[11]||=e=>$(e,`back`)},null,32),H.value?(n(),c(`img`,{key:0,src:H.value,class:`upload-box__preview`,alt:`پشت چک`},null,8,Oe)):(n(),c(`span`,ke,`بارگذاری تصویر`))])])):s(``,!0),a(x,{modelValue:U.value,"onUpdate:modelValue":o[12]||=e=>U.value=e,label:`توضیحات`},null,8,[`modelValue`]),a(le,{block:``,class:`mt-4`,onClick:Ne},{default:t(()=>[...o[19]||=[l(`ذخیره چک`,-1)]]),_:1})])])]))}}),[[`__scopeId`,`data-v-5976552f`]]);export{A as default}; \ No newline at end of file +import{At as e,G as t,M as n,Pt as r,U as i,_ as a,c as o,d as s,f as c,g as l,i as ee,l as u,nt as d,t as te,u as f,ut as p,v as m}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{t as h}from"./BasicIcon-DPmc0iaK.js";import{n as g,o as ne,u as _}from"./format-C72AoJ2H.js";import{i as re,n as v,o as ie,t as ae}from"./validation-Duyyve7l.js";import{t as oe}from"./IconCheckBook-IuV8Li8k.js";import{C as se,f as ce,r as le}from"./index-D_xSF6a7.js";import{t as ue}from"./FormErrorBanner-Ud1D04xf.js";import{n as y,r as b,t as de}from"./formErrors-DglFjYkZ.js";import{t as fe}from"./PageHeader-CD5rAJke.js";import{t as pe}from"./useRequirePricedOrder-CUcMimHo.js";import{t as x}from"./BaseInput-CpE3bVJZ.js";import{t as me}from"./CurrencyInput-Cu2dRPFo.js";import{t as he}from"./PersianDateInput-BcTTynHd.js";var ge=m({__name:`IconCash`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(t,r)=>(n(),f(h,{icon:`vuesax-linear:money-4`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),_e={class:`page`},ve={class:`page__scroll checkout-page__scroll`},ye={class:`mb-3 flex items-start gap-3`},be={class:`flex h-10 w-10 shrink-0 items-center justify-center rounded-full bg-[var(--color-primary-soft)] text-[var(--color-primary)]`,"aria-hidden":`true`},xe={class:`flex flex-col gap-2`},Se={class:`flex items-center justify-between gap-3 text-sm`},Ce={class:`font-tabular text-[var(--color-text)]`},we={class:`flex items-center justify-between gap-3 text-sm`},S={class:`inline-flex items-center gap-1.5 text-[var(--color-text-muted)]`},C={key:0,class:`text-xs`},w={class:`font-tabular text-[var(--color-text)]`},T={class:`mt-1 flex items-center justify-between gap-3 border-t border-[var(--color-border)] pt-3`},E={class:`card`},D={class:`form-group`},O=[`src`],k={key:1,class:`upload-box__placeholder`},Te={key:0,class:`input-error-text`},Ee={key:2,class:`form-group`},De={class:`upload-box`},Oe=[`src`],ke={key:1,class:`upload-box__placeholder`},A=te(m({__name:`CheckFormView`,setup(te){let f=se(),m=ce(),{orderId:h,order:A}=pe(),j=o(()=>m.draftCheckMode===`full`),M=d(``),N=d(``),P=d(``),F=d(``),I=d(``),L=d(``),R=d(``),z=d(``),B=d(``),V=d(``),H=d(``),U=d(``),W=d({}),G=d(``),K=d(!1),q=o(()=>A.value?.finalAmount??0),J=o(()=>m.draftChecks.reduce((e,t)=>e+t.amount,0)),Y=o(()=>_(M.value)||0),X=o(()=>Math.max(0,q.value-J.value)),Ae=o(()=>Math.max(0,q.value-J.value-Y.value)),Z=o(()=>q.value>0&&J.value+Y.value>=q.value),Q=o(()=>q.value>0&&J.value+Y.value>q.value);i([q,X],()=>{K.value||M.value||X.value<=0||(M.value=String(X.value),K.value=!0)},{immediate:!0}),i(M,()=>{W.value=y(W.value,`amount`),b(W.value)||(G.value=``)}),i(N,()=>{W.value=y(W.value,`dueDate`),b(W.value)||(G.value=``)}),i(P,()=>{W.value=y(W.value,`sayadId`),b(W.value)||(G.value=``)}),i(I,()=>{W.value=y(W.value,`ownerNationalId`),b(W.value)||(G.value=``)}),i(V,()=>{W.value=y(W.value,`frontImage`),b(W.value)||(G.value=``)});async function $(e,t){let n=e.target.files?.[0];if(!n)return;let r=v(n);if(!r.valid){t===`front`&&(W.value={...W.value,frontImage:r.message??`خطا`});return}let i=await ae(n);t===`front`?V.value=i:H.value=i}function je(){X.value<=0||(M.value=String(X.value))}function Me(){W.value={},G.value=``;let e={},t=_(M.value);return(!t||t<=0)&&(e.amount=`مبلغ چک باید بزرگتر از صفر باشد.`),N.value||(e.dueDate=`تاریخ سررسید الزامی است.`),V.value||(e.frontImage=`تصویر روی چک الزامی است.`),j.value&&(ie(P.value)||(e.sayadId=`شناسه صیادی باید ۱۶ رقم باشد.`),re(I.value)||(e.ownerNationalId=`کد ملی صاحب چک معتبر نیست.`),m.draftChecks.some(e=>e.sayadId===P.value.replace(/\s/g,``))&&(e.sayadId=`شناسه صیادی تکراری است.`)),W.value=e,!b(e)||(G.value=de,!1)}function Ne(){Me()&&(m.addDraftCheck({amount:_(M.value),dueDate:N.value,sayadId:j.value?P.value.replace(/\s/g,``):void 0,checkNumber:j.value?F.value:void 0,ownerNationalId:j.value?I.value:void 0,ownerFirstName:j.value?L.value:void 0,ownerLastName:j.value?R.value:void 0,bankName:j.value?z.value:void 0,branchName:j.value?B.value:void 0,frontImage:V.value,backImage:H.value||void 0,notes:U.value||void 0,mode:m.draftCheckMode??`brief`}),Pe(),f.push(`/orders/${h.value}/check-list`))}function Pe(){M.value=``,N.value=``,P.value=``,F.value=``,I.value=``,L.value=``,R.value=``,z.value=``,B.value=``,V.value=``,H.value=``,U.value=``,W.value={},G.value=``,K.value=!1}return(i,o)=>(n(),c(`div`,_e,[a(fe,{title:j.value?`ثبت چک - حالت کامل`:`ثبت چک - حالت مختصر`,"show-back":``,onBack:o[0]||=e=>p(f).push(`/orders/${p(h)}/check-mode`)},null,8,[`title`]),u(`div`,ve,[a(ue,{message:G.value},null,8,[`message`]),q.value>0?(n(),c(`div`,{key:0,class:e([`check-balance mb-4 rounded-[var(--radius-md)] border border-[var(--color-border)] bg-[var(--color-surface)] p-4`,{"check-balance--ok":Z.value&&!Q.value,"check-balance--warn":Q.value}])},[u(`div`,ye,[u(`span`,be,[a(ge,{size:22})]),o[13]||=u(`div`,{class:`min-w-0 flex-1`},[u(`p`,{class:`m-0 text-sm font-semibold text-[var(--color-text)]`},`مانده فاکتور`),u(`p`,{class:`m-0 mt-1 text-xs leading-relaxed text-[var(--color-text-muted)]`},` با هر چک، مبلغ باقیمانده بهروز میشود تا پوشش کامل فاکتور را از دست ندهید. `)],-1)]),u(`div`,xe,[u(`div`,Se,[o[14]||=u(`span`,{class:`text-[var(--color-text-muted)]`},`مبلغ فاکتور`,-1),u(`strong`,Ce,r(p(g)(q.value)),1)]),u(`div`,we,[u(`span`,S,[a(oe,{size:14}),o[15]||=l(` چکهای ثبتشده `,-1),p(m).draftChecks.length?(n(),c(`span`,C,` (`+r(p(ne)(p(m).draftChecks.length))+`) `,1)):s(``,!0)]),u(`strong`,w,r(p(g)(J.value)),1)]),u(`div`,T,[o[16]||=u(`span`,{class:`text-sm font-semibold text-[var(--color-text)]`},`باقیمانده`,-1),u(`strong`,{class:e([`font-tabular text-base`,Z.value&&!Q.value?`text-[var(--color-success)]`:Q.value?`text-[var(--color-danger)]`:`text-[var(--color-primary)]`])},r(Q.value?`${p(g)(J.value+Y.value-q.value)} بیش از فاکتور`:Z.value?`پوشش کامل شد`:p(g)(Ae.value)),3)])])],2)):s(``,!0),o[20]||=u(`div`,{class:`steps`},[u(`span`,{class:`step active`},`۱. اطلاعات چک`),u(`span`,{class:`step`},`۲. چک بعدی`),u(`span`,{class:`step`},`۳. خلاصه`)],-1),u(`div`,E,[a(me,{modelValue:M.value,"onUpdate:modelValue":o[1]||=e=>M.value=e,label:`مبلغ چک (تومان)`,placeholder:`مبلغ`,error:W.value.amount},null,8,[`modelValue`,`error`]),X.value>0&&Y.value!==X.value?(n(),c(`button`,{key:0,type:`button`,class:`check-fill-remaining mb-3 text-sm font-medium text-[var(--color-primary)]`,onClick:je},` پر کردن با باقیمانده (`+r(p(g)(X.value))+`) `,1)):s(``,!0),a(he,{modelValue:N.value,"onUpdate:modelValue":o[2]||=e=>N.value=e,label:`تاریخ سررسید`,error:W.value.dueDate},null,8,[`modelValue`,`error`]),j.value?(n(),c(ee,{key:1},[a(x,{modelValue:P.value,"onUpdate:modelValue":o[3]||=e=>P.value=e,label:`شناسه صیادی`,placeholder:`۱۶ رقم`,maxlength:`16`,inputmode:`numeric`,dir:`ltr`,error:W.value.sayadId},null,8,[`modelValue`,`error`]),a(x,{modelValue:F.value,"onUpdate:modelValue":o[4]||=e=>F.value=e,label:`شماره چک`,inputmode:`numeric`,dir:`ltr`},null,8,[`modelValue`]),a(x,{modelValue:I.value,"onUpdate:modelValue":o[5]||=e=>I.value=e,label:`کد ملی صاحب چک`,maxlength:`10`,inputmode:`numeric`,dir:`ltr`,error:W.value.ownerNationalId},null,8,[`modelValue`,`error`]),a(x,{modelValue:L.value,"onUpdate:modelValue":o[6]||=e=>L.value=e,label:`نام صاحب چک`},null,8,[`modelValue`]),a(x,{modelValue:R.value,"onUpdate:modelValue":o[7]||=e=>R.value=e,label:`نام خانوادگی صاحب چک`},null,8,[`modelValue`]),a(x,{modelValue:z.value,"onUpdate:modelValue":o[8]||=e=>z.value=e,label:`نام بانک`},null,8,[`modelValue`]),a(x,{modelValue:B.value,"onUpdate:modelValue":o[9]||=e=>B.value=e,label:`نام شعبه`},null,8,[`modelValue`])],64)):s(``,!0),u(`div`,D,[o[17]||=u(`label`,{class:`form-label`},`تصویر روی چک *`,-1),u(`label`,{class:e([`upload-box`,{"upload-box--error":W.value.frontImage}])},[u(`input`,{type:`file`,accept:`image/*`,class:`upload-box__input`,onChange:o[10]||=e=>$(e,`front`)},null,32),V.value?(n(),c(`img`,{key:0,src:V.value,class:`upload-box__preview`,alt:`روی چک`},null,8,O)):(n(),c(`span`,k,`بارگذاری تصویر چک`))],2),W.value.frontImage?(n(),c(`p`,Te,r(W.value.frontImage),1)):s(``,!0)]),j.value?(n(),c(`div`,Ee,[o[18]||=u(`label`,{class:`form-label`},`تصویر پشت چک`,-1),u(`label`,De,[u(`input`,{type:`file`,accept:`image/*`,class:`upload-box__input`,onChange:o[11]||=e=>$(e,`back`)},null,32),H.value?(n(),c(`img`,{key:0,src:H.value,class:`upload-box__preview`,alt:`پشت چک`},null,8,Oe)):(n(),c(`span`,ke,`بارگذاری تصویر`))])])):s(``,!0),a(x,{modelValue:U.value,"onUpdate:modelValue":o[12]||=e=>U.value=e,label:`توضیحات`},null,8,[`modelValue`]),a(le,{block:``,class:`mt-4`,onClick:Ne},{default:t(()=>[...o[19]||=[l(`ذخیره چک`,-1)]]),_:1})])])]))}}),[[`__scopeId`,`data-v-5976552f`]]);export{A as default}; \ No newline at end of file diff --git a/dist/assets/CheckListView-B39-XRBU.js b/dist/assets/CheckListView-0z6tcyL-.js similarity index 98% rename from dist/assets/CheckListView-B39-XRBU.js rename to dist/assets/CheckListView-0z6tcyL-.js index af311a2..280b9f7 100644 --- a/dist/assets/CheckListView-B39-XRBU.js +++ b/dist/assets/CheckListView-0z6tcyL-.js @@ -1 +1 @@ -import{At as e,F as t,G as n,M as r,Pt as i,U as ee,_ as a,c as o,d as s,f as c,g as l,i as u,l as d,nt as f,t as te,u as p,ut as m,v as h}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{d as g,n as ne,o as _,r as v}from"./format-C72AoJ2H.js";import{C as re,S as ie,c as ae,f as oe,h as se,n as ce,p as y,r as b}from"./index-CE4Fw0WE.js";import{t as x}from"./EmptyState-DoHTAy4d.js";import{t as S}from"./IconChevronBack-BsHmfODG.js";import{t as le}from"./FormErrorBanner-Ud1D04xf.js";import{t as ue}from"./useRequirePricedOrder-B78MxGXz.js";var C=Object.defineProperty,w=(e,t)=>{let n={};for(var r in e)C(n,r,{get:e[r],enumerable:!0});return t||C(n,Symbol.toStringTag,{value:`Module`}),n},de={class:`check-list-page mobile-only`},fe={class:`check-list-page__nav`},pe={type:`button`,class:`nav-btn nav-btn--ghost`,"aria-hidden":`true`,tabindex:`-1`},me={key:0,class:`check-list-page__empty page__scroll page__scroll--with-nav`},he={class:`check-list-page__scroll page__scroll`},ge={class:`summary-cards`},_e={class:`summary-card`},T={class:`summary-card__value`},E={class:`summary-card`},D={class:`summary-card__value`},O={key:0,class:`summary-card__status`},k={key:1,class:`summary-card__status summary-card__status--warn`},A={class:`summary-card__value`},j={key:0,class:`summary-card__hint`},M={class:`checks-list`},N={class:`check-card__menu-wrap`},P=[`onClick`],F={key:1,class:`check-card__menu`},I=[`onClick`],ve={class:`check-card__body`},ye={class:`check-card__title`},be={class:`check-card__amount`},xe={class:`check-card__date`},Se={class:`check-card__thumb-wrap`},Ce=[`src`],we={key:1,class:`check-card__thumb check-card__thumb--empty`},Te={class:`rass-panel`},L={class:`rass-panel__days`},Ee={key:0,class:`rass-panel__date`},De={key:0,class:`check-list-page__footer`},Oe={key:0,class:`desktop-checkout-shell check-list-desktop desktop-only`},ke={class:`desktop-two-col`},Ae={class:`desktop-two-col__main`},je={class:`desktop-table-wrap`},Me={class:`desktop-table-scroll`},Ne={class:`desktop-table check-list-desktop__table`},Pe={key:0,scope:`col`},Fe=[`src`],Ie={key:1},Le={class:`check-list-desktop__amount`},Re={key:0},ze=[`onClick`],Be={class:`desktop-summary-panel`},Ve={class:`desktop-summary-panel__row`},He={class:`desktop-summary-panel__row`},Ue={class:`desktop-summary-panel__row`},We={key:0,class:`desktop-summary-panel__action`},Ge={key:1,class:`desktop-checkout-shell desktop-only`},R=h({__name:`CheckListView`,setup(te){let h=ie(),C=re(),w=oe(),R=ae(),z=f(``),B=f(!1),V=o(()=>h.name===`check-list`),{orderId:H}=ue(),U=o(()=>H.value?w.getOrderById(H.value):void 0);ee(H,async e=>{if(!e||!V.value)return;let t=w.getOrderById(e)??await w.fetchOrder(e);t&&(w.draftChecks.length===0&&(t.checks?.length??0)>0?w.loadChecksIntoDraft(t):w.draftOrderId!==e&&w.startCheckDraft(e,t.checkMode??void 0))},{immediate:!0});let W=o(()=>w.draftChecks.length>0?w.draftChecks:V.value?U.value?.checks??[]:R.user?w.userOrders(R.user.id).filter(e=>(e.settlementType===`check`||e.settlementType===`cash_check`)&&e.checks?.length).flatMap(e=>e.checks??[]):[]),G=o(()=>{let e=U.value?se(U.value):void 0;return w.draftChecks.length>0?w.getDraftRass(e):e?y(W.value,e):y([],new Date(0))}),K=o(()=>U.value?.finalAmount??0),q=o(()=>Math.max(0,K.value-G.value.totalAmount)),J=o(()=>K.value>0&&G.value.totalAmount>=K.value),Y=o(()=>K.value>0&&G.value.totalAmount>K.value),X=o({get:()=>h.query.menu??``,set:e=>{C.replace({query:e?{menu:e}:{}})}});function Ke(){C.push(V.value?`/orders/${H.value}`:`/profile`)}function Z(){C.push(`/orders/${H.value}/check-form`)}async function Q(e){X.value=``,await ce({title:`حذف چک`,message:`آیا از حذف این چک مطمئن هستید؟`,confirmLabel:`حذف`,cancelLabel:`انصراف`,tone:`danger`})&&w.removeDraftCheck(e)}function qe(e){X.value=X.value===e?``:e}async function $(){if(!(!H.value||w.draftChecks.length===0||B.value)){z.value=``,B.value=!0;try{await w.updateOrderChecks(H.value,[...w.draftChecks],w.draftCheckMode??`brief`),C.replace(`/orders/${H.value}?track=1`)}catch(e){z.value=e instanceof Error?e.message:`ثبت چکها ناموفق بود.`}finally{B.value=!1}}}return(ee,o)=>(r(),c(u,null,[d(`div`,de,[d(`header`,fe,[d(`button`,{type:`button`,class:`nav-btn`,"aria-label":`بازگشت`,onClick:Ke},[a(S,{size:20})]),o[1]||=d(`h1`,{class:`check-list-page__title`},`چکهای ثبت شده`,-1),d(`button`,pe,[a(S,{size:18,class:`nav-btn__flip`})])]),W.value.length===0?(r(),c(`div`,me,[a(x,{variant:`checks`,message:`برای ادامه، حداقل یک چک ثبت کنید`},{default:n(()=>[V.value?(r(),p(b,{key:0,onClick:Z},{default:n(()=>[...o[2]||=[l(`ثبت چک جدید`,-1)]]),_:1})):(r(),p(b,{key:1,variant:`outline`,onClick:o[0]||=e=>m(C).push(`/categories`)},{default:n(()=>[...o[3]||=[l(`ثبت سفارش جدید`,-1)]]),_:1}))]),_:1})])):(r(),c(u,{key:1},[d(`div`,he,[a(le,{message:z.value},null,8,[`message`]),d(`div`,ge,[d(`div`,_e,[o[4]||=d(`span`,{class:`summary-card__label`},`مجموع مبلغ چکها`,-1),d(`strong`,T,i(m(_)(G.value.totalAmount)),1),o[5]||=d(`span`,{class:`summary-card__unit`},`تومان`,-1)]),d(`div`,E,[o[7]||=d(`span`,{class:`summary-card__label`},`مبلغ فاکتور`,-1),d(`strong`,D,i(m(_)(K.value)),1),o[8]||=d(`span`,{class:`summary-card__unit`},`تومان`,-1),J.value&&!Y.value?(r(),c(`p`,O,[...o[6]||=[d(`span`,{class:`summary-card__status-icon`},`✓`,-1),l(` مبلغ کامل است `,-1)]])):Y.value?(r(),c(`p`,k,` بیش از مبلغ فاکتور `)):s(``,!0)]),d(`div`,{class:e([`summary-card summary-card--remain`,{"summary-card--remain-ok":J.value&&!Y.value,"summary-card--remain-warn":Y.value}])},[o[9]||=d(`span`,{class:`summary-card__label`},`باقیمانده`,-1),d(`strong`,A,i(Y.value?m(_)(G.value.totalAmount-K.value):m(_)(q.value)),1),o[10]||=d(`span`,{class:`summary-card__unit`},`تومان`,-1),J.value?s(``,!0):(r(),c(`p`,j,` هنوز باید چک ثبت کنید `))],2)]),d(`div`,M,[(r(!0),c(u,null,t(W.value,(e,t)=>(r(),c(`article`,{key:e.id,class:`check-card`},[d(`div`,N,[V.value&&m(w).draftChecks.length>0?(r(),c(`button`,{key:0,type:`button`,class:`check-card__menu-btn`,"aria-label":`گزینهها`,onClick:t=>qe(e.id)},` ⋮ `,8,P)):s(``,!0),X.value===e.id?(r(),c(`div`,F,[d(`button`,{type:`button`,onClick:t=>Q(e.id)},`حذف`,8,I)])):s(``,!0)]),d(`div`,ve,[d(`h3`,ye,`چک `+i(m(g)(String(t+1))),1),d(`p`,be,i(m(ne)(e.amount)),1),d(`p`,xe,`تاریخ: `+i(m(v)(e.dueDate)),1)]),d(`div`,Se,[e.frontImage?(r(),c(`img`,{key:0,src:e.frontImage,class:`check-card__thumb`,alt:`تصویر چک`},null,8,Ce)):(r(),c(`div`,we,`چک`))])]))),128))]),d(`div`,Te,[o[11]||=d(`h3`,{class:`rass-panel__title`},`رأس چکها`,-1),d(`div`,L,i(m(g)(String(G.value.rassDays)))+` روز`,1),G.value.rassDate?(r(),c(`p`,Ee,` تاریخ رأس تقریبی: `+i(m(v)(G.value.rassDate)),1)):s(``,!0)])]),V.value&&m(w).draftChecks.length>0?(r(),c(`div`,De,[a(b,{block:``,variant:`outline`,disabled:B.value,onClick:Z},{default:n(()=>[...o[12]||=[l(` افزودن چک جدید `,-1)]]),_:1},8,[`disabled`]),a(b,{block:``,disabled:W.value.length===0,loading:B.value,onClick:$},{default:n(()=>[...o[13]||=[l(` ارسال برای بررسی `,-1)]]),_:1},8,[`disabled`,`loading`])])):s(``,!0)],64))]),W.value.length>0?(r(),c(`div`,Oe,[o[26]||=d(`header`,{class:`desktop-page__head`},[d(`h1`,{class:`desktop-page__title`},`چکهای ثبت شده`),d(`p`,{class:`desktop-page__subtitle`},`خلاصه و فهرست چکهای ثبتشده`)],-1),d(`div`,ke,[d(`div`,Ae,[d(`div`,je,[d(`div`,Me,[d(`table`,Ne,[d(`thead`,null,[d(`tr`,null,[o[14]||=d(`th`,{scope:`col`},`تصویر`,-1),o[15]||=d(`th`,{scope:`col`},`مبلغ (تومان)`,-1),o[16]||=d(`th`,{scope:`col`},`تاریخ سررسید`,-1),o[17]||=d(`th`,{scope:`col`},`شناسه`,-1),V.value?(r(),c(`th`,Pe,`عملیات`)):s(``,!0)])]),d(`tbody`,null,[(r(!0),c(u,null,t(W.value,(e,t)=>(r(),c(`tr`,{key:e.id},[d(`td`,null,[e.frontImage?(r(),c(`img`,{key:0,src:e.frontImage,class:`check-list-desktop__thumb`,alt:`تصویر چک`},null,8,Fe)):(r(),c(`span`,Ie,`—`))]),d(`td`,Le,i(m(_)(e.amount)),1),d(`td`,null,i(m(v)(e.dueDate)),1),d(`td`,null,`چک `+i(m(g)(String(t+1))),1),V.value&&m(w).draftChecks.length>0?(r(),c(`td`,Re,[d(`button`,{type:`button`,class:`orders-table__action`,onClick:t=>Q(e.id)},` حذف `,8,ze)])):s(``,!0)]))),128))])])])]),V.value?(r(),p(b,{key:0,variant:`outline`,class:`desktop-btn-compact check-list-desktop__add`,onClick:Z},{default:n(()=>[...o[18]||=[l(` ثبت چک دیگر `,-1)]]),_:1})):s(``,!0)]),d(`aside`,Be,[o[25]||=d(`h2`,{class:`desktop-summary-panel__title`},`خلاصه مالی`,-1),d(`div`,Ve,[o[19]||=d(`span`,null,`مجموع چکها`,-1),d(`strong`,null,i(m(_)(G.value.totalAmount))+` تومان`,1)]),d(`div`,He,[o[20]||=d(`span`,null,`مبلغ فاکتور`,-1),d(`strong`,null,i(m(_)(K.value))+` تومان`,1)]),d(`div`,{class:e([`desktop-summary-panel__row desktop-summary-panel__row--remain`,{"desktop-summary-panel__row--ok":J.value&&!Y.value,"desktop-summary-panel__row--warn":Y.value}])},[o[21]||=d(`span`,null,`باقیمانده`,-1),d(`strong`,null,i(Y.value?`${m(_)(G.value.totalAmount-K.value)} بیش از فاکتور`:J.value?`پوشش کامل`:`${m(_)(q.value)} تومان`),1)],2),d(`div`,Ue,[o[22]||=d(`span`,null,`رأس چکها`,-1),d(`strong`,null,i(m(g)(String(G.value.rassDays)))+` روز`,1)]),V.value&&m(w).draftChecks.length>0?(r(),c(`div`,We,[a(b,{block:``,variant:`outline`,disabled:B.value,onClick:Z},{default:n(()=>[...o[23]||=[l(` افزودن چک جدید `,-1)]]),_:1},8,[`disabled`]),a(b,{block:``,disabled:W.value.length===0,loading:B.value,onClick:$},{default:n(()=>[...o[24]||=[l(` ارسال برای بررسی `,-1)]]),_:1},8,[`disabled`,`loading`])])):s(``,!0)])])])):(r(),c(`div`,Ge,[a(x,{variant:`checks`,message:`برای ادامه، حداقل یک چک ثبت کنید`},{default:n(()=>[V.value?(r(),p(b,{key:0,onClick:Z},{default:n(()=>[...o[27]||=[l(`ثبت چک جدید`,-1)]]),_:1})):s(``,!0)]),_:1})]))],64))}}),z=w({default:()=>B}),B=te(R,[[`__scopeId`,`data-v-e951b25f`]]);export{z as n,B as t}; \ No newline at end of file +import{At as e,F as t,G as n,M as r,Pt as i,U as ee,_ as a,c as o,d as s,f as c,g as l,i as u,l as d,nt as f,t as te,u as p,ut as m,v as h}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{d as g,n as ne,o as _,r as v}from"./format-C72AoJ2H.js";import{C as re,S as ie,c as ae,f as oe,h as se,n as ce,p as y,r as b}from"./index-D_xSF6a7.js";import{t as x}from"./EmptyState-DoHTAy4d.js";import{t as S}from"./IconChevronBack-BsHmfODG.js";import{t as le}from"./FormErrorBanner-Ud1D04xf.js";import{t as ue}from"./useRequirePricedOrder-CUcMimHo.js";var C=Object.defineProperty,w=(e,t)=>{let n={};for(var r in e)C(n,r,{get:e[r],enumerable:!0});return t||C(n,Symbol.toStringTag,{value:`Module`}),n},de={class:`check-list-page mobile-only`},fe={class:`check-list-page__nav`},pe={type:`button`,class:`nav-btn nav-btn--ghost`,"aria-hidden":`true`,tabindex:`-1`},me={key:0,class:`check-list-page__empty page__scroll page__scroll--with-nav`},he={class:`check-list-page__scroll page__scroll`},ge={class:`summary-cards`},_e={class:`summary-card`},T={class:`summary-card__value`},E={class:`summary-card`},D={class:`summary-card__value`},O={key:0,class:`summary-card__status`},k={key:1,class:`summary-card__status summary-card__status--warn`},A={class:`summary-card__value`},j={key:0,class:`summary-card__hint`},M={class:`checks-list`},N={class:`check-card__menu-wrap`},P=[`onClick`],F={key:1,class:`check-card__menu`},I=[`onClick`],ve={class:`check-card__body`},ye={class:`check-card__title`},be={class:`check-card__amount`},xe={class:`check-card__date`},Se={class:`check-card__thumb-wrap`},Ce=[`src`],we={key:1,class:`check-card__thumb check-card__thumb--empty`},Te={class:`rass-panel`},L={class:`rass-panel__days`},Ee={key:0,class:`rass-panel__date`},De={key:0,class:`check-list-page__footer`},Oe={key:0,class:`desktop-checkout-shell check-list-desktop desktop-only`},ke={class:`desktop-two-col`},Ae={class:`desktop-two-col__main`},je={class:`desktop-table-wrap`},Me={class:`desktop-table-scroll`},Ne={class:`desktop-table check-list-desktop__table`},Pe={key:0,scope:`col`},Fe=[`src`],Ie={key:1},Le={class:`check-list-desktop__amount`},Re={key:0},ze=[`onClick`],Be={class:`desktop-summary-panel`},Ve={class:`desktop-summary-panel__row`},He={class:`desktop-summary-panel__row`},Ue={class:`desktop-summary-panel__row`},We={key:0,class:`desktop-summary-panel__action`},Ge={key:1,class:`desktop-checkout-shell desktop-only`},R=h({__name:`CheckListView`,setup(te){let h=ie(),C=re(),w=oe(),R=ae(),z=f(``),B=f(!1),V=o(()=>h.name===`check-list`),{orderId:H}=ue(),U=o(()=>H.value?w.getOrderById(H.value):void 0);ee(H,async e=>{if(!e||!V.value)return;let t=w.getOrderById(e)??await w.fetchOrder(e);t&&(w.draftChecks.length===0&&(t.checks?.length??0)>0?w.loadChecksIntoDraft(t):w.draftOrderId!==e&&w.startCheckDraft(e,t.checkMode??void 0))},{immediate:!0});let W=o(()=>w.draftChecks.length>0?w.draftChecks:V.value?U.value?.checks??[]:R.user?w.userOrders(R.user.id).filter(e=>(e.settlementType===`check`||e.settlementType===`cash_check`)&&e.checks?.length).flatMap(e=>e.checks??[]):[]),G=o(()=>{let e=U.value?se(U.value):void 0;return w.draftChecks.length>0?w.getDraftRass(e):e?y(W.value,e):y([],new Date(0))}),K=o(()=>U.value?.finalAmount??0),q=o(()=>Math.max(0,K.value-G.value.totalAmount)),J=o(()=>K.value>0&&G.value.totalAmount>=K.value),Y=o(()=>K.value>0&&G.value.totalAmount>K.value),X=o({get:()=>h.query.menu??``,set:e=>{C.replace({query:e?{menu:e}:{}})}});function Ke(){C.push(V.value?`/orders/${H.value}`:`/profile`)}function Z(){C.push(`/orders/${H.value}/check-form`)}async function Q(e){X.value=``,await ce({title:`حذف چک`,message:`آیا از حذف این چک مطمئن هستید؟`,confirmLabel:`حذف`,cancelLabel:`انصراف`,tone:`danger`})&&w.removeDraftCheck(e)}function qe(e){X.value=X.value===e?``:e}async function $(){if(!(!H.value||w.draftChecks.length===0||B.value)){z.value=``,B.value=!0;try{await w.updateOrderChecks(H.value,[...w.draftChecks],w.draftCheckMode??`brief`),C.replace(`/orders/${H.value}?track=1`)}catch(e){z.value=e instanceof Error?e.message:`ثبت چکها ناموفق بود.`}finally{B.value=!1}}}return(ee,o)=>(r(),c(u,null,[d(`div`,de,[d(`header`,fe,[d(`button`,{type:`button`,class:`nav-btn`,"aria-label":`بازگشت`,onClick:Ke},[a(S,{size:20})]),o[1]||=d(`h1`,{class:`check-list-page__title`},`چکهای ثبت شده`,-1),d(`button`,pe,[a(S,{size:18,class:`nav-btn__flip`})])]),W.value.length===0?(r(),c(`div`,me,[a(x,{variant:`checks`,message:`برای ادامه، حداقل یک چک ثبت کنید`},{default:n(()=>[V.value?(r(),p(b,{key:0,onClick:Z},{default:n(()=>[...o[2]||=[l(`ثبت چک جدید`,-1)]]),_:1})):(r(),p(b,{key:1,variant:`outline`,onClick:o[0]||=e=>m(C).push(`/categories`)},{default:n(()=>[...o[3]||=[l(`ثبت سفارش جدید`,-1)]]),_:1}))]),_:1})])):(r(),c(u,{key:1},[d(`div`,he,[a(le,{message:z.value},null,8,[`message`]),d(`div`,ge,[d(`div`,_e,[o[4]||=d(`span`,{class:`summary-card__label`},`مجموع مبلغ چکها`,-1),d(`strong`,T,i(m(_)(G.value.totalAmount)),1),o[5]||=d(`span`,{class:`summary-card__unit`},`تومان`,-1)]),d(`div`,E,[o[7]||=d(`span`,{class:`summary-card__label`},`مبلغ فاکتور`,-1),d(`strong`,D,i(m(_)(K.value)),1),o[8]||=d(`span`,{class:`summary-card__unit`},`تومان`,-1),J.value&&!Y.value?(r(),c(`p`,O,[...o[6]||=[d(`span`,{class:`summary-card__status-icon`},`✓`,-1),l(` مبلغ کامل است `,-1)]])):Y.value?(r(),c(`p`,k,` بیش از مبلغ فاکتور `)):s(``,!0)]),d(`div`,{class:e([`summary-card summary-card--remain`,{"summary-card--remain-ok":J.value&&!Y.value,"summary-card--remain-warn":Y.value}])},[o[9]||=d(`span`,{class:`summary-card__label`},`باقیمانده`,-1),d(`strong`,A,i(Y.value?m(_)(G.value.totalAmount-K.value):m(_)(q.value)),1),o[10]||=d(`span`,{class:`summary-card__unit`},`تومان`,-1),J.value?s(``,!0):(r(),c(`p`,j,` هنوز باید چک ثبت کنید `))],2)]),d(`div`,M,[(r(!0),c(u,null,t(W.value,(e,t)=>(r(),c(`article`,{key:e.id,class:`check-card`},[d(`div`,N,[V.value&&m(w).draftChecks.length>0?(r(),c(`button`,{key:0,type:`button`,class:`check-card__menu-btn`,"aria-label":`گزینهها`,onClick:t=>qe(e.id)},` ⋮ `,8,P)):s(``,!0),X.value===e.id?(r(),c(`div`,F,[d(`button`,{type:`button`,onClick:t=>Q(e.id)},`حذف`,8,I)])):s(``,!0)]),d(`div`,ve,[d(`h3`,ye,`چک `+i(m(g)(String(t+1))),1),d(`p`,be,i(m(ne)(e.amount)),1),d(`p`,xe,`تاریخ: `+i(m(v)(e.dueDate)),1)]),d(`div`,Se,[e.frontImage?(r(),c(`img`,{key:0,src:e.frontImage,class:`check-card__thumb`,alt:`تصویر چک`},null,8,Ce)):(r(),c(`div`,we,`چک`))])]))),128))]),d(`div`,Te,[o[11]||=d(`h3`,{class:`rass-panel__title`},`رأس چکها`,-1),d(`div`,L,i(m(g)(String(G.value.rassDays)))+` روز`,1),G.value.rassDate?(r(),c(`p`,Ee,` تاریخ رأس تقریبی: `+i(m(v)(G.value.rassDate)),1)):s(``,!0)])]),V.value&&m(w).draftChecks.length>0?(r(),c(`div`,De,[a(b,{block:``,variant:`outline`,disabled:B.value,onClick:Z},{default:n(()=>[...o[12]||=[l(` افزودن چک جدید `,-1)]]),_:1},8,[`disabled`]),a(b,{block:``,disabled:W.value.length===0,loading:B.value,onClick:$},{default:n(()=>[...o[13]||=[l(` ارسال برای بررسی `,-1)]]),_:1},8,[`disabled`,`loading`])])):s(``,!0)],64))]),W.value.length>0?(r(),c(`div`,Oe,[o[26]||=d(`header`,{class:`desktop-page__head`},[d(`h1`,{class:`desktop-page__title`},`چکهای ثبت شده`),d(`p`,{class:`desktop-page__subtitle`},`خلاصه و فهرست چکهای ثبتشده`)],-1),d(`div`,ke,[d(`div`,Ae,[d(`div`,je,[d(`div`,Me,[d(`table`,Ne,[d(`thead`,null,[d(`tr`,null,[o[14]||=d(`th`,{scope:`col`},`تصویر`,-1),o[15]||=d(`th`,{scope:`col`},`مبلغ (تومان)`,-1),o[16]||=d(`th`,{scope:`col`},`تاریخ سررسید`,-1),o[17]||=d(`th`,{scope:`col`},`شناسه`,-1),V.value?(r(),c(`th`,Pe,`عملیات`)):s(``,!0)])]),d(`tbody`,null,[(r(!0),c(u,null,t(W.value,(e,t)=>(r(),c(`tr`,{key:e.id},[d(`td`,null,[e.frontImage?(r(),c(`img`,{key:0,src:e.frontImage,class:`check-list-desktop__thumb`,alt:`تصویر چک`},null,8,Fe)):(r(),c(`span`,Ie,`—`))]),d(`td`,Le,i(m(_)(e.amount)),1),d(`td`,null,i(m(v)(e.dueDate)),1),d(`td`,null,`چک `+i(m(g)(String(t+1))),1),V.value&&m(w).draftChecks.length>0?(r(),c(`td`,Re,[d(`button`,{type:`button`,class:`orders-table__action`,onClick:t=>Q(e.id)},` حذف `,8,ze)])):s(``,!0)]))),128))])])])]),V.value?(r(),p(b,{key:0,variant:`outline`,class:`desktop-btn-compact check-list-desktop__add`,onClick:Z},{default:n(()=>[...o[18]||=[l(` ثبت چک دیگر `,-1)]]),_:1})):s(``,!0)]),d(`aside`,Be,[o[25]||=d(`h2`,{class:`desktop-summary-panel__title`},`خلاصه مالی`,-1),d(`div`,Ve,[o[19]||=d(`span`,null,`مجموع چکها`,-1),d(`strong`,null,i(m(_)(G.value.totalAmount))+` تومان`,1)]),d(`div`,He,[o[20]||=d(`span`,null,`مبلغ فاکتور`,-1),d(`strong`,null,i(m(_)(K.value))+` تومان`,1)]),d(`div`,{class:e([`desktop-summary-panel__row desktop-summary-panel__row--remain`,{"desktop-summary-panel__row--ok":J.value&&!Y.value,"desktop-summary-panel__row--warn":Y.value}])},[o[21]||=d(`span`,null,`باقیمانده`,-1),d(`strong`,null,i(Y.value?`${m(_)(G.value.totalAmount-K.value)} بیش از فاکتور`:J.value?`پوشش کامل`:`${m(_)(q.value)} تومان`),1)],2),d(`div`,Ue,[o[22]||=d(`span`,null,`رأس چکها`,-1),d(`strong`,null,i(m(g)(String(G.value.rassDays)))+` روز`,1)]),V.value&&m(w).draftChecks.length>0?(r(),c(`div`,We,[a(b,{block:``,variant:`outline`,disabled:B.value,onClick:Z},{default:n(()=>[...o[23]||=[l(` افزودن چک جدید `,-1)]]),_:1},8,[`disabled`]),a(b,{block:``,disabled:W.value.length===0,loading:B.value,onClick:$},{default:n(()=>[...o[24]||=[l(` ارسال برای بررسی `,-1)]]),_:1},8,[`disabled`,`loading`])])):s(``,!0)])])])):(r(),c(`div`,Ge,[a(x,{variant:`checks`,message:`برای ادامه، حداقل یک چک ثبت کنید`},{default:n(()=>[V.value?(r(),p(b,{key:0,onClick:Z},{default:n(()=>[...o[27]||=[l(`ثبت چک جدید`,-1)]]),_:1})):s(``,!0)]),_:1})]))],64))}}),z=w({default:()=>B}),B=te(R,[[`__scopeId`,`data-v-e951b25f`]]);export{z as n,B as t}; \ No newline at end of file diff --git a/dist/assets/CheckModeSelectView-KJJE3f5u.js b/dist/assets/CheckModeSelectView-DAaOOATB.js similarity index 90% rename from dist/assets/CheckModeSelectView-KJJE3f5u.js rename to dist/assets/CheckModeSelectView-DAaOOATB.js index d0fb72b..3eceee1 100644 --- a/dist/assets/CheckModeSelectView-KJJE3f5u.js +++ b/dist/assets/CheckModeSelectView-DAaOOATB.js @@ -1 +1 @@ -import{M as e,Pt as t,U as n,_ as r,c as i,f as a,l as o,t as s,ut as c,v as l}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{n as u}from"./format-C72AoJ2H.js";import{t as d}from"./IconCheckBook-IuV8Li8k.js";import{C as f,f as p}from"./index-CE4Fw0WE.js";import{t as m}from"./PageHeader-BDPrFkve.js";import{t as h}from"./useRequirePricedOrder-B78MxGXz.js";import{t as g}from"./IconEditPen-D6lQ4xNz.js";var _={class:`page check-mode-page`},v={class:`page__scroll check-mode-page__scroll`},y={class:`check-mode-invoice`},b={class:`check-mode-invoice__value`},x={class:`mode-options`},S={class:`mode-card__icon`},C={class:`mode-card__icon`},w=s(l({__name:`CheckModeSelectView`,setup(s){let l=f(),w=p(),{orderId:T,order:E}=h(),D=i(()=>E.value?.finalAmount?u(E.value.finalAmount):`—`);n(T,async e=>{e&&(w.getOrderById(e)||await w.fetchOrder(e),w.draftOrderId!==e&&w.startCheckDraft(e))},{immediate:!0});function O(e){w.setCheckMode(e),l.push(`/orders/${T.value}/check-form`)}return(n,i)=>(e(),a(`div`,_,[r(m,{title:`تسویه چکی`,subtitle:`بر اساس مبلغ فاکتور، نحوه ثبت چک را انتخاب کنید`,"show-back":``,centered:``,onBack:i[0]||=e=>c(l).push(`/orders/${c(T)}`)}),o(`div`,v,[o(`div`,y,[i[3]||=o(`span`,{class:`check-mode-invoice__label`},`مبلغ فاکتور`,-1),o(`strong`,b,t(D.value),1)]),o(`div`,x,[o(`button`,{type:`button`,class:`mode-card`,onClick:i[1]||=e=>O(`full`)},[o(`span`,S,[r(d,{size:36})]),i[4]||=o(`h3`,{class:`mode-card__title`},`ثبت کامل (پیشنهادی)`,-1),i[5]||=o(`p`,{class:`mode-card__desc`},`وارد کردن همه اطلاعات چک`,-1)]),o(`button`,{type:`button`,class:`mode-card`,onClick:i[2]||=e=>O(`brief`)},[o(`span`,C,[r(g,{size:36})]),i[6]||=o(`h3`,{class:`mode-card__title`},`ثبت مختصر`,-1),i[7]||=o(`p`,{class:`mode-card__desc`},`وارد کردن حداقل اطلاعات`,-1)])])])]))}}),[[`__scopeId`,`data-v-680065b0`]]);export{w as default}; \ No newline at end of file +import{M as e,Pt as t,U as n,_ as r,c as i,f as a,l as o,t as s,ut as c,v as l}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{n as u}from"./format-C72AoJ2H.js";import{t as d}from"./IconCheckBook-IuV8Li8k.js";import{C as f,f as p}from"./index-D_xSF6a7.js";import{t as m}from"./PageHeader-CD5rAJke.js";import{t as h}from"./useRequirePricedOrder-CUcMimHo.js";import{t as g}from"./IconEditPen-D6lQ4xNz.js";var _={class:`page check-mode-page`},v={class:`page__scroll check-mode-page__scroll`},y={class:`check-mode-invoice`},b={class:`check-mode-invoice__value`},x={class:`mode-options`},S={class:`mode-card__icon`},C={class:`mode-card__icon`},w=s(l({__name:`CheckModeSelectView`,setup(s){let l=f(),w=p(),{orderId:T,order:E}=h(),D=i(()=>E.value?.finalAmount?u(E.value.finalAmount):`—`);n(T,async e=>{e&&(w.getOrderById(e)||await w.fetchOrder(e),w.draftOrderId!==e&&w.startCheckDraft(e))},{immediate:!0});function O(e){w.setCheckMode(e),l.push(`/orders/${T.value}/check-form`)}return(n,i)=>(e(),a(`div`,_,[r(m,{title:`تسویه چکی`,subtitle:`بر اساس مبلغ فاکتور، نحوه ثبت چک را انتخاب کنید`,"show-back":``,centered:``,onBack:i[0]||=e=>c(l).push(`/orders/${c(T)}`)}),o(`div`,v,[o(`div`,y,[i[3]||=o(`span`,{class:`check-mode-invoice__label`},`مبلغ فاکتور`,-1),o(`strong`,b,t(D.value),1)]),o(`div`,x,[o(`button`,{type:`button`,class:`mode-card`,onClick:i[1]||=e=>O(`full`)},[o(`span`,S,[r(d,{size:36})]),i[4]||=o(`h3`,{class:`mode-card__title`},`ثبت کامل (پیشنهادی)`,-1),i[5]||=o(`p`,{class:`mode-card__desc`},`وارد کردن همه اطلاعات چک`,-1)]),o(`button`,{type:`button`,class:`mode-card`,onClick:i[2]||=e=>O(`brief`)},[o(`span`,C,[r(g,{size:36})]),i[6]||=o(`h3`,{class:`mode-card__title`},`ثبت مختصر`,-1),i[7]||=o(`p`,{class:`mode-card__desc`},`وارد کردن حداقل اطلاعات`,-1)])])])]))}}),[[`__scopeId`,`data-v-680065b0`]]);export{w as default}; \ No newline at end of file diff --git a/dist/assets/CustomerCreateOverlay-C0ajQDnY.js b/dist/assets/CustomerCreateOverlay-BS0eULjO.js similarity index 97% rename from dist/assets/CustomerCreateOverlay-C0ajQDnY.js rename to dist/assets/CustomerCreateOverlay-BS0eULjO.js index 18a6ac3..944a9c5 100644 --- a/dist/assets/CustomerCreateOverlay-C0ajQDnY.js +++ b/dist/assets/CustomerCreateOverlay-BS0eULjO.js @@ -1 +1 @@ -import{D as e,G as t,M as n,Pt as r,U as i,_ as a,c as o,d as s,f as c,g as l,l as u,nt as d,o as f,t as p,u as m,v as h}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{l as g,n as _}from"./BasicIcon-DPmc0iaK.js";import{l as v}from"./format-C72AoJ2H.js";import{a as y}from"./validation-Duyyve7l.js";import{t as b}from"./http-CU_N-R2R.js";import{c as x,r as S}from"./index-CE4Fw0WE.js";import{t as C}from"./FormErrorBanner-Ud1D04xf.js";import{n as w,r as T,t as E}from"./formErrors-DglFjYkZ.js";import{t as D}from"./crm-CgnSby61.js";import{t as O}from"./BaseInput-CpE3bVJZ.js";var k={class:`customer-create-form`},A={key:0,class:`customer-create-form__intro`},j={class:`customer-create-form__fields`},M=p(h({__name:`CustomerCreateForm`,props:{customerId:{},initial:{}},emits:[`success`],setup(e,{expose:o,emit:f}){let p=e,m=f,h=x(),g=D(),_=d(``),M=d(``),N=d(``),P=d(``),F=d({}),I=d(``),L=d(!1),R=()=>!!p.customerId;function z(e){_.value=e?.firstName??``,M.value=e?.lastName??``,N.value=e?.phone??``,P.value=e?.businessName??``,F.value={},I.value=``}i(()=>p.initial,e=>z(e),{immediate:!0});function B(e){F.value=w(F.value,e),T(F.value)||(I.value=``)}async function V(){if(F.value={},I.value=``,!h.isAgent){I.value=`فقط واسطه میتواند مشتری به لیست خود اضافه کند.`;return}let e=v(N.value),t={};if(_.value.trim()||(t.firstName=`نام الزامی است.`),M.value.trim()||(t.lastName=`نام خانوادگی الزامی است.`),y(e)||(t.phone=`شماره موبایل معتبر نیست.`),T(t)){F.value=t,I.value=E;return}let n={firstName:_.value.trim(),lastName:M.value.trim(),phone:e,businessName:P.value.trim()||void 0};L.value=!0;try{if(R()&&p.customerId){let e=await g.updateCustomer(p.customerId,n);m(`success`,e?.id??p.customerId);return}let e=await g.registerCustomer(n);m(`success`,e?.id)}catch(e){I.value=e instanceof b||e instanceof Error?e.message:R()?`ویرایش مشتری ناموفق بود.`:`ثبت مشتری ناموفق بود.`}finally{L.value=!1}}return o({submit:V,saving:L}),(e,i)=>(n(),c(`div`,k,[R()?s(``,!0):(n(),c(`p`,A,` مشتری به لیست شما اضافه میشود و بعد از ورود با همین شماره، سفارشهایش به حساب شما وصل میماند. `)),a(C,{message:I.value},null,8,[`message`]),u(`div`,j,[a(O,{modelValue:_.value,"onUpdate:modelValue":[i[0]||=e=>_.value=e,i[1]||=e=>B(`firstName`)],label:`نام`,placeholder:`نام مشتری`,error:F.value.firstName},null,8,[`modelValue`,`error`]),a(O,{modelValue:M.value,"onUpdate:modelValue":[i[2]||=e=>M.value=e,i[3]||=e=>B(`lastName`)],label:`نام خانوادگی`,placeholder:`نام خانوادگی`,error:F.value.lastName},null,8,[`modelValue`,`error`]),a(O,{modelValue:N.value,"onUpdate:modelValue":[i[4]||=e=>N.value=e,i[5]||=e=>B(`phone`)],label:`شماره موبایل`,type:`tel`,inputmode:`tel`,dir:`ltr`,placeholder:`۰۹۱۲۳۴۵۶۷۸۹`,error:F.value.phone},null,8,[`modelValue`,`error`]),a(O,{modelValue:P.value,"onUpdate:modelValue":i[6]||=e=>P.value=e,label:`نام فروشگاه (اختیاری)`,placeholder:`مثلاً بوتیک رز`},null,8,[`modelValue`])]),a(S,{block:``,loading:L.value,disabled:L.value,onClick:V},{default:t(()=>[l(r(R()?`ثبت تغییرات`:`ثبت مشتری`),1)]),_:1},8,[`loading`,`disabled`])]))}}),[[`__scopeId`,`data-v-ec8ddbc3`]]),N={class:`customer-create-sheet`},P={class:`customer-create-sheet__head`},F={id:`customer-create-title`},I=p(h({__name:`CustomerCreateOverlay`,props:{open:{type:Boolean},customerId:{},initial:{},title:{}},emits:[`close`,`success`],setup(l,{emit:d}){let p=l,h=o(()=>p.title??(p.customerId?`ویرایش مشتری`:`افزودن مشتری`)),v=d;function y(){v(`close`)}function b(e){v(`success`,e)}function x(e){e.key===`Escape`&&p.open&&y()}return i(()=>p.open,e=>{document.body.style.overflow=e?`hidden`:``,e?window.addEventListener(`keydown`,x):window.removeEventListener(`keydown`,x)},{immediate:!0}),e(()=>{document.body.style.overflow=``,window.removeEventListener(`keydown`,x)}),(e,i)=>(n(),m(f,{to:`body`},[a(_,{name:`customer-create-sheet`},{default:t(()=>[l.open?(n(),c(`div`,{key:0,class:`customer-create-overlay`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`customer-create-title`,onClick:g(y,[`self`])},[u(`div`,N,[i[0]||=u(`div`,{class:`customer-create-sheet__handle`,"aria-hidden":`true`},null,-1),u(`header`,P,[u(`h2`,F,r(h.value),1),u(`button`,{type:`button`,class:`customer-create-sheet__close`,"aria-label":`بستن`,onClick:y},` × `)]),a(M,{"customer-id":l.customerId,initial:l.initial,onSuccess:b},null,8,[`customer-id`,`initial`])])])):s(``,!0)]),_:1})]))}}),[[`__scopeId`,`data-v-ac91feb8`]]);export{I as t}; \ No newline at end of file +import{D as e,G as t,M as n,Pt as r,U as i,_ as a,c as o,d as s,f as c,g as l,l as u,nt as d,o as f,t as p,u as m,v as h}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{l as g,n as _}from"./BasicIcon-DPmc0iaK.js";import{l as v}from"./format-C72AoJ2H.js";import{a as y}from"./validation-Duyyve7l.js";import{t as b}from"./http-CU_N-R2R.js";import{c as x,r as S}from"./index-D_xSF6a7.js";import{t as C}from"./FormErrorBanner-Ud1D04xf.js";import{n as w,r as T,t as E}from"./formErrors-DglFjYkZ.js";import{t as D}from"./crm-CgnSby61.js";import{t as O}from"./BaseInput-CpE3bVJZ.js";var k={class:`customer-create-form`},A={key:0,class:`customer-create-form__intro`},j={class:`customer-create-form__fields`},M=p(h({__name:`CustomerCreateForm`,props:{customerId:{},initial:{}},emits:[`success`],setup(e,{expose:o,emit:f}){let p=e,m=f,h=x(),g=D(),_=d(``),M=d(``),N=d(``),P=d(``),F=d({}),I=d(``),L=d(!1),R=()=>!!p.customerId;function z(e){_.value=e?.firstName??``,M.value=e?.lastName??``,N.value=e?.phone??``,P.value=e?.businessName??``,F.value={},I.value=``}i(()=>p.initial,e=>z(e),{immediate:!0});function B(e){F.value=w(F.value,e),T(F.value)||(I.value=``)}async function V(){if(F.value={},I.value=``,!h.isAgent){I.value=`فقط واسطه میتواند مشتری به لیست خود اضافه کند.`;return}let e=v(N.value),t={};if(_.value.trim()||(t.firstName=`نام الزامی است.`),M.value.trim()||(t.lastName=`نام خانوادگی الزامی است.`),y(e)||(t.phone=`شماره موبایل معتبر نیست.`),T(t)){F.value=t,I.value=E;return}let n={firstName:_.value.trim(),lastName:M.value.trim(),phone:e,businessName:P.value.trim()||void 0};L.value=!0;try{if(R()&&p.customerId){let e=await g.updateCustomer(p.customerId,n);m(`success`,e?.id??p.customerId);return}let e=await g.registerCustomer(n);m(`success`,e?.id)}catch(e){I.value=e instanceof b||e instanceof Error?e.message:R()?`ویرایش مشتری ناموفق بود.`:`ثبت مشتری ناموفق بود.`}finally{L.value=!1}}return o({submit:V,saving:L}),(e,i)=>(n(),c(`div`,k,[R()?s(``,!0):(n(),c(`p`,A,` مشتری به لیست شما اضافه میشود و بعد از ورود با همین شماره، سفارشهایش به حساب شما وصل میماند. `)),a(C,{message:I.value},null,8,[`message`]),u(`div`,j,[a(O,{modelValue:_.value,"onUpdate:modelValue":[i[0]||=e=>_.value=e,i[1]||=e=>B(`firstName`)],label:`نام`,placeholder:`نام مشتری`,error:F.value.firstName},null,8,[`modelValue`,`error`]),a(O,{modelValue:M.value,"onUpdate:modelValue":[i[2]||=e=>M.value=e,i[3]||=e=>B(`lastName`)],label:`نام خانوادگی`,placeholder:`نام خانوادگی`,error:F.value.lastName},null,8,[`modelValue`,`error`]),a(O,{modelValue:N.value,"onUpdate:modelValue":[i[4]||=e=>N.value=e,i[5]||=e=>B(`phone`)],label:`شماره موبایل`,type:`tel`,inputmode:`tel`,dir:`ltr`,placeholder:`۰۹۱۲۳۴۵۶۷۸۹`,error:F.value.phone},null,8,[`modelValue`,`error`]),a(O,{modelValue:P.value,"onUpdate:modelValue":i[6]||=e=>P.value=e,label:`نام فروشگاه (اختیاری)`,placeholder:`مثلاً بوتیک رز`},null,8,[`modelValue`])]),a(S,{block:``,loading:L.value,disabled:L.value,onClick:V},{default:t(()=>[l(r(R()?`ثبت تغییرات`:`ثبت مشتری`),1)]),_:1},8,[`loading`,`disabled`])]))}}),[[`__scopeId`,`data-v-ec8ddbc3`]]),N={class:`customer-create-sheet`},P={class:`customer-create-sheet__head`},F={id:`customer-create-title`},I=p(h({__name:`CustomerCreateOverlay`,props:{open:{type:Boolean},customerId:{},initial:{},title:{}},emits:[`close`,`success`],setup(l,{emit:d}){let p=l,h=o(()=>p.title??(p.customerId?`ویرایش مشتری`:`افزودن مشتری`)),v=d;function y(){v(`close`)}function b(e){v(`success`,e)}function x(e){e.key===`Escape`&&p.open&&y()}return i(()=>p.open,e=>{document.body.style.overflow=e?`hidden`:``,e?window.addEventListener(`keydown`,x):window.removeEventListener(`keydown`,x)},{immediate:!0}),e(()=>{document.body.style.overflow=``,window.removeEventListener(`keydown`,x)}),(e,i)=>(n(),m(f,{to:`body`},[a(_,{name:`customer-create-sheet`},{default:t(()=>[l.open?(n(),c(`div`,{key:0,class:`customer-create-overlay`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`customer-create-title`,onClick:g(y,[`self`])},[u(`div`,N,[i[0]||=u(`div`,{class:`customer-create-sheet__handle`,"aria-hidden":`true`},null,-1),u(`header`,P,[u(`h2`,F,r(h.value),1),u(`button`,{type:`button`,class:`customer-create-sheet__close`,"aria-label":`بستن`,onClick:y},` × `)]),a(M,{"customer-id":l.customerId,initial:l.initial,onSuccess:b},null,8,[`customer-id`,`initial`])])])):s(``,!0)]),_:1})]))}}),[[`__scopeId`,`data-v-ac91feb8`]]);export{I as t}; \ No newline at end of file diff --git a/dist/assets/CustomerDetailView-CkjR4WPp.js b/dist/assets/CustomerDetailView-TGJBtYnj.js similarity index 98% rename from dist/assets/CustomerDetailView-CkjR4WPp.js rename to dist/assets/CustomerDetailView-TGJBtYnj.js index d8c87a3..86efe66 100644 --- a/dist/assets/CustomerDetailView-CkjR4WPp.js +++ b/dist/assets/CustomerDetailView-TGJBtYnj.js @@ -1 +1 @@ -import{At as e,D as t,F as n,G as r,K as i,M as a,Nt as o,Pt as s,U as c,_ as l,c as u,d,f,g as p,i as m,k as h,l as g,m as _,nt as v,o as y,t as b,u as x,ut as S,v as C}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{c as w,l as T,n as E,o as D,t as O}from"./BasicIcon-DPmc0iaK.js";import{o as k}from"./format-C72AoJ2H.js";import{t as A}from"./IconCart-D9TX5E-P.js";import{C as j,S as M,c as N,o as P}from"./index-CE4Fw0WE.js";import{i as F,t as I}from"./constants-ptWoEwwP.js";import{t as ee}from"./IconPhone-BSof4l2r.js";import{t as te}from"./IconClipboardEmpty-DMrB9tzG.js";import{t as ne}from"./PageHeader-BDPrFkve.js";import{t as re}from"./PageSkeleton-DYdjm4l9.js";import{t as ie}from"./crm-CgnSby61.js";import{t as L}from"./PersianDateInput-BcTTynHd.js";import{t as R}from"./IconEditPen-D6lQ4xNz.js";import{t as z}from"./TimeInput-D6PzFPdF.js";import{t as ae}from"./CustomerCreateOverlay-C0ajQDnY.js";var oe=C({__name:`IconMail`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(t,n)=>(a(),x(O,{icon:`vuesax-linear:sms`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),B={class:`meeting-report-form`},V={key:1,class:`form-error`},H={class:`customer-card`},U={dir:`ltr`},W={class:`type-grid`},G=[`onClick`],K={class:`two-cols two-cols--date`},q={class:`field`},J={class:`field`},se={class:`reminder-box`},Y={class:`reminder-box__head`},X=[`aria-pressed`],ce={class:`field`},Z={class:`two-cols two-cols--date`},le={class:`field`},Q=[`disabled`],ue=b(C({__name:`MeetingReportForm`,props:{customerId:{}},emits:[`success`],setup(t,{emit:r}){let u=t,p=r,_=ie(),y=v(null),b=v(!0),S=v(!1),C=v(null),w=v(`in_person`),T=v(``),E=v(``),O=v(``),k=v(``),A=v(!0),j=v(``),M=v(``),N=v(``),P=v(``),F=[{id:`in_person`,label:`ملاقات حضوری`,icon:`clipboard`},{id:`call`,label:`تماس تلفنی`,icon:`phone`},{id:`message`,label:`پیام`,icon:`mail`},{id:`note`,label:`یادداشت`,icon:`pen`}];async function I(){if(!u.customerId){b.value=!1,C.value=`مشتری مشخص نشده است.`,y.value=null;return}b.value=!0,C.value=null;try{let e=await _.loadCustomerDetail(u.customerId);y.value=e.customer}catch(e){y.value=null,C.value=e instanceof Error?e.message:`بارگذاری مشتری ناموفق بود.`}finally{b.value=!1}}h(I),c(()=>u.customerId,I);async function ne(){if(!u.customerId||!O.value.trim()||!T.value.trim()){C.value=`موضوع و تاریخ الزامی است.`;return}S.value=!0,C.value=null;try{await _.submitMeeting({customerId:u.customerId,type:w.value,title:O.value.trim(),subject:O.value.trim(),content:k.value.trim()||void 0,description:k.value.trim()||void 0,date:T.value.trim(),time:E.value.trim()||void 0,createReminder:A.value,reminderTitle:A.value?j.value.trim()||O.value.trim():void 0,reminderDate:A.value?M.value.trim()||T.value.trim():void 0,reminderTime:A.value?N.value.trim()||E.value.trim()||`10:00`:void 0,reminderNote:A.value&&P.value.trim()||void 0}),p(`success`)}catch(e){C.value=e instanceof Error?e.message:`ثبت گزارش ناموفق بود.`}finally{S.value=!1}}return(t,r)=>(a(),f(`div`,B,[b.value?(a(),x(re,{key:0,variant:`form`})):C.value?(a(),f(`p`,V,s(C.value),1)):d(``,!0),y.value?(a(),f(m,{key:2},[g(`section`,H,[g(`div`,{class:`avatar`,style:o({background:y.value.avatarColor})},s(y.value.avatarLetter),5),g(`div`,null,[g(`strong`,null,s(y.value.name),1),g(`p`,null,s(y.value.contactName),1),g(`p`,U,s(y.value.phone),1)])]),g(`section`,null,[r[9]||=g(`h3`,null,`نوع تعامل`,-1),g(`div`,W,[(a(),f(m,null,n(F,t=>g(`button`,{key:t.id,type:`button`,class:e([`type-btn`,{"type-btn--active":w.value===t.id}]),onClick:e=>w.value=t.id},[t.icon===`clipboard`?(a(),x(te,{key:0,size:22})):t.icon===`phone`?(a(),x(ee,{key:1,size:22})):t.icon===`mail`?(a(),x(oe,{key:2,size:22})):(a(),x(R,{key:3,size:22})),g(`span`,null,s(t.label),1)],10,G)),64))])]),g(`section`,null,[r[10]||=g(`h3`,null,`تاریخ و زمان`,-1),g(`div`,K,[l(L,{modelValue:T.value,"onUpdate:modelValue":r[0]||=e=>T.value=e,label:`تاریخ`,class:`meeting-date`},null,8,[`modelValue`]),l(z,{modelValue:E.value,"onUpdate:modelValue":r[1]||=e=>E.value=e,label:`ساعت`,placeholder:`مثلاً ۱۰:۳۰`,class:`meeting-time`},null,8,[`modelValue`])])]),g(`label`,q,[r[11]||=g(`span`,null,`موضوع گزارش`,-1),i(g(`input`,{"onUpdate:modelValue":r[2]||=e=>O.value=e,type:`text`},null,512),[[D,O.value]])]),g(`label`,J,[r[12]||=g(`span`,null,`محتوای گزارش`,-1),i(g(`textarea`,{"onUpdate:modelValue":r[3]||=e=>k.value=e,rows:`5`,maxlength:`1000`},null,512),[[D,k.value]]),g(`em`,null,s(k.value.length.toLocaleString(`fa-IR`))+`/۱۰۰۰`,1)]),r[17]||=g(`section`,null,[g(`h3`,null,`تصاویر و فایلها`),g(`div`,{class:`files`},[g(`div`,{class:`file-thumb`}),g(`div`,{class:`file-thumb`}),g(`button`,{type:`button`,class:`file-add`,"aria-label":`افزودن فایل`},`+`)])],-1),g(`section`,se,[g(`div`,Y,[r[14]||=g(`h3`,null,`یادآور`,-1),g(`button`,{type:`button`,class:e([`toggle`,{"toggle--on":A.value}]),"aria-pressed":A.value,onClick:r[4]||=e=>A.value=!A.value},[...r[13]||=[g(`span`,null,null,-1)]],10,X)]),A.value?(a(),f(m,{key:0},[g(`label`,ce,[r[15]||=g(`span`,null,`عنوان یادآور`,-1),i(g(`input`,{"onUpdate:modelValue":r[5]||=e=>j.value=e,type:`text`},null,512),[[D,j.value]])]),g(`div`,Z,[l(L,{modelValue:M.value,"onUpdate:modelValue":r[6]||=e=>M.value=e,label:`تاریخ یادآور`,class:`meeting-date`},null,8,[`modelValue`]),l(z,{modelValue:N.value,"onUpdate:modelValue":r[7]||=e=>N.value=e,label:`ساعت یادآور`,placeholder:`مثلاً ۱۰:۳۰`,class:`meeting-time`},null,8,[`modelValue`])]),g(`label`,le,[r[16]||=g(`span`,null,`یادداشت یادآور (اختیاری)`,-1),i(g(`input`,{"onUpdate:modelValue":r[8]||=e=>P.value=e,type:`text`},null,512),[[D,P.value]])])],64)):d(``,!0)]),g(`button`,{type:`button`,class:`submit`,disabled:S.value,onClick:ne},s(S.value?`در حال ثبت...`:`ثبت گزارش و یادآور`),9,Q)],64)):d(``,!0)]))}}),[[`__scopeId`,`data-v-5d6dd8b7`]]),de={class:`meeting-report-sheet`},fe=b(C({__name:`MeetingReportOverlay`,props:{open:{type:Boolean},customerId:{}},emits:[`close`,`success`],setup(e,{emit:n}){let i=e,o=n;function s(){o(`close`)}function u(){o(`success`)}function p(e){e.key===`Escape`&&i.open&&s()}return c(()=>i.open,e=>{document.body.style.overflow=e?`hidden`:``,e?window.addEventListener(`keydown`,p):window.removeEventListener(`keydown`,p)},{immediate:!0}),t(()=>{document.body.style.overflow=``,window.removeEventListener(`keydown`,p)}),(t,n)=>(a(),x(y,{to:`body`},[l(E,{name:`meeting-report-sheet`},{default:r(()=>[e.open?(a(),f(`div`,{key:0,class:`meeting-report-overlay`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`meeting-report-title`,onClick:T(s,[`self`])},[g(`div`,de,[n[1]||=g(`div`,{class:`meeting-report-sheet__handle`,"aria-hidden":`true`},null,-1),g(`header`,{class:`meeting-report-sheet__head`},[n[0]||=g(`h2`,{id:`meeting-report-title`},`ثبت گزارش ملاقات`,-1),g(`button`,{type:`button`,class:`meeting-report-sheet__close`,"aria-label":`بستن`,onClick:s},` × `)]),e.customerId?(a(),x(ue,{key:e.customerId,"customer-id":e.customerId,onSuccess:u},null,8,[`customer-id`])):d(``,!0)])])):d(``,!0)]),_:1})]))}}),[[`__scopeId`,`data-v-be25c066`]]),pe={key:0,class:`page customer-page`},me={class:`desktop-page__head desktop-only customer-desk-head`},he={class:`desktop-page__title`},ge={class:`desktop-page__subtitle`,dir:`ltr`},_e={class:`page__scroll page__scroll--with-nav customer-scroll`},ve={key:0,class:`profile-card`},ye={class:`profile-card__info`},be={class:`profile-card__name-row`},xe={class:`profile-card__phone`,dir:`ltr`},Se={key:1,class:`profile-banner`},Ce={class:`profile-banner__top`},we={dir:`ltr`},Te={class:`profile-banner__stats`},Ee={class:`tabs`,role:`tablist`},De=[`aria-selected`,`onClick`],Oe={class:`tab__text`},ke={class:`purchase-card`},Ae={class:`purchase-stats`},je={class:`purchase-stats__item`},Me={class:`purchase-stats__value`},Ne={class:`purchase-stats__item`},Pe={class:`purchase-stats__value`},Fe={class:`purchase-stats__item`},Ie={class:`purchase-stats__value`},Le={class:`panel-card`},Re={class:`agent-row__avatar`},ze={class:`agent-row__info`},Be={class:`orders-block`},Ve={class:`orders-block__head`},He=[`onClick`,`onKeydown`],Ue={class:`order-row__title`},We={class:`order-row__amount`},Ge={key:0,class:`empty-inline`},Ke={key:3,class:`panel-card panel-card--list`},qe=[`onClick`,`onKeydown`],Je={class:`order-row__title`},Ye={class:`order-row__amount`},Xe={key:0,class:`empty-inline`},Ze={key:4,class:`panel-card panel-card--reports`},Qe={class:`meeting-filters`},$e=[`onClick`],et={class:`meeting-row__body`},tt={class:`meeting-row__date`},nt={key:0,class:`empty-inline`},rt={key:0,class:`cta-bar`},it={key:1,class:`page empty`},at={key:2,class:`page empty`},ot=b(C({__name:`CustomerDetailView`,setup(t){let i=M(),y=j(),b=ie(),C=N(),T=u(()=>String(i.query.id??``)),E=u(()=>String(i.query.tab??`info`)),D=u(()=>i.query.meetingReport===`1`),O=u(()=>i.query.edit===`1`),L=v(null),z=v([]),B=v([]),V=v(`all`),H=v(!0),U=v(null),W=[{id:`info`,label:`اطلاعات`},{id:`orders`,label:`سفارشها`},{id:`reports`,label:`گزارشها و پیگیریها`}];async function G(){if(!T.value){L.value=null,H.value=!1;return}H.value=!0,U.value=null;try{let e=await b.loadCustomerDetail(T.value);L.value=e.customer,z.value=e.orders,B.value=e.meetings}catch(e){L.value=null,U.value=e instanceof Error?e.message:`مشتری یافت نشد.`}finally{H.value=!1}}h(G),c(T,G);function K(e){y.replace({path:`/customer`,query:{id:T.value,tab:e}})}function q(){y.push({path:`/customer`,query:{id:T.value,tab:`reports`,meetingReport:`1`}})}function J(){y.replace({path:`/customer`,query:{id:T.value,tab:`reports`}})}async function se(){J(),await G()}function Y(){y.push({path:`/customer`,query:{id:T.value,tab:E.value,edit:`1`}})}function X(){y.replace({path:`/customer`,query:{id:T.value,tab:E.value}})}async function ce(){X(),await G()}let Z=u(()=>{if(!L.value)return null;let e=L.value;if(e.firstName&&e.lastName)return{firstName:e.firstName,lastName:e.lastName,phone:e.phone,businessName:e.businessName??``};let t=e.contactName.trim().split(/\s+/),n=t[0]??``;return{firstName:n,lastName:t.slice(1).join(` `)||n,phone:e.phone,businessName:e.name===e.contactName?``:e.name}});function le(e){return e===`in_person`?`ملاقات حضوری`:e===`call`?`تماس`:e===`message`?`پیام`:`یادداشت`}let Q=u(()=>L.value?.agentName||C.fullName||`واسطه`),ue=u(()=>L.value?.agentCode||C.user?.agentCode||`—`),de=u(()=>Q.value.charAt(0)),ot=[{id:`all`,label:`همه`},{id:`in_person`,label:`ملاقات حضوری`},{id:`call`,label:`تماس`},{id:`message`,label:`پیام`},{id:`note`,label:`یادداشت`}],st=u(()=>V.value===`all`?B.value:B.value.filter(e=>e.type===V.value));function ct(e){return e===`in_person`?`meeting-row__icon--green`:e===`call`?`meeting-row__icon--blue`:`meeting-row__icon--purple`}function $(e){e&&y.push({path:`/order`,query:{id:e}})}function lt(e){let t=e.statusLabel;return I[t]||e.statusLabel}function ut(e){let t=F[e.statusLabel];return t===`success`?`success`:t===`warning`||t===`danger`?`warning`:e.statusTone||`info`}let dt=u(()=>z.value.slice(0,3));function ft(e){return e===`active`?`فعال`:e===`inactive`?`غیرفعال`:`جدید`}function pt(e){return e===`active`?`status-badge--active`:e===`inactive`?`status-badge--inactive`:`status-badge--new`}return(t,i)=>(a(),f(m,null,[L.value?(a(),f(`div`,pe,[l(ne,{class:`mobile-only`,title:E.value===`reports`?`پروفایل مشتری`:`جزئیات مشتری`,"show-back":``,centered:``,onBack:i[0]||=e=>S(y).push(`/customers`)},_({_:2},[E.value===`info`?{name:`trailing`,fn:r(()=>[g(`button`,{type:`button`,class:`edit-btn edit-btn--compact`,"aria-label":`ویرایش`,onClick:Y},[l(R,{size:18}),i[4]||=g(`span`,{class:`edit-btn__label`},`ویرایش`,-1)])]),key:`0`}:void 0]),1032,[`title`]),g(`header`,me,[g(`div`,null,[g(`h1`,he,s(L.value.name),1),g(`p`,ge,s(L.value.phone),1)]),E.value===`info`?(a(),f(`button`,{key:0,type:`button`,class:`edit-btn edit-btn--desk`,onClick:Y},` ویرایش `)):d(``,!0)]),g(`div`,_e,[E.value===`reports`?(a(),f(`section`,Se,[g(`div`,Ce,[g(`div`,{class:`profile-card__avatar profile-card__avatar--lg`,style:o({background:L.value.avatarColor})},s(L.value.avatarLetter),5),g(`div`,null,[g(`h2`,null,s(L.value.name),1),g(`p`,null,s(L.value.contactName),1),g(`p`,we,s(L.value.phone),1)]),i[5]||=g(`span`,{class:`status-badge status-badge--active status-badge--on-dark`},`فعال`,-1)]),g(`div`,Te,[g(`div`,null,[i[6]||=g(`span`,null,`سطح مشتری`,-1),g(`strong`,null,s(L.value.levelLabel),1)]),g(`div`,null,[i[7]||=g(`span`,null,`تاریخ اولین خرید`,-1),g(`strong`,null,s(L.value.firstPurchaseDate),1)]),g(`div`,null,[i[8]||=g(`span`,null,`تعداد سفارش`,-1),g(`strong`,null,s(S(k)(L.value.orderCount))+` سفارش`,1)])])])):(a(),f(`section`,ve,[g(`div`,{class:`profile-card__avatar`,style:o({background:L.value.avatarColor})},s(L.value.avatarLetter),5),g(`div`,ye,[g(`div`,be,[g(`h2`,null,s(L.value.name),1),g(`span`,{class:e([`status-badge`,pt(L.value.status)])},s(ft(L.value.status)),3)]),g(`p`,xe,s(L.value.phone),1)])])),g(`div`,Ee,[(a(),f(m,null,n(W,t=>g(`button`,{key:t.id,type:`button`,role:`tab`,class:e([`tab`,{"tab--active":E.value===t.id}]),"aria-selected":E.value===t.id,onClick:e=>K(t.id)},[g(`span`,Oe,s(t.label),1)],10,De)),64))]),E.value===`info`?(a(),f(m,{key:2},[g(`section`,ke,[i[16]||=g(`h3`,{class:`section-title`},`اطلاعات خرید`,-1),g(`div`,Ae,[g(`div`,je,[i[9]||=g(`span`,{class:`purchase-stats__label`},`تعداد سفارش`,-1),g(`strong`,Me,s(S(k)(L.value.orderCount)),1)]),i[14]||=g(`span`,{class:`purchase-stats__divider`,"aria-hidden":`true`},null,-1),g(`div`,Ne,[i[10]||=g(`span`,{class:`purchase-stats__label`},`مجموع خرید`,-1),g(`strong`,Pe,s(S(k)(L.value.totalPurchaseToman)),1),i[11]||=g(`em`,{class:`purchase-stats__unit`},`تومان`,-1)]),i[15]||=g(`span`,{class:`purchase-stats__divider`,"aria-hidden":`true`},null,-1),g(`div`,Fe,[i[12]||=g(`span`,{class:`purchase-stats__label`},`میانگین هر سفارش`,-1),g(`strong`,Ie,s(S(k)(L.value.averageOrderToman)),1),i[13]||=g(`em`,{class:`purchase-stats__unit`},`تومان`,-1)])])]),g(`section`,Le,[g(`button`,{type:`button`,class:`agent-row`,onClick:i[1]||=e=>S(y).push(`/profile`)},[g(`div`,Re,s(de.value),1),g(`div`,ze,[g(`strong`,null,s(Q.value),1),g(`p`,null,`کد واسطه: `+s(ue.value),1)]),l(P,{size:18,class:`agent-row__chevron`,"aria-hidden":`true`})]),g(`div`,Be,[g(`div`,Ve,[i[17]||=g(`h3`,{class:`section-title`},`آخرین سفارشها`,-1),g(`button`,{type:`button`,class:`link-btn`,onClick:i[2]||=e=>K(`orders`)},`مشاهده همه`)]),(a(!0),f(m,null,n(dt.value,t=>(a(),f(`article`,{key:t.id,class:`order-row`,role:`button`,tabindex:`0`,onClick:e=>$(t.id),onKeydown:w(e=>$(t.id),[`enter`])},[g(`div`,Ue,[g(`strong`,null,s(t.title),1),l(P,{size:14,class:`order-row__chevron`,"aria-hidden":`true`})]),g(`span`,We,s(S(k)(t.amountToman))+` تومان`,1),g(`span`,{class:e([`status-pill`,`status-pill--${ut(t)}`])},s(lt(t)),3)],40,He))),128)),dt.value.length?d(``,!0):(a(),f(`p`,Ge,`سفارشی ثبت نشده است.`))])])],64)):E.value===`orders`?(a(),f(`section`,Ke,[(a(!0),f(m,null,n(z.value,t=>(a(),f(`article`,{key:t.id,class:`order-row`,role:`button`,tabindex:`0`,onClick:e=>$(t.id),onKeydown:w(e=>$(t.id),[`enter`])},[g(`div`,Je,[g(`strong`,null,s(t.title),1),l(P,{size:14,class:`order-row__chevron`,"aria-hidden":`true`})]),g(`span`,Ye,s(S(k)(t.amountToman))+` تومان`,1),g(`span`,{class:e([`status-pill`,`status-pill--${ut(t)}`])},s(lt(t)),3)],40,qe))),128)),z.value.length?d(``,!0):(a(),f(`p`,Xe,`سفارشی ثبت نشده است.`))])):(a(),f(`section`,Ze,[i[18]||=g(`h3`,{class:`section-title`},`تعاملات و پیگیریها`,-1),g(`button`,{type:`button`,class:`dashed-btn`,onClick:q},` + ثبت گزارش ملاقات جدید `),g(`div`,Qe,[(a(),f(m,null,n(ot,t=>g(`button`,{key:t.id,type:`button`,class:e([`meeting-filter`,{"meeting-filter--active":V.value===t.id}]),onClick:e=>V.value=t.id},s(t.label),11,$e)),64))]),(a(!0),f(m,null,n(st.value,t=>(a(),f(`article`,{key:t.id,class:`meeting-row`},[g(`div`,{class:e([`meeting-row__icon`,ct(t.type)])},[t.type===`in_person`?(a(),x(te,{key:0,size:16})):t.type===`call`?(a(),x(ee,{key:1,size:16})):t.type===`message`?(a(),x(oe,{key:2,size:16})):(a(),x(R,{key:3,size:16}))],2),g(`div`,et,[g(`strong`,null,s(le(t.type)),1),g(`p`,null,s(t.description||t.title),1)]),g(`span`,tt,s(t.date),1)]))),128)),st.value.length?d(``,!0):(a(),f(`p`,nt,` گزارشی برای این فیلتر ثبت نشده است. `))]))]),E.value===`info`?(a(),f(`footer`,rt,[g(`button`,{type:`button`,class:`cta`,onClick:i[3]||=e=>S(y).push(`/categories`)},[l(A,{size:20,color:`#fff`}),i[19]||=p(` سفارش جدید برای این مشتری `,-1)])])):d(``,!0)])):H.value?(a(),f(`div`,it,[l(re,{variant:`detail`})])):(a(),f(`div`,at,[g(`p`,null,s(U.value||`مشتری یافت نشد.`),1)])),l(fe,{open:D.value,"customer-id":T.value,onClose:J,onSuccess:se},null,8,[`open`,`customer-id`]),l(ae,{open:O.value,"customer-id":T.value,initial:Z.value,onClose:X,onSuccess:ce},null,8,[`open`,`customer-id`,`initial`])],64))}}),[[`__scopeId`,`data-v-938375e3`]]);export{ot as default}; \ No newline at end of file +import{At as e,D as t,F as n,G as r,K as i,M as a,Nt as o,Pt as s,U as c,_ as l,c as u,d,f,g as p,i as m,k as h,l as g,m as _,nt as v,o as y,t as b,u as x,ut as S,v as C}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{c as w,l as T,n as E,o as D,t as O}from"./BasicIcon-DPmc0iaK.js";import{o as k}from"./format-C72AoJ2H.js";import{t as A}from"./IconCart-D9TX5E-P.js";import{C as j,S as M,c as N,o as P}from"./index-D_xSF6a7.js";import{i as F,t as I}from"./constants-ptWoEwwP.js";import{t as ee}from"./IconPhone-BSof4l2r.js";import{t as te}from"./IconClipboardEmpty-DMrB9tzG.js";import{t as ne}from"./PageHeader-CD5rAJke.js";import{t as re}from"./PageSkeleton-DYdjm4l9.js";import{t as ie}from"./crm-CgnSby61.js";import{t as L}from"./PersianDateInput-BcTTynHd.js";import{t as R}from"./IconEditPen-D6lQ4xNz.js";import{t as z}from"./TimeInput-D6PzFPdF.js";import{t as ae}from"./CustomerCreateOverlay-BS0eULjO.js";var oe=C({__name:`IconMail`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(t,n)=>(a(),x(O,{icon:`vuesax-linear:sms`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),B={class:`meeting-report-form`},V={key:1,class:`form-error`},H={class:`customer-card`},U={dir:`ltr`},W={class:`type-grid`},G=[`onClick`],K={class:`two-cols two-cols--date`},q={class:`field`},J={class:`field`},se={class:`reminder-box`},Y={class:`reminder-box__head`},X=[`aria-pressed`],ce={class:`field`},Z={class:`two-cols two-cols--date`},le={class:`field`},Q=[`disabled`],ue=b(C({__name:`MeetingReportForm`,props:{customerId:{}},emits:[`success`],setup(t,{emit:r}){let u=t,p=r,_=ie(),y=v(null),b=v(!0),S=v(!1),C=v(null),w=v(`in_person`),T=v(``),E=v(``),O=v(``),k=v(``),A=v(!0),j=v(``),M=v(``),N=v(``),P=v(``),F=[{id:`in_person`,label:`ملاقات حضوری`,icon:`clipboard`},{id:`call`,label:`تماس تلفنی`,icon:`phone`},{id:`message`,label:`پیام`,icon:`mail`},{id:`note`,label:`یادداشت`,icon:`pen`}];async function I(){if(!u.customerId){b.value=!1,C.value=`مشتری مشخص نشده است.`,y.value=null;return}b.value=!0,C.value=null;try{let e=await _.loadCustomerDetail(u.customerId);y.value=e.customer}catch(e){y.value=null,C.value=e instanceof Error?e.message:`بارگذاری مشتری ناموفق بود.`}finally{b.value=!1}}h(I),c(()=>u.customerId,I);async function ne(){if(!u.customerId||!O.value.trim()||!T.value.trim()){C.value=`موضوع و تاریخ الزامی است.`;return}S.value=!0,C.value=null;try{await _.submitMeeting({customerId:u.customerId,type:w.value,title:O.value.trim(),subject:O.value.trim(),content:k.value.trim()||void 0,description:k.value.trim()||void 0,date:T.value.trim(),time:E.value.trim()||void 0,createReminder:A.value,reminderTitle:A.value?j.value.trim()||O.value.trim():void 0,reminderDate:A.value?M.value.trim()||T.value.trim():void 0,reminderTime:A.value?N.value.trim()||E.value.trim()||`10:00`:void 0,reminderNote:A.value&&P.value.trim()||void 0}),p(`success`)}catch(e){C.value=e instanceof Error?e.message:`ثبت گزارش ناموفق بود.`}finally{S.value=!1}}return(t,r)=>(a(),f(`div`,B,[b.value?(a(),x(re,{key:0,variant:`form`})):C.value?(a(),f(`p`,V,s(C.value),1)):d(``,!0),y.value?(a(),f(m,{key:2},[g(`section`,H,[g(`div`,{class:`avatar`,style:o({background:y.value.avatarColor})},s(y.value.avatarLetter),5),g(`div`,null,[g(`strong`,null,s(y.value.name),1),g(`p`,null,s(y.value.contactName),1),g(`p`,U,s(y.value.phone),1)])]),g(`section`,null,[r[9]||=g(`h3`,null,`نوع تعامل`,-1),g(`div`,W,[(a(),f(m,null,n(F,t=>g(`button`,{key:t.id,type:`button`,class:e([`type-btn`,{"type-btn--active":w.value===t.id}]),onClick:e=>w.value=t.id},[t.icon===`clipboard`?(a(),x(te,{key:0,size:22})):t.icon===`phone`?(a(),x(ee,{key:1,size:22})):t.icon===`mail`?(a(),x(oe,{key:2,size:22})):(a(),x(R,{key:3,size:22})),g(`span`,null,s(t.label),1)],10,G)),64))])]),g(`section`,null,[r[10]||=g(`h3`,null,`تاریخ و زمان`,-1),g(`div`,K,[l(L,{modelValue:T.value,"onUpdate:modelValue":r[0]||=e=>T.value=e,label:`تاریخ`,class:`meeting-date`},null,8,[`modelValue`]),l(z,{modelValue:E.value,"onUpdate:modelValue":r[1]||=e=>E.value=e,label:`ساعت`,placeholder:`مثلاً ۱۰:۳۰`,class:`meeting-time`},null,8,[`modelValue`])])]),g(`label`,q,[r[11]||=g(`span`,null,`موضوع گزارش`,-1),i(g(`input`,{"onUpdate:modelValue":r[2]||=e=>O.value=e,type:`text`},null,512),[[D,O.value]])]),g(`label`,J,[r[12]||=g(`span`,null,`محتوای گزارش`,-1),i(g(`textarea`,{"onUpdate:modelValue":r[3]||=e=>k.value=e,rows:`5`,maxlength:`1000`},null,512),[[D,k.value]]),g(`em`,null,s(k.value.length.toLocaleString(`fa-IR`))+`/۱۰۰۰`,1)]),r[17]||=g(`section`,null,[g(`h3`,null,`تصاویر و فایلها`),g(`div`,{class:`files`},[g(`div`,{class:`file-thumb`}),g(`div`,{class:`file-thumb`}),g(`button`,{type:`button`,class:`file-add`,"aria-label":`افزودن فایل`},`+`)])],-1),g(`section`,se,[g(`div`,Y,[r[14]||=g(`h3`,null,`یادآور`,-1),g(`button`,{type:`button`,class:e([`toggle`,{"toggle--on":A.value}]),"aria-pressed":A.value,onClick:r[4]||=e=>A.value=!A.value},[...r[13]||=[g(`span`,null,null,-1)]],10,X)]),A.value?(a(),f(m,{key:0},[g(`label`,ce,[r[15]||=g(`span`,null,`عنوان یادآور`,-1),i(g(`input`,{"onUpdate:modelValue":r[5]||=e=>j.value=e,type:`text`},null,512),[[D,j.value]])]),g(`div`,Z,[l(L,{modelValue:M.value,"onUpdate:modelValue":r[6]||=e=>M.value=e,label:`تاریخ یادآور`,class:`meeting-date`},null,8,[`modelValue`]),l(z,{modelValue:N.value,"onUpdate:modelValue":r[7]||=e=>N.value=e,label:`ساعت یادآور`,placeholder:`مثلاً ۱۰:۳۰`,class:`meeting-time`},null,8,[`modelValue`])]),g(`label`,le,[r[16]||=g(`span`,null,`یادداشت یادآور (اختیاری)`,-1),i(g(`input`,{"onUpdate:modelValue":r[8]||=e=>P.value=e,type:`text`},null,512),[[D,P.value]])])],64)):d(``,!0)]),g(`button`,{type:`button`,class:`submit`,disabled:S.value,onClick:ne},s(S.value?`در حال ثبت...`:`ثبت گزارش و یادآور`),9,Q)],64)):d(``,!0)]))}}),[[`__scopeId`,`data-v-5d6dd8b7`]]),de={class:`meeting-report-sheet`},fe=b(C({__name:`MeetingReportOverlay`,props:{open:{type:Boolean},customerId:{}},emits:[`close`,`success`],setup(e,{emit:n}){let i=e,o=n;function s(){o(`close`)}function u(){o(`success`)}function p(e){e.key===`Escape`&&i.open&&s()}return c(()=>i.open,e=>{document.body.style.overflow=e?`hidden`:``,e?window.addEventListener(`keydown`,p):window.removeEventListener(`keydown`,p)},{immediate:!0}),t(()=>{document.body.style.overflow=``,window.removeEventListener(`keydown`,p)}),(t,n)=>(a(),x(y,{to:`body`},[l(E,{name:`meeting-report-sheet`},{default:r(()=>[e.open?(a(),f(`div`,{key:0,class:`meeting-report-overlay`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`meeting-report-title`,onClick:T(s,[`self`])},[g(`div`,de,[n[1]||=g(`div`,{class:`meeting-report-sheet__handle`,"aria-hidden":`true`},null,-1),g(`header`,{class:`meeting-report-sheet__head`},[n[0]||=g(`h2`,{id:`meeting-report-title`},`ثبت گزارش ملاقات`,-1),g(`button`,{type:`button`,class:`meeting-report-sheet__close`,"aria-label":`بستن`,onClick:s},` × `)]),e.customerId?(a(),x(ue,{key:e.customerId,"customer-id":e.customerId,onSuccess:u},null,8,[`customer-id`])):d(``,!0)])])):d(``,!0)]),_:1})]))}}),[[`__scopeId`,`data-v-be25c066`]]),pe={key:0,class:`page customer-page`},me={class:`desktop-page__head desktop-only customer-desk-head`},he={class:`desktop-page__title`},ge={class:`desktop-page__subtitle`,dir:`ltr`},_e={class:`page__scroll page__scroll--with-nav customer-scroll`},ve={key:0,class:`profile-card`},ye={class:`profile-card__info`},be={class:`profile-card__name-row`},xe={class:`profile-card__phone`,dir:`ltr`},Se={key:1,class:`profile-banner`},Ce={class:`profile-banner__top`},we={dir:`ltr`},Te={class:`profile-banner__stats`},Ee={class:`tabs`,role:`tablist`},De=[`aria-selected`,`onClick`],Oe={class:`tab__text`},ke={class:`purchase-card`},Ae={class:`purchase-stats`},je={class:`purchase-stats__item`},Me={class:`purchase-stats__value`},Ne={class:`purchase-stats__item`},Pe={class:`purchase-stats__value`},Fe={class:`purchase-stats__item`},Ie={class:`purchase-stats__value`},Le={class:`panel-card`},Re={class:`agent-row__avatar`},ze={class:`agent-row__info`},Be={class:`orders-block`},Ve={class:`orders-block__head`},He=[`onClick`,`onKeydown`],Ue={class:`order-row__title`},We={class:`order-row__amount`},Ge={key:0,class:`empty-inline`},Ke={key:3,class:`panel-card panel-card--list`},qe=[`onClick`,`onKeydown`],Je={class:`order-row__title`},Ye={class:`order-row__amount`},Xe={key:0,class:`empty-inline`},Ze={key:4,class:`panel-card panel-card--reports`},Qe={class:`meeting-filters`},$e=[`onClick`],et={class:`meeting-row__body`},tt={class:`meeting-row__date`},nt={key:0,class:`empty-inline`},rt={key:0,class:`cta-bar`},it={key:1,class:`page empty`},at={key:2,class:`page empty`},ot=b(C({__name:`CustomerDetailView`,setup(t){let i=M(),y=j(),b=ie(),C=N(),T=u(()=>String(i.query.id??``)),E=u(()=>String(i.query.tab??`info`)),D=u(()=>i.query.meetingReport===`1`),O=u(()=>i.query.edit===`1`),L=v(null),z=v([]),B=v([]),V=v(`all`),H=v(!0),U=v(null),W=[{id:`info`,label:`اطلاعات`},{id:`orders`,label:`سفارشها`},{id:`reports`,label:`گزارشها و پیگیریها`}];async function G(){if(!T.value){L.value=null,H.value=!1;return}H.value=!0,U.value=null;try{let e=await b.loadCustomerDetail(T.value);L.value=e.customer,z.value=e.orders,B.value=e.meetings}catch(e){L.value=null,U.value=e instanceof Error?e.message:`مشتری یافت نشد.`}finally{H.value=!1}}h(G),c(T,G);function K(e){y.replace({path:`/customer`,query:{id:T.value,tab:e}})}function q(){y.push({path:`/customer`,query:{id:T.value,tab:`reports`,meetingReport:`1`}})}function J(){y.replace({path:`/customer`,query:{id:T.value,tab:`reports`}})}async function se(){J(),await G()}function Y(){y.push({path:`/customer`,query:{id:T.value,tab:E.value,edit:`1`}})}function X(){y.replace({path:`/customer`,query:{id:T.value,tab:E.value}})}async function ce(){X(),await G()}let Z=u(()=>{if(!L.value)return null;let e=L.value;if(e.firstName&&e.lastName)return{firstName:e.firstName,lastName:e.lastName,phone:e.phone,businessName:e.businessName??``};let t=e.contactName.trim().split(/\s+/),n=t[0]??``;return{firstName:n,lastName:t.slice(1).join(` `)||n,phone:e.phone,businessName:e.name===e.contactName?``:e.name}});function le(e){return e===`in_person`?`ملاقات حضوری`:e===`call`?`تماس`:e===`message`?`پیام`:`یادداشت`}let Q=u(()=>L.value?.agentName||C.fullName||`واسطه`),ue=u(()=>L.value?.agentCode||C.user?.agentCode||`—`),de=u(()=>Q.value.charAt(0)),ot=[{id:`all`,label:`همه`},{id:`in_person`,label:`ملاقات حضوری`},{id:`call`,label:`تماس`},{id:`message`,label:`پیام`},{id:`note`,label:`یادداشت`}],st=u(()=>V.value===`all`?B.value:B.value.filter(e=>e.type===V.value));function ct(e){return e===`in_person`?`meeting-row__icon--green`:e===`call`?`meeting-row__icon--blue`:`meeting-row__icon--purple`}function $(e){e&&y.push({path:`/order`,query:{id:e}})}function lt(e){let t=e.statusLabel;return I[t]||e.statusLabel}function ut(e){let t=F[e.statusLabel];return t===`success`?`success`:t===`warning`||t===`danger`?`warning`:e.statusTone||`info`}let dt=u(()=>z.value.slice(0,3));function ft(e){return e===`active`?`فعال`:e===`inactive`?`غیرفعال`:`جدید`}function pt(e){return e===`active`?`status-badge--active`:e===`inactive`?`status-badge--inactive`:`status-badge--new`}return(t,i)=>(a(),f(m,null,[L.value?(a(),f(`div`,pe,[l(ne,{class:`mobile-only`,title:E.value===`reports`?`پروفایل مشتری`:`جزئیات مشتری`,"show-back":``,centered:``,onBack:i[0]||=e=>S(y).push(`/customers`)},_({_:2},[E.value===`info`?{name:`trailing`,fn:r(()=>[g(`button`,{type:`button`,class:`edit-btn edit-btn--compact`,"aria-label":`ویرایش`,onClick:Y},[l(R,{size:18}),i[4]||=g(`span`,{class:`edit-btn__label`},`ویرایش`,-1)])]),key:`0`}:void 0]),1032,[`title`]),g(`header`,me,[g(`div`,null,[g(`h1`,he,s(L.value.name),1),g(`p`,ge,s(L.value.phone),1)]),E.value===`info`?(a(),f(`button`,{key:0,type:`button`,class:`edit-btn edit-btn--desk`,onClick:Y},` ویرایش `)):d(``,!0)]),g(`div`,_e,[E.value===`reports`?(a(),f(`section`,Se,[g(`div`,Ce,[g(`div`,{class:`profile-card__avatar profile-card__avatar--lg`,style:o({background:L.value.avatarColor})},s(L.value.avatarLetter),5),g(`div`,null,[g(`h2`,null,s(L.value.name),1),g(`p`,null,s(L.value.contactName),1),g(`p`,we,s(L.value.phone),1)]),i[5]||=g(`span`,{class:`status-badge status-badge--active status-badge--on-dark`},`فعال`,-1)]),g(`div`,Te,[g(`div`,null,[i[6]||=g(`span`,null,`سطح مشتری`,-1),g(`strong`,null,s(L.value.levelLabel),1)]),g(`div`,null,[i[7]||=g(`span`,null,`تاریخ اولین خرید`,-1),g(`strong`,null,s(L.value.firstPurchaseDate),1)]),g(`div`,null,[i[8]||=g(`span`,null,`تعداد سفارش`,-1),g(`strong`,null,s(S(k)(L.value.orderCount))+` سفارش`,1)])])])):(a(),f(`section`,ve,[g(`div`,{class:`profile-card__avatar`,style:o({background:L.value.avatarColor})},s(L.value.avatarLetter),5),g(`div`,ye,[g(`div`,be,[g(`h2`,null,s(L.value.name),1),g(`span`,{class:e([`status-badge`,pt(L.value.status)])},s(ft(L.value.status)),3)]),g(`p`,xe,s(L.value.phone),1)])])),g(`div`,Ee,[(a(),f(m,null,n(W,t=>g(`button`,{key:t.id,type:`button`,role:`tab`,class:e([`tab`,{"tab--active":E.value===t.id}]),"aria-selected":E.value===t.id,onClick:e=>K(t.id)},[g(`span`,Oe,s(t.label),1)],10,De)),64))]),E.value===`info`?(a(),f(m,{key:2},[g(`section`,ke,[i[16]||=g(`h3`,{class:`section-title`},`اطلاعات خرید`,-1),g(`div`,Ae,[g(`div`,je,[i[9]||=g(`span`,{class:`purchase-stats__label`},`تعداد سفارش`,-1),g(`strong`,Me,s(S(k)(L.value.orderCount)),1)]),i[14]||=g(`span`,{class:`purchase-stats__divider`,"aria-hidden":`true`},null,-1),g(`div`,Ne,[i[10]||=g(`span`,{class:`purchase-stats__label`},`مجموع خرید`,-1),g(`strong`,Pe,s(S(k)(L.value.totalPurchaseToman)),1),i[11]||=g(`em`,{class:`purchase-stats__unit`},`تومان`,-1)]),i[15]||=g(`span`,{class:`purchase-stats__divider`,"aria-hidden":`true`},null,-1),g(`div`,Fe,[i[12]||=g(`span`,{class:`purchase-stats__label`},`میانگین هر سفارش`,-1),g(`strong`,Ie,s(S(k)(L.value.averageOrderToman)),1),i[13]||=g(`em`,{class:`purchase-stats__unit`},`تومان`,-1)])])]),g(`section`,Le,[g(`button`,{type:`button`,class:`agent-row`,onClick:i[1]||=e=>S(y).push(`/profile`)},[g(`div`,Re,s(de.value),1),g(`div`,ze,[g(`strong`,null,s(Q.value),1),g(`p`,null,`کد واسطه: `+s(ue.value),1)]),l(P,{size:18,class:`agent-row__chevron`,"aria-hidden":`true`})]),g(`div`,Be,[g(`div`,Ve,[i[17]||=g(`h3`,{class:`section-title`},`آخرین سفارشها`,-1),g(`button`,{type:`button`,class:`link-btn`,onClick:i[2]||=e=>K(`orders`)},`مشاهده همه`)]),(a(!0),f(m,null,n(dt.value,t=>(a(),f(`article`,{key:t.id,class:`order-row`,role:`button`,tabindex:`0`,onClick:e=>$(t.id),onKeydown:w(e=>$(t.id),[`enter`])},[g(`div`,Ue,[g(`strong`,null,s(t.title),1),l(P,{size:14,class:`order-row__chevron`,"aria-hidden":`true`})]),g(`span`,We,s(S(k)(t.amountToman))+` تومان`,1),g(`span`,{class:e([`status-pill`,`status-pill--${ut(t)}`])},s(lt(t)),3)],40,He))),128)),dt.value.length?d(``,!0):(a(),f(`p`,Ge,`سفارشی ثبت نشده است.`))])])],64)):E.value===`orders`?(a(),f(`section`,Ke,[(a(!0),f(m,null,n(z.value,t=>(a(),f(`article`,{key:t.id,class:`order-row`,role:`button`,tabindex:`0`,onClick:e=>$(t.id),onKeydown:w(e=>$(t.id),[`enter`])},[g(`div`,Je,[g(`strong`,null,s(t.title),1),l(P,{size:14,class:`order-row__chevron`,"aria-hidden":`true`})]),g(`span`,Ye,s(S(k)(t.amountToman))+` تومان`,1),g(`span`,{class:e([`status-pill`,`status-pill--${ut(t)}`])},s(lt(t)),3)],40,qe))),128)),z.value.length?d(``,!0):(a(),f(`p`,Xe,`سفارشی ثبت نشده است.`))])):(a(),f(`section`,Ze,[i[18]||=g(`h3`,{class:`section-title`},`تعاملات و پیگیریها`,-1),g(`button`,{type:`button`,class:`dashed-btn`,onClick:q},` + ثبت گزارش ملاقات جدید `),g(`div`,Qe,[(a(),f(m,null,n(ot,t=>g(`button`,{key:t.id,type:`button`,class:e([`meeting-filter`,{"meeting-filter--active":V.value===t.id}]),onClick:e=>V.value=t.id},s(t.label),11,$e)),64))]),(a(!0),f(m,null,n(st.value,t=>(a(),f(`article`,{key:t.id,class:`meeting-row`},[g(`div`,{class:e([`meeting-row__icon`,ct(t.type)])},[t.type===`in_person`?(a(),x(te,{key:0,size:16})):t.type===`call`?(a(),x(ee,{key:1,size:16})):t.type===`message`?(a(),x(oe,{key:2,size:16})):(a(),x(R,{key:3,size:16}))],2),g(`div`,et,[g(`strong`,null,s(le(t.type)),1),g(`p`,null,s(t.description||t.title),1)]),g(`span`,tt,s(t.date),1)]))),128)),st.value.length?d(``,!0):(a(),f(`p`,nt,` گزارشی برای این فیلتر ثبت نشده است. `))]))]),E.value===`info`?(a(),f(`footer`,rt,[g(`button`,{type:`button`,class:`cta`,onClick:i[3]||=e=>S(y).push(`/categories`)},[l(A,{size:20,color:`#fff`}),i[19]||=p(` سفارش جدید برای این مشتری `,-1)])])):d(``,!0)])):H.value?(a(),f(`div`,it,[l(re,{variant:`detail`})])):(a(),f(`div`,at,[g(`p`,null,s(U.value||`مشتری یافت نشد.`),1)])),l(fe,{open:D.value,"customer-id":T.value,onClose:J,onSuccess:se},null,8,[`open`,`customer-id`]),l(ae,{open:O.value,"customer-id":T.value,initial:Z.value,onClose:X,onSuccess:ce},null,8,[`open`,`customer-id`,`initial`])],64))}}),[[`__scopeId`,`data-v-938375e3`]]);export{ot as default}; \ No newline at end of file diff --git a/dist/assets/CustomersView-yj__rh-t.js b/dist/assets/CustomersView-Cii54is9.js similarity index 96% rename from dist/assets/CustomersView-yj__rh-t.js rename to dist/assets/CustomersView-Cii54is9.js index 965257e..1b42b43 100644 --- a/dist/assets/CustomersView-yj__rh-t.js +++ b/dist/assets/CustomersView-Cii54is9.js @@ -1 +1 @@ -import{At as e,F as t,G as ee,M as n,Nt as te,Pt as r,U as i,_ as a,c as o,d as s,f as c,g as l,i as u,k as ne,l as d,nt as f,t as p,u as m,ut as h,v as g}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{o as _}from"./format-C72AoJ2H.js";import{t as re}from"./IconProfile-ginWFJfQ.js";import{t as v}from"./IconPlus-Dk2FJATn.js";import{C as ie,S as ae,o as oe}from"./index-CE4Fw0WE.js";import{t as y}from"./IconFilter-CeX90aW_.js";import{t as b}from"./PageHeader-BDPrFkve.js";import{t as x}from"./PageSkeleton-DYdjm4l9.js";import{t as S}from"./crm-CgnSby61.js";import{t as C}from"./CustomerCreateOverlay-C0ajQDnY.js";import{t as w}from"./SearchField-dVDn9y5S.js";var T={class:`page customers-page`},E={class:`desktop-page__head desktop-only customers-desk-head`},D={class:`page__scroll page__scroll--with-nav customers-scroll`},O={class:`toolbar`},k={class:`summary-card`},A={class:`summary-card__icon`,"aria-hidden":`true`},j={class:`summary-card__cols`},M={class:`tabs`,role:`tablist`},N=[`aria-selected`,`onClick`],P={class:`tab__text`},F={key:1},I=[`onClick`],L={class:`customer-card__body`},R={class:`customer-card__top`},z=p(g({__name:`CustomersView`,setup(p){let g=ae(),z=ie(),B=S(),V=f(String(g.query.q??``)),H=o(()=>String(g.query.status??`all`)),U=f([]),W=f(!0),G=f(null),K=o(()=>U.value),q=o(()=>g.query.create===`1`),se=o(()=>U.value.filter(e=>e.status===`active`).length),ce=o(()=>U.value.reduce((e,t)=>e+t.totalPurchaseToman,0)),le=[{id:`all`,label:`همه`},{id:`active`,label:`فعال`},{id:`inactive`,label:`غیرفعال`},{id:`new`,label:`جدید`}];async function J(){W.value=!0,G.value=null;try{U.value=await B.loadCustomers({q:V.value||void 0,status:H.value===`all`?void 0:H.value})}catch(e){G.value=e instanceof Error?e.message:`بارگذاری مشتریان ناموفق بود.`,U.value=[]}finally{W.value=!1}}ne(J),i([H,V],J);function Y(e){z.replace({path:`/customers`,query:{...e===`all`?{}:{status:e},...V.value?{q:V.value}:{}}})}function X(e){V.value=e,z.replace({path:`/customers`,query:{...H.value===`all`?{}:{status:H.value},...e?{q:e}:{}}})}function ue(e){return e===`active`?`فعال`:e===`inactive`?`غیرفعال`:`جدید`}function Z(e={}){return{...H.value===`all`?{}:{status:H.value},...V.value?{q:V.value}:{},...e}}function Q(){z.push({path:`/customers`,query:{...Z(),create:`1`}})}function $(){z.replace({path:`/customers`,query:Z()})}async function de(e){if(e){await z.replace({path:`/customer`,query:{id:e}});return}$(),await J()}function fe(){let e=[`all`,`active`,`inactive`,`new`],t=e.indexOf(H.value);Y(e[(t<0?0:t+1)%e.length]??`all`)}return(i,o)=>(n(),c(`div`,T,[a(b,{class:`mobile-only`,title:`مشتریان من`,"show-back":``,centered:``,onBack:o[0]||=e=>h(z).back()},{trailing:ee(()=>[d(`button`,{type:`button`,class:`nav-add-btn`,"aria-label":`ثبت مشتری`,onClick:Q},[a(v,{size:22})])]),_:1}),d(`header`,E,[o[2]||=d(`div`,null,[d(`h1`,{class:`desktop-page__title`},`مشتریان من`),d(`p`,{class:`desktop-page__subtitle`},`مدیریت مشتریان و پیگیری خریدها`)],-1),d(`button`,{type:`button`,class:`desk-add-btn`,onClick:Q},[a(v,{size:18}),o[1]||=l(` ثبت مشتری `,-1)])]),d(`div`,D,[d(`div`,O,[a(w,{"model-value":V.value,placeholder:`جستجو بر اساس نام یا موبایل...`,"onUpdate:modelValue":X},null,8,[`model-value`]),d(`button`,{type:`button`,class:`filter-btn`,"aria-label":`فیلتر وضعیت`,onClick:fe},[a(y,{size:18})])]),d(`section`,k,[d(`div`,A,[a(re,{size:22,color:`#fff`})]),d(`div`,j,[d(`div`,null,[o[3]||=d(`span`,null,`تعداد مشتری فعال`,-1),d(`strong`,null,r(h(_)(se.value)),1)]),o[6]||=d(`span`,{class:`summary-card__divider`,"aria-hidden":`true`},null,-1),d(`div`,null,[o[4]||=d(`span`,null,`مجموع خرید (ریال)`,-1),d(`strong`,null,r(h(_)(ce.value)),1),o[5]||=d(`em`,null,`تومان`,-1)])])]),d(`div`,M,[(n(),c(u,null,t(le,t=>d(`button`,{key:t.id,type:`button`,role:`tab`,class:e([`tab`,{"tab--active":H.value===t.id}]),"aria-selected":H.value===t.id,onClick:e=>Y(t.id)},[d(`span`,P,r(t.label),1)],10,N)),64))]),W.value?(n(),m(x,{key:0,variant:`list`})):G.value?(n(),c(`p`,F,r(G.value),1)):s(``,!0),(n(!0),c(u,null,t(K.value,t=>(n(),c(`button`,{key:t.id,type:`button`,class:`customer-card`,onClick:e=>h(z).push({path:`/customer`,query:{id:t.id}})},[d(`div`,{class:`customer-card__avatar`,style:te({background:t.avatarColor})},r(t.avatarLetter),5),d(`div`,L,[d(`div`,R,[d(`strong`,null,r(t.name),1)]),d(`p`,null,r(t.phone),1),d(`p`,null,`مجموع خرید: `+r(h(_)(t.totalPurchaseToman))+` تومان`,1)]),d(`span`,{class:e([`status`,{"status--ok":t.status===`active`,"status--off":t.status===`inactive`,"status--new":t.status===`new`}])},r(ue(t.status)),3),a(oe,{size:18,class:`chevron`})],8,I))),128)),o[7]||=d(`section`,{class:`promo`},[d(`div`,null,[d(`strong`,null,`افزایش مشتریان = افزایش سطح شما`),d(`p`,null,`با جذب مشتریان بیشتر به سطح VIP برسید`)])],-1)]),a(C,{open:q.value,onClose:$,onSuccess:de},null,8,[`open`])]))}}),[[`__scopeId`,`data-v-a6283622`]]);export{z as default}; \ No newline at end of file +import{At as e,F as t,G as ee,M as n,Nt as te,Pt as r,U as i,_ as a,c as o,d as s,f as c,g as l,i as u,k as ne,l as d,nt as f,t as p,u as m,ut as h,v as g}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{o as _}from"./format-C72AoJ2H.js";import{t as re}from"./IconProfile-ginWFJfQ.js";import{t as v}from"./IconPlus-Dk2FJATn.js";import{C as ie,S as ae,o as oe}from"./index-D_xSF6a7.js";import{t as y}from"./IconFilter-CeX90aW_.js";import{t as b}from"./PageHeader-CD5rAJke.js";import{t as x}from"./PageSkeleton-DYdjm4l9.js";import{t as S}from"./crm-CgnSby61.js";import{t as C}from"./CustomerCreateOverlay-BS0eULjO.js";import{t as w}from"./SearchField-dVDn9y5S.js";var T={class:`page customers-page`},E={class:`desktop-page__head desktop-only customers-desk-head`},D={class:`page__scroll page__scroll--with-nav customers-scroll`},O={class:`toolbar`},k={class:`summary-card`},A={class:`summary-card__icon`,"aria-hidden":`true`},j={class:`summary-card__cols`},M={class:`tabs`,role:`tablist`},N=[`aria-selected`,`onClick`],P={class:`tab__text`},F={key:1},I=[`onClick`],L={class:`customer-card__body`},R={class:`customer-card__top`},z=p(g({__name:`CustomersView`,setup(p){let g=ae(),z=ie(),B=S(),V=f(String(g.query.q??``)),H=o(()=>String(g.query.status??`all`)),U=f([]),W=f(!0),G=f(null),K=o(()=>U.value),q=o(()=>g.query.create===`1`),se=o(()=>U.value.filter(e=>e.status===`active`).length),ce=o(()=>U.value.reduce((e,t)=>e+t.totalPurchaseToman,0)),le=[{id:`all`,label:`همه`},{id:`active`,label:`فعال`},{id:`inactive`,label:`غیرفعال`},{id:`new`,label:`جدید`}];async function J(){W.value=!0,G.value=null;try{U.value=await B.loadCustomers({q:V.value||void 0,status:H.value===`all`?void 0:H.value})}catch(e){G.value=e instanceof Error?e.message:`بارگذاری مشتریان ناموفق بود.`,U.value=[]}finally{W.value=!1}}ne(J),i([H,V],J);function Y(e){z.replace({path:`/customers`,query:{...e===`all`?{}:{status:e},...V.value?{q:V.value}:{}}})}function X(e){V.value=e,z.replace({path:`/customers`,query:{...H.value===`all`?{}:{status:H.value},...e?{q:e}:{}}})}function ue(e){return e===`active`?`فعال`:e===`inactive`?`غیرفعال`:`جدید`}function Z(e={}){return{...H.value===`all`?{}:{status:H.value},...V.value?{q:V.value}:{},...e}}function Q(){z.push({path:`/customers`,query:{...Z(),create:`1`}})}function $(){z.replace({path:`/customers`,query:Z()})}async function de(e){if(e){await z.replace({path:`/customer`,query:{id:e}});return}$(),await J()}function fe(){let e=[`all`,`active`,`inactive`,`new`],t=e.indexOf(H.value);Y(e[(t<0?0:t+1)%e.length]??`all`)}return(i,o)=>(n(),c(`div`,T,[a(b,{class:`mobile-only`,title:`مشتریان من`,"show-back":``,centered:``,onBack:o[0]||=e=>h(z).back()},{trailing:ee(()=>[d(`button`,{type:`button`,class:`nav-add-btn`,"aria-label":`ثبت مشتری`,onClick:Q},[a(v,{size:22})])]),_:1}),d(`header`,E,[o[2]||=d(`div`,null,[d(`h1`,{class:`desktop-page__title`},`مشتریان من`),d(`p`,{class:`desktop-page__subtitle`},`مدیریت مشتریان و پیگیری خریدها`)],-1),d(`button`,{type:`button`,class:`desk-add-btn`,onClick:Q},[a(v,{size:18}),o[1]||=l(` ثبت مشتری `,-1)])]),d(`div`,D,[d(`div`,O,[a(w,{"model-value":V.value,placeholder:`جستجو بر اساس نام یا موبایل...`,"onUpdate:modelValue":X},null,8,[`model-value`]),d(`button`,{type:`button`,class:`filter-btn`,"aria-label":`فیلتر وضعیت`,onClick:fe},[a(y,{size:18})])]),d(`section`,k,[d(`div`,A,[a(re,{size:22,color:`#fff`})]),d(`div`,j,[d(`div`,null,[o[3]||=d(`span`,null,`تعداد مشتری فعال`,-1),d(`strong`,null,r(h(_)(se.value)),1)]),o[6]||=d(`span`,{class:`summary-card__divider`,"aria-hidden":`true`},null,-1),d(`div`,null,[o[4]||=d(`span`,null,`مجموع خرید (ریال)`,-1),d(`strong`,null,r(h(_)(ce.value)),1),o[5]||=d(`em`,null,`تومان`,-1)])])]),d(`div`,M,[(n(),c(u,null,t(le,t=>d(`button`,{key:t.id,type:`button`,role:`tab`,class:e([`tab`,{"tab--active":H.value===t.id}]),"aria-selected":H.value===t.id,onClick:e=>Y(t.id)},[d(`span`,P,r(t.label),1)],10,N)),64))]),W.value?(n(),m(x,{key:0,variant:`list`})):G.value?(n(),c(`p`,F,r(G.value),1)):s(``,!0),(n(!0),c(u,null,t(K.value,t=>(n(),c(`button`,{key:t.id,type:`button`,class:`customer-card`,onClick:e=>h(z).push({path:`/customer`,query:{id:t.id}})},[d(`div`,{class:`customer-card__avatar`,style:te({background:t.avatarColor})},r(t.avatarLetter),5),d(`div`,L,[d(`div`,R,[d(`strong`,null,r(t.name),1)]),d(`p`,null,r(t.phone),1),d(`p`,null,`مجموع خرید: `+r(h(_)(t.totalPurchaseToman))+` تومان`,1)]),d(`span`,{class:e([`status`,{"status--ok":t.status===`active`,"status--off":t.status===`inactive`,"status--new":t.status===`new`}])},r(ue(t.status)),3),a(oe,{size:18,class:`chevron`})],8,I))),128)),o[7]||=d(`section`,{class:`promo`},[d(`div`,null,[d(`strong`,null,`افزایش مشتریان = افزایش سطح شما`),d(`p`,null,`با جذب مشتریان بیشتر به سطح VIP برسید`)])],-1)]),a(C,{open:q.value,onClose:$,onSuccess:de},null,8,[`open`])]))}}),[[`__scopeId`,`data-v-a6283622`]]);export{z as default}; \ No newline at end of file diff --git a/dist/assets/FavoritesView-Q3gbkHep.js b/dist/assets/FavoritesView-D57PTqpX.js similarity index 96% rename from dist/assets/FavoritesView-Q3gbkHep.js rename to dist/assets/FavoritesView-D57PTqpX.js index 6b1bd1c..83a5447 100644 --- a/dist/assets/FavoritesView-Q3gbkHep.js +++ b/dist/assets/FavoritesView-D57PTqpX.js @@ -1 +1 @@ -import{F as e,M as t,Nt as n,Pt as r,_ as i,d as a,f as o,g as s,i as c,k as l,l as u,nt as d,t as f,u as p,ut as m,v as h}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{l as g}from"./BasicIcon-DPmc0iaK.js";import{o as _}from"./format-C72AoJ2H.js";import{C as v,l as y,o as b}from"./index-CE4Fw0WE.js";import{t as x}from"./PageHeader-BDPrFkve.js";import{t as S}from"./PageSkeleton-DYdjm4l9.js";import{t as C}from"./crm-CgnSby61.js";import{t as w}from"./IconBookmark-CQq-TOS-.js";import{i as T,n as E,r as D,t as O}from"./productAvailability-B5nVr_sJ.js";var k={class:`page favorites-page`},A={class:`page__scroll page__scroll--with-nav body`},j={key:1},M={key:2,class:`empty`},N=[`onClick`],P={class:`product-item__body`},F={class:`product-item__head`},I={class:`product-item__title`},L={key:0,class:`new-tag new-tag--oos`},R={key:1,class:`new-tag`},z=[`onClick`],B={class:`product-item__specs`},V={key:0,class:`swatches`},H=[`onClick`],U=f(h({__name:`FavoritesView`,setup(f){let h={summer:`تابستانه`,winter:`زمستانه`,all_season:`چهارفصل`},U=v(),W=y(),G=C(),K=d([]),q=d(!0),J=d(null);l(async()=>{q.value=!0;try{await W.hydrate();let e=await G.loadBrowseProducts(),t=new Set(W.ids);K.value=e.filter(e=>t.has(e.id))}catch(e){J.value=e instanceof Error?e.message:`بارگذاری علاقهمندیها ناموفق بود.`}finally{q.value=!1}});function Y(e){return h[e]??`—`}function X(e){return T(e.imageUrls,e.colorImages,e.imageUrl)}function Z(e){U.push({path:`/product`,query:{id:e}})}async function Q(e){await W.toggle(e),K.value=K.value.filter(t=>t.id!==e)}return(l,d)=>(t(),o(`div`,k,[i(x,{class:`mobile-only`,title:`علاقهمندیها`,"show-back":``,centered:``,onBack:d[0]||=e=>m(U).back()}),d[2]||=u(`header`,{class:`desktop-page__head desktop-only`},[u(`h1`,{class:`desktop-page__title`},`علاقهمندیها`),u(`p`,{class:`desktop-page__subtitle`},`محصولات ذخیرهشده برای دسترسی سریع`)],-1),u(`div`,A,[q.value?(t(),p(S,{key:0,variant:`grid`})):J.value?(t(),o(`p`,j,r(J.value),1)):K.value.length?a(``,!0):(t(),o(`p`,M,`هنوز محصولی ذخیره نکردهاید.`)),(t(!0),o(c,null,e(K.value,l=>(t(),o(`article`,{key:l.id,class:`product-item`,onClick:e=>Z(l.id)},[u(`div`,{class:`product-item__image`,style:n(X(l)?{backgroundImage:`url(${X(l)})`}:m(E)(l.colors[0]??``))},null,4),u(`div`,P,[u(`div`,F,[u(`div`,I,[u(`strong`,null,r(l.name),1),m(O)(l)?(t(),o(`span`,L,`ناموجود`)):l.isNew?(t(),o(`span`,R,`جدید`)):a(``,!0)]),u(`button`,{type:`button`,class:`bookmark`,"aria-label":`حذف از علاقهمندیها`,onClick:g(e=>Q(l.id),[`stop`])},[i(w,{size:18,filled:``,color:`var(--color-primary)`})],8,z)]),u(`ul`,B,[u(`li`,null,`عرض: `+r(m(_)(l.widthCm))+` سانتیمتر`,1),u(`li`,null,`ترکیب: `+r(l.composition||`—`),1),u(`li`,null,`مناسب: `+r(Y(l.season)),1)]),l.colors.length?(t(),o(`div`,V,[(t(!0),o(c,null,e(l.colors.slice(0,6),(e,r)=>(t(),o(`span`,{key:r,class:`swatch`,style:n(m(E)(e,m(D)(l.colorImages,l.colorVariantImages,r)))},null,4))),128))])):a(``,!0),u(`button`,{type:`button`,class:`details-link`,onClick:g(e=>Z(l.id),[`stop`])},[d[1]||=s(` مشاهده جزئیات `,-1),i(b,{size:14})],8,H)])],8,N))),128))])]))}}),[[`__scopeId`,`data-v-241cceb3`]]);export{U as default}; \ No newline at end of file +import{F as e,M as t,Nt as n,Pt as r,_ as i,d as a,f as o,g as s,i as c,k as l,l as u,nt as d,t as f,u as p,ut as m,v as h}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{l as g}from"./BasicIcon-DPmc0iaK.js";import{o as _}from"./format-C72AoJ2H.js";import{C as v,l as y,o as b}from"./index-D_xSF6a7.js";import{t as x}from"./PageHeader-CD5rAJke.js";import{t as S}from"./PageSkeleton-DYdjm4l9.js";import{t as C}from"./crm-CgnSby61.js";import{t as w}from"./IconBookmark-CQq-TOS-.js";import{i as T,n as E,r as D,t as O}from"./productAvailability-B5nVr_sJ.js";var k={class:`page favorites-page`},A={class:`page__scroll page__scroll--with-nav body`},j={key:1},M={key:2,class:`empty`},N=[`onClick`],P={class:`product-item__body`},F={class:`product-item__head`},I={class:`product-item__title`},L={key:0,class:`new-tag new-tag--oos`},R={key:1,class:`new-tag`},z=[`onClick`],B={class:`product-item__specs`},V={key:0,class:`swatches`},H=[`onClick`],U=f(h({__name:`FavoritesView`,setup(f){let h={summer:`تابستانه`,winter:`زمستانه`,all_season:`چهارفصل`},U=v(),W=y(),G=C(),K=d([]),q=d(!0),J=d(null);l(async()=>{q.value=!0;try{await W.hydrate();let e=await G.loadBrowseProducts(),t=new Set(W.ids);K.value=e.filter(e=>t.has(e.id))}catch(e){J.value=e instanceof Error?e.message:`بارگذاری علاقهمندیها ناموفق بود.`}finally{q.value=!1}});function Y(e){return h[e]??`—`}function X(e){return T(e.imageUrls,e.colorImages,e.imageUrl)}function Z(e){U.push({path:`/product`,query:{id:e}})}async function Q(e){await W.toggle(e),K.value=K.value.filter(t=>t.id!==e)}return(l,d)=>(t(),o(`div`,k,[i(x,{class:`mobile-only`,title:`علاقهمندیها`,"show-back":``,centered:``,onBack:d[0]||=e=>m(U).back()}),d[2]||=u(`header`,{class:`desktop-page__head desktop-only`},[u(`h1`,{class:`desktop-page__title`},`علاقهمندیها`),u(`p`,{class:`desktop-page__subtitle`},`محصولات ذخیرهشده برای دسترسی سریع`)],-1),u(`div`,A,[q.value?(t(),p(S,{key:0,variant:`grid`})):J.value?(t(),o(`p`,j,r(J.value),1)):K.value.length?a(``,!0):(t(),o(`p`,M,`هنوز محصولی ذخیره نکردهاید.`)),(t(!0),o(c,null,e(K.value,l=>(t(),o(`article`,{key:l.id,class:`product-item`,onClick:e=>Z(l.id)},[u(`div`,{class:`product-item__image`,style:n(X(l)?{backgroundImage:`url(${X(l)})`}:m(E)(l.colors[0]??``))},null,4),u(`div`,P,[u(`div`,F,[u(`div`,I,[u(`strong`,null,r(l.name),1),m(O)(l)?(t(),o(`span`,L,`ناموجود`)):l.isNew?(t(),o(`span`,R,`جدید`)):a(``,!0)]),u(`button`,{type:`button`,class:`bookmark`,"aria-label":`حذف از علاقهمندیها`,onClick:g(e=>Q(l.id),[`stop`])},[i(w,{size:18,filled:``,color:`var(--color-primary)`})],8,z)]),u(`ul`,B,[u(`li`,null,`عرض: `+r(m(_)(l.widthCm))+` سانتیمتر`,1),u(`li`,null,`ترکیب: `+r(l.composition||`—`),1),u(`li`,null,`مناسب: `+r(Y(l.season)),1)]),l.colors.length?(t(),o(`div`,V,[(t(!0),o(c,null,e(l.colors.slice(0,6),(e,r)=>(t(),o(`span`,{key:r,class:`swatch`,style:n(m(E)(e,m(D)(l.colorImages,l.colorVariantImages,r)))},null,4))),128))])):a(``,!0),u(`button`,{type:`button`,class:`details-link`,onClick:g(e=>Z(l.id),[`stop`])},[d[1]||=s(` مشاهده جزئیات `,-1),i(b,{size:14})],8,H)])],8,N))),128))])]))}}),[[`__scopeId`,`data-v-241cceb3`]]);export{U as default}; \ No newline at end of file diff --git a/dist/assets/HomeView-BgFl9KRb.js b/dist/assets/HomeView-DGwe1Kw8.js similarity index 98% rename from dist/assets/HomeView-BgFl9KRb.js rename to dist/assets/HomeView-DGwe1Kw8.js index a6af9a8..bc96395 100644 --- a/dist/assets/HomeView-BgFl9KRb.js +++ b/dist/assets/HomeView-DGwe1Kw8.js @@ -1 +1 @@ -import{A as e,At as t,F as n,G as r,M as i,Nt as a,Pt as o,R as s,_ as c,c as l,d as u,f as d,g as f,h as ee,i as p,k as m,l as h,nt as g,t as _,u as v,ut as y,v as b}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{l as x,r as te}from"./BasicIcon-DPmc0iaK.js";import{n as ne}from"./dist-Bc4P4ngC.js";import{o as S}from"./format-C72AoJ2H.js";import{n as C}from"./http-CU_N-R2R.js";import{C as re,a as ie,c as ae,i as oe,l as se,o as ce,s as w}from"./index-CE4Fw0WE.js";import{t as T}from"./IconChevronBack-BsHmfODG.js";import{t as le}from"./PageSkeleton-DYdjm4l9.js";import{n as ue,r as de,t as fe}from"./crm-CgnSby61.js";import{t as pe}from"./useGoBack-BrwZYRKb.js";import{t as me}from"./useTouchSwipe-C8fUyAcQ.js";import{t as he}from"./bannerLink-BW8t2Oqp.js";import{t as ge}from"./IconBookmark-CQq-TOS-.js";import{t as _e}from"./IconHeart-CvzbNH_T.js";import{n as E,t as D}from"./AddressCompletionModal-CtlERD8F.js";import{n as O,t as ve}from"./productAvailability-B5nVr_sJ.js";async function ye(){return C(`/suggestions/me`)}var be=`/assets/level-medal-Avpe4Lqa.webp`,xe=`/assets/quick-categories-grid-MFEfEUjL.webp`,Se=`/assets/quick-catalog-request-Ck7EqicC.webp`,Ce=`/assets/latest-order-status-CfJ1sx5U.webp`,k={class:`suggest-panel`,"aria-label":`پیشنهاد اختصاصی`},A={class:`suggest-panel__head`},j={key:0,class:`suggest-panel__empty`},M={key:1,class:`suggest-panel__row scroll-x`},N=[`onClick`],P={key:0,class:`suggest-product__chip suggest-product__chip--oos`},F={key:1,class:`suggest-product__chip`},I=[`aria-label`,`aria-pressed`,`onClick`],L={class:`suggest-product__body`},R={class:`suggest-product__name`},z={class:`suggest-product__desc`},B={key:0,class:`suggest-product__swatches`},V={key:0,class:`suggest-product__swatch suggest-product__swatch--more`},H={class:`suggest-product__specs`},U={class:`suggest-product__spec`},W={class:`suggest-product__spec-copy`},we={class:`suggest-product__spec-val`},Te={class:`suggest-product__spec`},G={class:`suggest-product__spec-copy`},K={class:`suggest-product__spec-val`},q={class:`suggest-product__spec`},Ee={class:`suggest-product__spec-copy`},J={class:`suggest-product__spec-val`},Y=[`disabled`,`onClick`],X=4,De=_(b({__name:`HomeSuggestionsSection`,props:{items:{}},setup(e){let t=e,r=re(),s=se(),{requesting:m,addressModalOpen:g,addressError:_,requestCatalog:v,submitAddressAndRequest:b,closeAddressModal:te}=E();function ne(e){return e.note?.trim()||e.subtitle?.trim()||`مشابه خریدهای قبلی شما`}function C(e){let t=e.colors?.length??0;return t>X?t-X:0}function ie(e){return{id:e.productId,name:e.productName,code:e.productCode,categoryId:``,season:`all_season`,widthCm:e.widthCm??0,composition:e.composition??``,weightGrams:e.weightGrams,colors:e.colors??(e.color?[e.color]:[]),colorImages:e.colorImages,tags:[],isNew:!!e.isNew,imageUrl:e.imageUrl,subtitle:e.subtitle,rollMeters:1,catalogName:e.catalogName,catalogCode:e.catalogCode,color:e.color,isActive:e.productIsActive!==!1}}function ae(e){r.push({path:`/product`,query:{id:e.productId}})}async function oe(e){await s.toggle(e)}async function w(e){await v(ie(e))}let T=l(()=>t.items.length>0);function le(e){return e.composition?.trim()||`—`}function ue(e){return e.widthCm?`${S(e.widthCm)} cm`:`—`}function de(e){return e.weightGrams?`${S(e.weightGrams)} گرم`:`—`}return(t,l)=>(i(),d(`section`,k,[h(`header`,A,[l[3]||=ee(`
بر اساس خریدهای قبلی و علاقهمندیهای شما
بر اساس خریدهای قبلی و علاقهمندیهای شما
``),Y(0))}async function pe(){if(!K.value)return;U.value=``,H.value={};let e=z.value?E():null;if(z.value&&!e){U.value=`برای ارسال مجدد کد، نام و نام خانوادگی لازم است. لطفاً دوباره ثبتنام را شروع کنید.`;return}let t=await L.requestOtp(R.value,{isRegister:z.value,firstName:e?.firstName,lastName:e?.lastName,referrerAgentCode:e?.referrerAgentCode});t.success?(B.value=Array.from({length:P},()=>``),X(),Y(0)):U.value=t.message??`خطا در ارسال مجدد کد.`}function me(){I.replace({name:z.value?`register`:`login`})}return f(()=>{if(!R.value){I.replace({name:`login`});return}X(),Y(0)}),(t,s)=>(i(),g(te,{"back-to":z.value?`/register`:`/login`},{default:r(()=>[s[2]||=p(`h1`,{class:`auth-title`},`کد تأیید`,-1),p(`p`,k,[s[0]||=u(` کد ارسالشده به `,-1),p(`span`,A,a(_(x)(R.value)),1),s[1]||=u(` را وارد کنید `,-1)]),p(`form`,{class:`auth-form`,onSubmit:y($,[`prevent`])},[o(ne,{message:U.value},null,8,[`message`]),p(`div`,ie,[(i(!0),l(d,null,n(B.value,(t,n)=>(i(),l(`input`,{id:`otp-${n}`,key:n,ref_for:!0,ref:e=>ce(e,n),class:e([`otp-box`,{"is-invalid":H.value.code}]),type:`text`,inputmode:`numeric`,autocomplete:`one-time-code`,maxlength:`1`,value:fe(t),"aria-label":`رقم ${_(x)(String(n+1))}`,onInput:e=>le(n,e),onKeydown:e=>ue(n,e),onPaste:e=>de(n,e)},null,42,ae))),128))]),H.value.code?(i(),l(`p`,j,a(H.value.code),1)):c(``,!0),p(`button`,{class:`otp-resend`,type:`button`,disabled:!K.value,onClick:pe},[K.value?(i(),l(d,{key:0},[u(`ارسال مجدد کد`)],64)):(i(),l(d,{key:1},[u(`ارسال مجدد کد (`+a(q.value)+` ثانیه)`,1)],64))],8,M),p(`button`,{class:`auth-submit`,type:`submit`,disabled:_(L).loading},a(_(L).loading?`در حال بررسی…`:`تأیید`),9,N),p(`button`,{type:`button`,class:`otp-edit`,onClick:me},`ویرایش شماره`)],32)]),_:1},8,[`back-to`]))}}),[[`__scopeId`,`data-v-dd3d5b1e`]]);export{I as default}; \ No newline at end of file +import{At as e,E as t,F as n,G as r,M as i,Pt as a,_ as o,c as s,d as c,f as l,g as u,i as d,k as f,l as p,nt as m,t as h,u as g,ut as _,v}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{l as y}from"./BasicIcon-DPmc0iaK.js";import{l as b}from"./dist-U-AqZ6hP.js";import{d as x,l as S,t as C}from"./format-C72AoJ2H.js";import{C as w,S as T,_ as E,c as ee}from"./index-D_xSF6a7.js";import{t as te}from"./AuthShell-DZUEZY_4.js";import{t as ne}from"./FormErrorBanner-Ud1D04xf.js";import{n as re,r as D,t as O}from"./formErrors-DglFjYkZ.js";var k={class:`auth-lead`},A={dir:`ltr`},ie={class:`otp-row`,dir:`ltr`,role:`group`,"aria-label":`کد تأیید`},ae=[`id`,`value`,`aria-label`,`onInput`,`onKeydown`,`onPaste`],j={key:0,class:`auth-error`},M=[`disabled`],N=[`disabled`],P=4,F=60,I=h(v({__name:`OtpView`,setup(h){let v=T(),I=w(),L=ee(),R=s(()=>{let e=v.query.phone,t=Array.isArray(e)?e[0]:e;return S(typeof t==`string`?t:``)}),z=s(()=>v.query.mode===`register`),B=m(Array.from({length:P},()=>``)),V=m([]),H=m({}),U=m(``),W=m(F),G=s(()=>B.value.join(``)),K=s(()=>W.value<=0&&!L.loading),q=s(()=>x(String(W.value))),{pause:oe,resume:se}=b(()=>{if(W.value<=1){W.value=0,oe();return}--W.value},1e3,{immediate:!1});function J(){H.value=re(H.value,`code`),D(H.value)||(U.value=``)}function ce(e,t){V.value[t]=e}function Y(e){let n=Math.max(0,Math.min(3,e));t(()=>V.value[n]?.focus())}function X(){W.value=F,se()}function Z(e,t=0){let n=C(e).slice(0,P-t);if(!n)return t;let r=[...B.value],i=t;for(let e of n){if(i>=P)break;r[i]=e,i+=1}return B.value=r,J(),Math.min(i,3)}function Q(){G.value.length===P&&!L.loading&&$()}function le(e,t){let n=t.target,r=C(n.value);if(r.length>1){let t=Z(r,e);n.value=B.value[e]??``,Y(t),Q();return}let i=r.slice(-1);B.value[e]=i,n.value=i,J(),i&&e<3?Y(e+1):i&&Q()}function ue(e,t){if(t.key===`Backspace`){if(B.value[e]){B.value[e]=``,J();return}e>0&&(B.value[e-1]=``,J(),Y(e-1));return}if(t.key===`ArrowLeft`){t.preventDefault(),Y(e-1);return}t.key===`ArrowRight`&&(t.preventDefault(),Y(e+1))}function de(e,t){t.preventDefault(),Y(Z(t.clipboardData?.getData(`text`)??``,e)),Q()}function fe(e){return e?x(e):``}async function $(){if(L.loading)return;H.value={},U.value=``;let e={};if(G.value.length
``),Y(0))}async function pe(){if(!K.value)return;U.value=``,H.value={};let e=z.value?E():null;if(z.value&&!e){U.value=`برای ارسال مجدد کد، نام و نام خانوادگی لازم است. لطفاً دوباره ثبتنام را شروع کنید.`;return}let t=await L.requestOtp(R.value,{isRegister:z.value,firstName:e?.firstName,lastName:e?.lastName,referrerAgentCode:e?.referrerAgentCode});t.success?(B.value=Array.from({length:P},()=>``),X(),Y(0)):U.value=t.message??`خطا در ارسال مجدد کد.`}function me(){I.replace({name:z.value?`register`:`login`})}return f(()=>{if(!R.value){I.replace({name:`login`});return}X(),Y(0)}),(t,s)=>(i(),g(te,{"back-to":z.value?`/register`:`/login`},{default:r(()=>[s[2]||=p(`h1`,{class:`auth-title`},`کد تأیید`,-1),p(`p`,k,[s[0]||=u(` کد ارسالشده به `,-1),p(`span`,A,a(_(x)(R.value)),1),s[1]||=u(` را وارد کنید `,-1)]),p(`form`,{class:`auth-form`,onSubmit:y($,[`prevent`])},[o(ne,{message:U.value},null,8,[`message`]),p(`div`,ie,[(i(!0),l(d,null,n(B.value,(t,n)=>(i(),l(`input`,{id:`otp-${n}`,key:n,ref_for:!0,ref:e=>ce(e,n),class:e([`otp-box`,{"is-invalid":H.value.code}]),type:`text`,inputmode:`numeric`,autocomplete:`one-time-code`,maxlength:`1`,value:fe(t),"aria-label":`رقم ${_(x)(String(n+1))}`,onInput:e=>le(n,e),onKeydown:e=>ue(n,e),onPaste:e=>de(n,e)},null,42,ae))),128))]),H.value.code?(i(),l(`p`,j,a(H.value.code),1)):c(``,!0),p(`button`,{class:`otp-resend`,type:`button`,disabled:!K.value,onClick:pe},[K.value?(i(),l(d,{key:0},[u(`ارسال مجدد کد`)],64)):(i(),l(d,{key:1},[u(`ارسال مجدد کد (`+a(q.value)+` ثانیه)`,1)],64))],8,M),p(`button`,{class:`auth-submit`,type:`submit`,disabled:_(L).loading},a(_(L).loading?`در حال بررسی…`:`تأیید`),9,N),p(`button`,{type:`button`,class:`otp-edit`,onClick:me},`ویرایش شماره`)],32)]),_:1},8,[`back-to`]))}}),[[`__scopeId`,`data-v-dd3d5b1e`]]);export{I as default};
\ No newline at end of file
diff --git a/dist/assets/PageHeader-BDPrFkve.js b/dist/assets/PageHeader-CD5rAJke.js
similarity index 95%
rename from dist/assets/PageHeader-BDPrFkve.js
rename to dist/assets/PageHeader-CD5rAJke.js
index 1fd2ccc..eb84471 100644
--- a/dist/assets/PageHeader-BDPrFkve.js
+++ b/dist/assets/PageHeader-CD5rAJke.js
@@ -1 +1 @@
-import{I as e,M as t,Pt as n,T as r,_ as i,d as a,f as o,i as s,l as c,t as l,v as u}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{a as d}from"./index-CE4Fw0WE.js";import{t as f}from"./IconChevronBack-BsHmfODG.js";var p={key:1,class:`nav-btn`},m={class:`page-nav__title`},h={class:`page-nav__trailing`},g={key:0,class:`page-nav__subtitle`},_={class:`header-text`},v={class:`page-title`},y={key:0,class:`page-subtitle`},b={class:`page-header__trailing`},x=l(u({inheritAttrs:!1,__name:`PageHeader`,props:{title:{},subtitle:{},showBack:{type:Boolean},centered:{type:Boolean}},emits:[`back`],setup(l){return(u,x)=>l.centered?(t(),o(s,{key:0},[c(`header`,r({class:`page-nav`},u.$attrs),[l.showBack?(t(),o(`button`,{key:0,type:`button`,class:`nav-btn`,"aria-label":`بازگشت`,onClick:x[0]||=e=>u.$emit(`back`)},[i(f,{size:20})])):(t(),o(`span`,p)),c(`h1`,m,n(l.title),1),c(`div`,h,[e(u.$slots,`trailing`,{},void 0,!0),i(d,{variant:`inline`,class:`mobile-only`})])],16),l.subtitle?(t(),o(`p`,g,n(l.subtitle),1)):a(``,!0)],64)):(t(),o(`header`,r({key:1,class:`page-header`},u.$attrs),[l.showBack?(t(),o(`button`,{key:0,type:`button`,class:`back-btn`,"aria-label":`بازگشت`,onClick:x[1]||=e=>u.$emit(`back`)},[i(f,{size:20})])):a(``,!0),c(`div`,_,[c(`h1`,v,n(l.title),1),l.subtitle?(t(),o(`p`,y,n(l.subtitle),1)):a(``,!0)]),c(`div`,b,[e(u.$slots,`trailing`,{},void 0,!0),i(d,{variant:`inline`,class:`mobile-only`})])],16))}}),[[`__scopeId`,`data-v-45fb00ff`]]);export{x as t};
\ No newline at end of file
+import{I as e,M as t,Pt as n,T as r,_ as i,d as a,f as o,i as s,l as c,t as l,v as u}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{a as d}from"./index-D_xSF6a7.js";import{t as f}from"./IconChevronBack-BsHmfODG.js";var p={key:1,class:`nav-btn`},m={class:`page-nav__title`},h={class:`page-nav__trailing`},g={key:0,class:`page-nav__subtitle`},_={class:`header-text`},v={class:`page-title`},y={key:0,class:`page-subtitle`},b={class:`page-header__trailing`},x=l(u({inheritAttrs:!1,__name:`PageHeader`,props:{title:{},subtitle:{},showBack:{type:Boolean},centered:{type:Boolean}},emits:[`back`],setup(l){return(u,x)=>l.centered?(t(),o(s,{key:0},[c(`header`,r({class:`page-nav`},u.$attrs),[l.showBack?(t(),o(`button`,{key:0,type:`button`,class:`nav-btn`,"aria-label":`بازگشت`,onClick:x[0]||=e=>u.$emit(`back`)},[i(f,{size:20})])):(t(),o(`span`,p)),c(`h1`,m,n(l.title),1),c(`div`,h,[e(u.$slots,`trailing`,{},void 0,!0),i(d,{variant:`inline`,class:`mobile-only`})])],16),l.subtitle?(t(),o(`p`,g,n(l.subtitle),1)):a(``,!0)],64)):(t(),o(`header`,r({key:1,class:`page-header`},u.$attrs),[l.showBack?(t(),o(`button`,{key:0,type:`button`,class:`back-btn`,"aria-label":`بازگشت`,onClick:x[1]||=e=>u.$emit(`back`)},[i(f,{size:20})])):a(``,!0),c(`div`,_,[c(`h1`,v,n(l.title),1),l.subtitle?(t(),o(`p`,y,n(l.subtitle),1)):a(``,!0)]),c(`div`,b,[e(u.$slots,`trailing`,{},void 0,!0),i(d,{variant:`inline`,class:`mobile-only`})])],16))}}),[[`__scopeId`,`data-v-45fb00ff`]]);export{x as t};
\ No newline at end of file
diff --git a/dist/assets/PreorderPaymentFields-1bZZXAMl.css b/dist/assets/PreorderPaymentFields-1bZZXAMl.css
new file mode 100644
index 0000000..e8e140e
--- /dev/null
+++ b/dist/assets/PreorderPaymentFields-1bZZXAMl.css
@@ -0,0 +1 @@
+.pay-plan[data-v-a4758125]{border:0;flex-direction:column;gap:10px;margin:0;padding:0;display:flex}.pay-plan__legend[data-v-a4758125]{font-size:14px;font-weight:700}.pay-plan__note[data-v-a4758125]{color:var(--color-text-secondary,#667085);margin:0;font-size:12px;line-height:1.6}.pay-plan__methods[data-v-a4758125],.pay-plan__terms-row[data-v-a4758125]{flex-direction:column;gap:8px;display:flex}.pay-plan__method[data-v-a4758125],.pay-plan__term[data-v-a4758125]{text-align:right;border:1px solid var(--color-border,#e4e7ec);cursor:pointer;background:#fff;border-radius:12px;padding:10px 12px}.pay-plan__method strong[data-v-a4758125]{display:block}.pay-plan__method span[data-v-a4758125]{color:var(--color-text-secondary,#667085);font-size:12px}.pay-plan__method--active[data-v-a4758125],.pay-plan__term--active[data-v-a4758125]{border-color:var(--color-primary,#1570ef);background:color-mix(in srgb, var(--color-primary,#1570ef) 8%, white)}.pay-plan__terms-label[data-v-a4758125]{font-size:13px;font-weight:600}.pay-plan__terms-row[data-v-a4758125]{flex-flow:wrap}.pay-plan__term[data-v-a4758125]{text-align:center;flex:1;min-width:72px}
diff --git a/dist/assets/PreorderPaymentFields-D3RvbpAa.js b/dist/assets/PreorderPaymentFields-D3RvbpAa.js
new file mode 100644
index 0000000..b73e59f
--- /dev/null
+++ b/dist/assets/PreorderPaymentFields-D3RvbpAa.js
@@ -0,0 +1 @@
+import{At as e,F as t,M as n,Pt as r,d as i,f as a,i as o,l as s,t as c,v as l}from"./_plugin-vue_export-helper-1xMDlcEE.js";var u={class:`pay-plan`},d={class:`pay-plan__methods`},f=[`onClick`],p={key:0,class:`pay-plan__terms`},m={class:`pay-plan__terms-row`},h=[`onClick`],g=c(l({__name:`PreorderPaymentFields`,props:{settlementType:{},checkTermMonths:{}},emits:[`update:settlementType`,`update:checkTermMonths`],setup(c,{emit:l}){let g=l,_=[{value:`cash`,title:`نقدی`,hint:`کل مبلغ بهصورت نقدی`},{value:`cash_check`,title:`نصف نقد، نصف چکی`,hint:`نیمی نقد و نیمی چک`},{value:`check`,title:`چکی`,hint:`کل مبلغ با چک`}],v=[1,2,3,4];return(l,y)=>(n(),a(`fieldset`,u,[y[1]||=s(`legend`,{class:`pay-plan__legend`},`روش پرداخت`,-1),y[2]||=s(`p`,{class:`pay-plan__note`},`قیمت پیشسفارش به روش پرداخت بستگی دارد. قبل از اعلام قیمت باید مشخص شود.`,-1),s(`div`,d,[(n(),a(o,null,t(_,t=>s(`button`,{key:t.value,type:`button`,class:e([`pay-plan__method`,{"pay-plan__method--active":c.settlementType===t.value}]),onClick:e=>g(`update:settlementType`,t.value)},[s(`strong`,null,r(t.title),1),s(`span`,null,r(t.hint),1)],10,f)),64))]),c.settlementType===`check`||c.settlementType===`cash_check`?(n(),a(`div`,p,[y[0]||=s(`span`,{class:`pay-plan__terms-label`},`مدت چک`,-1),s(`div`,m,[(n(),a(o,null,t(v,t=>s(`button`,{key:t,type:`button`,class:e([`pay-plan__term`,{"pay-plan__term--active":c.checkTermMonths===t}]),onClick:e=>g(`update:checkTermMonths`,t)},r(t)+` ماهه `,11,h)),64))])])):i(``,!0)]))}}),[[`__scopeId`,`data-v-a4758125`]]);export{g as t};
\ No newline at end of file
diff --git a/dist/assets/ProductDetailView-2P8iuLL9.js b/dist/assets/ProductDetailView-BfAVylSu.js
similarity index 98%
rename from dist/assets/ProductDetailView-2P8iuLL9.js
rename to dist/assets/ProductDetailView-BfAVylSu.js
index 8d88fdd..9fb5c9e 100644
--- a/dist/assets/ProductDetailView-2P8iuLL9.js
+++ b/dist/assets/ProductDetailView-BfAVylSu.js
@@ -1 +1 @@
-import{At as e,D as t,F as n,G as r,M as i,Nt as a,Pt as o,U as s,_ as c,c as l,d as u,f as d,g as f,i as p,k as m,l as h,nt as g,o as ee,t as _,u as v,ut as y,v as b}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{l as x}from"./BasicIcon-DPmc0iaK.js";import{o as S}from"./format-C72AoJ2H.js";import{t as C}from"./catalog-DWpH1dVc.js";import{t as w}from"./cart-F5Rptvi1.js";import{t as T}from"./IconCart-D9TX5E-P.js";import{C as E,S as D,l as O,r as k}from"./index-CE4Fw0WE.js";import{t as te}from"./IconChevronBack-BsHmfODG.js";import{t as ne}from"./PageSkeleton-DYdjm4l9.js";import{a as re,o as ie,t as ae}from"./crm-CgnSby61.js";import{n as oe,r as se,t as ce}from"./IconWeave-DAcvD2P0.js";import{t as le}from"./useGoBack-BrwZYRKb.js";import{t as ue}from"./useTouchSwipe-C8fUyAcQ.js";import{t as de}from"./IconHeart-CvzbNH_T.js";import{n as fe,t as pe}from"./AddressCompletionModal-CtlERD8F.js";import{n as A,r as me,t as he}from"./productAvailability-B5nVr_sJ.js";var ge=[`width`,`height`],j=[`stroke`],M=[`stroke`],N=[`stroke`],_e=b({__name:`IconShare`,props:{size:{default:20},color:{default:`#9AA3AF`}},setup(e){return(t,n)=>(i(),d(`svg`,{width:e.size,height:e.size,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,"aria-hidden":`true`},[h(`path`,{d:`M12 3.5v11`,stroke:e.color,"stroke-width":`1.5`,"stroke-linecap":`round`},null,8,j),h(`path`,{d:`M8.25 7 12 3.25 15.75 7`,stroke:e.color,"stroke-width":`1.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null,8,M),h(`path`,{d:`M6.5 11.5v7.25c0 .97.78 1.75 1.75 1.75h7.5c.97 0 1.75-.78 1.75-1.75V11.5`,stroke:e.color,"stroke-width":`1.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null,8,N)],8,ge))}}),P={class:`dialog card product-order-modal`},F={class:`product-order-modal__head`},I={class:`product-order-modal__rows`},L={class:`product-order-row__color`},R=[`title`],z={key:0,class:`product-order-row__label`},B={class:`product-order-row__stepper`},V=[`disabled`,`onClick`],H={class:`product-order-row__qty`},U=[`disabled`,`onClick`],W={key:0,class:`product-order-modal__error`},G={class:`product-order-modal__footer`},K={class:`product-order-modal__prices`},q={key:0,class:`product-order-modal__price`},J={class:`product-order-modal__price`},Y={key:0},X={key:1},Z={key:2},Q={key:0,class:`product-order-modal__hint`},ve=_(b({__name:`ProductOrderModal`,props:{open:{type:Boolean},product:{},rollMeters:{},minRolls:{},basePrice:{},loading:{type:Boolean},error:{}},emits:[`close`,`submit`],setup(e,{emit:m}){let _=e,b=m,C=g([]);s(()=>[_.open,_.product?.colors.length],([e])=>{!e||!_.product||(C.value=_.product.colors.map(()=>0))});let w=l(()=>C.value.reduce((e,t)=>e+(t>0?t:0),0)),T=l(()=>w.value*_.rollMeters),E=l(()=>!_.basePrice||T.value<=0?null:_.basePrice*T.value);function D(e){e.key===`Escape`&&_.open&&b(`close`)}s(()=>_.open,e=>{document.body.style.overflow=e?`hidden`:``,e?window.addEventListener(`keydown`,D):window.removeEventListener(`keydown`,D)},{immediate:!0}),t(()=>{document.body.style.overflow=``,window.removeEventListener(`keydown`,D)});function O(e,t){let n=[...C.value];n[e]=Math.max(0,(n[e]??0)+t),C.value=n}function te(){b(`submit`,[...C.value])}return(t,s)=>(i(),v(ee,{to:`body`},[e.open&&e.product?(i(),d(`div`,{key:0,class:`dialog-overlay product-order-overlay`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`product-order-title`,onClick:s[1]||=x(e=>b(`close`),[`self`])},[h(`div`,P,[h(`header`,F,[s[2]||=h(`h3`,{id:`product-order-title`,class:`product-order-modal__title`},`ثبت سفارش`,-1),h(`button`,{type:`button`,class:`product-order-modal__close`,"aria-label":`بستن`,onClick:s[0]||=e=>b(`close`)},` × `)]),s[5]||=h(`div`,{class:`product-order-modal__table-head`,"aria-hidden":`true`},[h(`span`,null,`رنگ`),h(`span`,null,`طاقه`)],-1),h(`ul`,I,[(i(!0),d(p,null,n(e.product.colors,(t,n)=>(i(),d(`li`,{key:n,class:`product-order-row`},[h(`div`,L,[h(`span`,{class:`product-order-row__swatch`,style:a(y(A)(t,y(me)(e.product.colorImages,e.product.colorVariantImages,n))),title:t},null,12,R),t?(i(),d(`span`,z,o(t),1)):u(``,!0)]),h(`div`,B,[h(`button`,{type:`button`,class:`product-order-row__btn`,"aria-label":`کاهش`,disabled:e.loading||(C.value[n]??0)<=0,onClick:e=>O(n,-1)},` − `,8,V),h(`span`,H,o(y(S)(C.value[n]??0)),1),h(`button`,{type:`button`,class:`product-order-row__btn`,"aria-label":`افزایش`,disabled:e.loading,onClick:e=>O(n,1)},` + `,8,U)])]))),128))]),e.error?(i(),d(`p`,W,o(e.error),1)):u(``,!0),h(`footer`,G,[h(`div`,K,[e.basePrice&&e.basePrice>0?(i(),d(`div`,q,[s[3]||=h(`span`,null,`قیمت هر متر`,-1),h(`strong`,null,o(y(S)(e.basePrice))+` تومان`,1)])):u(``,!0),h(`div`,J,[s[4]||=h(`span`,null,`جمع تقریبی`,-1),E.value==null?w.value>0&&(!e.basePrice||e.basePrice<=0)?(i(),d(`strong`,X,o(y(S)(T.value))+` متر `,1)):(i(),d(`strong`,Z,`—`)):(i(),d(`strong`,Y,o(y(S)(E.value))+` تومان`,1))])]),e.minRolls>0?(i(),d(`p`,Q,` حداقل سفارش: `+o(y(S)(e.minRolls))+` طاقه `,1)):u(``,!0),c(k,{class:`product-order-modal__submit`,disabled:e.loading,onClick:te},{default:r(()=>[f(o(e.loading?`در حال ثبت...`:`ثبت`),1)]),_:1},8,[`disabled`])])])])):u(``,!0)]))}}),[[`__scopeId`,`data-v-5c5793fb`]]),ye={key:0,class:`page product-detail product-page`},be={class:`pd-header mobile-only`},xe={class:`pd-header__actions`},Se=[`aria-label`,`aria-pressed`],Ce={class:`desktop-page__head desktop-only pd-desk-head`},we={class:`desktop-page__title`},Te={class:`desktop-page__subtitle`},Ee={key:0,class:`pd-stock-badge`},De={class:`pd-desk-head__actions`},Oe=[`aria-label`,`aria-pressed`],ke={class:`page__scroll pd-scroll product-page__scroll`},Ae={class:`product-page__layout`},je={class:`product-page__main`},Me={class:`gallery`},Ne={key:0,class:`gallery__dots`,role:`tablist`,"aria-label":`تصاویر عمومی محصول`},Pe=[`aria-label`,`aria-selected`,`onClick`],Fe={key:0,class:`gallery__thumbs`},Ie=[`onClick`],Le={class:`pd-body`},Re={class:`title-row`},ze={key:0,class:`pd-stock-badge`},Be={key:1,class:`new-badge`},Ve={class:`code`},He={class:`specs`},Ue={class:`spec-cell`},We={class:`spec-icon`,"aria-hidden":`true`},Ge={class:`spec-cell`},Ke={class:`spec-cell`},qe={class:`spec-icon`,"aria-hidden":`true`},Je={class:`spec-cell`},Ye={class:`spec-icon`,"aria-hidden":`true`},Xe={key:0,class:`specs-extra`},Ze={class:`specs-extra__text`},Qe={class:`pd-section pd-section--boxed`},$e={class:`section-head`},et={class:`colors`},tt=[`onClick`],nt={key:0,class:`variant-images`,role:`list`},rt={class:`pd-section`},it={class:`tags`,role:`list`},at=[`onClick`],ot={class:`pd-section`},st={class:`roll-field`},ct={class:`product-page__sidebar desktop-only`},lt={class:`cart-summary-panel`},ut={class:`cart-summary-panel__row`},dt={class:`cart-summary-panel__row`},ft={key:0,class:`cart-summary-panel__unavailable`},pt={key:1,class:`cart-summary-panel__btn`},mt=[`disabled`],ht={class:`pd-footer mobile-only sticky-footer`},gt={key:0,class:`pd-footer__primary`},_t={key:1,class:`pd-footer__primary`},vt={class:`min-note`},yt=[`disabled`],bt={key:1,class:`page empty`},xt={key:2,class:`page empty`},St=_(b({__name:`ProductDetailView`,setup(t){let r={suit:`پارچه کتشلواری`,trousers:`پارچه شلواری`,shirt:`پارچه پیراهنی`},ee={summer:`پارچه تابستانه`,winter:`پارچه زمستانه`,all_season:`پارچه چهارفصل`},_=D(),v=E(),{goBack:b}=le(`/products`),x=ae(),k=O(),ge=w(),j=C(),M=l(()=>String(_.query.id??``)),N=g(null),P=g(!0),F=g(null),I=g(0),L=g(0),R=g(1),z=g(!1),B=g(!1),V=g(!1),H=g(``),{requesting:U,addressModalOpen:W,addressError:G,requestCatalog:K,submitAddressAndRequest:q,closeAddressModal:J}=fe(),Y=l(()=>N.value?.rollMeters??50),X=l(()=>N.value?he(N.value):!1),Z=l(()=>(N.value?.imageUrls??[]).filter(e=>typeof e==`string`&&e.trim().length>0)),Q=l(()=>Z.value[L.value]??``);function St(e){let t=Z.value.length;t&&(L.value=(e%t+t)%t)}let{onTouchStart:Ct,onTouchEnd:wt}=ue({enabled:()=>Z.value.length>1,onSwipe(e){St(L.value+e)}}),Tt=l(()=>{let e=N.value;if(!e)return[];let t=I.value,n=e.colorVariantImages?.[t];if(n?.length)return n;let r=e.colorImages?.[t];return r?[r]:[]}),Et=l(()=>N.value?.colors[I.value]??``),Dt=l(()=>R.value*Y.value),Ot=l(()=>{let e=N.value?.minMeterage;return e&&e>0?e:Y.value}),$=l(()=>Math.max(1,Math.ceil(Ot.value/Y.value))),kt=l(()=>N.value?.specs?.trim()??``),At=l(()=>kt.value.length>0),jt=l(()=>{let e=N.value;if(!e)return[];let t=[],n=ie.some(t=>t.id===e.categoryId)?e.categoryId:``,i=n?r[n]:``;i&&t.push({key:`usage-${n}`,label:i,to:{path:`/products`,query:{categoryId:n}}});let a=re.some(t=>t.id===e.season)?e.season:``,o=a?ee[a]:``;o&&t.push({key:`season-${a}`,label:o,to:{path:`/products`,query:{season:a}}});let s=new Set(t.flatMap(e=>[e.label,e.label.replace(/^پارچه\s*/,``)]));for(let n of e.tags){let e=n.replace(/^پارچه?های?\s*/,``).trim();if(!e||s.has(e)||t.some(t=>t.label.includes(e)))continue;let r=n.startsWith(`پارچه`)?n:`پارچه ${e}`;s.add(e),t.push({key:`tag-${n}`,label:r})}return t});async function Mt(){if(!M.value){N.value=null,P.value=!1;return}P.value=!0,F.value=null;try{await Promise.all([k.hydrate(),j.loadCompanies()]),N.value=await x.loadProductById(M.value),I.value=0,L.value=0,R.value=$.value}catch(e){N.value=null,F.value=e instanceof Error?e.message:`محصول یافت نشد.`}finally{P.value=!1}}m(Mt),s(M,Mt);function Nt(e,t=I.value){let n=e.rollMeters||50,r=e.orderMultiplier&&e.orderMultiplier>0?e.orderMultiplier:n,i=e.minMeterage&&e.minMeterage>0?e.minMeterage:n;return{id:e.id,companyId:e.companyId||``,catalogId:e.catalogId||``,name:e.name,code:e.code,color:e.color||e.colors[t]||`—`,minMeterage:i,orderMultiplier:r,basePrice:e.basePrice,isActive:e.isActive!==!1}}function Pt(e,t,n){let r=t>0?t:1,i=Math.ceil(e/r)*r,a=Math.ceil(n/r)*r;return Math.max(i,a)}function Ft(){!N.value||X.value||(H.value=``,V.value=!0)}function It(){V.value=!1,H.value=``}async function Lt(e){let t=N.value;if(!t)return;let n=t.colors.map((t,n)=>({color:t,idx:n,rolls:e[n]??0})).filter(e=>e.rolls>0);if(!n.length){H.value=`حداقل یک رنگ با تعداد انتخاب کنید.`;return}let r=n.reduce((e,t)=>e+t.rolls,0)*Y.value;if(r{P=0,H()})}function W(e){if(e.button!==0)return;let t=_.value,n=e.currentTarget;if(!t||!(n instanceof HTMLElement))return;T=e.pointerId,j=!1,E=e.clientX,O=e.clientY,t.style.transform=``;let r=oe(t);k=r.bottom,A=r.inlineEnd,n.setPointerCapture(e.pointerId)}function se(e){if(T!==e.pointerId||!_.value)return;let t=e.clientX-E,n=e.clientY-O;if(!j){if(Math.hypot(t,n)
{P=0,H()})}function W(e){if(e.button!==0)return;let t=_.value,n=e.currentTarget;if(!t||!(n instanceof HTMLElement))return;T=e.pointerId,j=!1,E=e.clientX,O=e.clientY,t.style.transform=``;let r=oe(t);k=r.bottom,A=r.inlineEnd,n.setPointerCapture(e.pointerId)}function se(e){if(T!==e.pointerId||!_.value)return;let t=e.clientX-E,n=e.clientY-O;if(!j){if(Math.hypot(t,n)