diff --git a/dist/assets/AddressCompletionModal-CtP8_RSJ.js b/dist/assets/AddressCompletionModal-BQQfvcHU.js similarity index 98% rename from dist/assets/AddressCompletionModal-CtP8_RSJ.js rename to dist/assets/AddressCompletionModal-BQQfvcHU.js index abde20f..a478e44 100644 --- a/dist/assets/AddressCompletionModal-CtP8_RSJ.js +++ b/dist/assets/AddressCompletionModal-BQQfvcHU.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{s as g,u as _}from"./BasicIcon-ba1FsUKx.js";import{t as v}from"./http-CU_N-R2R.js";import{r as y,t as b}from"./index-BSpFi5xB.js";import{t as x}from"./addresses-tV-zgZYG.js";import{t as S}from"./catalogRequests-COPPKp3x.js";var C=`درخواست دریافت فیزیکی کالیته برای شما ثبت شد و به زودی همکاران ما برای شما خواهند آورد`;function w(){let e=S(),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 x.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 x.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]||=_(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),[[g,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{s as g,u as _}from"./BasicIcon-ba1FsUKx.js";import{t as v}from"./http-CU_N-R2R.js";import{r as y,t as b}from"./index-BPUhS8CY.js";import{t as x}from"./addresses-tV-zgZYG.js";import{t as S}from"./catalogRequests-COPPKp3x.js";var C=`درخواست دریافت فیزیکی کالیته برای شما ثبت شد و به زودی همکاران ما برای شما خواهند آورد`;function w(){let e=S(),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 x.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 x.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]||=_(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),[[g,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-Djvzi5L8.js b/dist/assets/AddressesView-DW1mXAts.js similarity index 98% rename from dist/assets/AddressesView-Djvzi5L8.js rename to dist/assets/AddressesView-DW1mXAts.js index 4eb55e1..62ced10 100644 --- a/dist/assets/AddressesView-Djvzi5L8.js +++ b/dist/assets/AddressesView-DW1mXAts.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{n as re,s as v,t as y,u as b}from"./BasicIcon-ba1FsUKx.js";import{n as ie}from"./dist-Bc4P4ngC.js";import{t as x}from"./http-CU_N-R2R.js";import{S as ae,r as S,t as oe}from"./index-BSpFi5xB.js";import{t as C}from"./addresses-tV-zgZYG.js";import{t as se}from"./IconTrash-v0i8XrOh.js";import{t as ce}from"./ProfileSubpageLayout-CBTu0mQq.js";var w=_({__name:`IconMapPin`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(t,ee)=>(i(),h(y,{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(y,{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)`),y=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(),y.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),y.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),y.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:b(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:b($,[`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),[[v,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),[[v,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:b(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:b($,[`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),[[v,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),[[v,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{n as re,s as v,t as y,u as b}from"./BasicIcon-ba1FsUKx.js";import{n as ie}from"./dist-Bc4P4ngC.js";import{t as x}from"./http-CU_N-R2R.js";import{S as ae,r as S,t as oe}from"./index-BPUhS8CY.js";import{t as C}from"./addresses-tV-zgZYG.js";import{t as se}from"./IconTrash-v0i8XrOh.js";import{t as ce}from"./ProfileSubpageLayout-Bj7iaKP1.js";var w=_({__name:`IconMapPin`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(t,ee)=>(i(),h(y,{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(y,{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)`),y=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(),y.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),y.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),y.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:b(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:b($,[`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),[[v,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),[[v,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:b(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:b($,[`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),[[v,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),[[v,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-BzzMWHUA.js b/dist/assets/AuthShell-CmEncS1b.js similarity index 92% rename from dist/assets/AuthShell-BzzMWHUA.js rename to dist/assets/AuthShell-CmEncS1b.js index 650d5b5..c611789 100644 --- a/dist/assets/AuthShell-BzzMWHUA.js +++ b/dist/assets/AuthShell-CmEncS1b.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{A as l}from"./index-BSpFi5xB.js";import{t as u}from"./IconChevronBack-DytWz6TD.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{A as l}from"./index-BPUhS8CY.js";import{t as u}from"./IconChevronBack-DytWz6TD.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-DiuI_7re.js b/dist/assets/CartView-B-Qlz3-U.js similarity index 99% rename from dist/assets/CartView-DiuI_7re.js rename to dist/assets/CartView-B-Qlz3-U.js index 876f596..8869899 100644 --- a/dist/assets/CartView-DiuI_7re.js +++ b/dist/assets/CartView-B-Qlz3-U.js @@ -1 +1 @@ -import{At as e,F as t,G as n,K as r,M as i,Pt as a,R as o,Z 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,t as _,u as v,ut as y,v as b}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{o as x,s as S,t as C,u as w}from"./BasicIcon-ba1FsUKx.js";import{a as T,o as E}from"./format-C72AoJ2H.js";import{A as D,E as O,O as k,T as A,f as j,n as M,r as N,s as P,y as ee}from"./index-BSpFi5xB.js";import{t as F}from"./EmptyState-DYhkpGhZ.js";import{t as I}from"./IconChevronBack-DytWz6TD.js";import{t as te}from"./FormErrorBanner-Ud1D04xf.js";import{t as L}from"./addresses-tV-zgZYG.js";import{t as R}from"./IconTrash-v0i8XrOh.js";import{t as z}from"./CheckoutStepper-DptjKnv0.js";import{t as B}from"./IconClipboardEmpty-D1_4Fy0M.js";import{n as V,t as H}from"./IconDiamond-CCzZ7nPM.js";function U(){let e=D(),t=k(),n=j(),r=g(!1),i=g(!1),a=g(``),o=g(!1),s=g([]),c=g(``),u=g(``),d=g(!1),f=l(()=>t.activeCart?.items??[]),p=l(()=>f.value.length===0),h=l(()=>t.companyNamesLabel||t.activeCart?.companyName||``),_=l(()=>t.companySummaries);async function v(e){let n=f.value.find(t=>t.id===e);await M({title:`حذف از سبد`,message:n?`آیا از حذف «${n.productName}» از سبد خرید مطمئن هستید؟`:`آیا از حذف این آیتم از سبد خرید مطمئن هستید؟`,confirmLabel:`حذف`,cancelLabel:`انصراف`,tone:`danger`})&&t.removeItem(e)}function y(){return(s.value.find(e=>e.id===c.value)?.text||u.value).trim()}async function b(){a.value=``,o.value=!0,d.value=!0;try{s.value=await L.list(),c.value=s.value.find(e=>e.isDefault)?.id??s.value[0]?.id??``}catch(e){a.value=e instanceof Error?e.message:`دریافت آدرسها ناموفق بود.`,o.value=!1}finally{d.value=!1}}async function x(){let e=y();if(e.length<3){a.value=`یک آدرس انتخاب کنید یا آدرس جدید بنویسید.`;return}d.value=!0;try{if(!c.value){let t=await L.create({text:e});c.value=t.id,s.value=await L.list(),u.value=``}o.value=!1,await S(e)}catch(e){a.value=e instanceof Error?e.message:`ذخیره آدرس ناموفق بود.`}finally{d.value=!1}}async function S(r){if(!(!t.activeCart||f.value.length===0||i.value)){i.value=!0,a.value=``;try{if(await t.hydrate(),!t.activeCart?.items.length){a.value=`سبد خرید خالی است یا با سرور همگام نشد.`;return}let i=await n.submitOrder(t.activeCart,r);await t.hydrate(),e.replace(`/orders/${i.id}/success`)}catch(e){a.value=e instanceof Error?e.message:`ثبت سفارش ناموفق بود.`,await t.hydrate()}finally{i.value=!1}}}function C(){if(f.value.length!==0){if(t.isFull){r.value=!0;return}b()}}function w(){r.value=!1,b()}async function T(){await t.createNewCartForSameCompany(),r.value=!1,e.push(`/categories`)}return m(()=>{t.ensureActiveCartForCartPage()}),{cartStore:t,items:f,isEmpty:p,companyName:h,companySummaries:_,showFullDialog:r,submitting:i,submitError:a,addressPickerOpen:o,addresses:s,selectedAddressId:c,newAddress:u,addressBusy:d,confirmAddressAndOrder:x,removeItem:v,proceedToCheckout:C,proceedAnyway:w,createNewInvoice:T}}var W={class:`cart-mobile-page`},G={class:`cart-mobile-page__nav`},K={type:`button`,class:`nav-btn nav-btn--ghost`,"aria-hidden":`true`,tabindex:`-1`},q={key:0,class:`cart-mobile-page__body`},J={key:0,class:`cart-mobile-page__meta`},Y={class:`cart-mobile-page__scroll`},X={class:`cart-mobile-table`},Z={class:`col-product`},Q={class:`col-meterage`},ne={class:`col-delete`},re=[`onClick`],ie={class:`cart-mobile-page__footer`},ae={class:`cart-mobile-summary`},oe={class:`cart-mobile-summary__row`},se={class:`cart-mobile-summary__cap`},ce={key:1,class:`cart-mobile-summary__row`},le={class:`cart-mobile-summary__row cart-mobile-summary__row--remain`},ue=_(b({__name:`MobileCartPage`,props:{items:{},companyName:{},companySummaries:{},totalMeterage:{},maxMeterage:{},remainingCapacity:{},isEmpty:{type:Boolean},submitting:{type:Boolean}},emits:[`back`,`remove`,`checkout`,`selectCompany`],setup(e,{emit:r}){let o=r;return(r,s)=>(i(),d(`div`,W,[h(`header`,G,[h(`button`,{type:`button`,class:`nav-btn`,"aria-label":`بازگشت`,onClick:s[0]||=e=>o(`back`)},[c(I,{size:20})]),s[3]||=h(`h1`,{class:`cart-mobile-page__title`},`سبد خرید`,-1),h(`button`,K,[c(I,{size:18,class:`nav-btn__flip`})])]),e.isEmpty?(i(),v(F,{key:1,variant:`cart`,message:`از دستهبندی یا کالیته محصول را انتخاب کنید`},{default:n(()=>[c(N,{onClick:s[2]||=e=>o(`selectCompany`)},{default:n(()=>[...s[10]||=[f(`مشاهده محصولات`,-1)]]),_:1})]),_:1})):(i(),d(`div`,q,[e.companyName?(i(),d(`p`,J,` تأمینکننده: `+a(e.companyName),1)):u(``,!0),h(`div`,Y,[h(`div`,X,[s[4]||=h(`div`,{class:`cart-mobile-table__head`},[h(`span`,null,`محصول`),h(`span`,null,`متراژ (متر)`),h(`span`,null,`حذف`)],-1),(i(!0),d(p,null,t(e.items,e=>(i(),d(`div`,{key:e.id,class:`cart-mobile-table__row`},[h(`div`,Z,[h(`strong`,null,a(e.productName),1),h(`span`,null,`کد: `+a(e.productCode),1)]),h(`div`,Q,a(y(E)(e.meterage)),1),h(`div`,ne,[h(`button`,{type:`button`,"aria-label":`حذف`,onClick:t=>o(`remove`,e.id)},[c(R,{size:20})],8,re)])]))),128))])]),h(`div`,ie,[h(`div`,ae,[h(`div`,oe,[s[5]||=h(`span`,null,`جمع متراژ کل`,-1),h(`strong`,null,a(y(T)(e.totalMeterage)),1)]),e.companySummaries?.length?(i(!0),d(p,{key:0},t(e.companySummaries,e=>(i(),d(`div`,{key:e.companyId,class:`cart-mobile-summary__row cart-mobile-summary__row--sub`},[h(`span`,null,a(e.companyName),1),h(`strong`,null,[f(a(y(T)(e.meterage))+` `,1),h(`span`,se,`/ `+a(y(T)(e.maxMeterage)),1)])]))),128)):(i(),d(`div`,ce,[s[6]||=h(`span`,null,`حداکثر مجاز`,-1),h(`strong`,null,a(y(T)(e.maxMeterage)),1)])),h(`div`,le,[s[7]||=h(`span`,null,`باقی مانده`,-1),h(`strong`,null,a(y(T)(e.remainingCapacity)),1)])]),s[9]||=h(`p`,{class:`cart-mobile-page__hint`},` پس از ثبت سفارش، کارشناسان قیمتگذاری میکنند و فاکتور برای شما صادر میشود. `,-1),c(N,{block:``,loading:e.submitting,onClick:s[1]||=e=>o(`checkout`)},{default:n(()=>[...s[8]||=[f(`ثبت پیشسفارش`,-1)]]),_:1},8,[`loading`])])]))]))}}),[[`__scopeId`,`data-v-e5c9a8c0`]]),de=b({__name:`IconLightbulb`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(t,n)=>(i(),v(C,{icon:`vuesax-linear:lamp-on`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),fe={class:`desktop-page cart-desktop-page`},pe={class:`cart-desktop-page__head`},me={key:0,class:`cart-desktop-page__subtitle`},he={class:`cart-desktop-page__layout`},ge={class:`cart-desktop-page__main`},_e={key:0,class:`cart-empty-card`},ve={class:`cart-empty-card__visual`,"aria-hidden":`true`},ye={class:`cart-empty-card__circle`},be={class:`cart-empty-card__actions`},xe={key:1,class:`cart-items-card`},Se={class:`cart-items-card__scroll`},Ce={class:`cart-items-table`},we={class:`cart-items-table__name`},Te=[`onClick`],Ee={class:`cart-desktop-page__sidebar`},De={class:`cart-summary-card`},Oe={class:`cart-summary-card__title`},ke={class:`cart-summary-card__title-icon`,"aria-hidden":`true`},Ae={class:`cart-summary-card__rows`},je={class:`cart-summary-card__row`},Me={class:`cart-summary-card__row-label`},Ne={class:`cart-summary-card__row`},Pe={class:`cart-summary-card__row-label`},Fe={class:`cart-summary-card__row-label`},Ie={class:`cart-summary-card__cap`},Le={class:`cart-summary-card__row cart-summary-card__row--hint`},Re={class:`cart-summary-card__row-label`},ze=[`disabled`],Be={class:`cart-guide-card`},Ve={class:`cart-guide-card__title`},He={class:`cart-guide-card__title-icon`,"aria-hidden":`true`},Ue={class:`cart-guide-card__text`},We={class:`cart-quick-nav`,"aria-label":`دسترسی سریع`},Ge=[`onClick`],Ke={class:`cart-quick-nav__body`},qe={class:`cart-quick-nav__title`},Je={class:`cart-quick-nav__desc`},$=_(b({__name:`DesktopCartPage`,props:{items:{},companyName:{},companySummaries:{},totalMeterage:{},maxMeterage:{},remainingCapacity:{},isEmpty:{type:Boolean},submitting:{type:Boolean}},emits:[`remove`,`checkout`,`selectCompany`,`back`],setup(n,{emit:r}){let s=r,l=D(),m=[{title:`کالیتهها`,desc:`مرور کالیته و طرحها`,icon:V,tone:`blue`,action:()=>l.push(`/catalogs`)},{title:`دستهبندی`,desc:`مشاهده محصولات بر اساس کاربرد`,icon:H,tone:`green`,action:()=>l.push(`/categories`)},{title:`سفارشهای من`,desc:`پیگیری وضعیت سفارشها`,icon:A,tone:`blue`,action:()=>l.push(`/orders`)}];return(r,g)=>(i(),d(`div`,fe,[c(z,{"current-step":1}),h(`header`,pe,[g[3]||=h(`h1`,{class:`cart-desktop-page__title`},`سبد خرید`,-1),n.companyName?(i(),d(`p`,me,` تأمینکننده: `+a(n.companyName),1)):u(``,!0)]),h(`div`,he,[h(`section`,ge,[n.isEmpty?(i(),d(`div`,_e,[h(`div`,ve,[g[4]||=h(`span`,{class:`cart-empty-card__spark cart-empty-card__spark--1`},`+`,-1),g[5]||=h(`span`,{class:`cart-empty-card__spark cart-empty-card__spark--2`},`·`,-1),h(`span`,ye,[c(O,{size:40})]),g[6]||=h(`span`,{class:`cart-empty-card__spark cart-empty-card__spark--3`},`·`,-1)]),g[9]||=h(`h2`,{class:`cart-empty-card__heading`},`سبد خرید شما خالی است`,-1),g[10]||=h(`p`,{class:`cart-empty-card__text`},` از دستهبندی یا کالیته محصول را انتخاب کنید، جزئیات را ببینید و به سبد اضافه کنید. `,-1),h(`div`,be,[h(`button`,{type:`button`,class:`cart-btn cart-btn--primary`,onClick:g[0]||=e=>s(`selectCompany`)},[c(H,{size:16}),g[7]||=f(` دستهبندی محصولات `,-1)]),h(`button`,{type:`button`,class:`cart-btn cart-btn--outline`,onClick:g[1]||=e=>y(l).push(`/catalogs`)},[c(V,{size:18}),g[8]||=f(` مشاهده کالیتهها `,-1)])])])):(i(),d(`div`,xe,[h(`div`,Se,[h(`table`,Ce,[g[11]||=h(`thead`,null,[h(`tr`,null,[h(`th`,{scope:`col`},`محصول`),h(`th`,{scope:`col`},`کد`),h(`th`,{scope:`col`},`متراژ (متر)`),h(`th`,{scope:`col`},`حذف`)])],-1),h(`tbody`,null,[(i(!0),d(p,null,t(n.items,e=>(i(),d(`tr`,{key:e.id},[h(`td`,null,[h(`strong`,we,a(e.productName),1)]),h(`td`,null,a(e.productCode),1),h(`td`,null,a(y(E)(e.meterage)),1),h(`td`,null,[h(`button`,{type:`button`,class:`cart-items-table__delete`,"aria-label":`حذف`,onClick:t=>s(`remove`,e.id)},[c(R,{size:18})],8,Te)])]))),128))])])])]))]),h(`aside`,Ee,[h(`div`,De,[h(`h2`,Oe,[h(`span`,ke,[c(B,{size:22})]),g[12]||=f(` خلاصه سفارش `,-1)]),h(`div`,Ae,[h(`div`,je,[h(`span`,Me,[c(V,{size:16}),g[13]||=f(` تعداد آیتمها `,-1)]),h(`strong`,null,a(y(E)(n.items.length)),1)]),h(`div`,Ne,[h(`span`,Pe,[c(H,{size:16}),g[14]||=f(` متراژ کل `,-1)]),h(`strong`,null,a(y(T)(n.totalMeterage)),1)]),(i(!0),d(p,null,t(n.companySummaries??[],e=>(i(),d(`div`,{key:e.companyId,class:`cart-summary-card__row cart-summary-card__row--sub`},[h(`span`,Fe,a(e.companyName),1),h(`strong`,null,[f(a(y(T)(e.meterage))+` `,1),h(`span`,Ie,`/ `+a(y(T)(e.maxMeterage)),1)])]))),128)),h(`div`,Le,[h(`span`,Re,[c(A,{size:16}),g[15]||=f(` مبلغ فاکتور `,-1)]),g[16]||=h(`span`,{class:`cart-summary-card__hint-value`},` پس از قیمتگذاری مدیریت `,-1)])]),h(`button`,{type:`button`,class:`cart-summary-card__cta`,disabled:n.isEmpty||n.submitting,onClick:g[2]||=e=>s(`checkout`)},[c(P,{size:16}),f(` `+a(n.submitting?`در حال ثبت…`:`ثبت پیشسفارش`),1)],8,ze),g[17]||=h(`p`,{class:`cart-summary-card__note`},` پس از ثبت سفارش، مدیریت قیمتگذاری میکند و فاکتور صادر میشود؛ سپس روش تسویه را انتخاب میکنید. `,-1)]),h(`div`,Be,[h(`h3`,Ve,[h(`span`,He,[c(de,{size:18})]),g[18]||=f(` راهنمای گام بعدی `,-1)]),h(`p`,Ue,[g[19]||=f(` محصولات موردنظر را به سبد اضافه کنید، متراژ کل را بررسی کنید و «ثبت پیشسفارش» را بزنید. `,-1),n.isEmpty?u(``,!0):(i(),d(p,{key:0},[f(` سقف مجاز: `+a(y(T)(n.maxMeterage))+` — باقیمانده: `+a(y(T)(n.remainingCapacity))+`. `,1)],64)),g[20]||=f(` پس از قیمتگذاری، از صفحه سفارش روش تسویه را انتخاب میکنید. `,-1)])])])]),h(`nav`,We,[(i(),d(p,null,t(m,t=>h(`button`,{key:t.title,type:`button`,class:`cart-quick-nav__item`,onClick:e=>t.action()},[h(`span`,{class:e([`cart-quick-nav__icon`,`cart-quick-nav__icon--${t.tone}`])},[(i(),v(o(t.icon),{size:20}))],2),h(`span`,Ke,[h(`strong`,qe,a(t.title),1),h(`span`,Je,a(t.desc),1)]),c(P,{size:16,class:`cart-quick-nav__chevron`,"aria-hidden":`true`})],8,Ge)),64))]),g[21]||=h(`p`,{class:`cart-desktop-page__footer`},`پارس بافت — سامانه سفارشگذاری پارچه`,-1)]))}}),[[`__scopeId`,`data-v-e944f7f3`]]),Ye={class:`cart-view`},Xe={class:`dialog card`},Ze={key:0,class:`address-pick`},Qe=[`value`],$e={class:`address-card__body`},et={class:`address-card__title`},tt={key:0},nt={class:`dialog-actions`},rt={class:`dialog card`},it={class:`dialog-actions`},at=_(b({__name:`CartView`,setup(o){let l=D(),{cartStore:m,items:g,isEmpty:_,companyName:b,companySummaries:C,showFullDialog:T,submitting:E,submitError:O,addressPickerOpen:k,addresses:A,selectedAddressId:j,newAddress:M,addressBusy:P,confirmAddressAndOrder:F,removeItem:I,proceedToCheckout:L,proceedAnyway:R,createNewInvoice:z}=U();function B(){l.push(ee)}return(o,D)=>(i(),d(`div`,Ye,[y(O)?(i(),v(te,{key:0,message:y(O),class:`cart-view__error`},null,8,[`message`])):u(``,!0),c(ue,{class:`mobile-only`,items:y(g),"company-name":y(b),"company-summaries":y(C),"total-meterage":y(m).totalMeterage,"max-meterage":y(m).maxMeterage,"remaining-capacity":y(m).remainingCapacity,"is-empty":y(_),submitting:y(E),onBack:D[0]||=e=>y(l).push(`/`),onRemove:y(I),onCheckout:y(L),onSelectCompany:D[1]||=e=>B()},null,8,[`items`,`company-name`,`company-summaries`,`total-meterage`,`max-meterage`,`remaining-capacity`,`is-empty`,`submitting`,`onRemove`,`onCheckout`]),c($,{class:`desktop-only`,items:y(g),"company-name":y(b),"company-summaries":y(C),"total-meterage":y(m).totalMeterage,"max-meterage":y(m).maxMeterage,"remaining-capacity":y(m).remainingCapacity,"is-empty":y(_),submitting:y(E),onRemove:y(I),onCheckout:y(L),onSelectCompany:D[2]||=e=>B(),onBack:B},null,8,[`items`,`company-name`,`company-summaries`,`total-meterage`,`max-meterage`,`remaining-capacity`,`is-empty`,`submitting`,`onRemove`,`onCheckout`]),y(k)?(i(),d(`div`,{key:1,class:`dialog-overlay`,onClick:D[8]||=w(e=>k.value=!1,[`self`])},[h(`div`,Xe,[D[13]||=h(`h3`,null,`آدرس ارسال`,-1),D[14]||=h(`p`,{class:`text-sm`},`یکی از آدرسهای ذخیرهشده را انتخاب کنید، یا آدرس تازه بنویسید.`,-1),y(A).length?(i(),d(`ul`,Ze,[(i(!0),d(p,null,t(y(A),t=>(i(),d(`li`,{key:t.id},[h(`label`,{class:e([`address-card`,{"is-on":y(j)===t.id&&!y(M).trim()}])},[r(h(`input`,{"onUpdate:modelValue":D[3]||=e=>s(j)?j.value=e:null,type:`radio`,value:t.id,onChange:D[4]||=e=>M.value=``},null,40,Qe),[[x,y(j)]]),h(`span`,$e,[h(`span`,et,[h(`strong`,null,a(t.label||`آدرس`),1),t.isDefault?(i(),d(`em`,tt,`پیشفرض`)):u(``,!0)]),h(`small`,null,a(t.text),1)])],2)]))),128))])):u(``,!0),h(`label`,{class:e([`address-new`,{"is-on":!!y(M).trim()}])},[D[10]||=h(`span`,null,`آدرس جدید`,-1),r(h(`textarea`,{"onUpdate:modelValue":D[5]||=e=>s(M)?M.value=e:null,rows:`3`,maxlength:`500`,placeholder:`خیابان، پلاک، واحد…`,onInput:D[6]||=e=>j.value=``},null,544),[[S,y(M)]])],2),h(`div`,nt,[c(N,{variant:`outline`,disabled:y(P),onClick:D[7]||=e=>k.value=!1},{default:n(()=>[...D[11]||=[f(` انصراف `,-1)]]),_:1},8,[`disabled`]),c(N,{loading:y(P)||y(E),onClick:y(F)},{default:n(()=>[...D[12]||=[f(` ثبت سفارش `,-1)]]),_:1},8,[`loading`,`onClick`])])])])):u(``,!0),y(T)?(i(),d(`div`,{key:2,class:`dialog-overlay`,onClick:D[9]||=w(e=>T.value=!1,[`self`])},[h(`div`,rt,[D[17]||=h(`h3`,null,`سقف متراژ تکمیل شد`,-1),D[18]||=h(`p`,{class:`text-sm`},` سقف متراژ مجاز این سفارش پر شده است. میتوانید همین پیشسفارش را ثبت کنید یا سبد را خالی کرده و سفارش جدید بسازید. `,-1),h(`div`,it,[c(N,{variant:`outline`,loading:y(E),onClick:y(R)},{default:n(()=>[...D[15]||=[f(` ثبت همین فاکتور `,-1)]]),_:1},8,[`loading`,`onClick`]),c(N,{onClick:y(z)},{default:n(()=>[...D[16]||=[f(`فاکتور جدید`,-1)]]),_:1},8,[`onClick`])])])])):u(``,!0)]))}}),[[`__scopeId`,`data-v-3d7624c1`]]);export{at as default}; \ No newline at end of file +import{At as e,F as t,G as n,K as r,M as i,Pt as a,R as o,Z 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,t as _,u as v,ut as y,v as b}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{o as x,s as S,t as C,u as w}from"./BasicIcon-ba1FsUKx.js";import{a as T,o as E}from"./format-C72AoJ2H.js";import{A as D,E as O,O as k,T as A,f as j,n as M,r as N,s as P,y as ee}from"./index-BPUhS8CY.js";import{t as F}from"./EmptyState-DYhkpGhZ.js";import{t as I}from"./IconChevronBack-DytWz6TD.js";import{t as te}from"./FormErrorBanner-Ud1D04xf.js";import{t as L}from"./addresses-tV-zgZYG.js";import{t as R}from"./IconTrash-v0i8XrOh.js";import{t as z}from"./CheckoutStepper-DptjKnv0.js";import{t as B}from"./IconClipboardEmpty-D1_4Fy0M.js";import{n as V,t as H}from"./IconDiamond-CCzZ7nPM.js";function U(){let e=D(),t=k(),n=j(),r=g(!1),i=g(!1),a=g(``),o=g(!1),s=g([]),c=g(``),u=g(``),d=g(!1),f=l(()=>t.activeCart?.items??[]),p=l(()=>f.value.length===0),h=l(()=>t.companyNamesLabel||t.activeCart?.companyName||``),_=l(()=>t.companySummaries);async function v(e){let n=f.value.find(t=>t.id===e);await M({title:`حذف از سبد`,message:n?`آیا از حذف «${n.productName}» از سبد خرید مطمئن هستید؟`:`آیا از حذف این آیتم از سبد خرید مطمئن هستید؟`,confirmLabel:`حذف`,cancelLabel:`انصراف`,tone:`danger`})&&t.removeItem(e)}function y(){return(s.value.find(e=>e.id===c.value)?.text||u.value).trim()}async function b(){a.value=``,o.value=!0,d.value=!0;try{s.value=await L.list(),c.value=s.value.find(e=>e.isDefault)?.id??s.value[0]?.id??``}catch(e){a.value=e instanceof Error?e.message:`دریافت آدرسها ناموفق بود.`,o.value=!1}finally{d.value=!1}}async function x(){let e=y();if(e.length<3){a.value=`یک آدرس انتخاب کنید یا آدرس جدید بنویسید.`;return}d.value=!0;try{if(!c.value){let t=await L.create({text:e});c.value=t.id,s.value=await L.list(),u.value=``}o.value=!1,await S(e)}catch(e){a.value=e instanceof Error?e.message:`ذخیره آدرس ناموفق بود.`}finally{d.value=!1}}async function S(r){if(!(!t.activeCart||f.value.length===0||i.value)){i.value=!0,a.value=``;try{if(await t.hydrate(),!t.activeCart?.items.length){a.value=`سبد خرید خالی است یا با سرور همگام نشد.`;return}let i=await n.submitOrder(t.activeCart,r);await t.hydrate(),e.replace(`/orders/${i.id}/success`)}catch(e){a.value=e instanceof Error?e.message:`ثبت سفارش ناموفق بود.`,await t.hydrate()}finally{i.value=!1}}}function C(){if(f.value.length!==0){if(t.isFull){r.value=!0;return}b()}}function w(){r.value=!1,b()}async function T(){await t.createNewCartForSameCompany(),r.value=!1,e.push(`/categories`)}return m(()=>{t.ensureActiveCartForCartPage()}),{cartStore:t,items:f,isEmpty:p,companyName:h,companySummaries:_,showFullDialog:r,submitting:i,submitError:a,addressPickerOpen:o,addresses:s,selectedAddressId:c,newAddress:u,addressBusy:d,confirmAddressAndOrder:x,removeItem:v,proceedToCheckout:C,proceedAnyway:w,createNewInvoice:T}}var W={class:`cart-mobile-page`},G={class:`cart-mobile-page__nav`},K={type:`button`,class:`nav-btn nav-btn--ghost`,"aria-hidden":`true`,tabindex:`-1`},q={key:0,class:`cart-mobile-page__body`},J={key:0,class:`cart-mobile-page__meta`},Y={class:`cart-mobile-page__scroll`},X={class:`cart-mobile-table`},Z={class:`col-product`},Q={class:`col-meterage`},ne={class:`col-delete`},re=[`onClick`],ie={class:`cart-mobile-page__footer`},ae={class:`cart-mobile-summary`},oe={class:`cart-mobile-summary__row`},se={class:`cart-mobile-summary__cap`},ce={key:1,class:`cart-mobile-summary__row`},le={class:`cart-mobile-summary__row cart-mobile-summary__row--remain`},ue=_(b({__name:`MobileCartPage`,props:{items:{},companyName:{},companySummaries:{},totalMeterage:{},maxMeterage:{},remainingCapacity:{},isEmpty:{type:Boolean},submitting:{type:Boolean}},emits:[`back`,`remove`,`checkout`,`selectCompany`],setup(e,{emit:r}){let o=r;return(r,s)=>(i(),d(`div`,W,[h(`header`,G,[h(`button`,{type:`button`,class:`nav-btn`,"aria-label":`بازگشت`,onClick:s[0]||=e=>o(`back`)},[c(I,{size:20})]),s[3]||=h(`h1`,{class:`cart-mobile-page__title`},`سبد خرید`,-1),h(`button`,K,[c(I,{size:18,class:`nav-btn__flip`})])]),e.isEmpty?(i(),v(F,{key:1,variant:`cart`,message:`از دستهبندی یا کالیته محصول را انتخاب کنید`},{default:n(()=>[c(N,{onClick:s[2]||=e=>o(`selectCompany`)},{default:n(()=>[...s[10]||=[f(`مشاهده محصولات`,-1)]]),_:1})]),_:1})):(i(),d(`div`,q,[e.companyName?(i(),d(`p`,J,` تأمینکننده: `+a(e.companyName),1)):u(``,!0),h(`div`,Y,[h(`div`,X,[s[4]||=h(`div`,{class:`cart-mobile-table__head`},[h(`span`,null,`محصول`),h(`span`,null,`متراژ (متر)`),h(`span`,null,`حذف`)],-1),(i(!0),d(p,null,t(e.items,e=>(i(),d(`div`,{key:e.id,class:`cart-mobile-table__row`},[h(`div`,Z,[h(`strong`,null,a(e.productName),1),h(`span`,null,`کد: `+a(e.productCode),1)]),h(`div`,Q,a(y(E)(e.meterage)),1),h(`div`,ne,[h(`button`,{type:`button`,"aria-label":`حذف`,onClick:t=>o(`remove`,e.id)},[c(R,{size:20})],8,re)])]))),128))])]),h(`div`,ie,[h(`div`,ae,[h(`div`,oe,[s[5]||=h(`span`,null,`جمع متراژ کل`,-1),h(`strong`,null,a(y(T)(e.totalMeterage)),1)]),e.companySummaries?.length?(i(!0),d(p,{key:0},t(e.companySummaries,e=>(i(),d(`div`,{key:e.companyId,class:`cart-mobile-summary__row cart-mobile-summary__row--sub`},[h(`span`,null,a(e.companyName),1),h(`strong`,null,[f(a(y(T)(e.meterage))+` `,1),h(`span`,se,`/ `+a(y(T)(e.maxMeterage)),1)])]))),128)):(i(),d(`div`,ce,[s[6]||=h(`span`,null,`حداکثر مجاز`,-1),h(`strong`,null,a(y(T)(e.maxMeterage)),1)])),h(`div`,le,[s[7]||=h(`span`,null,`باقی مانده`,-1),h(`strong`,null,a(y(T)(e.remainingCapacity)),1)])]),s[9]||=h(`p`,{class:`cart-mobile-page__hint`},` پس از ثبت سفارش، کارشناسان قیمتگذاری میکنند و فاکتور برای شما صادر میشود. `,-1),c(N,{block:``,loading:e.submitting,onClick:s[1]||=e=>o(`checkout`)},{default:n(()=>[...s[8]||=[f(`ثبت پیشسفارش`,-1)]]),_:1},8,[`loading`])])]))]))}}),[[`__scopeId`,`data-v-e5c9a8c0`]]),de=b({__name:`IconLightbulb`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(t,n)=>(i(),v(C,{icon:`vuesax-linear:lamp-on`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),fe={class:`desktop-page cart-desktop-page`},pe={class:`cart-desktop-page__head`},me={key:0,class:`cart-desktop-page__subtitle`},he={class:`cart-desktop-page__layout`},ge={class:`cart-desktop-page__main`},_e={key:0,class:`cart-empty-card`},ve={class:`cart-empty-card__visual`,"aria-hidden":`true`},ye={class:`cart-empty-card__circle`},be={class:`cart-empty-card__actions`},xe={key:1,class:`cart-items-card`},Se={class:`cart-items-card__scroll`},Ce={class:`cart-items-table`},we={class:`cart-items-table__name`},Te=[`onClick`],Ee={class:`cart-desktop-page__sidebar`},De={class:`cart-summary-card`},Oe={class:`cart-summary-card__title`},ke={class:`cart-summary-card__title-icon`,"aria-hidden":`true`},Ae={class:`cart-summary-card__rows`},je={class:`cart-summary-card__row`},Me={class:`cart-summary-card__row-label`},Ne={class:`cart-summary-card__row`},Pe={class:`cart-summary-card__row-label`},Fe={class:`cart-summary-card__row-label`},Ie={class:`cart-summary-card__cap`},Le={class:`cart-summary-card__row cart-summary-card__row--hint`},Re={class:`cart-summary-card__row-label`},ze=[`disabled`],Be={class:`cart-guide-card`},Ve={class:`cart-guide-card__title`},He={class:`cart-guide-card__title-icon`,"aria-hidden":`true`},Ue={class:`cart-guide-card__text`},We={class:`cart-quick-nav`,"aria-label":`دسترسی سریع`},Ge=[`onClick`],Ke={class:`cart-quick-nav__body`},qe={class:`cart-quick-nav__title`},Je={class:`cart-quick-nav__desc`},$=_(b({__name:`DesktopCartPage`,props:{items:{},companyName:{},companySummaries:{},totalMeterage:{},maxMeterage:{},remainingCapacity:{},isEmpty:{type:Boolean},submitting:{type:Boolean}},emits:[`remove`,`checkout`,`selectCompany`,`back`],setup(n,{emit:r}){let s=r,l=D(),m=[{title:`کالیتهها`,desc:`مرور کالیته و طرحها`,icon:V,tone:`blue`,action:()=>l.push(`/catalogs`)},{title:`دستهبندی`,desc:`مشاهده محصولات بر اساس کاربرد`,icon:H,tone:`green`,action:()=>l.push(`/categories`)},{title:`سفارشهای من`,desc:`پیگیری وضعیت سفارشها`,icon:A,tone:`blue`,action:()=>l.push(`/orders`)}];return(r,g)=>(i(),d(`div`,fe,[c(z,{"current-step":1}),h(`header`,pe,[g[3]||=h(`h1`,{class:`cart-desktop-page__title`},`سبد خرید`,-1),n.companyName?(i(),d(`p`,me,` تأمینکننده: `+a(n.companyName),1)):u(``,!0)]),h(`div`,he,[h(`section`,ge,[n.isEmpty?(i(),d(`div`,_e,[h(`div`,ve,[g[4]||=h(`span`,{class:`cart-empty-card__spark cart-empty-card__spark--1`},`+`,-1),g[5]||=h(`span`,{class:`cart-empty-card__spark cart-empty-card__spark--2`},`·`,-1),h(`span`,ye,[c(O,{size:40})]),g[6]||=h(`span`,{class:`cart-empty-card__spark cart-empty-card__spark--3`},`·`,-1)]),g[9]||=h(`h2`,{class:`cart-empty-card__heading`},`سبد خرید شما خالی است`,-1),g[10]||=h(`p`,{class:`cart-empty-card__text`},` از دستهبندی یا کالیته محصول را انتخاب کنید، جزئیات را ببینید و به سبد اضافه کنید. `,-1),h(`div`,be,[h(`button`,{type:`button`,class:`cart-btn cart-btn--primary`,onClick:g[0]||=e=>s(`selectCompany`)},[c(H,{size:16}),g[7]||=f(` دستهبندی محصولات `,-1)]),h(`button`,{type:`button`,class:`cart-btn cart-btn--outline`,onClick:g[1]||=e=>y(l).push(`/catalogs`)},[c(V,{size:18}),g[8]||=f(` مشاهده کالیتهها `,-1)])])])):(i(),d(`div`,xe,[h(`div`,Se,[h(`table`,Ce,[g[11]||=h(`thead`,null,[h(`tr`,null,[h(`th`,{scope:`col`},`محصول`),h(`th`,{scope:`col`},`کد`),h(`th`,{scope:`col`},`متراژ (متر)`),h(`th`,{scope:`col`},`حذف`)])],-1),h(`tbody`,null,[(i(!0),d(p,null,t(n.items,e=>(i(),d(`tr`,{key:e.id},[h(`td`,null,[h(`strong`,we,a(e.productName),1)]),h(`td`,null,a(e.productCode),1),h(`td`,null,a(y(E)(e.meterage)),1),h(`td`,null,[h(`button`,{type:`button`,class:`cart-items-table__delete`,"aria-label":`حذف`,onClick:t=>s(`remove`,e.id)},[c(R,{size:18})],8,Te)])]))),128))])])])]))]),h(`aside`,Ee,[h(`div`,De,[h(`h2`,Oe,[h(`span`,ke,[c(B,{size:22})]),g[12]||=f(` خلاصه سفارش `,-1)]),h(`div`,Ae,[h(`div`,je,[h(`span`,Me,[c(V,{size:16}),g[13]||=f(` تعداد آیتمها `,-1)]),h(`strong`,null,a(y(E)(n.items.length)),1)]),h(`div`,Ne,[h(`span`,Pe,[c(H,{size:16}),g[14]||=f(` متراژ کل `,-1)]),h(`strong`,null,a(y(T)(n.totalMeterage)),1)]),(i(!0),d(p,null,t(n.companySummaries??[],e=>(i(),d(`div`,{key:e.companyId,class:`cart-summary-card__row cart-summary-card__row--sub`},[h(`span`,Fe,a(e.companyName),1),h(`strong`,null,[f(a(y(T)(e.meterage))+` `,1),h(`span`,Ie,`/ `+a(y(T)(e.maxMeterage)),1)])]))),128)),h(`div`,Le,[h(`span`,Re,[c(A,{size:16}),g[15]||=f(` مبلغ فاکتور `,-1)]),g[16]||=h(`span`,{class:`cart-summary-card__hint-value`},` پس از قیمتگذاری مدیریت `,-1)])]),h(`button`,{type:`button`,class:`cart-summary-card__cta`,disabled:n.isEmpty||n.submitting,onClick:g[2]||=e=>s(`checkout`)},[c(P,{size:16}),f(` `+a(n.submitting?`در حال ثبت…`:`ثبت پیشسفارش`),1)],8,ze),g[17]||=h(`p`,{class:`cart-summary-card__note`},` پس از ثبت سفارش، مدیریت قیمتگذاری میکند و فاکتور صادر میشود؛ سپس روش تسویه را انتخاب میکنید. `,-1)]),h(`div`,Be,[h(`h3`,Ve,[h(`span`,He,[c(de,{size:18})]),g[18]||=f(` راهنمای گام بعدی `,-1)]),h(`p`,Ue,[g[19]||=f(` محصولات موردنظر را به سبد اضافه کنید، متراژ کل را بررسی کنید و «ثبت پیشسفارش» را بزنید. `,-1),n.isEmpty?u(``,!0):(i(),d(p,{key:0},[f(` سقف مجاز: `+a(y(T)(n.maxMeterage))+` — باقیمانده: `+a(y(T)(n.remainingCapacity))+`. `,1)],64)),g[20]||=f(` پس از قیمتگذاری، از صفحه سفارش روش تسویه را انتخاب میکنید. `,-1)])])])]),h(`nav`,We,[(i(),d(p,null,t(m,t=>h(`button`,{key:t.title,type:`button`,class:`cart-quick-nav__item`,onClick:e=>t.action()},[h(`span`,{class:e([`cart-quick-nav__icon`,`cart-quick-nav__icon--${t.tone}`])},[(i(),v(o(t.icon),{size:20}))],2),h(`span`,Ke,[h(`strong`,qe,a(t.title),1),h(`span`,Je,a(t.desc),1)]),c(P,{size:16,class:`cart-quick-nav__chevron`,"aria-hidden":`true`})],8,Ge)),64))]),g[21]||=h(`p`,{class:`cart-desktop-page__footer`},`پارس بافت — سامانه سفارشگذاری پارچه`,-1)]))}}),[[`__scopeId`,`data-v-e944f7f3`]]),Ye={class:`cart-view`},Xe={class:`dialog card`},Ze={key:0,class:`address-pick`},Qe=[`value`],$e={class:`address-card__body`},et={class:`address-card__title`},tt={key:0},nt={class:`dialog-actions`},rt={class:`dialog card`},it={class:`dialog-actions`},at=_(b({__name:`CartView`,setup(o){let l=D(),{cartStore:m,items:g,isEmpty:_,companyName:b,companySummaries:C,showFullDialog:T,submitting:E,submitError:O,addressPickerOpen:k,addresses:A,selectedAddressId:j,newAddress:M,addressBusy:P,confirmAddressAndOrder:F,removeItem:I,proceedToCheckout:L,proceedAnyway:R,createNewInvoice:z}=U();function B(){l.push(ee)}return(o,D)=>(i(),d(`div`,Ye,[y(O)?(i(),v(te,{key:0,message:y(O),class:`cart-view__error`},null,8,[`message`])):u(``,!0),c(ue,{class:`mobile-only`,items:y(g),"company-name":y(b),"company-summaries":y(C),"total-meterage":y(m).totalMeterage,"max-meterage":y(m).maxMeterage,"remaining-capacity":y(m).remainingCapacity,"is-empty":y(_),submitting:y(E),onBack:D[0]||=e=>y(l).push(`/`),onRemove:y(I),onCheckout:y(L),onSelectCompany:D[1]||=e=>B()},null,8,[`items`,`company-name`,`company-summaries`,`total-meterage`,`max-meterage`,`remaining-capacity`,`is-empty`,`submitting`,`onRemove`,`onCheckout`]),c($,{class:`desktop-only`,items:y(g),"company-name":y(b),"company-summaries":y(C),"total-meterage":y(m).totalMeterage,"max-meterage":y(m).maxMeterage,"remaining-capacity":y(m).remainingCapacity,"is-empty":y(_),submitting:y(E),onRemove:y(I),onCheckout:y(L),onSelectCompany:D[2]||=e=>B(),onBack:B},null,8,[`items`,`company-name`,`company-summaries`,`total-meterage`,`max-meterage`,`remaining-capacity`,`is-empty`,`submitting`,`onRemove`,`onCheckout`]),y(k)?(i(),d(`div`,{key:1,class:`dialog-overlay`,onClick:D[8]||=w(e=>k.value=!1,[`self`])},[h(`div`,Xe,[D[13]||=h(`h3`,null,`آدرس ارسال`,-1),D[14]||=h(`p`,{class:`text-sm`},`یکی از آدرسهای ذخیرهشده را انتخاب کنید، یا آدرس تازه بنویسید.`,-1),y(A).length?(i(),d(`ul`,Ze,[(i(!0),d(p,null,t(y(A),t=>(i(),d(`li`,{key:t.id},[h(`label`,{class:e([`address-card`,{"is-on":y(j)===t.id&&!y(M).trim()}])},[r(h(`input`,{"onUpdate:modelValue":D[3]||=e=>s(j)?j.value=e:null,type:`radio`,value:t.id,onChange:D[4]||=e=>M.value=``},null,40,Qe),[[x,y(j)]]),h(`span`,$e,[h(`span`,et,[h(`strong`,null,a(t.label||`آدرس`),1),t.isDefault?(i(),d(`em`,tt,`پیشفرض`)):u(``,!0)]),h(`small`,null,a(t.text),1)])],2)]))),128))])):u(``,!0),h(`label`,{class:e([`address-new`,{"is-on":!!y(M).trim()}])},[D[10]||=h(`span`,null,`آدرس جدید`,-1),r(h(`textarea`,{"onUpdate:modelValue":D[5]||=e=>s(M)?M.value=e:null,rows:`3`,maxlength:`500`,placeholder:`خیابان، پلاک، واحد…`,onInput:D[6]||=e=>j.value=``},null,544),[[S,y(M)]])],2),h(`div`,nt,[c(N,{variant:`outline`,disabled:y(P),onClick:D[7]||=e=>k.value=!1},{default:n(()=>[...D[11]||=[f(` انصراف `,-1)]]),_:1},8,[`disabled`]),c(N,{loading:y(P)||y(E),onClick:y(F)},{default:n(()=>[...D[12]||=[f(` ثبت سفارش `,-1)]]),_:1},8,[`loading`,`onClick`])])])])):u(``,!0),y(T)?(i(),d(`div`,{key:2,class:`dialog-overlay`,onClick:D[9]||=w(e=>T.value=!1,[`self`])},[h(`div`,rt,[D[17]||=h(`h3`,null,`سقف متراژ تکمیل شد`,-1),D[18]||=h(`p`,{class:`text-sm`},` سقف متراژ مجاز این سفارش پر شده است. میتوانید همین پیشسفارش را ثبت کنید یا سبد را خالی کرده و سفارش جدید بسازید. `,-1),h(`div`,it,[c(N,{variant:`outline`,loading:y(E),onClick:y(R)},{default:n(()=>[...D[15]||=[f(` ثبت همین فاکتور `,-1)]]),_:1},8,[`loading`,`onClick`]),c(N,{onClick:y(z)},{default:n(()=>[...D[16]||=[f(`فاکتور جدید`,-1)]]),_:1},8,[`onClick`])])])])):u(``,!0)]))}}),[[`__scopeId`,`data-v-3d7624c1`]]);export{at as default}; \ No newline at end of file diff --git a/dist/assets/CashSettlementView-DS-VnRJb.js b/dist/assets/CashSettlementView-Bo3-VAwP.js similarity index 96% rename from dist/assets/CashSettlementView-DS-VnRJb.js rename to dist/assets/CashSettlementView-Bo3-VAwP.js index 45ac45c..b330936 100644 --- a/dist/assets/CashSettlementView-DS-VnRJb.js +++ b/dist/assets/CashSettlementView-Bo3-VAwP.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,u as d,ut as f,v as p}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{t as m}from"./BasicIcon-ba1FsUKx.js";import{i as ne,n as re}from"./format-C72AoJ2H.js";import{t as ie}from"./catalog-DvXpKfLO.js";import{A as ae,f as oe,r as h}from"./index-BSpFi5xB.js";import{t as se}from"./PageHeader-DpR4Zxvt.js";import{t as ce}from"./useRequirePricedOrder-CQ0zBqU7.js";var g=p({__name:`IconSuccessCircle`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(t,r)=>(n(),d(m,{icon:`vuesax-linear:tick-circle`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),le={class:`page cash-mobile-page mobile-only`},ue={class:`cash-page__scroll page__scroll`},_={class:`cash-page__success cash-page__success--done`},v={class:`cash-page__success-title`},y={class:`cash-page__success-subtitle`},b={class:`accounts-panel`},x={class:`accounts-panel__title`},S={class:`bank-card__head`},C={class:`bank-card__name`},w={class:`bank-card__icon`,"aria-hidden":`true`},T={class:`bank-card__field`},E={class:`bank-card__value`,dir:`ltr`},D={class:`bank-card__field`},O={class:`bank-card__value`,dir:`ltr`},k={class:`cash-page__footer`},A={class:`desktop-checkout-shell cash-desktop-page desktop-only`},j={class:`desktop-page__head`},M={class:`desktop-page__subtitle`},N={class:`cash-page__success cash-page__success--done`},P={class:`cash-page__success-title`},F={class:`accounts-panel`},I={class:`accounts-panel__title`},de={class:`desktop-grid-2`},L={class:`bank-card__head`},R={class:`bank-card__name`},z={class:`bank-card__icon`,"aria-hidden":`true`},B={class:`bank-card__field`},V={class:`bank-card__value`,dir:`ltr`},H={class:`bank-card__field`},fe={class:`bank-card__value`,dir:`ltr`},pe={class:`cash-desktop-page__actions`},U=te(p({__name:`CashSettlementView`,setup(te){let d=ae(),p=oe(),m=ie(),U=ee([]),{orderId:W,order:G}=ce(),K=o(()=>G.value?.companyName??``);i(W,async e=>{e&&!p.getOrderById(e)&&await p.fetchOrder(e)},{immediate:!0}),i(()=>G.value?.id,async e=>{if(!e||!G.value){U.value=[];return}m.companies.length||await m.loadCompanies(),U.value=await p.getBankAccountsForOrder(G.value)},{immediate:!0});let q=o(()=>G.value?.finalAmount?re(G.value.finalAmount):`—`),J=o(()=>{let e=G.value?.cashInvoiceExpiresAt;return e?`مهلت پرداخت این فاکتور تا ${ne(e)} است.`:`مبلغ فاکتور را به یکی از حسابهای زیر واریز و رسید را ثبت کنید.`}),Y=o(()=>{let e=K.value.replace(/^شرکت\s+/u,``);return e?`شماره حسابهای واریز — ${e}`:`شماره حسابهای واریز`});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(){d.replace(`/orders/${W.value}?track=1`)}function $(){d.replace(`/orders/${W.value}?track=1&receipt=1`)}return(i,o)=>(n(),s(l,null,[u(`div`,le,[a(se,{title:`تسویه نقدی`,"show-back":``,centered:``,onBack:o[0]||=e=>f(d).push(`/orders/${f(W)}`)}),u(`div`,ue,[u(`div`,_,[a(g,{size:56}),u(`p`,v,`مبلغ قابل پرداخت `+r(q.value),1),u(`p`,y,r(J.value),1)]),u(`section`,b,[u(`h2`,x,r(Y.value),1),(n(!0),s(l,null,e(U.value,e=>(n(),s(`article`,{key:e.id,class:`bank-card`},[u(`div`,S,[u(`span`,C,r(e.bankName),1),u(`span`,w,r(e.bankName.charAt(0)),1)]),u(`div`,T,[o[1]||=u(`span`,{class:`bank-card__label`},`شماره کارت`,-1),u(`strong`,E,r(X(e.cardNumber)),1)]),u(`div`,D,[o[2]||=u(`span`,{class:`bank-card__label`},`شماره شبا`,-1),u(`strong`,O,r(Z(e.iban)),1)])]))),128))])]),u(`div`,k,[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`,A,[u(`header`,j,[o[5]||=u(`h1`,{class:`desktop-page__title`},`تسویه نقدی`,-1),u(`p`,M,r(J.value),1)]),u(`div`,N,[a(g,{size:56}),u(`p`,P,`مبلغ قابل پرداخت `+r(q.value),1)]),u(`section`,F,[u(`h2`,I,r(Y.value),1),u(`div`,de,[(n(!0),s(l,null,e(U.value,e=>(n(),s(`article`,{key:e.id,class:`bank-card`},[u(`div`,L,[u(`span`,R,r(e.bankName),1),u(`span`,z,r(e.bankName.charAt(0)),1)]),u(`div`,B,[o[6]||=u(`span`,{class:`bank-card__label`},`شماره کارت`,-1),u(`strong`,V,r(X(e.cardNumber)),1)]),u(`div`,H,[o[7]||=u(`span`,{class:`bank-card__label`},`شماره شبا`,-1),u(`strong`,fe,r(Z(e.iban)),1)])]))),128))])]),u(`div`,pe,[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-c299caf6`]]);export{U 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,u as d,ut as f,v as p}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{t as m}from"./BasicIcon-ba1FsUKx.js";import{i as ne,n as re}from"./format-C72AoJ2H.js";import{t as ie}from"./catalog-DvXpKfLO.js";import{A as ae,f as oe,r as h}from"./index-BPUhS8CY.js";import{t as se}from"./PageHeader-CG1ktltl.js";import{t as ce}from"./useRequirePricedOrder-XmwhrUqA.js";var g=p({__name:`IconSuccessCircle`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(t,r)=>(n(),d(m,{icon:`vuesax-linear:tick-circle`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),le={class:`page cash-mobile-page mobile-only`},ue={class:`cash-page__scroll page__scroll`},_={class:`cash-page__success cash-page__success--done`},v={class:`cash-page__success-title`},y={class:`cash-page__success-subtitle`},b={class:`accounts-panel`},x={class:`accounts-panel__title`},S={class:`bank-card__head`},C={class:`bank-card__name`},w={class:`bank-card__icon`,"aria-hidden":`true`},T={class:`bank-card__field`},E={class:`bank-card__value`,dir:`ltr`},D={class:`bank-card__field`},O={class:`bank-card__value`,dir:`ltr`},k={class:`cash-page__footer`},A={class:`desktop-checkout-shell cash-desktop-page desktop-only`},j={class:`desktop-page__head`},M={class:`desktop-page__subtitle`},N={class:`cash-page__success cash-page__success--done`},P={class:`cash-page__success-title`},F={class:`accounts-panel`},I={class:`accounts-panel__title`},de={class:`desktop-grid-2`},L={class:`bank-card__head`},R={class:`bank-card__name`},z={class:`bank-card__icon`,"aria-hidden":`true`},B={class:`bank-card__field`},V={class:`bank-card__value`,dir:`ltr`},H={class:`bank-card__field`},fe={class:`bank-card__value`,dir:`ltr`},pe={class:`cash-desktop-page__actions`},U=te(p({__name:`CashSettlementView`,setup(te){let d=ae(),p=oe(),m=ie(),U=ee([]),{orderId:W,order:G}=ce(),K=o(()=>G.value?.companyName??``);i(W,async e=>{e&&!p.getOrderById(e)&&await p.fetchOrder(e)},{immediate:!0}),i(()=>G.value?.id,async e=>{if(!e||!G.value){U.value=[];return}m.companies.length||await m.loadCompanies(),U.value=await p.getBankAccountsForOrder(G.value)},{immediate:!0});let q=o(()=>G.value?.finalAmount?re(G.value.finalAmount):`—`),J=o(()=>{let e=G.value?.cashInvoiceExpiresAt;return e?`مهلت پرداخت این فاکتور تا ${ne(e)} است.`:`مبلغ فاکتور را به یکی از حسابهای زیر واریز و رسید را ثبت کنید.`}),Y=o(()=>{let e=K.value.replace(/^شرکت\s+/u,``);return e?`شماره حسابهای واریز — ${e}`:`شماره حسابهای واریز`});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(){d.replace(`/orders/${W.value}?track=1`)}function $(){d.replace(`/orders/${W.value}?track=1&receipt=1`)}return(i,o)=>(n(),s(l,null,[u(`div`,le,[a(se,{title:`تسویه نقدی`,"show-back":``,centered:``,onBack:o[0]||=e=>f(d).push(`/orders/${f(W)}`)}),u(`div`,ue,[u(`div`,_,[a(g,{size:56}),u(`p`,v,`مبلغ قابل پرداخت `+r(q.value),1),u(`p`,y,r(J.value),1)]),u(`section`,b,[u(`h2`,x,r(Y.value),1),(n(!0),s(l,null,e(U.value,e=>(n(),s(`article`,{key:e.id,class:`bank-card`},[u(`div`,S,[u(`span`,C,r(e.bankName),1),u(`span`,w,r(e.bankName.charAt(0)),1)]),u(`div`,T,[o[1]||=u(`span`,{class:`bank-card__label`},`شماره کارت`,-1),u(`strong`,E,r(X(e.cardNumber)),1)]),u(`div`,D,[o[2]||=u(`span`,{class:`bank-card__label`},`شماره شبا`,-1),u(`strong`,O,r(Z(e.iban)),1)])]))),128))])]),u(`div`,k,[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`,A,[u(`header`,j,[o[5]||=u(`h1`,{class:`desktop-page__title`},`تسویه نقدی`,-1),u(`p`,M,r(J.value),1)]),u(`div`,N,[a(g,{size:56}),u(`p`,P,`مبلغ قابل پرداخت `+r(q.value),1)]),u(`section`,F,[u(`h2`,I,r(Y.value),1),u(`div`,de,[(n(!0),s(l,null,e(U.value,e=>(n(),s(`article`,{key:e.id,class:`bank-card`},[u(`div`,L,[u(`span`,R,r(e.bankName),1),u(`span`,z,r(e.bankName.charAt(0)),1)]),u(`div`,B,[o[6]||=u(`span`,{class:`bank-card__label`},`شماره کارت`,-1),u(`strong`,V,r(X(e.cardNumber)),1)]),u(`div`,H,[o[7]||=u(`span`,{class:`bank-card__label`},`شماره شبا`,-1),u(`strong`,fe,r(Z(e.iban)),1)])]))),128))])]),u(`div`,pe,[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-c299caf6`]]);export{U as default}; \ No newline at end of file diff --git a/dist/assets/CatalogListView-DQPZqk2p.js b/dist/assets/CatalogListView-Cd3ZeII5.js similarity index 92% rename from dist/assets/CatalogListView-DQPZqk2p.js rename to dist/assets/CatalogListView-Cd3ZeII5.js index 2c9e617..f85fa93 100644 --- a/dist/assets/CatalogListView-DQPZqk2p.js +++ b/dist/assets/CatalogListView-Cd3ZeII5.js @@ -1 +1 @@ -import{F as e,M as t,Pt as n,U as r,_ as i,c as a,f as o,i as s,k as c,l,nt as u,t as d,u as f,ut as p,v as m}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{t as h}from"./catalog-DvXpKfLO.js";import{A as g,C as _,k as v}from"./index-BSpFi5xB.js";import{t as y}from"./EmptyState-DYhkpGhZ.js";import{t as b}from"./PageHeader-DpR4Zxvt.js";import{t as x}from"./SearchField-dVDn9y5S.js";import{t as S}from"./PageSkeleton-DYdjm4l9.js";import{t as C}from"./catalogNavigation-BwOBRghQ.js";var w={class:`page catalog-list-page`},T={class:`catalog-list-page__desk-head desktop-only`},E={class:`page__scroll page__scroll--with-nav catalog-list-page__scroll`},D={key:1,class:`catalog-list`},O=[`onClick`],k={class:`catalog-card__icon`},A={class:`catalog-card__info`},j={class:`catalog-card__count`},M=d(m({__name:`CatalogListView`,setup(d){let m=v(),M=g(),N=h(),P=u(!0),F=a(()=>m.params.companyId),I=a(()=>N.getCompany(F.value)),L=u(``),R=a(()=>N.fetchCatalogs(F.value,L.value));async function z(){P.value=!0,N.getCompany(F.value)||await N.loadCompanies(),await N.loadCatalogs(F.value),P.value=!1}c(z),r(F,z);function B(e){C(M,e)}function V(e){let t=N.getCatalog(e);return t?.productCount==null?N.fetchProducts(e).length:t.productCount}return(r,a)=>(t(),o(`div`,w,[i(b,{class:`mobile-only`,title:I.value?.name??`کالیتهها`,subtitle:`کالیته مورد نظر را انتخاب کنید`,"show-back":``,centered:``,onBack:a[0]||=e=>p(M).push(`/catalogs`)},null,8,[`title`]),l(`header`,T,[l(`h1`,null,n(I.value?.name??`کالیتهها`),1),a[2]||=l(`p`,null,`کالیته مورد نظر را انتخاب کنید`,-1)]),i(x,{modelValue:L.value,"onUpdate:modelValue":a[1]||=e=>L.value=e,placeholder:`جستجو بر اساس کد یا نام کالیته...`,class:`catalog-list-page__search`},null,8,[`modelValue`]),l(`div`,E,[P.value?(t(),f(S,{key:0,variant:`cards`,rows:5})):R.value.length>0?(t(),o(`div`,D,[(t(!0),o(s,null,e(R.value,e=>(t(),o(`button`,{key:e.id,type:`button`,class:`catalog-card`,onClick:t=>B(e.id)},[l(`span`,k,[i(_,{size:22})]),l(`div`,A,[l(`h3`,null,`کالیته کد `+n(e.code),1),l(`p`,null,n(e.name),1)]),l(`span`,j,n(V(e.id))+` محصول`,1)],8,O))),128))])):(t(),f(y,{key:2,variant:L.value?`search`:`catalogs`,message:L.value?`با این جستجو کالیتهای پیدا نشد`:`برای این شرکت هنوز کالیتهای ثبت نشده است`},null,8,[`variant`,`message`]))])]))}}),[[`__scopeId`,`data-v-a8edb49d`]]);export{M as default}; \ No newline at end of file +import{F as e,M as t,Pt as n,U as r,_ as i,c as a,f as o,i as s,k as c,l,nt as u,t as d,u as f,ut as p,v as m}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{t as h}from"./catalog-DvXpKfLO.js";import{A as g,C as _,k as v}from"./index-BPUhS8CY.js";import{t as y}from"./EmptyState-DYhkpGhZ.js";import{t as b}from"./PageHeader-CG1ktltl.js";import{t as x}from"./SearchField-dVDn9y5S.js";import{t as S}from"./PageSkeleton-DYdjm4l9.js";import{t as C}from"./catalogNavigation--EF0Gjvi.js";var w={class:`page catalog-list-page`},T={class:`catalog-list-page__desk-head desktop-only`},E={class:`page__scroll page__scroll--with-nav catalog-list-page__scroll`},D={key:1,class:`catalog-list`},O=[`onClick`],k={class:`catalog-card__icon`},A={class:`catalog-card__info`},j={class:`catalog-card__count`},M=d(m({__name:`CatalogListView`,setup(d){let m=v(),M=g(),N=h(),P=u(!0),F=a(()=>m.params.companyId),I=a(()=>N.getCompany(F.value)),L=u(``),R=a(()=>N.fetchCatalogs(F.value,L.value));async function z(){P.value=!0,N.getCompany(F.value)||await N.loadCompanies(),await N.loadCatalogs(F.value),P.value=!1}c(z),r(F,z);function B(e){C(M,e)}function V(e){let t=N.getCatalog(e);return t?.productCount==null?N.fetchProducts(e).length:t.productCount}return(r,a)=>(t(),o(`div`,w,[i(b,{class:`mobile-only`,title:I.value?.name??`کالیتهها`,subtitle:`کالیته مورد نظر را انتخاب کنید`,"show-back":``,centered:``,onBack:a[0]||=e=>p(M).push(`/catalogs`)},null,8,[`title`]),l(`header`,T,[l(`h1`,null,n(I.value?.name??`کالیتهها`),1),a[2]||=l(`p`,null,`کالیته مورد نظر را انتخاب کنید`,-1)]),i(x,{modelValue:L.value,"onUpdate:modelValue":a[1]||=e=>L.value=e,placeholder:`جستجو بر اساس کد یا نام کالیته...`,class:`catalog-list-page__search`},null,8,[`modelValue`]),l(`div`,E,[P.value?(t(),f(S,{key:0,variant:`cards`,rows:5})):R.value.length>0?(t(),o(`div`,D,[(t(!0),o(s,null,e(R.value,e=>(t(),o(`button`,{key:e.id,type:`button`,class:`catalog-card`,onClick:t=>B(e.id)},[l(`span`,k,[i(_,{size:22})]),l(`div`,A,[l(`h3`,null,`کالیته کد `+n(e.code),1),l(`p`,null,n(e.name),1)]),l(`span`,j,n(V(e.id))+` محصول`,1)],8,O))),128))])):(t(),f(y,{key:2,variant:L.value?`search`:`catalogs`,message:L.value?`با این جستجو کالیتهای پیدا نشد`:`برای این شرکت هنوز کالیتهای ثبت نشده است`},null,8,[`variant`,`message`]))])]))}}),[[`__scopeId`,`data-v-a8edb49d`]]);export{M as default}; \ No newline at end of file diff --git a/dist/assets/CatalogProductRedirectView-uVDifiH3.js b/dist/assets/CatalogProductRedirectView-Cqw6i2KP.js similarity index 57% rename from dist/assets/CatalogProductRedirectView-uVDifiH3.js rename to dist/assets/CatalogProductRedirectView-Cqw6i2KP.js index b0728c5..9095007 100644 --- a/dist/assets/CatalogProductRedirectView-uVDifiH3.js +++ b/dist/assets/CatalogProductRedirectView-Cqw6i2KP.js @@ -1 +1 @@ -import{M as e,_ as t,f as n,k as r,v as i}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{A as a,k as o}from"./index-BSpFi5xB.js";import{t as s}from"./PageSkeleton-DYdjm4l9.js";import{t as c}from"./catalogNavigation-BwOBRghQ.js";var l={class:`page`},u=i({__name:`CatalogProductRedirectView`,setup(i){let u=o(),d=a();return r(()=>{c(d,String(u.params.catalogId??``))}),(r,i)=>(e(),n(`div`,l,[t(s,{variant:`detail`})]))}});export{u as default}; \ No newline at end of file +import{M as e,_ as t,f as n,k as r,v as i}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{A as a,k as o}from"./index-BPUhS8CY.js";import{t as s}from"./PageSkeleton-DYdjm4l9.js";import{t as c}from"./catalogNavigation--EF0Gjvi.js";var l={class:`page`},u=i({__name:`CatalogProductRedirectView`,setup(i){let u=o(),d=a();return r(()=>{c(d,String(u.params.catalogId??``))}),(r,i)=>(e(),n(`div`,l,[t(s,{variant:`detail`})]))}});export{u as default}; \ No newline at end of file diff --git a/dist/assets/CatalogRequestsView-DIVhgqs8.js b/dist/assets/CatalogRequestsView-CeRYoz9Z.js similarity index 93% rename from dist/assets/CatalogRequestsView-DIVhgqs8.js rename to dist/assets/CatalogRequestsView-CeRYoz9Z.js index 8a22867..9342ebc 100644 --- a/dist/assets/CatalogRequestsView-DIVhgqs8.js +++ b/dist/assets/CatalogRequestsView-CeRYoz9Z.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{A as p}from"./index-BSpFi5xB.js";import{t as m}from"./PageHeader-DpR4Zxvt.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(`/catalogs`)}),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-9ea8c789`]]);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{A as p}from"./index-BPUhS8CY.js";import{t as m}from"./PageHeader-CG1ktltl.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(`/catalogs`)}),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-9ea8c789`]]);export{C as default}; \ No newline at end of file diff --git a/dist/assets/CatalogsHubView-D-PnPAt7.js b/dist/assets/CatalogsHubView-D2OZNmYr.js similarity index 95% rename from dist/assets/CatalogsHubView-D-PnPAt7.js rename to dist/assets/CatalogsHubView-D2OZNmYr.js index c46c92e..be31ea7 100644 --- a/dist/assets/CatalogsHubView-D-PnPAt7.js +++ b/dist/assets/CatalogsHubView-D2OZNmYr.js @@ -1 +1 @@ -import{At as e,F as t,M as n,Nt as r,Pt as i,_ as a,c as o,d as s,f as c,i as l,k as u,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 v}from"./catalog-DvXpKfLO.js";import{A as y,a as b,k as x}from"./index-BSpFi5xB.js";import{t as S}from"./IconChevronBack-DytWz6TD.js";import{t as ee}from"./SearchField-dVDn9y5S.js";import{t as te}from"./PageSkeleton-DYdjm4l9.js";import{i as ne,n as C,r as w,t as T}from"./catalogNavigation-BwOBRghQ.js";import{t as E}from"./crm-Bj4T2PId.js";import{t as D}from"./IconSearch-BS6uiAhj.js";import{t as O}from"./useGoBack-aBY3TtNx.js";var k={class:`page calite-hub`},A={class:`calite-hub__nav`},j={class:`calite-hub__nav-end`},M={class:`page__scroll page__scroll--with-nav calite-hub__scroll`},N={class:`calite-hub__chips`,role:`tablist`,"aria-label":`مرتبسازی کالیتهها`},P=[`onClick`],F={key:1,class:`calite-hub__empty`},I={key:2,class:`calite-hub__list`},L=[`onClick`],R={key:0,class:`calite-card__badge`},re={class:`calite-card__copy`,dir:`rtl`},z={class:`mr-4 text-white`},B={class:`text-lg font-bold`},V={class:`text-md`},H={class:`text-xs mt-4`},U=p(g({__name:`CatalogsHubView`,setup(p){let g=x(),U=y(),{goBack:W}=O(`/`),G=v(),K=E(),q=f([]),J=f([]),Y=f(!0),X=f(``),Z=f(null),Q=f(`all`),ie=[{id:`all`,label:`همه`},{id:`newest`,label:`جدیدترین`},{id:`popular`,label:`محبوبترین`},{id:`season`,label:`بر اساس فصل`}],ae=o(()=>{let e=C(q.value,J.value);return e.length?e:ne}),$=o(()=>w(ae.value,Q.value,X.value));u(async()=>{try{let e=await G.loadCompanies(),[t,n]=await Promise.all([Promise.all(e.map(e=>G.loadCatalogs(e.id))),K.loadBrowseProducts().catch(()=>[])]);q.value=t.flat(),J.value=n;let r=String(g.query.id??``);r&&q.value.some(e=>e.id===r)&&await T(U,r,J.value)}catch{q.value=[]}finally{Y.value=!1}});function oe(e){T(U,e,J.value)}function se(){Z.value?.focus()}function ce(e){let t=e.season===`winter`?`مناسب زمستان`:e.season===`summer`?`مناسب تابستان`:`مناسب چهار فصل`;return`${_(e.patternCount)} طرح • ${t}`}return(o,u)=>(n(),c(`div`,k,[d(`header`,A,[d(`button`,{type:`button`,class:`icon-btn mobile-only`,"aria-label":`بازگشت`,onClick:u[0]||=(...e)=>h(W)&&h(W)(...e)},[a(S,{size:20})]),u[2]||=d(`h1`,null,`کالیتهها`,-1),d(`div`,j,[a(b,{variant:`inline`,class:`mobile-only`}),d(`button`,{type:`button`,class:`icon-btn mobile-only`,"aria-label":`جستجو`,onClick:se},[a(D,{size:20})])])]),d(`div`,M,[u[4]||=d(`p`,{class:`calite-hub__lead`},`مجموعهای از بهترین پارچهها، در یک نگاه`,-1),a(ee,{ref_key:`searchFieldRef`,ref:Z,modelValue:X.value,"onUpdate:modelValue":u[1]||=e=>X.value=e,class:`calite-hub__search`,placeholder:`جستجوی نام کالیته...`},null,8,[`modelValue`]),d(`div`,N,[(n(),c(l,null,t(ie,t=>d(`button`,{key:t.id,type:`button`,class:e([`calite-chip`,{"is-on":Q.value===t.id}]),onClick:e=>Q.value=t.id},i(t.label),11,P)),64))]),Y.value?(n(),m(te,{key:0,variant:`cards`,rows:4})):$.value.length?(n(),c(`div`,I,[(n(!0),c(l,null,t($.value,e=>(n(),c(`button`,{key:e.id,type:`button`,class:`calite-card`,dir:`ltr`,onClick:t=>oe(e.id)},[d(`span`,{class:`calite-card__photo`,style:r(e.imageUrl?{backgroundImage:`url(${e.imageUrl})`}:void 0)},null,4),e.badge?(n(),c(`span`,R,i(e.badge===`new`?`جدید`:`پرفروش`),1)):s(``,!0),d(`div`,re,[u[3]||=d(`svg`,{class:`calite-card__arrow`,width:`12`,height:`16`,viewBox:`0 0 8 12`,fill:`none`,"aria-hidden":`true`},[d(`path`,{d:`M1.5 1.5 6 6l-4.5 4.5`,stroke:`#fff`,"stroke-width":`1.4`,"stroke-linecap":`round`,"stroke-linejoin":`round`})],-1),d(`div`,z,[d(`div`,B,i(e.title),1),d(`div`,V,i(e.subtitle),1),d(`div`,H,i(ce(e)),1)])])],8,L))),128))])):(n(),c(`p`,F,`کالیتهای یافت نشد.`))])]))}}),[[`__scopeId`,`data-v-daa79410`]]);export{U as default}; \ No newline at end of file +import{At as e,F as t,M as n,Nt as r,Pt as i,_ as a,c as o,d as s,f as c,i as l,k as u,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 v}from"./catalog-DvXpKfLO.js";import{A as y,a as b,k as x}from"./index-BPUhS8CY.js";import{t as S}from"./IconChevronBack-DytWz6TD.js";import{t as ee}from"./SearchField-dVDn9y5S.js";import{t as te}from"./PageSkeleton-DYdjm4l9.js";import{i as ne,n as C,r as w,t as T}from"./catalogNavigation--EF0Gjvi.js";import{t as E}from"./crm-BKPKhzCX.js";import{t as D}from"./IconSearch-BS6uiAhj.js";import{t as O}from"./useGoBack-BkqOD93C.js";var k={class:`page calite-hub`},A={class:`calite-hub__nav`},j={class:`calite-hub__nav-end`},M={class:`page__scroll page__scroll--with-nav calite-hub__scroll`},N={class:`calite-hub__chips`,role:`tablist`,"aria-label":`مرتبسازی کالیتهها`},P=[`onClick`],F={key:1,class:`calite-hub__empty`},I={key:2,class:`calite-hub__list`},L=[`onClick`],R={key:0,class:`calite-card__badge`},re={class:`calite-card__copy`,dir:`rtl`},z={class:`mr-4 text-white`},B={class:`text-lg font-bold`},V={class:`text-md`},H={class:`text-xs mt-4`},U=p(g({__name:`CatalogsHubView`,setup(p){let g=x(),U=y(),{goBack:W}=O(`/`),G=v(),K=E(),q=f([]),J=f([]),Y=f(!0),X=f(``),Z=f(null),Q=f(`all`),ie=[{id:`all`,label:`همه`},{id:`newest`,label:`جدیدترین`},{id:`popular`,label:`محبوبترین`},{id:`season`,label:`بر اساس فصل`}],ae=o(()=>{let e=C(q.value,J.value);return e.length?e:ne}),$=o(()=>w(ae.value,Q.value,X.value));u(async()=>{try{let e=await G.loadCompanies(),[t,n]=await Promise.all([Promise.all(e.map(e=>G.loadCatalogs(e.id))),K.loadBrowseProducts().catch(()=>[])]);q.value=t.flat(),J.value=n;let r=String(g.query.id??``);r&&q.value.some(e=>e.id===r)&&await T(U,r,J.value)}catch{q.value=[]}finally{Y.value=!1}});function oe(e){T(U,e,J.value)}function se(){Z.value?.focus()}function ce(e){let t=e.season===`winter`?`مناسب زمستان`:e.season===`summer`?`مناسب تابستان`:`مناسب چهار فصل`;return`${_(e.patternCount)} طرح • ${t}`}return(o,u)=>(n(),c(`div`,k,[d(`header`,A,[d(`button`,{type:`button`,class:`icon-btn mobile-only`,"aria-label":`بازگشت`,onClick:u[0]||=(...e)=>h(W)&&h(W)(...e)},[a(S,{size:20})]),u[2]||=d(`h1`,null,`کالیتهها`,-1),d(`div`,j,[a(b,{variant:`inline`,class:`mobile-only`}),d(`button`,{type:`button`,class:`icon-btn mobile-only`,"aria-label":`جستجو`,onClick:se},[a(D,{size:20})])])]),d(`div`,M,[u[4]||=d(`p`,{class:`calite-hub__lead`},`مجموعهای از بهترین پارچهها، در یک نگاه`,-1),a(ee,{ref_key:`searchFieldRef`,ref:Z,modelValue:X.value,"onUpdate:modelValue":u[1]||=e=>X.value=e,class:`calite-hub__search`,placeholder:`جستجوی نام کالیته...`},null,8,[`modelValue`]),d(`div`,N,[(n(),c(l,null,t(ie,t=>d(`button`,{key:t.id,type:`button`,class:e([`calite-chip`,{"is-on":Q.value===t.id}]),onClick:e=>Q.value=t.id},i(t.label),11,P)),64))]),Y.value?(n(),m(te,{key:0,variant:`cards`,rows:4})):$.value.length?(n(),c(`div`,I,[(n(!0),c(l,null,t($.value,e=>(n(),c(`button`,{key:e.id,type:`button`,class:`calite-card`,dir:`ltr`,onClick:t=>oe(e.id)},[d(`span`,{class:`calite-card__photo`,style:r(e.imageUrl?{backgroundImage:`url(${e.imageUrl})`}:void 0)},null,4),e.badge?(n(),c(`span`,R,i(e.badge===`new`?`جدید`:`پرفروش`),1)):s(``,!0),d(`div`,re,[u[3]||=d(`svg`,{class:`calite-card__arrow`,width:`12`,height:`16`,viewBox:`0 0 8 12`,fill:`none`,"aria-hidden":`true`},[d(`path`,{d:`M1.5 1.5 6 6l-4.5 4.5`,stroke:`#fff`,"stroke-width":`1.4`,"stroke-linecap":`round`,"stroke-linejoin":`round`})],-1),d(`div`,z,[d(`div`,B,i(e.title),1),d(`div`,V,i(e.subtitle),1),d(`div`,H,i(ce(e)),1)])])],8,L))),128))])):(n(),c(`p`,F,`کالیتهای یافت نشد.`))])]))}}),[[`__scopeId`,`data-v-daa79410`]]);export{U as default}; \ No newline at end of file diff --git a/dist/assets/CategoriesView-CbN6dNyL.css b/dist/assets/CategoriesView-CbN6dNyL.css new file mode 100644 index 0000000..d88055e --- /dev/null +++ b/dist/assets/CategoriesView-CbN6dNyL.css @@ -0,0 +1 @@ +.slot-banner[data-v-52e6211b]{isolation:isolate;border-radius:var(--radius-lg);background:linear-gradient(100deg, rgba(var(--color-primary-rgb), .75), rgba(var(--color-primary-rgb), .35)), #2f3430;color:#fff;background-position:50%;background-size:cover;flex-shrink:0;justify-content:flex-start;align-items:flex-end;min-height:148px;display:flex;position:relative;overflow:hidden}.slot-banner--photo[data-v-52e6211b]{aspect-ratio:2.35;min-height:156px;max-height:196px}.slot-banner--photo[data-v-52e6211b]:before{content:"";z-index:0;pointer-events:none;background:linear-gradient(#0000 12%,#0000002e 38%,#0000007a 66%,#000c 100%);position:absolute;inset:0}.slot-banner[data-v-52e6211b]:not(.slot-banner--photo):before{content:"";z-index:0;pointer-events:none;background:linear-gradient(270deg,#0000006b 0%,#0000002e 42%,#0000 72%);position:absolute;inset:0}.slot-banner__content[data-v-52e6211b]{z-index:1;text-align:start;flex-direction:column;gap:6px;width:100%;min-width:0;padding:18px 20px;display:flex;position:relative}.slot-banner__title[data-v-52e6211b]{text-shadow:0 1px 8px #00000073;margin:0;font-size:1.35rem;font-weight:700;line-height:1.3}.slot-banner__tagline[data-v-52e6211b]{opacity:.96;text-shadow:0 1px 6px #00000073;margin:0;font-size:.8125rem;line-height:1.55}.slot-banner__cta[data-v-52e6211b]{border-radius:var(--radius-sm);color:var(--color-primary);font:inherit;cursor:pointer;background:#ffffffeb;border:none;align-self:flex-start;margin-top:4px;padding:8px 14px;font-size:.8125rem;font-weight:700}.slot-banner__dots[data-v-52e6211b]{z-index:2;gap:6px;display:flex;position:absolute;bottom:10px;left:50%;transform:translate(-50%)}.slot-banner__dot[data-v-52e6211b]{cursor:pointer;background:#ffffff73;border:none;border-radius:999px;width:7px;height:7px;padding:0}.slot-banner__dot--active[data-v-52e6211b]{background:#fff;width:18px}.categories-page[data-v-f5361aa5]{background:var(--color-bg)}.cat-top[data-v-f5361aa5]{padding:10px var(--page-padding);background:var(--color-surface);color:var(--color-text);grid-template-columns:40px 1fr auto;align-items:center;gap:4px;display:grid}.cat-top__title[data-v-f5361aa5]{text-align:center;margin:0;font-size:1rem}.cat-top__actions[data-v-f5361aa5]{color:inherit;align-items:center;gap:0;display:flex}.icon-btn[data-v-f5361aa5]{cursor:pointer;width:40px;height:40px;color:var(--color-text);background:0 0;border:none;border-radius:12px;place-items:center;display:grid}.categories-page__hero[data-v-f5361aa5]{margin-bottom:4px}.cat-scroll[data-v-f5361aa5]{padding:16px var(--page-padding) 24px;flex-direction:column;gap:22px;display:flex}.block-title[data-v-f5361aa5]{margin:0;font-size:1.05rem}.block-sub[data-v-f5361aa5]{color:var(--color-text-muted);margin:4px 0 12px;font-size:.8rem}.usage-grid[data-v-f5361aa5]{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.usage-card[data-v-f5361aa5]{appearance:none;background:var(--color-surface);border-radius:var(--radius-md);text-align:start;cursor:pointer;width:100%;min-width:0;box-shadow:none;border:none;border:1px solid var(--color-border);flex-direction:column;align-items:stretch;margin:0;padding:0;font-family:inherit;line-height:normal;display:flex;overflow:hidden}.usage-card__image[data-v-f5361aa5]{aspect-ratio:4/3;background-color:#e8eceb;background-image:linear-gradient(140deg,#6b7280,#1f2937);background-position:50%;background-repeat:no-repeat;background-size:cover;flex:none;width:100%;height:auto;margin:0;position:relative}.usage-card__image--suit[data-v-f5361aa5]{background-image:linear-gradient(150deg,#2c3038,#111318)}.usage-card__image--shirt[data-v-f5361aa5]{background-image:linear-gradient(150deg,#e8eef3,#9aa8b5)}.usage-card__image--trousers[data-v-f5361aa5]{background-image:linear-gradient(150deg,#1a1d24,#0b0d12)}.usage-card__icon[data-v-f5361aa5]{background:var(--color-primary-soft);width:28px;height:28px;color:var(--color-primary);box-shadow:none;border:1px solid var(--color-border);border-radius:999px;place-items:center;display:grid;position:absolute;bottom:-12px;left:50%;transform:translate(-50%)}.usage-card__body[data-v-f5361aa5]{flex-direction:column;flex:auto;gap:6px;padding:18px 8px 12px;display:flex}.usage-card__body strong[data-v-f5361aa5]{font-size:.72rem;line-height:1.5}.usage-card__link[data-v-f5361aa5]{color:var(--color-text-muted);align-items:center;gap:2px;font-size:.65rem;display:inline-flex}.season-stack[data-v-f5361aa5]{flex-direction:column;gap:10px;display:flex}.season-card[data-v-f5361aa5]{isolation:isolate;appearance:none;border-radius:var(--radius-lg);text-align:start;cursor:pointer;width:100%;min-height:148px;box-shadow:none;border:none;border:1px solid var(--color-border);background-color:#d6c3a8;background-image:linear-gradient(160deg,#d6c3a8,#8b7355);background-position:top;background-repeat:no-repeat;background-size:cover;justify-content:flex-start;align-items:flex-end;margin:0;padding:14px 16px;font-family:inherit;display:flex;position:relative;overflow:hidden}.season-card--banner[data-v-f5361aa5]{aspect-ratio:2.35;background-position:top;background-size:cover;justify-content:flex-start;align-items:stretch;min-height:156px;padding:0}.season-card--summer[data-v-f5361aa5]{background-image:linear-gradient(160deg,#f3e6c8,#c4a574)}.season-card--winter[data-v-f5361aa5]{background-image:linear-gradient(160deg,#cfd6de,#7d8b99)}.season-card--all_season[data-v-f5361aa5]{background-image:linear-gradient(160deg,#efe6d6,#b9a48a)}.season-card__content[data-v-f5361aa5]{z-index:1;max-width:58%;padding:14px 16px;position:relative}.season-card--banner .season-card__content[data-v-f5361aa5]{flex-direction:column;justify-content:flex-end;align-self:stretch;width:100%;max-width:none;min-height:100%;margin-top:auto;padding:14px 16px;display:flex}.season-card__content strong[data-v-f5361aa5]{color:var(--color-text);font-size:1.05rem;font-weight:700;display:block}.season-card__title-row[data-v-f5361aa5]{align-items:center;gap:8px;margin-bottom:6px;display:flex}.season-card__icon[data-v-f5361aa5]{background:color-mix(in srgb, var(--color-surface) 80%, transparent);width:28px;height:28px;color:var(--color-primary);border-radius:999px;flex-shrink:0;place-items:center;display:grid}.season-card--banner .season-card__content strong[data-v-f5361aa5],.season-card--banner .season-card__content p[data-v-f5361aa5],.season-card--banner .season-card__link[data-v-f5361aa5]{color:#fff;text-shadow:0 1px 2px #0000008c,0 2px 12px #00000059}.season-card--banner .season-card__icon[data-v-f5361aa5]{background:#ffffffeb}.season-card__content p[data-v-f5361aa5]{color:var(--color-text-muted);margin:0 0 10px;font-size:.75rem;line-height:1.7}.season-card__link[data-v-f5361aa5]{color:var(--color-text-muted);align-items:center;gap:2px;font-size:.72rem;font-weight:600;display:inline-flex}.feature-row[data-v-f5361aa5]{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.feature-card[data-v-f5361aa5]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;flex-direction:row;align-items:center;gap:8px;min-width:0;padding:10px 8px;display:flex}.feature-card--link[data-v-f5361aa5]{cursor:pointer}.feature-card__icon[data-v-f5361aa5]{width:22px;height:22px;color:var(--color-text);flex-shrink:0;place-items:center;display:grid}.feature-card__text[data-v-f5361aa5]{text-align:start;flex-direction:column;gap:2px;min-width:0;display:flex}.feature-card__text strong[data-v-f5361aa5]{color:var(--color-text);font-size:.6875rem;font-weight:700;line-height:1.35}.feature-card__text span[data-v-f5361aa5]{color:var(--color-text-muted);font-size:.625rem;line-height:1.35}@media (width>=768px){.categories-page[data-v-f5361aa5]{max-width:var(--content-max-width);width:100%;padding:8px var(--page-padding) 0;box-sizing:border-box;margin-inline:auto}.cat-scroll[data-v-f5361aa5]{gap:28px;padding:8px 0 28px}.block-title[data-v-f5361aa5]{font-size:1.125rem}.block-sub[data-v-f5361aa5]{margin-bottom:14px;font-size:.875rem}.usage-grid[data-v-f5361aa5]{gap:16px}.usage-card__body strong[data-v-f5361aa5]{font-size:.8125rem}.usage-card__link[data-v-f5361aa5]{font-size:.75rem}.season-stack[data-v-f5361aa5]{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.season-card[data-v-f5361aa5]{min-height:156px}.feature-row[data-v-f5361aa5]{gap:14px}.feature-card[data-v-f5361aa5]{border-radius:14px;padding:14px 12px}.feature-card__text strong[data-v-f5361aa5]{font-size:.8125rem}.feature-card__text span[data-v-f5361aa5]{font-size:.75rem}} diff --git a/dist/assets/CategoriesView-Cwu5lM5P.js b/dist/assets/CategoriesView-Cwu5lM5P.js deleted file mode 100644 index 280413f..0000000 --- a/dist/assets/CategoriesView-Cwu5lM5P.js +++ /dev/null @@ -1 +0,0 @@ -import{At as e,F as t,M as n,Nt as r,Pt as i,R as a,_ as o,d as s,f as c,g as l,i as u,k as d,l as f,nt as p,t as ee,u as m,ut as h,v as g}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{l as _}from"./BasicIcon-ba1FsUKx.js";import{A as te,C as v,a as y,c as ne,s as b,v as re}from"./index-BSpFi5xB.js";import{t as ie}from"./IconChevronBack-DytWz6TD.js";import{t as x}from"./IconDiamond-CCzZ7nPM.js";import{t as S}from"./PageSkeleton-DYdjm4l9.js";import{t as C}from"./crm-Bj4T2PId.js";import{t as w}from"./IconSearch-BS6uiAhj.js";import{t as T}from"./useGoBack-aBY3TtNx.js";import{n as E,t as D}from"./categoryIcons-D22MgodO.js";var O={class:`page categories-page`},k={class:`cat-top mobile-only`},A={class:`cat-top__actions`},j={class:`page__scroll page__scroll--with-nav cat-scroll`},M={key:0},N={class:`usage-grid`},P=[`onClick`],F={key:0,class:`usage-card__icon`},I={class:`usage-card__body`},L={key:0},R={key:1,class:`usage-card__link`},z={class:`season-stack`},B=[`onClick`],ae={class:`season-card__content`},V={key:0,class:`season-card__title-row`},H={key:0,class:`season-card__icon`},U={key:1},W={key:1},G={key:2,class:`season-card__link`},K={class:`feature-row`,"aria-label":`ویژگیها`},q={class:`feature-card`},J={class:`feature-card__icon`,"aria-hidden":`true`},oe={class:`feature-card`},se={class:`feature-card__icon`,"aria-hidden":`true`},ce={class:`feature-card__icon`,"aria-hidden":`true`},Y=ee(g({__name:`CategoriesView`,setup(ee){let g=te(),{goBack:Y}=T(`/`),le=C(),X=p([]),Z=p([]),Q=p(!0),$=p(null);function ue(e){return e.icon||(e.id===`summer`?`bolt`:e.id===`winter`?`feather`:`diamond`)}d(async()=>{try{let e=await le.loadCategories();X.value=e.usage,Z.value=e.seasons}catch(e){$.value=e instanceof Error?e.message:`بارگذاری دستهها ناموفق بود.`}finally{Q.value=!1}});function de(e){g.push({path:`/products`,query:{categoryId:e,filterAxis:`usage`}})}function fe(e){g.push({path:`/products`,query:{season:e,filterAxis:`season`}})}return(d,p)=>(n(),c(`div`,O,[f(`header`,k,[f(`button`,{type:`button`,class:`icon-btn`,"aria-label":`بازگشت`,onClick:p[0]||=(...e)=>h(Y)&&h(Y)(...e)},[o(ie,{size:20})]),p[5]||=f(`h1`,{class:`cat-top__title`},`دستهبندیها`,-1),f(`div`,A,[o(y,{variant:`inline`}),f(`button`,{type:`button`,class:`icon-btn`,"aria-label":`جستجو`,onClick:p[1]||=e=>h(g).push({path:`/products`,query:{q:``}})},[o(w,{size:20})]),f(`button`,{type:`button`,class:`icon-btn`,"aria-label":`اعلانها`,onClick:p[2]||=e=>h(g).push(`/profile/notifications`)},[o(ne,{size:20})])])]),p[13]||=f(`header`,{class:`desktop-page__head desktop-only`},[f(`h1`,{class:`desktop-page__title`},`دستهبندیها`),f(`p`,{class:`desktop-page__subtitle`},`دسته موردنظر خود را انتخاب کنید`)],-1),f(`div`,j,[$.value?(n(),c(`p`,M,i($.value),1)):Q.value?(n(),m(S,{key:1,variant:`grid`})):(n(),c(u,{key:2},[f(`section`,null,[p[6]||=f(`h2`,{class:`block-title`},`انتخاب بر اساس کاربرد`,-1),p[7]||=f(`p`,{class:`block-sub`},`دسته موردنظر خود را انتخاب کنید`,-1),f(`div`,N,[(n(!0),c(u,null,t(X.value,t=>(n(),c(`button`,{key:t.id,type:`button`,class:`usage-card`,onClick:e=>de(t.id)},[f(`div`,{class:e([`usage-card__image`,`usage-card__image--${t.id}`]),style:r(t.imageUrl?{backgroundImage:`url(${t.imageUrl})`}:void 0)},[t.showIcon===!1?s(``,!0):(n(),c(`span`,F,[(n(),m(a(h(D)(h(E)(t),v)),{size:18}))]))],6),f(`div`,I,[t.showTitle===!1?s(``,!0):(n(),c(`strong`,L,i(t.title),1)),t.showSubtitle===!1?s(``,!0):(n(),c(`span`,R,[l(i(t.subtitle||`مشاهده محصولات`)+` `,1),o(b,{size:14})]))])],8,P))),128))])]),f(`section`,null,[p[8]||=f(`h2`,{class:`block-title`},`انتخاب بر اساس فصل`,-1),p[9]||=f(`p`,{class:`block-sub`},`بر اساس فصل مناسب، پارچه دلخواه را پیدا کنید`,-1),f(`div`,z,[(n(!0),c(u,null,t(Z.value,t=>(n(),c(`button`,{key:t.id,type:`button`,class:e([`season-card`,[`season-card--${t.id}`,{"season-card--banner":!!t.imageUrl}]]),style:r(t.imageUrl?{backgroundImage:`url(${t.imageUrl})`}:void 0),onClick:e=>fe(t.id)},[f(`div`,ae,[t.showTitle!==!1||t.showIcon!==!1?(n(),c(`div`,V,[t.showIcon===!1?s(``,!0):(n(),c(`span`,H,[(n(),m(a(h(D)(ue(t),x)),{size:16}))])),t.showTitle===!1?s(``,!0):(n(),c(`strong`,U,i(t.title),1))])):s(``,!0),t.showDescription===!1?s(``,!0):(n(),c(`p`,W,i(t.description),1)),t.showCta===!1?s(``,!0):(n(),c(`span`,G,[l(i(t.ctaLabel||`مشاهده محصولات`)+` `,1),o(b,{size:14})]))])],14,B))),128))])]),f(`section`,K,[f(`div`,q,[f(`span`,J,[o(re,{size:22})]),p[10]||=f(`div`,{class:`feature-card__text`},[f(`strong`,null,`پشتیبانی اختصاصی`),f(`span`,null,`در کنار شما هستیم`)],-1)]),f(`div`,oe,[f(`span`,se,[o(x,{size:22})]),p[11]||=f(`div`,{class:`feature-card__text`},[f(`strong`,null,`مزایای مشتریان ویژه`),f(`span`,null,`بر اساس سطح شما`)],-1)]),f(`div`,{class:`feature-card feature-card--link`,role:`button`,tabindex:`0`,onClick:p[3]||=e=>h(g).push(`/products`),onKeydown:p[4]||=_(e=>h(g).push(`/products`),[`enter`])},[f(`span`,ce,[o(v,{size:22})]),p[12]||=f(`div`,{class:`feature-card__text`},[f(`strong`,null,`درخواست کالیته فیزیکی`),f(`span`,null,`کالیته را دریافت کنید`)],-1)],32)])],64))])]))}}),[[`__scopeId`,`data-v-cf5be167`]]);export{Y as default}; \ No newline at end of file diff --git a/dist/assets/CategoriesView-CyqqIlyd.css b/dist/assets/CategoriesView-CyqqIlyd.css deleted file mode 100644 index 9d03933..0000000 --- a/dist/assets/CategoriesView-CyqqIlyd.css +++ /dev/null @@ -1 +0,0 @@ -.categories-page[data-v-cf5be167]{background:var(--color-bg)}.cat-top[data-v-cf5be167]{padding:10px var(--page-padding);background:var(--color-surface);color:var(--color-text);grid-template-columns:40px 1fr auto;align-items:center;gap:4px;display:grid}.cat-top__title[data-v-cf5be167]{text-align:center;margin:0;font-size:1rem}.cat-top__actions[data-v-cf5be167]{color:inherit;align-items:center;gap:0;display:flex}.icon-btn[data-v-cf5be167]{cursor:pointer;width:40px;height:40px;color:var(--color-text);background:0 0;border:none;border-radius:12px;place-items:center;display:grid}.cat-scroll[data-v-cf5be167]{padding:16px var(--page-padding) 24px;flex-direction:column;gap:22px;display:flex}.block-title[data-v-cf5be167]{margin:0;font-size:1.05rem}.block-sub[data-v-cf5be167]{color:var(--color-text-muted);margin:4px 0 12px;font-size:.8rem}.usage-grid[data-v-cf5be167]{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.usage-card[data-v-cf5be167]{appearance:none;background:var(--color-surface);border-radius:var(--radius-md);text-align:start;cursor:pointer;width:100%;min-width:0;box-shadow:none;border:none;border:1px solid var(--color-border);flex-direction:column;align-items:stretch;margin:0;padding:0;font-family:inherit;line-height:normal;display:flex;overflow:hidden}.usage-card__image[data-v-cf5be167]{aspect-ratio:4/3;background-color:#e8eceb;background-image:linear-gradient(140deg,#6b7280,#1f2937);background-position:50%;background-repeat:no-repeat;background-size:cover;flex:none;width:100%;height:auto;margin:0;position:relative}.usage-card__image--suit[data-v-cf5be167]{background-image:linear-gradient(150deg,#2c3038,#111318)}.usage-card__image--shirt[data-v-cf5be167]{background-image:linear-gradient(150deg,#e8eef3,#9aa8b5)}.usage-card__image--trousers[data-v-cf5be167]{background-image:linear-gradient(150deg,#1a1d24,#0b0d12)}.usage-card__icon[data-v-cf5be167]{background:var(--color-primary-soft);width:28px;height:28px;color:var(--color-primary);box-shadow:none;border:1px solid var(--color-border);border-radius:999px;place-items:center;display:grid;position:absolute;bottom:-12px;left:50%;transform:translate(-50%)}.usage-card__body[data-v-cf5be167]{flex-direction:column;flex:auto;gap:6px;padding:18px 8px 12px;display:flex}.usage-card__body strong[data-v-cf5be167]{font-size:.72rem;line-height:1.5}.usage-card__link[data-v-cf5be167]{color:var(--color-text-muted);align-items:center;gap:2px;font-size:.65rem;display:inline-flex}.season-stack[data-v-cf5be167]{flex-direction:column;gap:10px;display:flex}.season-card[data-v-cf5be167]{isolation:isolate;appearance:none;border-radius:var(--radius-lg);text-align:start;cursor:pointer;width:100%;min-height:148px;box-shadow:none;border:none;border:1px solid var(--color-border);background-color:#d6c3a8;background-image:linear-gradient(160deg,#d6c3a8,#8b7355);background-position:top;background-repeat:no-repeat;background-size:cover;justify-content:flex-start;align-items:flex-end;margin:0;padding:14px 16px;font-family:inherit;display:flex;position:relative;overflow:hidden}.season-card--banner[data-v-cf5be167]{aspect-ratio:2.35;background-position:top;background-size:cover;justify-content:flex-start;align-items:stretch;min-height:156px;padding:0}.season-card--summer[data-v-cf5be167]{background-image:linear-gradient(160deg,#f3e6c8,#c4a574)}.season-card--winter[data-v-cf5be167]{background-image:linear-gradient(160deg,#cfd6de,#7d8b99)}.season-card--all_season[data-v-cf5be167]{background-image:linear-gradient(160deg,#efe6d6,#b9a48a)}.season-card__content[data-v-cf5be167]{z-index:1;max-width:58%;padding:14px 16px;position:relative}.season-card--banner .season-card__content[data-v-cf5be167]{flex-direction:column;justify-content:flex-end;align-self:stretch;width:100%;max-width:none;min-height:100%;margin-top:auto;padding:14px 16px;display:flex}.season-card__content strong[data-v-cf5be167]{color:var(--color-text);font-size:1.05rem;font-weight:700;display:block}.season-card__title-row[data-v-cf5be167]{align-items:center;gap:8px;margin-bottom:6px;display:flex}.season-card__icon[data-v-cf5be167]{background:color-mix(in srgb, var(--color-surface) 80%, transparent);width:28px;height:28px;color:var(--color-primary);border-radius:999px;flex-shrink:0;place-items:center;display:grid}.season-card--banner .season-card__content strong[data-v-cf5be167],.season-card--banner .season-card__content p[data-v-cf5be167],.season-card--banner .season-card__link[data-v-cf5be167]{color:#fff;text-shadow:0 1px 2px #0000008c,0 2px 12px #00000059}.season-card--banner .season-card__icon[data-v-cf5be167]{background:#ffffffeb}.season-card__content p[data-v-cf5be167]{color:var(--color-text-muted);margin:0 0 10px;font-size:.75rem;line-height:1.7}.season-card__link[data-v-cf5be167]{color:var(--color-text-muted);align-items:center;gap:2px;font-size:.72rem;font-weight:600;display:inline-flex}.feature-row[data-v-cf5be167]{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.feature-card[data-v-cf5be167]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;flex-direction:row;align-items:center;gap:8px;min-width:0;padding:10px 8px;display:flex}.feature-card--link[data-v-cf5be167]{cursor:pointer}.feature-card__icon[data-v-cf5be167]{width:22px;height:22px;color:var(--color-text);flex-shrink:0;place-items:center;display:grid}.feature-card__text[data-v-cf5be167]{text-align:start;flex-direction:column;gap:2px;min-width:0;display:flex}.feature-card__text strong[data-v-cf5be167]{color:var(--color-text);font-size:.6875rem;font-weight:700;line-height:1.35}.feature-card__text span[data-v-cf5be167]{color:var(--color-text-muted);font-size:.625rem;line-height:1.35}@media (width>=768px){.categories-page[data-v-cf5be167]{max-width:var(--content-max-width);width:100%;padding:8px var(--page-padding) 0;box-sizing:border-box;margin-inline:auto}.cat-scroll[data-v-cf5be167]{gap:28px;padding:8px 0 28px}.block-title[data-v-cf5be167]{font-size:1.125rem}.block-sub[data-v-cf5be167]{margin-bottom:14px;font-size:.875rem}.usage-grid[data-v-cf5be167]{gap:16px}.usage-card__body strong[data-v-cf5be167]{font-size:.8125rem}.usage-card__link[data-v-cf5be167]{font-size:.75rem}.season-stack[data-v-cf5be167]{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.season-card[data-v-cf5be167]{min-height:156px}.feature-row[data-v-cf5be167]{gap:14px}.feature-card[data-v-cf5be167]{border-radius:14px;padding:14px 12px}.feature-card__text strong[data-v-cf5be167]{font-size:.8125rem}.feature-card__text span[data-v-cf5be167]{font-size:.75rem}} diff --git a/dist/assets/CategoriesView-W_yvCpvE.js b/dist/assets/CategoriesView-W_yvCpvE.js new file mode 100644 index 0000000..841e7b1 --- /dev/null +++ b/dist/assets/CategoriesView-W_yvCpvE.js @@ -0,0 +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}from"./BasicIcon-ba1FsUKx.js";import{A as S,C,a as w,c as T,s as E,v as D}from"./index-BPUhS8CY.js";import{t as O}from"./IconChevronBack-DytWz6TD.js";import{t as k}from"./IconDiamond-CCzZ7nPM.js";import{t as A}from"./PageSkeleton-DYdjm4l9.js";import{t as j}from"./crm-BKPKhzCX.js";import{t as M}from"./IconSearch-BS6uiAhj.js";import{t as N}from"./useGoBack-BkqOD93C.js";import{n as P,r as ee,t as F}from"./useSlotBanners-DB1JMbZH.js";var I=[`aria-label`],L={class:`slot-banner__content`},R={key:0,class:`slot-banner__title`},z={key:1,class:`slot-banner__tagline`},B={key:0,class:`slot-banner__dots`,role:`tablist`,"aria-label":`بنرها`},V=[`aria-label`,`aria-selected`,`onClick`],H=g(y({__name:`AppSlotBanner`,props:{bannerSlot:{},hideWhenEmpty:{type:Boolean,default:!0}},setup(o){let s=o,d=S(),{banners:p,loading:g}=F(s.bannerSlot),_=h(0),y=c(()=>p.value[_.value]??null),x=c(()=>{let e=y.value?.imageUrl?.trim();if(e)return{backgroundImage:`url(${e})`}});function C(){let e=y.value?.ctaLink?.trim();if(e){if(/^https?:\/\//i.test(e)){window.location.assign(e);return}d.push(e)}}function w(e){p.value.length&&(_.value=(e%p.value.length+p.value.length)%p.value.length)}return(s,c)=>!o.hideWhenEmpty||y.value?n((r(),u(`section`,{key:0,class:e([`slot-banner`,{"slot-banner--photo":!!y.value?.imageUrl}]),style:i(x.value),"aria-label":y.value?.title||`بنر`},[y.value?(r(),u(f,{key:0},[m(`div`,L,[y.value.showTitle!==!1&&y.value.title?(r(),u(`h2`,R,a(y.value.title),1)):l(``,!0),y.value.showSubtitle!==!1&&y.value.subtitle?(r(),u(`p`,z,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:C},a(y.value.ctaLabel),1)):l(``,!0)]),v(p).length>1?(r(),u(`div`,B,[(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:e=>w(n)},null,10,V))),128))])):l(``,!0)],64)):l(``,!0)],14,I)),[[b,!v(g)&&y.value]]):l(``,!0)}}),[[`__scopeId`,`data-v-52e6211b`]]),U={class:`page categories-page`},W={class:`cat-top mobile-only`},G={class:`cat-top__actions`},K={class:`page__scroll page__scroll--with-nav cat-scroll`},q={key:0},J={class:`usage-grid`},Y=[`onClick`],te={key:0,class:`usage-card__icon`},X={class:`usage-card__body`},Z={key:0},Q={key:1,class:`usage-card__link`},ne={class:`season-stack`},re=[`onClick`],ie={class:`season-card__content`},ae={key:0,class:`season-card__title-row`},oe={key:0,class:`season-card__icon`},se={key:1},$={key:1},ce={key:2,class:`season-card__link`},le={class:`feature-row`,"aria-label":`ویژگیها`},ue={class:`feature-card`},de={class:`feature-card__icon`,"aria-hidden":`true`},fe={class:`feature-card`},pe={class:`feature-card__icon`,"aria-hidden":`true`},me={class:`feature-card__icon`,"aria-hidden":`true`},he=g(y({__name:`CategoriesView`,setup(n){let c=S(),{goBack:g}=N(`/`),y=j(),b=h([]),F=h([]),I=h(!0),L=h(null);function R(e){return e.icon||(e.id===`summer`?`bolt`:e.id===`winter`?`feather`:`diamond`)}p(async()=>{try{let e=await y.loadCategories();b.value=e.usage,F.value=e.seasons}catch(e){L.value=e instanceof Error?e.message:`بارگذاری دستهها ناموفق بود.`}finally{I.value=!1}});function z(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`,U,[m(`header`,W,[m(`button`,{type:`button`,class:`icon-btn`,"aria-label":`بازگشت`,onClick:p[0]||=(...e)=>v(g)&&v(g)(...e)},[s(O,{size:20})]),p[5]||=m(`h1`,{class:`cat-top__title`},`دستهبندیها`,-1),m(`div`,G,[s(w,{variant:`inline`}),m(`button`,{type:`button`,class:`icon-btn`,"aria-label":`جستجو`,onClick:p[1]||=e=>v(c).push({path:`/products`,query:{q:``}})},[s(M,{size:20})]),m(`button`,{type:`button`,class:`icon-btn`,"aria-label":`اعلانها`,onClick:p[2]||=e=>v(c).push(`/profile/notifications`)},[s(T,{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`,K,[L.value?(r(),u(`p`,q,a(L.value),1)):I.value?(r(),_(A,{key:1,variant:`grid`})):(r(),u(f,{key:2},[s(H,{"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`,J,[(r(!0),u(f,null,t(b.value,t=>(r(),u(`button`,{key:t.id,type:`button`,class:`usage-card`,onClick:e=>z(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`,te,[(r(),_(o(v(P)(v(ee)(t),C)),{size:18}))]))],6),m(`div`,X,[t.showTitle===!1?l(``,!0):(r(),u(`strong`,Z,a(t.title),1)),t.showSubtitle===!1?l(``,!0):(r(),u(`span`,Q,[d(a(t.subtitle||`مشاهده محصولات`)+` `,1),s(E,{size:14})]))])],8,Y))),128))])]),m(`section`,null,[p[8]||=m(`h2`,{class:`block-title`},`انتخاب بر اساس فصل`,-1),p[9]||=m(`p`,{class:`block-sub`},`بر اساس فصل مناسب، پارچه دلخواه را پیدا کنید`,-1),m(`div`,ne,[(r(!0),u(f,null,t(F.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`,ie,[t.showTitle!==!1||t.showIcon!==!1?(r(),u(`div`,ae,[t.showIcon===!1?l(``,!0):(r(),u(`span`,oe,[(r(),_(o(v(P)(R(t),k)),{size:16}))])),t.showTitle===!1?l(``,!0):(r(),u(`strong`,se,a(t.title),1))])):l(``,!0),t.showDescription===!1?l(``,!0):(r(),u(`p`,$,a(t.description),1)),t.showCta===!1?l(``,!0):(r(),u(`span`,ce,[d(a(t.ctaLabel||`مشاهده محصولات`)+` `,1),s(E,{size:14})]))])],14,re))),128))])]),m(`section`,le,[m(`div`,ue,[m(`span`,de,[s(D,{size:22})]),p[10]||=m(`div`,{class:`feature-card__text`},[m(`strong`,null,`پشتیبانی اختصاصی`),m(`span`,null,`در کنار شما هستیم`)],-1)]),m(`div`,fe,[m(`span`,pe,[s(k,{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]||=x(e=>v(c).push(`/products`),[`enter`])},[m(`span`,me,[s(C,{size:22})]),p[12]||=m(`div`,{class:`feature-card__text`},[m(`strong`,null,`درخواست کالیته فیزیکی`),m(`span`,null,`کالیته را دریافت کنید`)],-1)],32)])],64))])]))}}),[[`__scopeId`,`data-v-f5361aa5`]]);export{he as default}; \ No newline at end of file diff --git a/dist/assets/CheckFormView-CjBqYDEf.js b/dist/assets/CheckFormView-iRMyj181.js similarity index 97% rename from dist/assets/CheckFormView-CjBqYDEf.js rename to dist/assets/CheckFormView-iRMyj181.js index ba9c8db..9ac5f9c 100644 --- a/dist/assets/CheckFormView-CjBqYDEf.js +++ b/dist/assets/CheckFormView-iRMyj181.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-ba1FsUKx.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{A as oe,f as se,r as ce,x as le}from"./index-BSpFi5xB.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-DpR4Zxvt.js";import{t as pe}from"./useRequirePricedOrder-CQ0zBqU7.js";import{t as x}from"./BaseInput-CpE3bVJZ.js";import{t as me}from"./CurrencyInput-Cu2dRPFo.js";import{t as he}from"./PersianDateInput-Dh05So9z.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=oe(),m=se(),{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(le,{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(ce,{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-ba1FsUKx.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{A as oe,f as se,r as ce,x as le}from"./index-BPUhS8CY.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-CG1ktltl.js";import{t as pe}from"./useRequirePricedOrder-XmwhrUqA.js";import{t as x}from"./BaseInput-CpE3bVJZ.js";import{t as me}from"./CurrencyInput-Cu2dRPFo.js";import{t as he}from"./PersianDateInput-Dh05So9z.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=oe(),m=se(),{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(le,{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(ce,{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-CtMGWM5e.js b/dist/assets/CheckListView-CdyymO5t.js similarity index 98% rename from dist/assets/CheckListView-CtMGWM5e.js rename to dist/assets/CheckListView-CdyymO5t.js index a0a0583..e818dfd 100644 --- a/dist/assets/CheckListView-CtMGWM5e.js +++ b/dist/assets/CheckListView-CdyymO5t.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{A as re,f as ie,k as ae,l as oe,n as se,p as ce,r as y}from"./index-BSpFi5xB.js";import{t as b}from"./EmptyState-DYhkpGhZ.js";import{t as x}from"./IconChevronBack-DytWz6TD.js";import{t as le}from"./FormErrorBanner-Ud1D04xf.js";import{t as ue}from"./useRequirePricedOrder-CQ0zBqU7.js";var S=Object.defineProperty,C=(e,t)=>{let n={};for(var r in e)S(n,r,{get:e[r],enumerable:!0});return t||S(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`},w={class:`summary-card__value`},T={class:`summary-card`},E={class:`summary-card__value`},D={key:0,class:`summary-card__status`},O={key:1,class:`summary-card__status summary-card__status--warn`},k={class:`summary-card__value`},A={key:0,class:`summary-card__hint`},j={class:`checks-list`},M={class:`check-card__menu-wrap`},N=[`onClick`],P={key:1,class:`check-card__menu`},F=[`onClick`],I={class:`check-card__body`},ve={class:`check-card__title`},ye={class:`check-card__amount`},be={class:`check-card__date`},xe={class:`check-card__thumb-wrap`},Se=[`src`],Ce={key:1,class:`check-card__thumb check-card__thumb--empty`},we={class:`rass-panel`},Te={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`},L={class:`desktop-two-col`},ke={class:`desktop-two-col__main`},Ae={class:`desktop-table-wrap`},je={class:`desktop-table-scroll`},Me={class:`desktop-table check-list-desktop__table`},Ne={key:0,scope:`col`},Pe=[`src`],Fe={key:1},Ie={class:`check-list-desktop__amount`},Le={key:0},Re=[`onClick`],ze={class:`desktop-summary-panel`},Be={class:`desktop-summary-panel__row`},Ve={class:`desktop-summary-panel__row`},He={class:`desktop-summary-panel__row`},Ue={key:0,class:`desktop-summary-panel__action`},We={key:1,class:`desktop-checkout-shell desktop-only`},R=h({__name:`CheckListView`,setup(te){let h=ae(),S=re(),C=ie(),R=oe(),z=f(``),B=f(!1),V=o(()=>h.name===`check-list`),{orderId:H}=ue(),U=o(()=>H.value?C.getOrderById(H.value):void 0);ee(H,async e=>{if(!e||!V.value)return;let t=C.getOrderById(e)??await C.fetchOrder(e);t&&(C.draftChecks.length===0&&(t.checks?.length??0)>0?C.loadChecksIntoDraft(t):C.draftOrderId!==e&&C.startCheckDraft(e,t.checkMode??void 0))},{immediate:!0});let W=o(()=>C.draftChecks.length>0?C.draftChecks:V.value?U.value?.checks??[]:R.user?C.userOrders(R.user.id).filter(e=>e.settlementType===`check`&&e.checks?.length).flatMap(e=>e.checks??[]):[]),G=o(()=>C.draftChecks.length>0?C.getDraftRass():ce(W.value,new Date)),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=>{S.replace({query:e?{menu:e}:{}})}});function Ge(){S.push(V.value?`/orders/${H.value}`:`/profile`)}function Z(){S.push(`/orders/${H.value}/check-form`)}async function Q(e){X.value=``,await se({title:`حذف چک`,message:`آیا از حذف این چک مطمئن هستید؟`,confirmLabel:`حذف`,cancelLabel:`انصراف`,tone:`danger`})&&C.removeDraftCheck(e)}function Ke(e){X.value=X.value===e?``:e}async function $(){if(!(!H.value||C.draftChecks.length===0||B.value)){z.value=``,B.value=!0;try{await C.updateOrderChecks(H.value,[...C.draftChecks],C.draftCheckMode??`brief`),S.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:Ge},[a(x,{size:20})]),o[1]||=d(`h1`,{class:`check-list-page__title`},`چکهای ثبت شده`,-1),d(`button`,pe,[a(x,{size:18,class:`nav-btn__flip`})])]),W.value.length===0?(r(),c(`div`,me,[a(b,{variant:`checks`,message:`برای ادامه، حداقل یک چک ثبت کنید`},{default:n(()=>[V.value?(r(),p(y,{key:0,onClick:Z},{default:n(()=>[...o[2]||=[l(`ثبت چک جدید`,-1)]]),_:1})):(r(),p(y,{key:1,variant:`outline`,onClick:o[0]||=e=>m(S).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`,w,i(m(_)(G.value.totalAmount)),1),o[5]||=d(`span`,{class:`summary-card__unit`},`تومان`,-1)]),d(`div`,T,[o[7]||=d(`span`,{class:`summary-card__label`},`مبلغ فاکتور`,-1),d(`strong`,E,i(m(_)(K.value)),1),o[8]||=d(`span`,{class:`summary-card__unit`},`تومان`,-1),J.value&&!Y.value?(r(),c(`p`,D,[...o[6]||=[d(`span`,{class:`summary-card__status-icon`},`✓`,-1),l(` مبلغ کامل است `,-1)]])):Y.value?(r(),c(`p`,O,` بیش از مبلغ فاکتور `)):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`,k,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`,A,` هنوز باید چک ثبت کنید `))],2)]),d(`div`,j,[(r(!0),c(u,null,t(W.value,(e,t)=>(r(),c(`article`,{key:e.id,class:`check-card`},[d(`div`,M,[V.value&&m(C).draftChecks.length>0?(r(),c(`button`,{key:0,type:`button`,class:`check-card__menu-btn`,"aria-label":`گزینهها`,onClick:t=>Ke(e.id)},` ⋮ `,8,N)):s(``,!0),X.value===e.id?(r(),c(`div`,P,[d(`button`,{type:`button`,onClick:t=>Q(e.id)},`حذف`,8,F)])):s(``,!0)]),d(`div`,I,[d(`h3`,ve,`چک `+i(m(g)(String(t+1))),1),d(`p`,ye,i(m(ne)(e.amount)),1),d(`p`,be,`تاریخ: `+i(m(v)(e.dueDate)),1)]),d(`div`,xe,[e.frontImage?(r(),c(`img`,{key:0,src:e.frontImage,class:`check-card__thumb`,alt:`تصویر چک`},null,8,Se)):(r(),c(`div`,Ce,`چک`))])]))),128))]),d(`div`,we,[o[11]||=d(`h3`,{class:`rass-panel__title`},`رأس چکها`,-1),d(`div`,Te,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(C).draftChecks.length>0?(r(),c(`div`,De,[a(y,{block:``,variant:`outline`,disabled:B.value,onClick:Z},{default:n(()=>[...o[12]||=[l(` افزودن چک جدید `,-1)]]),_:1},8,[`disabled`]),a(y,{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`,L,[d(`div`,ke,[d(`div`,Ae,[d(`div`,je,[d(`table`,Me,[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`,Ne,`عملیات`)):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,Pe)):(r(),c(`span`,Fe,`—`))]),d(`td`,Ie,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(C).draftChecks.length>0?(r(),c(`td`,Le,[d(`button`,{type:`button`,class:`orders-table__action`,onClick:t=>Q(e.id)},` حذف `,8,Re)])):s(``,!0)]))),128))])])])]),V.value?(r(),p(y,{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`,ze,[o[25]||=d(`h2`,{class:`desktop-summary-panel__title`},`خلاصه مالی`,-1),d(`div`,Be,[o[19]||=d(`span`,null,`مجموع چکها`,-1),d(`strong`,null,i(m(_)(G.value.totalAmount))+` تومان`,1)]),d(`div`,Ve,[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`,He,[o[22]||=d(`span`,null,`رأس چکها`,-1),d(`strong`,null,i(m(g)(String(G.value.rassDays)))+` روز`,1)]),V.value&&m(C).draftChecks.length>0?(r(),c(`div`,Ue,[a(y,{block:``,variant:`outline`,disabled:B.value,onClick:Z},{default:n(()=>[...o[23]||=[l(` افزودن چک جدید `,-1)]]),_:1},8,[`disabled`]),a(y,{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`,We,[a(b,{variant:`checks`,message:`برای ادامه، حداقل یک چک ثبت کنید`},{default:n(()=>[V.value?(r(),p(y,{key:0,onClick:Z},{default:n(()=>[...o[27]||=[l(`ثبت چک جدید`,-1)]]),_:1})):s(``,!0)]),_:1})]))],64))}}),z=C({default:()=>B}),B=te(R,[[`__scopeId`,`data-v-83f3f9a7`]]);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{A as re,f as ie,k as ae,l as oe,n as se,p as ce,r as y}from"./index-BPUhS8CY.js";import{t as b}from"./EmptyState-DYhkpGhZ.js";import{t as x}from"./IconChevronBack-DytWz6TD.js";import{t as le}from"./FormErrorBanner-Ud1D04xf.js";import{t as ue}from"./useRequirePricedOrder-XmwhrUqA.js";var S=Object.defineProperty,C=(e,t)=>{let n={};for(var r in e)S(n,r,{get:e[r],enumerable:!0});return t||S(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`},w={class:`summary-card__value`},T={class:`summary-card`},E={class:`summary-card__value`},D={key:0,class:`summary-card__status`},O={key:1,class:`summary-card__status summary-card__status--warn`},k={class:`summary-card__value`},A={key:0,class:`summary-card__hint`},j={class:`checks-list`},M={class:`check-card__menu-wrap`},N=[`onClick`],P={key:1,class:`check-card__menu`},F=[`onClick`],I={class:`check-card__body`},ve={class:`check-card__title`},ye={class:`check-card__amount`},be={class:`check-card__date`},xe={class:`check-card__thumb-wrap`},Se=[`src`],Ce={key:1,class:`check-card__thumb check-card__thumb--empty`},we={class:`rass-panel`},Te={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`},L={class:`desktop-two-col`},ke={class:`desktop-two-col__main`},Ae={class:`desktop-table-wrap`},je={class:`desktop-table-scroll`},Me={class:`desktop-table check-list-desktop__table`},Ne={key:0,scope:`col`},Pe=[`src`],Fe={key:1},Ie={class:`check-list-desktop__amount`},Le={key:0},Re=[`onClick`],ze={class:`desktop-summary-panel`},Be={class:`desktop-summary-panel__row`},Ve={class:`desktop-summary-panel__row`},He={class:`desktop-summary-panel__row`},Ue={key:0,class:`desktop-summary-panel__action`},We={key:1,class:`desktop-checkout-shell desktop-only`},R=h({__name:`CheckListView`,setup(te){let h=ae(),S=re(),C=ie(),R=oe(),z=f(``),B=f(!1),V=o(()=>h.name===`check-list`),{orderId:H}=ue(),U=o(()=>H.value?C.getOrderById(H.value):void 0);ee(H,async e=>{if(!e||!V.value)return;let t=C.getOrderById(e)??await C.fetchOrder(e);t&&(C.draftChecks.length===0&&(t.checks?.length??0)>0?C.loadChecksIntoDraft(t):C.draftOrderId!==e&&C.startCheckDraft(e,t.checkMode??void 0))},{immediate:!0});let W=o(()=>C.draftChecks.length>0?C.draftChecks:V.value?U.value?.checks??[]:R.user?C.userOrders(R.user.id).filter(e=>e.settlementType===`check`&&e.checks?.length).flatMap(e=>e.checks??[]):[]),G=o(()=>C.draftChecks.length>0?C.getDraftRass():ce(W.value,new Date)),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=>{S.replace({query:e?{menu:e}:{}})}});function Ge(){S.push(V.value?`/orders/${H.value}`:`/profile`)}function Z(){S.push(`/orders/${H.value}/check-form`)}async function Q(e){X.value=``,await se({title:`حذف چک`,message:`آیا از حذف این چک مطمئن هستید؟`,confirmLabel:`حذف`,cancelLabel:`انصراف`,tone:`danger`})&&C.removeDraftCheck(e)}function Ke(e){X.value=X.value===e?``:e}async function $(){if(!(!H.value||C.draftChecks.length===0||B.value)){z.value=``,B.value=!0;try{await C.updateOrderChecks(H.value,[...C.draftChecks],C.draftCheckMode??`brief`),S.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:Ge},[a(x,{size:20})]),o[1]||=d(`h1`,{class:`check-list-page__title`},`چکهای ثبت شده`,-1),d(`button`,pe,[a(x,{size:18,class:`nav-btn__flip`})])]),W.value.length===0?(r(),c(`div`,me,[a(b,{variant:`checks`,message:`برای ادامه، حداقل یک چک ثبت کنید`},{default:n(()=>[V.value?(r(),p(y,{key:0,onClick:Z},{default:n(()=>[...o[2]||=[l(`ثبت چک جدید`,-1)]]),_:1})):(r(),p(y,{key:1,variant:`outline`,onClick:o[0]||=e=>m(S).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`,w,i(m(_)(G.value.totalAmount)),1),o[5]||=d(`span`,{class:`summary-card__unit`},`تومان`,-1)]),d(`div`,T,[o[7]||=d(`span`,{class:`summary-card__label`},`مبلغ فاکتور`,-1),d(`strong`,E,i(m(_)(K.value)),1),o[8]||=d(`span`,{class:`summary-card__unit`},`تومان`,-1),J.value&&!Y.value?(r(),c(`p`,D,[...o[6]||=[d(`span`,{class:`summary-card__status-icon`},`✓`,-1),l(` مبلغ کامل است `,-1)]])):Y.value?(r(),c(`p`,O,` بیش از مبلغ فاکتور `)):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`,k,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`,A,` هنوز باید چک ثبت کنید `))],2)]),d(`div`,j,[(r(!0),c(u,null,t(W.value,(e,t)=>(r(),c(`article`,{key:e.id,class:`check-card`},[d(`div`,M,[V.value&&m(C).draftChecks.length>0?(r(),c(`button`,{key:0,type:`button`,class:`check-card__menu-btn`,"aria-label":`گزینهها`,onClick:t=>Ke(e.id)},` ⋮ `,8,N)):s(``,!0),X.value===e.id?(r(),c(`div`,P,[d(`button`,{type:`button`,onClick:t=>Q(e.id)},`حذف`,8,F)])):s(``,!0)]),d(`div`,I,[d(`h3`,ve,`چک `+i(m(g)(String(t+1))),1),d(`p`,ye,i(m(ne)(e.amount)),1),d(`p`,be,`تاریخ: `+i(m(v)(e.dueDate)),1)]),d(`div`,xe,[e.frontImage?(r(),c(`img`,{key:0,src:e.frontImage,class:`check-card__thumb`,alt:`تصویر چک`},null,8,Se)):(r(),c(`div`,Ce,`چک`))])]))),128))]),d(`div`,we,[o[11]||=d(`h3`,{class:`rass-panel__title`},`رأس چکها`,-1),d(`div`,Te,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(C).draftChecks.length>0?(r(),c(`div`,De,[a(y,{block:``,variant:`outline`,disabled:B.value,onClick:Z},{default:n(()=>[...o[12]||=[l(` افزودن چک جدید `,-1)]]),_:1},8,[`disabled`]),a(y,{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`,L,[d(`div`,ke,[d(`div`,Ae,[d(`div`,je,[d(`table`,Me,[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`,Ne,`عملیات`)):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,Pe)):(r(),c(`span`,Fe,`—`))]),d(`td`,Ie,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(C).draftChecks.length>0?(r(),c(`td`,Le,[d(`button`,{type:`button`,class:`orders-table__action`,onClick:t=>Q(e.id)},` حذف `,8,Re)])):s(``,!0)]))),128))])])])]),V.value?(r(),p(y,{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`,ze,[o[25]||=d(`h2`,{class:`desktop-summary-panel__title`},`خلاصه مالی`,-1),d(`div`,Be,[o[19]||=d(`span`,null,`مجموع چکها`,-1),d(`strong`,null,i(m(_)(G.value.totalAmount))+` تومان`,1)]),d(`div`,Ve,[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`,He,[o[22]||=d(`span`,null,`رأس چکها`,-1),d(`strong`,null,i(m(g)(String(G.value.rassDays)))+` روز`,1)]),V.value&&m(C).draftChecks.length>0?(r(),c(`div`,Ue,[a(y,{block:``,variant:`outline`,disabled:B.value,onClick:Z},{default:n(()=>[...o[23]||=[l(` افزودن چک جدید `,-1)]]),_:1},8,[`disabled`]),a(y,{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`,We,[a(b,{variant:`checks`,message:`برای ادامه، حداقل یک چک ثبت کنید`},{default:n(()=>[V.value?(r(),p(y,{key:0,onClick:Z},{default:n(()=>[...o[27]||=[l(`ثبت چک جدید`,-1)]]),_:1})):s(``,!0)]),_:1})]))],64))}}),z=C({default:()=>B}),B=te(R,[[`__scopeId`,`data-v-83f3f9a7`]]);export{z as n,B as t}; \ No newline at end of file diff --git a/dist/assets/CheckModeSelectView-B4EHqzhg.js b/dist/assets/CheckModeSelectView-Bi0WHCCX.js similarity index 93% rename from dist/assets/CheckModeSelectView-B4EHqzhg.js rename to dist/assets/CheckModeSelectView-Bi0WHCCX.js index 04b4cf8..7d203e0 100644 --- a/dist/assets/CheckModeSelectView-B4EHqzhg.js +++ b/dist/assets/CheckModeSelectView-Bi0WHCCX.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{A as d,f,x as p}from"./index-BSpFi5xB.js";import{t as m}from"./PageHeader-DpR4Zxvt.js";import{t as h}from"./useRequirePricedOrder-CQ0zBqU7.js";import{t as g}from"./IconEditPen-Dwk_zEXe.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=d(),w=f(),{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(p,{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{A as d,f,x as p}from"./index-BPUhS8CY.js";import{t as m}from"./PageHeader-CG1ktltl.js";import{t as h}from"./useRequirePricedOrder-XmwhrUqA.js";import{t as g}from"./IconEditPen-Dwk_zEXe.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=d(),w=f(),{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(p,{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-B4lkmOh7.js b/dist/assets/CustomerCreateOverlay-4geBn3dg.js similarity index 95% rename from dist/assets/CustomerCreateOverlay-B4lkmOh7.js rename to dist/assets/CustomerCreateOverlay-4geBn3dg.js index 4b46202..b79a526 100644 --- a/dist/assets/CustomerCreateOverlay-B4lkmOh7.js +++ b/dist/assets/CustomerCreateOverlay-4geBn3dg.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{n as g,u as _}from"./BasicIcon-ba1FsUKx.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{l as x,r as S}from"./index-BSpFi5xB.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-Bj4T2PId.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-4f911c6f`]]),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(g,{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:_(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{n as g,u as _}from"./BasicIcon-ba1FsUKx.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{l as x,r as S}from"./index-BPUhS8CY.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-BKPKhzCX.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-4f911c6f`]]),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(g,{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:_(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-Bm2wPYGM.js b/dist/assets/CustomerDetailView-DgHj5-jM.js similarity index 98% rename from dist/assets/CustomerDetailView-Bm2wPYGM.js rename to dist/assets/CustomerDetailView-DgHj5-jM.js index 54b99e0..3b44d46 100644 --- a/dist/assets/CustomerDetailView-Bm2wPYGM.js +++ b/dist/assets/CustomerDetailView-DgHj5-jM.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 ee,l as h,m as g,nt as _,o as v,t as y,u as b,ut as x,v as S}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{l as C,n as w,s as T,t as E,u as D}from"./BasicIcon-ba1FsUKx.js";import{o as O}from"./format-C72AoJ2H.js";import{A as k,E as A,k as j,l as M,s as N}from"./index-BSpFi5xB.js";import{r as te,t as P}from"./constants-DXXK14Zz.js";import{t as ne}from"./IconPhone-Jt4M7S8Q.js";import{t as re}from"./IconClipboardEmpty-D1_4Fy0M.js";import{t as F}from"./PageHeader-DpR4Zxvt.js";import{t as I}from"./PageSkeleton-DYdjm4l9.js";import{t as L}from"./crm-Bj4T2PId.js";import{t as R}from"./PersianDateInput-Dh05So9z.js";import{t as ie}from"./IconEditPen-Dwk_zEXe.js";import{t as z}from"./TimeInput-BplLSUlw.js";import{t as ae}from"./CustomerCreateOverlay-B4lkmOh7.js";var oe=S({__name:`IconMail`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(t,n)=>(a(),b(E,{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=y(S({__name:`MeetingReportForm`,props:{customerId:{}},emits:[`success`],setup(t,{emit:r}){let u=t,p=r,g=L(),v=_(null),y=_(!0),x=_(!1),S=_(null),C=_(`in_person`),w=_(``),E=_(``),D=_(``),O=_(``),k=_(!0),A=_(``),j=_(``),M=_(``),N=_(``),te=[{id:`in_person`,label:`ملاقات حضوری`,icon:`clipboard`},{id:`call`,label:`تماس تلفنی`,icon:`phone`},{id:`message`,label:`پیام`,icon:`mail`},{id:`note`,label:`یادداشت`,icon:`pen`}];async function P(){if(!u.customerId){y.value=!1,S.value=`مشتری مشخص نشده است.`,v.value=null;return}y.value=!0,S.value=null;try{let e=await g.loadCustomerDetail(u.customerId);v.value=e.customer}catch(e){v.value=null,S.value=e instanceof Error?e.message:`بارگذاری مشتری ناموفق بود.`}finally{y.value=!1}}ee(P),c(()=>u.customerId,P);async function F(){if(!u.customerId||!D.value.trim()||!w.value.trim()){S.value=`موضوع و تاریخ الزامی است.`;return}x.value=!0,S.value=null;try{await g.submitMeeting({customerId:u.customerId,type:C.value,title:D.value.trim(),subject:D.value.trim(),content:O.value.trim()||void 0,description:O.value.trim()||void 0,date:w.value.trim(),time:E.value.trim()||void 0,createReminder:k.value,reminderTitle:k.value?A.value.trim()||D.value.trim():void 0,reminderDate:k.value?j.value.trim()||w.value.trim():void 0,reminderTime:k.value?M.value.trim()||E.value.trim()||`10:00`:void 0,reminderNote:k.value&&N.value.trim()||void 0}),p(`success`)}catch(e){S.value=e instanceof Error?e.message:`ثبت گزارش ناموفق بود.`}finally{x.value=!1}}return(t,r)=>(a(),f(`div`,B,[y.value?(a(),b(I,{key:0,variant:`form`})):S.value?(a(),f(`p`,V,s(S.value),1)):d(``,!0),v.value?(a(),f(m,{key:2},[h(`section`,H,[h(`div`,{class:`avatar`,style:o({background:v.value.avatarColor})},s(v.value.avatarLetter),5),h(`div`,null,[h(`strong`,null,s(v.value.name),1),h(`p`,null,s(v.value.contactName),1),h(`p`,U,s(v.value.phone),1)])]),h(`section`,null,[r[9]||=h(`h3`,null,`نوع تعامل`,-1),h(`div`,W,[(a(),f(m,null,n(te,t=>h(`button`,{key:t.id,type:`button`,class:e([`type-btn`,{"type-btn--active":C.value===t.id}]),onClick:e=>C.value=t.id},[t.icon===`clipboard`?(a(),b(re,{key:0,size:22})):t.icon===`phone`?(a(),b(ne,{key:1,size:22})):t.icon===`mail`?(a(),b(oe,{key:2,size:22})):(a(),b(ie,{key:3,size:22})),h(`span`,null,s(t.label),1)],10,G)),64))])]),h(`section`,null,[r[10]||=h(`h3`,null,`تاریخ و زمان`,-1),h(`div`,K,[l(R,{modelValue:w.value,"onUpdate:modelValue":r[0]||=e=>w.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`])])]),h(`label`,q,[r[11]||=h(`span`,null,`موضوع گزارش`,-1),i(h(`input`,{"onUpdate:modelValue":r[2]||=e=>D.value=e,type:`text`},null,512),[[T,D.value]])]),h(`label`,J,[r[12]||=h(`span`,null,`محتوای گزارش`,-1),i(h(`textarea`,{"onUpdate:modelValue":r[3]||=e=>O.value=e,rows:`5`,maxlength:`1000`},null,512),[[T,O.value]]),h(`em`,null,s(O.value.length.toLocaleString(`fa-IR`))+`/۱۰۰۰`,1)]),r[17]||=h(`section`,null,[h(`h3`,null,`تصاویر و فایلها`),h(`div`,{class:`files`},[h(`div`,{class:`file-thumb`}),h(`div`,{class:`file-thumb`}),h(`button`,{type:`button`,class:`file-add`,"aria-label":`افزودن فایل`},`+`)])],-1),h(`section`,se,[h(`div`,Y,[r[14]||=h(`h3`,null,`یادآور`,-1),h(`button`,{type:`button`,class:e([`toggle`,{"toggle--on":k.value}]),"aria-pressed":k.value,onClick:r[4]||=e=>k.value=!k.value},[...r[13]||=[h(`span`,null,null,-1)]],10,X)]),k.value?(a(),f(m,{key:0},[h(`label`,ce,[r[15]||=h(`span`,null,`عنوان یادآور`,-1),i(h(`input`,{"onUpdate:modelValue":r[5]||=e=>A.value=e,type:`text`},null,512),[[T,A.value]])]),h(`div`,Z,[l(R,{modelValue:j.value,"onUpdate:modelValue":r[6]||=e=>j.value=e,label:`تاریخ یادآور`,class:`meeting-date`},null,8,[`modelValue`]),l(z,{modelValue:M.value,"onUpdate:modelValue":r[7]||=e=>M.value=e,label:`ساعت یادآور`,placeholder:`مثلاً ۱۰:۳۰`,class:`meeting-time`},null,8,[`modelValue`])]),h(`label`,le,[r[16]||=h(`span`,null,`یادداشت یادآور (اختیاری)`,-1),i(h(`input`,{"onUpdate:modelValue":r[8]||=e=>N.value=e,type:`text`},null,512),[[T,N.value]])])],64)):d(``,!0)]),h(`button`,{type:`button`,class:`submit`,disabled:x.value,onClick:F},s(x.value?`در حال ثبت...`:`ثبت گزارش و یادآور`),9,Q)],64)):d(``,!0)]))}}),[[`__scopeId`,`data-v-5d6dd8b7`]]),de={class:`meeting-report-sheet`},fe=y(S({__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(),b(v,{to:`body`},[l(w,{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:D(s,[`self`])},[h(`div`,de,[n[1]||=h(`div`,{class:`meeting-report-sheet__handle`,"aria-hidden":`true`},null,-1),h(`header`,{class:`meeting-report-sheet__head`},[n[0]||=h(`h2`,{id:`meeting-report-title`},`ثبت گزارش ملاقات`,-1),h(`button`,{type:`button`,class:`meeting-report-sheet__close`,"aria-label":`بستن`,onClick:s},` × `)]),e.customerId?(a(),b(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=y(S({__name:`CustomerDetailView`,setup(t){let i=j(),v=k(),y=L(),S=M(),w=u(()=>String(i.query.id??``)),T=u(()=>String(i.query.tab??`info`)),E=u(()=>i.query.meetingReport===`1`),D=u(()=>i.query.edit===`1`),R=_(null),z=_([]),B=_([]),V=_(`all`),H=_(!0),U=_(null),W=[{id:`info`,label:`اطلاعات`},{id:`orders`,label:`سفارشها`},{id:`reports`,label:`گزارشها و پیگیریها`}];async function G(){if(!w.value){R.value=null,H.value=!1;return}H.value=!0,U.value=null;try{let e=await y.loadCustomerDetail(w.value);R.value=e.customer,z.value=e.orders,B.value=e.meetings}catch(e){R.value=null,U.value=e instanceof Error?e.message:`مشتری یافت نشد.`}finally{H.value=!1}}ee(G),c(w,G);function K(e){v.replace({path:`/customer`,query:{id:w.value,tab:e}})}function q(){v.push({path:`/customer`,query:{id:w.value,tab:`reports`,meetingReport:`1`}})}function J(){v.replace({path:`/customer`,query:{id:w.value,tab:`reports`}})}async function se(){J(),await G()}function Y(){v.push({path:`/customer`,query:{id:w.value,tab:T.value,edit:`1`}})}function X(){v.replace({path:`/customer`,query:{id:w.value,tab:T.value}})}async function ce(){X(),await G()}let Z=u(()=>{if(!R.value)return null;let e=R.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(()=>R.value?.agentName||S.fullName||`واسطه`),ue=u(()=>R.value?.agentCode||S.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&&v.push({path:`/order`,query:{id:e}})}function lt(e){let t=e.statusLabel;return P[t]||e.statusLabel}function ut(e){let t=te[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,[R.value?(a(),f(`div`,pe,[l(F,{class:`mobile-only`,title:T.value===`reports`?`پروفایل مشتری`:`جزئیات مشتری`,"show-back":``,centered:``,onBack:i[0]||=e=>x(v).push(`/customers`)},g({_:2},[T.value===`info`?{name:`trailing`,fn:r(()=>[h(`button`,{type:`button`,class:`edit-btn`,onClick:Y},`ویرایش`)]),key:`0`}:void 0]),1032,[`title`]),h(`header`,me,[h(`div`,null,[h(`h1`,he,s(R.value.name),1),h(`p`,ge,s(R.value.phone),1)]),T.value===`info`?(a(),f(`button`,{key:0,type:`button`,class:`edit-btn edit-btn--desk`,onClick:Y},` ویرایش `)):d(``,!0)]),h(`div`,_e,[T.value===`reports`?(a(),f(`section`,Se,[h(`div`,Ce,[h(`div`,{class:`profile-card__avatar profile-card__avatar--lg`,style:o({background:R.value.avatarColor})},s(R.value.avatarLetter),5),h(`div`,null,[h(`h2`,null,s(R.value.name),1),h(`p`,null,s(R.value.contactName),1),h(`p`,we,s(R.value.phone),1)]),i[4]||=h(`span`,{class:`status-badge status-badge--active status-badge--on-dark`},`فعال`,-1)]),h(`div`,Te,[h(`div`,null,[i[5]||=h(`span`,null,`سطح مشتری`,-1),h(`strong`,null,s(R.value.levelLabel),1)]),h(`div`,null,[i[6]||=h(`span`,null,`تاریخ اولین خرید`,-1),h(`strong`,null,s(R.value.firstPurchaseDate),1)]),h(`div`,null,[i[7]||=h(`span`,null,`تعداد سفارش`,-1),h(`strong`,null,s(x(O)(R.value.orderCount))+` سفارش`,1)])])])):(a(),f(`section`,ve,[h(`div`,{class:`profile-card__avatar`,style:o({background:R.value.avatarColor})},s(R.value.avatarLetter),5),h(`div`,ye,[h(`div`,be,[h(`h2`,null,s(R.value.name),1),h(`span`,{class:e([`status-badge`,pt(R.value.status)])},s(ft(R.value.status)),3)]),h(`p`,xe,s(R.value.phone),1)])])),h(`div`,Ee,[(a(),f(m,null,n(W,t=>h(`button`,{key:t.id,type:`button`,role:`tab`,class:e([`tab`,{"tab--active":T.value===t.id}]),"aria-selected":T.value===t.id,onClick:e=>K(t.id)},[h(`span`,Oe,s(t.label),1)],10,De)),64))]),T.value===`info`?(a(),f(m,{key:2},[h(`section`,ke,[i[15]||=h(`h3`,{class:`section-title`},`اطلاعات خرید`,-1),h(`div`,Ae,[h(`div`,je,[i[8]||=h(`span`,{class:`purchase-stats__label`},`تعداد سفارش`,-1),h(`strong`,Me,s(x(O)(R.value.orderCount)),1)]),i[13]||=h(`span`,{class:`purchase-stats__divider`,"aria-hidden":`true`},null,-1),h(`div`,Ne,[i[9]||=h(`span`,{class:`purchase-stats__label`},`مجموع خرید`,-1),h(`strong`,Pe,s(x(O)(R.value.totalPurchaseToman)),1),i[10]||=h(`em`,{class:`purchase-stats__unit`},`تومان`,-1)]),i[14]||=h(`span`,{class:`purchase-stats__divider`,"aria-hidden":`true`},null,-1),h(`div`,Fe,[i[11]||=h(`span`,{class:`purchase-stats__label`},`میانگین هر سفارش`,-1),h(`strong`,Ie,s(x(O)(R.value.averageOrderToman)),1),i[12]||=h(`em`,{class:`purchase-stats__unit`},`تومان`,-1)])])]),h(`section`,Le,[h(`button`,{type:`button`,class:`agent-row`,onClick:i[1]||=e=>x(v).push(`/profile`)},[h(`div`,Re,s(de.value),1),h(`div`,ze,[h(`strong`,null,s(Q.value),1),h(`p`,null,`کد واسطه: `+s(ue.value),1)]),l(N,{size:18,class:`agent-row__chevron`,"aria-hidden":`true`})]),h(`div`,Be,[h(`div`,Ve,[i[16]||=h(`h3`,{class:`section-title`},`آخرین سفارشها`,-1),h(`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:C(e=>$(t.id),[`enter`])},[h(`div`,Ue,[h(`strong`,null,s(t.title),1),l(N,{size:14,class:`order-row__chevron`,"aria-hidden":`true`})]),h(`span`,We,s(x(O)(t.amountToman))+` تومان`,1),h(`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)):T.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:C(e=>$(t.id),[`enter`])},[h(`div`,Je,[h(`strong`,null,s(t.title),1),l(N,{size:14,class:`order-row__chevron`,"aria-hidden":`true`})]),h(`span`,Ye,s(x(O)(t.amountToman))+` تومان`,1),h(`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[17]||=h(`h3`,{class:`section-title`},`تعاملات و پیگیریها`,-1),h(`button`,{type:`button`,class:`dashed-btn`,onClick:q},` + ثبت گزارش ملاقات جدید `),h(`div`,Qe,[(a(),f(m,null,n(ot,t=>h(`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`},[h(`div`,{class:e([`meeting-row__icon`,ct(t.type)])},[t.type===`in_person`?(a(),b(re,{key:0,size:16})):t.type===`call`?(a(),b(ne,{key:1,size:16})):t.type===`message`?(a(),b(oe,{key:2,size:16})):(a(),b(ie,{key:3,size:16}))],2),h(`div`,et,[h(`strong`,null,s(le(t.type)),1),h(`p`,null,s(t.description||t.title),1)]),h(`span`,tt,s(t.date),1)]))),128)),st.value.length?d(``,!0):(a(),f(`p`,nt,` گزارشی برای این فیلتر ثبت نشده است. `))]))]),T.value===`info`?(a(),f(`footer`,rt,[h(`button`,{type:`button`,class:`cta`,onClick:i[3]||=e=>x(v).push(`/categories`)},[l(A,{size:20,color:`#fff`}),i[18]||=p(` سفارش جدید برای این مشتری `,-1)])])):d(``,!0)])):H.value?(a(),f(`div`,it,[l(I,{variant:`detail`})])):(a(),f(`div`,at,[h(`p`,null,s(U.value||`مشتری یافت نشد.`),1)])),l(fe,{open:E.value,"customer-id":w.value,onClose:J,onSuccess:se},null,8,[`open`,`customer-id`]),l(ae,{open:D.value,"customer-id":w.value,initial:Z.value,onClose:X,onSuccess:ce},null,8,[`open`,`customer-id`,`initial`])],64))}}),[[`__scopeId`,`data-v-20a7b2ca`]]);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 ee,l as h,m as g,nt as _,o as v,t as y,u as b,ut as x,v as S}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{l as C,n as w,s as T,t as E,u as D}from"./BasicIcon-ba1FsUKx.js";import{o as O}from"./format-C72AoJ2H.js";import{A as k,E as A,k as j,l as M,s as N}from"./index-BPUhS8CY.js";import{r as te,t as P}from"./constants-DXXK14Zz.js";import{t as ne}from"./IconPhone-Jt4M7S8Q.js";import{t as re}from"./IconClipboardEmpty-D1_4Fy0M.js";import{t as F}from"./PageHeader-CG1ktltl.js";import{t as I}from"./PageSkeleton-DYdjm4l9.js";import{t as L}from"./crm-BKPKhzCX.js";import{t as R}from"./PersianDateInput-Dh05So9z.js";import{t as ie}from"./IconEditPen-Dwk_zEXe.js";import{t as z}from"./TimeInput-BplLSUlw.js";import{t as ae}from"./CustomerCreateOverlay-4geBn3dg.js";var oe=S({__name:`IconMail`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(t,n)=>(a(),b(E,{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=y(S({__name:`MeetingReportForm`,props:{customerId:{}},emits:[`success`],setup(t,{emit:r}){let u=t,p=r,g=L(),v=_(null),y=_(!0),x=_(!1),S=_(null),C=_(`in_person`),w=_(``),E=_(``),D=_(``),O=_(``),k=_(!0),A=_(``),j=_(``),M=_(``),N=_(``),te=[{id:`in_person`,label:`ملاقات حضوری`,icon:`clipboard`},{id:`call`,label:`تماس تلفنی`,icon:`phone`},{id:`message`,label:`پیام`,icon:`mail`},{id:`note`,label:`یادداشت`,icon:`pen`}];async function P(){if(!u.customerId){y.value=!1,S.value=`مشتری مشخص نشده است.`,v.value=null;return}y.value=!0,S.value=null;try{let e=await g.loadCustomerDetail(u.customerId);v.value=e.customer}catch(e){v.value=null,S.value=e instanceof Error?e.message:`بارگذاری مشتری ناموفق بود.`}finally{y.value=!1}}ee(P),c(()=>u.customerId,P);async function F(){if(!u.customerId||!D.value.trim()||!w.value.trim()){S.value=`موضوع و تاریخ الزامی است.`;return}x.value=!0,S.value=null;try{await g.submitMeeting({customerId:u.customerId,type:C.value,title:D.value.trim(),subject:D.value.trim(),content:O.value.trim()||void 0,description:O.value.trim()||void 0,date:w.value.trim(),time:E.value.trim()||void 0,createReminder:k.value,reminderTitle:k.value?A.value.trim()||D.value.trim():void 0,reminderDate:k.value?j.value.trim()||w.value.trim():void 0,reminderTime:k.value?M.value.trim()||E.value.trim()||`10:00`:void 0,reminderNote:k.value&&N.value.trim()||void 0}),p(`success`)}catch(e){S.value=e instanceof Error?e.message:`ثبت گزارش ناموفق بود.`}finally{x.value=!1}}return(t,r)=>(a(),f(`div`,B,[y.value?(a(),b(I,{key:0,variant:`form`})):S.value?(a(),f(`p`,V,s(S.value),1)):d(``,!0),v.value?(a(),f(m,{key:2},[h(`section`,H,[h(`div`,{class:`avatar`,style:o({background:v.value.avatarColor})},s(v.value.avatarLetter),5),h(`div`,null,[h(`strong`,null,s(v.value.name),1),h(`p`,null,s(v.value.contactName),1),h(`p`,U,s(v.value.phone),1)])]),h(`section`,null,[r[9]||=h(`h3`,null,`نوع تعامل`,-1),h(`div`,W,[(a(),f(m,null,n(te,t=>h(`button`,{key:t.id,type:`button`,class:e([`type-btn`,{"type-btn--active":C.value===t.id}]),onClick:e=>C.value=t.id},[t.icon===`clipboard`?(a(),b(re,{key:0,size:22})):t.icon===`phone`?(a(),b(ne,{key:1,size:22})):t.icon===`mail`?(a(),b(oe,{key:2,size:22})):(a(),b(ie,{key:3,size:22})),h(`span`,null,s(t.label),1)],10,G)),64))])]),h(`section`,null,[r[10]||=h(`h3`,null,`تاریخ و زمان`,-1),h(`div`,K,[l(R,{modelValue:w.value,"onUpdate:modelValue":r[0]||=e=>w.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`])])]),h(`label`,q,[r[11]||=h(`span`,null,`موضوع گزارش`,-1),i(h(`input`,{"onUpdate:modelValue":r[2]||=e=>D.value=e,type:`text`},null,512),[[T,D.value]])]),h(`label`,J,[r[12]||=h(`span`,null,`محتوای گزارش`,-1),i(h(`textarea`,{"onUpdate:modelValue":r[3]||=e=>O.value=e,rows:`5`,maxlength:`1000`},null,512),[[T,O.value]]),h(`em`,null,s(O.value.length.toLocaleString(`fa-IR`))+`/۱۰۰۰`,1)]),r[17]||=h(`section`,null,[h(`h3`,null,`تصاویر و فایلها`),h(`div`,{class:`files`},[h(`div`,{class:`file-thumb`}),h(`div`,{class:`file-thumb`}),h(`button`,{type:`button`,class:`file-add`,"aria-label":`افزودن فایل`},`+`)])],-1),h(`section`,se,[h(`div`,Y,[r[14]||=h(`h3`,null,`یادآور`,-1),h(`button`,{type:`button`,class:e([`toggle`,{"toggle--on":k.value}]),"aria-pressed":k.value,onClick:r[4]||=e=>k.value=!k.value},[...r[13]||=[h(`span`,null,null,-1)]],10,X)]),k.value?(a(),f(m,{key:0},[h(`label`,ce,[r[15]||=h(`span`,null,`عنوان یادآور`,-1),i(h(`input`,{"onUpdate:modelValue":r[5]||=e=>A.value=e,type:`text`},null,512),[[T,A.value]])]),h(`div`,Z,[l(R,{modelValue:j.value,"onUpdate:modelValue":r[6]||=e=>j.value=e,label:`تاریخ یادآور`,class:`meeting-date`},null,8,[`modelValue`]),l(z,{modelValue:M.value,"onUpdate:modelValue":r[7]||=e=>M.value=e,label:`ساعت یادآور`,placeholder:`مثلاً ۱۰:۳۰`,class:`meeting-time`},null,8,[`modelValue`])]),h(`label`,le,[r[16]||=h(`span`,null,`یادداشت یادآور (اختیاری)`,-1),i(h(`input`,{"onUpdate:modelValue":r[8]||=e=>N.value=e,type:`text`},null,512),[[T,N.value]])])],64)):d(``,!0)]),h(`button`,{type:`button`,class:`submit`,disabled:x.value,onClick:F},s(x.value?`در حال ثبت...`:`ثبت گزارش و یادآور`),9,Q)],64)):d(``,!0)]))}}),[[`__scopeId`,`data-v-5d6dd8b7`]]),de={class:`meeting-report-sheet`},fe=y(S({__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(),b(v,{to:`body`},[l(w,{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:D(s,[`self`])},[h(`div`,de,[n[1]||=h(`div`,{class:`meeting-report-sheet__handle`,"aria-hidden":`true`},null,-1),h(`header`,{class:`meeting-report-sheet__head`},[n[0]||=h(`h2`,{id:`meeting-report-title`},`ثبت گزارش ملاقات`,-1),h(`button`,{type:`button`,class:`meeting-report-sheet__close`,"aria-label":`بستن`,onClick:s},` × `)]),e.customerId?(a(),b(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=y(S({__name:`CustomerDetailView`,setup(t){let i=j(),v=k(),y=L(),S=M(),w=u(()=>String(i.query.id??``)),T=u(()=>String(i.query.tab??`info`)),E=u(()=>i.query.meetingReport===`1`),D=u(()=>i.query.edit===`1`),R=_(null),z=_([]),B=_([]),V=_(`all`),H=_(!0),U=_(null),W=[{id:`info`,label:`اطلاعات`},{id:`orders`,label:`سفارشها`},{id:`reports`,label:`گزارشها و پیگیریها`}];async function G(){if(!w.value){R.value=null,H.value=!1;return}H.value=!0,U.value=null;try{let e=await y.loadCustomerDetail(w.value);R.value=e.customer,z.value=e.orders,B.value=e.meetings}catch(e){R.value=null,U.value=e instanceof Error?e.message:`مشتری یافت نشد.`}finally{H.value=!1}}ee(G),c(w,G);function K(e){v.replace({path:`/customer`,query:{id:w.value,tab:e}})}function q(){v.push({path:`/customer`,query:{id:w.value,tab:`reports`,meetingReport:`1`}})}function J(){v.replace({path:`/customer`,query:{id:w.value,tab:`reports`}})}async function se(){J(),await G()}function Y(){v.push({path:`/customer`,query:{id:w.value,tab:T.value,edit:`1`}})}function X(){v.replace({path:`/customer`,query:{id:w.value,tab:T.value}})}async function ce(){X(),await G()}let Z=u(()=>{if(!R.value)return null;let e=R.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(()=>R.value?.agentName||S.fullName||`واسطه`),ue=u(()=>R.value?.agentCode||S.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&&v.push({path:`/order`,query:{id:e}})}function lt(e){let t=e.statusLabel;return P[t]||e.statusLabel}function ut(e){let t=te[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,[R.value?(a(),f(`div`,pe,[l(F,{class:`mobile-only`,title:T.value===`reports`?`پروفایل مشتری`:`جزئیات مشتری`,"show-back":``,centered:``,onBack:i[0]||=e=>x(v).push(`/customers`)},g({_:2},[T.value===`info`?{name:`trailing`,fn:r(()=>[h(`button`,{type:`button`,class:`edit-btn`,onClick:Y},`ویرایش`)]),key:`0`}:void 0]),1032,[`title`]),h(`header`,me,[h(`div`,null,[h(`h1`,he,s(R.value.name),1),h(`p`,ge,s(R.value.phone),1)]),T.value===`info`?(a(),f(`button`,{key:0,type:`button`,class:`edit-btn edit-btn--desk`,onClick:Y},` ویرایش `)):d(``,!0)]),h(`div`,_e,[T.value===`reports`?(a(),f(`section`,Se,[h(`div`,Ce,[h(`div`,{class:`profile-card__avatar profile-card__avatar--lg`,style:o({background:R.value.avatarColor})},s(R.value.avatarLetter),5),h(`div`,null,[h(`h2`,null,s(R.value.name),1),h(`p`,null,s(R.value.contactName),1),h(`p`,we,s(R.value.phone),1)]),i[4]||=h(`span`,{class:`status-badge status-badge--active status-badge--on-dark`},`فعال`,-1)]),h(`div`,Te,[h(`div`,null,[i[5]||=h(`span`,null,`سطح مشتری`,-1),h(`strong`,null,s(R.value.levelLabel),1)]),h(`div`,null,[i[6]||=h(`span`,null,`تاریخ اولین خرید`,-1),h(`strong`,null,s(R.value.firstPurchaseDate),1)]),h(`div`,null,[i[7]||=h(`span`,null,`تعداد سفارش`,-1),h(`strong`,null,s(x(O)(R.value.orderCount))+` سفارش`,1)])])])):(a(),f(`section`,ve,[h(`div`,{class:`profile-card__avatar`,style:o({background:R.value.avatarColor})},s(R.value.avatarLetter),5),h(`div`,ye,[h(`div`,be,[h(`h2`,null,s(R.value.name),1),h(`span`,{class:e([`status-badge`,pt(R.value.status)])},s(ft(R.value.status)),3)]),h(`p`,xe,s(R.value.phone),1)])])),h(`div`,Ee,[(a(),f(m,null,n(W,t=>h(`button`,{key:t.id,type:`button`,role:`tab`,class:e([`tab`,{"tab--active":T.value===t.id}]),"aria-selected":T.value===t.id,onClick:e=>K(t.id)},[h(`span`,Oe,s(t.label),1)],10,De)),64))]),T.value===`info`?(a(),f(m,{key:2},[h(`section`,ke,[i[15]||=h(`h3`,{class:`section-title`},`اطلاعات خرید`,-1),h(`div`,Ae,[h(`div`,je,[i[8]||=h(`span`,{class:`purchase-stats__label`},`تعداد سفارش`,-1),h(`strong`,Me,s(x(O)(R.value.orderCount)),1)]),i[13]||=h(`span`,{class:`purchase-stats__divider`,"aria-hidden":`true`},null,-1),h(`div`,Ne,[i[9]||=h(`span`,{class:`purchase-stats__label`},`مجموع خرید`,-1),h(`strong`,Pe,s(x(O)(R.value.totalPurchaseToman)),1),i[10]||=h(`em`,{class:`purchase-stats__unit`},`تومان`,-1)]),i[14]||=h(`span`,{class:`purchase-stats__divider`,"aria-hidden":`true`},null,-1),h(`div`,Fe,[i[11]||=h(`span`,{class:`purchase-stats__label`},`میانگین هر سفارش`,-1),h(`strong`,Ie,s(x(O)(R.value.averageOrderToman)),1),i[12]||=h(`em`,{class:`purchase-stats__unit`},`تومان`,-1)])])]),h(`section`,Le,[h(`button`,{type:`button`,class:`agent-row`,onClick:i[1]||=e=>x(v).push(`/profile`)},[h(`div`,Re,s(de.value),1),h(`div`,ze,[h(`strong`,null,s(Q.value),1),h(`p`,null,`کد واسطه: `+s(ue.value),1)]),l(N,{size:18,class:`agent-row__chevron`,"aria-hidden":`true`})]),h(`div`,Be,[h(`div`,Ve,[i[16]||=h(`h3`,{class:`section-title`},`آخرین سفارشها`,-1),h(`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:C(e=>$(t.id),[`enter`])},[h(`div`,Ue,[h(`strong`,null,s(t.title),1),l(N,{size:14,class:`order-row__chevron`,"aria-hidden":`true`})]),h(`span`,We,s(x(O)(t.amountToman))+` تومان`,1),h(`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)):T.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:C(e=>$(t.id),[`enter`])},[h(`div`,Je,[h(`strong`,null,s(t.title),1),l(N,{size:14,class:`order-row__chevron`,"aria-hidden":`true`})]),h(`span`,Ye,s(x(O)(t.amountToman))+` تومان`,1),h(`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[17]||=h(`h3`,{class:`section-title`},`تعاملات و پیگیریها`,-1),h(`button`,{type:`button`,class:`dashed-btn`,onClick:q},` + ثبت گزارش ملاقات جدید `),h(`div`,Qe,[(a(),f(m,null,n(ot,t=>h(`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`},[h(`div`,{class:e([`meeting-row__icon`,ct(t.type)])},[t.type===`in_person`?(a(),b(re,{key:0,size:16})):t.type===`call`?(a(),b(ne,{key:1,size:16})):t.type===`message`?(a(),b(oe,{key:2,size:16})):(a(),b(ie,{key:3,size:16}))],2),h(`div`,et,[h(`strong`,null,s(le(t.type)),1),h(`p`,null,s(t.description||t.title),1)]),h(`span`,tt,s(t.date),1)]))),128)),st.value.length?d(``,!0):(a(),f(`p`,nt,` گزارشی برای این فیلتر ثبت نشده است. `))]))]),T.value===`info`?(a(),f(`footer`,rt,[h(`button`,{type:`button`,class:`cta`,onClick:i[3]||=e=>x(v).push(`/categories`)},[l(A,{size:20,color:`#fff`}),i[18]||=p(` سفارش جدید برای این مشتری `,-1)])])):d(``,!0)])):H.value?(a(),f(`div`,it,[l(I,{variant:`detail`})])):(a(),f(`div`,at,[h(`p`,null,s(U.value||`مشتری یافت نشد.`),1)])),l(fe,{open:E.value,"customer-id":w.value,onClose:J,onSuccess:se},null,8,[`open`,`customer-id`]),l(ae,{open:D.value,"customer-id":w.value,initial:Z.value,onClose:X,onSuccess:ce},null,8,[`open`,`customer-id`,`initial`])],64))}}),[[`__scopeId`,`data-v-20a7b2ca`]]);export{ot as default}; \ No newline at end of file diff --git a/dist/assets/CustomersView-piK0jqOq.js b/dist/assets/CustomersView-CZjxpGXP.js similarity index 94% rename from dist/assets/CustomersView-piK0jqOq.js rename to dist/assets/CustomersView-CZjxpGXP.js index e4f278f..883de0c 100644 --- a/dist/assets/CustomersView-piK0jqOq.js +++ b/dist/assets/CustomersView-CZjxpGXP.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{A as re,S as v,k as ie,s as ae,w as oe}from"./index-BSpFi5xB.js";import{t as y}from"./IconFilter-Br-Ixz6t.js";import{t as b}from"./PageHeader-DpR4Zxvt.js";import{t as x}from"./SearchField-dVDn9y5S.js";import{t as S}from"./PageSkeleton-DYdjm4l9.js";import{t as C}from"./crm-Bj4T2PId.js";import{t as w}from"./CustomerCreateOverlay-B4lkmOh7.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=ie(),z=re(),B=C(),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(x,{"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(oe,{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(S,{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(ae,{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(w,{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{A as re,S as v,k as ie,s as ae,w as oe}from"./index-BPUhS8CY.js";import{t as y}from"./IconFilter-Br-Ixz6t.js";import{t as b}from"./PageHeader-CG1ktltl.js";import{t as x}from"./SearchField-dVDn9y5S.js";import{t as S}from"./PageSkeleton-DYdjm4l9.js";import{t as C}from"./crm-BKPKhzCX.js";import{t as w}from"./CustomerCreateOverlay-4geBn3dg.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=ie(),z=re(),B=C(),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(x,{"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(oe,{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(S,{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(ae,{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(w,{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-D0oAusrB.js b/dist/assets/FavoritesView-STPnyOQ5.js similarity index 94% rename from dist/assets/FavoritesView-D0oAusrB.js rename to dist/assets/FavoritesView-STPnyOQ5.js index 53d1dbe..2f99a64 100644 --- a/dist/assets/FavoritesView-D0oAusrB.js +++ b/dist/assets/FavoritesView-STPnyOQ5.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{u as g}from"./BasicIcon-ba1FsUKx.js";import{o as _}from"./format-C72AoJ2H.js";import{A as v,s as y,u as b}from"./index-BSpFi5xB.js";import{t as x}from"./PageHeader-DpR4Zxvt.js";import{t as S}from"./PageSkeleton-DYdjm4l9.js";import{t as C}from"./crm-Bj4T2PId.js";import{t as w}from"./IconBookmark-CQq-TOS-.js";import{n as T,t as E}from"./colorSwatch-BgOH1LE5.js";var D={class:`page favorites-page`},O={class:`page__scroll page__scroll--with-nav body`},k={key:1},A={key:2,class:`empty`},j=[`onClick`],M={class:`product-item__body`},N={class:`product-item__head`},P={class:`product-item__title`},F={key:0,class:`new-tag`},I=[`onClick`],L={class:`product-item__specs`},R={key:0,class:`swatches`},z=[`onClick`],B=f(h({__name:`FavoritesView`,setup(f){let h={summer:`تابستانه`,winter:`زمستانه`,all_season:`چهارفصل`},B=v(),V=b(),H=C(),U=d([]),W=d(!0),G=d(null);l(async()=>{W.value=!0;try{await V.hydrate();let e=await H.loadBrowseProducts(),t=new Set(V.ids);U.value=e.filter(e=>t.has(e.id))}catch(e){G.value=e instanceof Error?e.message:`بارگذاری علاقهمندیها ناموفق بود.`}finally{W.value=!1}});function K(e){return h[e]??`—`}function q(e){return E(e.colors,e.colorImages,e.imageUrls,0,e.imageUrl)}function J(e){B.push({path:`/product`,query:{id:e}})}async function Y(e){await V.toggle(e),U.value=U.value.filter(t=>t.id!==e)}return(l,d)=>(t(),o(`div`,D,[i(x,{class:`mobile-only`,title:`علاقهمندیها`,"show-back":``,centered:``,onBack:d[0]||=e=>m(B).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`,O,[W.value?(t(),p(S,{key:0,variant:`grid`})):G.value?(t(),o(`p`,k,r(G.value),1)):U.value.length?a(``,!0):(t(),o(`p`,A,`هنوز محصولی ذخیره نکردهاید.`)),(t(!0),o(c,null,e(U.value,l=>(t(),o(`article`,{key:l.id,class:`product-item`,onClick:e=>J(l.id)},[u(`div`,{class:`product-item__image`,style:n(q(l)?{backgroundImage:`url(${q(l)})`}:m(T)(l.colors[0]??``))},null,4),u(`div`,M,[u(`div`,N,[u(`div`,P,[u(`strong`,null,r(l.name),1),l.isNew?(t(),o(`span`,F,`جدید`)):a(``,!0)]),u(`button`,{type:`button`,class:`bookmark`,"aria-label":`حذف از علاقهمندیها`,onClick:g(e=>Y(l.id),[`stop`])},[i(w,{size:18,filled:``,color:`var(--color-primary)`})],8,I)]),u(`ul`,L,[u(`li`,null,`عرض: `+r(m(_)(l.widthCm))+` سانتیمتر`,1),u(`li`,null,`ترکیب: `+r(l.composition||`—`),1),u(`li`,null,`مناسب: `+r(K(l.season)),1)]),l.colors.length?(t(),o(`div`,R,[(t(!0),o(c,null,e(l.colors.slice(0,6),(e,r)=>(t(),o(`span`,{key:r,class:`swatch`,style:n(m(T)(e,l.colorImages?.[r]||l.imageUrls?.[r]))},null,4))),128))])):a(``,!0),u(`button`,{type:`button`,class:`details-link`,onClick:g(e=>J(l.id),[`stop`])},[d[1]||=s(` مشاهده جزئیات `,-1),i(y,{size:14})],8,z)])],8,j))),128))])]))}}),[[`__scopeId`,`data-v-cc481a5f`]]);export{B 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{u as g}from"./BasicIcon-ba1FsUKx.js";import{o as _}from"./format-C72AoJ2H.js";import{A as v,s as y,u as b}from"./index-BPUhS8CY.js";import{t as x}from"./PageHeader-CG1ktltl.js";import{t as S}from"./PageSkeleton-DYdjm4l9.js";import{t as C}from"./crm-BKPKhzCX.js";import{t as w}from"./IconBookmark-CQq-TOS-.js";import{n as T,t as E}from"./colorSwatch-BgOH1LE5.js";var D={class:`page favorites-page`},O={class:`page__scroll page__scroll--with-nav body`},k={key:1},A={key:2,class:`empty`},j=[`onClick`],M={class:`product-item__body`},N={class:`product-item__head`},P={class:`product-item__title`},F={key:0,class:`new-tag`},I=[`onClick`],L={class:`product-item__specs`},R={key:0,class:`swatches`},z=[`onClick`],B=f(h({__name:`FavoritesView`,setup(f){let h={summer:`تابستانه`,winter:`زمستانه`,all_season:`چهارفصل`},B=v(),V=b(),H=C(),U=d([]),W=d(!0),G=d(null);l(async()=>{W.value=!0;try{await V.hydrate();let e=await H.loadBrowseProducts(),t=new Set(V.ids);U.value=e.filter(e=>t.has(e.id))}catch(e){G.value=e instanceof Error?e.message:`بارگذاری علاقهمندیها ناموفق بود.`}finally{W.value=!1}});function K(e){return h[e]??`—`}function q(e){return E(e.colors,e.colorImages,e.imageUrls,0,e.imageUrl)}function J(e){B.push({path:`/product`,query:{id:e}})}async function Y(e){await V.toggle(e),U.value=U.value.filter(t=>t.id!==e)}return(l,d)=>(t(),o(`div`,D,[i(x,{class:`mobile-only`,title:`علاقهمندیها`,"show-back":``,centered:``,onBack:d[0]||=e=>m(B).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`,O,[W.value?(t(),p(S,{key:0,variant:`grid`})):G.value?(t(),o(`p`,k,r(G.value),1)):U.value.length?a(``,!0):(t(),o(`p`,A,`هنوز محصولی ذخیره نکردهاید.`)),(t(!0),o(c,null,e(U.value,l=>(t(),o(`article`,{key:l.id,class:`product-item`,onClick:e=>J(l.id)},[u(`div`,{class:`product-item__image`,style:n(q(l)?{backgroundImage:`url(${q(l)})`}:m(T)(l.colors[0]??``))},null,4),u(`div`,M,[u(`div`,N,[u(`div`,P,[u(`strong`,null,r(l.name),1),l.isNew?(t(),o(`span`,F,`جدید`)):a(``,!0)]),u(`button`,{type:`button`,class:`bookmark`,"aria-label":`حذف از علاقهمندیها`,onClick:g(e=>Y(l.id),[`stop`])},[i(w,{size:18,filled:``,color:`var(--color-primary)`})],8,I)]),u(`ul`,L,[u(`li`,null,`عرض: `+r(m(_)(l.widthCm))+` سانتیمتر`,1),u(`li`,null,`ترکیب: `+r(l.composition||`—`),1),u(`li`,null,`مناسب: `+r(K(l.season)),1)]),l.colors.length?(t(),o(`div`,R,[(t(!0),o(c,null,e(l.colors.slice(0,6),(e,r)=>(t(),o(`span`,{key:r,class:`swatch`,style:n(m(T)(e,l.colorImages?.[r]||l.imageUrls?.[r]))},null,4))),128))])):a(``,!0),u(`button`,{type:`button`,class:`details-link`,onClick:g(e=>J(l.id),[`stop`])},[d[1]||=s(` مشاهده جزئیات `,-1),i(y,{size:14})],8,z)])],8,j))),128))])]))}}),[[`__scopeId`,`data-v-cc481a5f`]]);export{B as default}; \ No newline at end of file diff --git a/dist/assets/HomeView-DmTJ-9wH.js b/dist/assets/HomeView-dqm__2Hc.js similarity index 98% rename from dist/assets/HomeView-DmTJ-9wH.js rename to dist/assets/HomeView-dqm__2Hc.js index f8e1e39..7aca23f 100644 --- a/dist/assets/HomeView-DmTJ-9wH.js +++ b/dist/assets/HomeView-dqm__2Hc.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{r as te,u as x}from"./BasicIcon-ba1FsUKx.js";import{o as S}from"./format-C72AoJ2H.js";import{n as C}from"./http-CU_N-R2R.js";import{A as ne,a as w,c as re,i as ie,l as ae,s as T,u as E}from"./index-BSpFi5xB.js";import{t as oe}from"./IconChevronBack-DytWz6TD.js";import{t as se}from"./PageSkeleton-DYdjm4l9.js";import{n as ce,r as le,t as ue}from"./crm-Bj4T2PId.js";import{t as de}from"./useGoBack-aBY3TtNx.js";import{t as D}from"./IconBookmark-CQq-TOS-.js";import{t as fe}from"./IconHeart-CvzbNH_T.js";import{n as O,t as k}from"./AddressCompletionModal-CtP8_RSJ.js";import{n as A}from"./colorSwatch-BgOH1LE5.js";async function pe(){return C(`/suggestions/me`)}var me=`/assets/level-medal-Avpe4Lqa.webp`,j=`/assets/quick-categories-grid-MFEfEUjL.webp`,he=`/assets/quick-catalog-request-Ck7EqicC.webp`,ge=`/assets/latest-order-status-CfJ1sx5U.webp`,M={class:`suggest-panel`,"aria-label":`پیشنهاد اختصاصی`},N={class:`suggest-panel__head`},P={key:0,class:`suggest-panel__empty`},F={key:1,class:`suggest-panel__row scroll-x`},I=[`onClick`],L=[`aria-label`,`aria-pressed`,`onClick`],R={class:`suggest-product__body`},z={class:`suggest-product__name`},B={class:`suggest-product__desc`},V={key:0,class:`suggest-product__swatches`},H={key:0,class:`suggest-product__swatch suggest-product__swatch--more`},U={class:`suggest-product__specs`},W={class:`suggest-product__spec`},G={class:`suggest-product__spec-copy`},K={class:`suggest-product__spec-val`},_e={class:`suggest-product__spec`},ve={class:`suggest-product__spec-copy`},q={class:`suggest-product__spec-val`},J=[`disabled`,`onClick`],Y=4,ye=_(b({__name:`HomeSuggestionsSection`,props:{items:{}},setup(e){let t=e,r=ne(),s=E(),{requesting:m,addressModalOpen:g,addressError:_,requestCatalog:v,submitAddressAndRequest:b,closeAddressModal:te}=O();function C(e){return e.note?.trim()||e.subtitle?.trim()||`مشابه خریدهای قبلی شما`}function w(e){let t=e.colors?.length??0;return t>Y?t-Y:0}function re(e){return{id:e.productId,name:e.productName,code:e.productCode,categoryId:``,season:`all_season`,widthCm:e.widthCm??0,composition:e.composition??``,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}}function ie(e){r.push({path:`/product`,query:{id:e.productId}})}async function ae(e){await s.toggle(e)}async function oe(e){await v(re(e))}let se=l(()=>t.items.length>0);function ce(e){return e.composition?.trim()||`—`}function le(e){return e.widthCm?`${S(e.widthCm)} cm`:`—`}return(t,l)=>(i(),d(`section`,M,[h(`header`,N,[l[3]||=ee(`
بر اساس خریدهای قبلی و علاقهمندیهای شما
بر اساس خریدهای قبلی و علاقهمندیهای شما
``),Y(0))}async function pe(){if(!K.value)return;U.value=``,H.value={};let e=z.value?T():null;if(z.value&&!e){U.value=`برای ارسال مجدد کد، نام و نام خانوادگی لازم است. لطفاً دوباره ثبتنام را شروع کنید.`;return}let t=await L.requestOtp(R.value,{isRegister:z.value,firstName:e?.firstName,lastName:e?.lastName});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-27df1667`]]);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{u as y}from"./BasicIcon-ba1FsUKx.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{A as w,g as T,k as E,l as ee}from"./index-BPUhS8CY.js";import{t as te}from"./AuthShell-CmEncS1b.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=E(),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?T():null;if(z.value&&!e){U.value=`برای ارسال مجدد کد، نام و نام خانوادگی لازم است. لطفاً دوباره ثبتنام را شروع کنید.`;return}let t=await L.requestOtp(R.value,{isRegister:z.value,firstName:e?.firstName,lastName:e?.lastName});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-27df1667`]]);export{I as default};
\ No newline at end of file
diff --git a/dist/assets/PageHeader-DpR4Zxvt.js b/dist/assets/PageHeader-CG1ktltl.js
similarity index 95%
rename from dist/assets/PageHeader-DpR4Zxvt.js
rename to dist/assets/PageHeader-CG1ktltl.js
index 020ad98..4b228c9 100644
--- a/dist/assets/PageHeader-DpR4Zxvt.js
+++ b/dist/assets/PageHeader-CG1ktltl.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-BSpFi5xB.js";import{t as f}from"./IconChevronBack-DytWz6TD.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-c4a68159`]]);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-BPUhS8CY.js";import{t as f}from"./IconChevronBack-DytWz6TD.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-c4a68159`]]);export{x as t};
\ No newline at end of file
diff --git a/dist/assets/ProductDetailView-DnBLP2jn.css b/dist/assets/ProductDetailView-C5hAQszK.css
similarity index 53%
rename from dist/assets/ProductDetailView-DnBLP2jn.css
rename to dist/assets/ProductDetailView-C5hAQszK.css
index ff52bb4..7b0f67e 100644
--- a/dist/assets/ProductDetailView-DnBLP2jn.css
+++ b/dist/assets/ProductDetailView-C5hAQszK.css
@@ -1 +1 @@
-.product-order-modal[data-v-9e750bcd]{width:100%;max-width:420px;padding:18px 18px 16px}.product-order-modal__head[data-v-9e750bcd]{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.product-order-modal__title[data-v-9e750bcd]{margin:0;font-size:1.0625rem;font-weight:700}.product-order-modal__close[data-v-9e750bcd]{width:32px;height:32px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;font-size:1.5rem;line-height:1}.product-order-modal__table-head[data-v-9e750bcd]{color:var(--color-text-muted);grid-template-columns:1fr auto;gap:12px;padding:0 4px 8px;font-size:.8125rem;font-weight:600;display:grid}.product-order-modal__rows[data-v-9e750bcd]{flex-direction:column;gap:10px;max-height:min(52vh,360px);margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.product-order-row[data-v-9e750bcd]{border:1px solid var(--color-border);background:var(--color-elevated);border-radius:14px;grid-template-columns:1fr auto;align-items:center;gap:12px;padding:10px 12px;display:grid}.product-order-row__color[data-v-9e750bcd]{align-items:center;gap:10px;min-width:0;display:flex}.product-order-row__swatch[data-v-9e750bcd]{border:1px solid var(--color-border);border-radius:999px;flex-shrink:0;width:28px;height:28px}.product-order-row__label[data-v-9e750bcd]{color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem;overflow:hidden}.product-order-row__stepper[data-v-9e750bcd]{align-items:center;gap:8px;display:inline-flex}.product-order-row__btn[data-v-9e750bcd]{border:1px solid var(--color-border);background:var(--color-surface);width:32px;height:32px;color:var(--color-text);cursor:pointer;border-radius:10px;font-size:1.125rem;line-height:1}.product-order-row__btn[data-v-9e750bcd]:disabled{opacity:.45;cursor:not-allowed}.product-order-row__qty[data-v-9e750bcd]{text-align:center;min-width:1.5rem;font-size:.9375rem;font-weight:700}.product-order-modal__error[data-v-9e750bcd]{color:var(--color-danger);margin:10px 0 0;font-size:.8125rem}.product-order-modal__footer[data-v-9e750bcd]{border-top:1px solid var(--color-border);flex-direction:column;gap:8px;margin-top:14px;padding-top:14px;display:flex}.product-order-modal__price[data-v-9e750bcd]{justify-content:space-between;align-items:baseline;gap:12px;font-size:.875rem;display:flex}.product-order-modal__price strong[data-v-9e750bcd]{color:var(--color-text);font-size:1rem}.product-order-modal__hint[data-v-9e750bcd]{color:var(--color-text-muted);margin:0;font-size:.75rem}.product-order-modal__submit[data-v-9e750bcd]{width:100%;margin-top:4px}@media (width<=767px){.product-order-overlay[data-v-9e750bcd]{align-items:flex-end;padding:0}.product-order-modal[data-v-9e750bcd]{border-bottom-right-radius:0;border-bottom-left-radius:0;max-width:none}}.product-detail[data-v-9e36151f]{--pd-card-border:1px solid #eeeef1;--pd-card-shadow:0 1px 2px #1018280a, 0 6px 16px #1018280d;--pd-card-radius:16px;background:var(--color-surface);flex-direction:column;min-height:100%;display:flex}.pd-header[data-v-9e36151f]{padding:8px var(--page-padding);background:var(--color-surface);justify-content:space-between;align-items:center;display:flex}.pd-header__actions[data-v-9e36151f]{gap:4px;display:flex}.icon-btn[data-v-9e36151f]{cursor:pointer;background:0 0;border:none;place-items:center;width:40px;height:40px;display:grid}.pd-scroll[data-v-9e36151f]{flex:1;padding-bottom:120px;padding-left:1rem;padding-right:1rem}.gallery__stage[data-v-9e36151f]{position:relative}.gallery__main[data-v-9e36151f]{border-radius:var(--radius-lg);background:linear-gradient(160deg,#a8b5a0,#6f8570);height:260px}.gallery__dots[data-v-9e36151f]{z-index:2;justify-content:center;gap:6px;display:flex;position:absolute;bottom:12px;left:0;right:0}.gallery__dot[data-v-9e36151f]{cursor:pointer;background:#ffffff73;border:none;border-radius:999px;width:6px;height:6px;padding:0;transition:width .35s,background .35s;box-shadow:0 1px 3px #00000040}.gallery__dot--active[data-v-9e36151f]{background:#fff;width:16px}.gallery__thumbs[data-v-9e36151f]{margin:12px var(--page-padding) 0;background:var(--color-surface);border:var(--pd-card-border);border-radius:var(--pd-card-radius);box-shadow:var(--pd-card-shadow);gap:10px;padding:10px;display:flex;overflow-x:auto}.thumb[data-v-9e36151f]{appearance:none;border:var(--pd-card-border);background:var(--color-surface);width:52px;height:52px;box-shadow:var(--pd-card-shadow);cursor:pointer;box-sizing:border-box;border-radius:14px;flex-shrink:0;padding:0}.thumb__swatch[data-v-9e36151f]{border-radius:12px;width:100%;height:100%;display:block}.thumb--active[data-v-9e36151f]{border:2px solid var(--color-primary);padding:3px}.thumb--active .thumb__swatch[data-v-9e36151f]{border-radius:9px}.pd-body[data-v-9e36151f]{padding:16px var(--page-padding) 20px;background:var(--color-surface);flex-direction:column;gap:18px;display:flex}.title-row[data-v-9e36151f]{justify-content:flex-start;align-items:center;gap:8px;display:flex}.title-row h1[data-v-9e36151f]{margin:0;font-size:1.2rem;font-weight:700}.new-badge[data-v-9e36151f]{color:#fff;background:#96b49c;border:none;border-radius:10px;justify-content:center;align-items:center;height:26px;padding:0 16px;font-size:.8125rem;font-weight:500;line-height:1;display:inline-flex}.code[data-v-9e36151f]{color:var(--color-text-muted);margin:-10px 0 0;font-size:.82rem}.specs[data-v-9e36151f]{background:var(--color-surface);border:var(--pd-card-border);border-radius:var(--pd-card-radius);box-shadow:var(--pd-card-shadow);grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:14px 8px;display:grid}.spec-cell[data-v-9e36151f]{text-align:center;flex-direction:column;align-items:center;gap:6px;min-width:0;display:flex}.spec-icon[data-v-9e36151f]{color:#98a2ad;place-items:center;width:22px;height:22px;display:grid}.spec-icon svg[data-v-9e36151f]{width:22px;height:22px}.spec-cell strong[data-v-9e36151f]{color:var(--color-text);text-overflow:ellipsis;max-width:100%;font-size:.75rem;font-weight:700;line-height:1.45;overflow:hidden}.spec-cell span[data-v-9e36151f]:not(.spec-icon){color:var(--color-text-muted);font-size:.72rem;font-weight:600}.specs-more[data-v-9e36151f]{color:#8b939c;cursor:pointer;background:0 0;border:none;align-self:center;align-items:center;gap:4px;padding:0;font-size:.8rem;font-weight:500;display:inline-flex}.specs-more__chevron[data-v-9e36151f]{width:12px;height:12px}.specs-more__chevron.is-open[data-v-9e36151f]{transform:rotate(180deg)}.specs-extra[data-v-9e36151f]{color:var(--color-text-muted);background:#f6f7f8;border-radius:12px;padding:12px 14px;font-size:.82rem}.specs-extra p[data-v-9e36151f]{margin:0 0 6px}.specs-extra p[data-v-9e36151f]:last-child{margin:0}.pd-section[data-v-9e36151f]{flex-direction:column;gap:10px;display:flex}.pd-section--boxed[data-v-9e36151f]{background:var(--color-surface);border:var(--pd-card-border);border-radius:var(--pd-card-radius);box-shadow:var(--pd-card-shadow);padding:12px 14px}.section-head[data-v-9e36151f]{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.section-head h2[data-v-9e36151f],.section-title[data-v-9e36151f]{margin:0;font-size:.95rem;font-weight:700}.section-head span[data-v-9e36151f]{color:#8b939c;font-size:.78rem}.colors[data-v-9e36151f]{padding:4px 2px;flex-wrap:nowrap;gap:14px;padding-inline-start:20px;display:flex;overflow-x:auto}.color-dot[data-v-9e36151f]{appearance:none;width:22px;height:22px;box-shadow:none;cursor:pointer;box-sizing:border-box;background-position:50%;background-size:cover;border:1px solid #00000014;border-radius:999px;flex-shrink:0;padding:0}.color-dot--active[data-v-9e36151f]{box-shadow:0 0 0 2px #fff, 0 0 0 3.5px var(--color-primary);border-color:#0000}.tags[data-v-9e36151f]{flex-wrap:wrap;justify-content:flex-start;gap:8px;display:flex}.tag[data-v-9e36151f],button.tag[data-v-9e36151f]{appearance:none;border:var(--pd-card-border);background:var(--color-surface);color:#6b7280;letter-spacing:0;white-space:nowrap;height:32px;min-height:32px;box-shadow:var(--pd-card-shadow);border-radius:6px;outline:none;justify-content:center;align-items:center;padding:0 16px;font-size:.8125rem;font-weight:400;line-height:1;display:inline-flex}button.tag[data-v-9e36151f]{cursor:default;font-family:inherit}button.tag--link[data-v-9e36151f]{cursor:pointer}button.tag--link[data-v-9e36151f]:hover{background:var(--color-surface)}.roll-field[data-v-9e36151f]{border:var(--pd-card-border);background:var(--color-surface);width:fit-content;max-width:100%;box-shadow:var(--pd-card-shadow);color:#6b7280;border-radius:6px;align-items:center;padding:0 16px;font-size:.9rem;display:inline-flex}.pd-footer[data-v-9e36151f]{padding:12px var(--page-padding) calc(12px + env(safe-area-inset-bottom,0));background:var(--color-surface);border-top:1px solid var(--color-border);grid-template-columns:1.2fr 1fr;align-items:start;gap:8px;display:grid;position:sticky;bottom:0}.pd-footer__primary[data-v-9e36151f]{flex-direction:column;display:flex}.btn-secondary[data-v-9e36151f],.btn-primary[data-v-9e36151f]{cursor:pointer;border-radius:12px;justify-content:center;align-items:center;gap:6px;width:100%;height:48px;min-height:48px;font-weight:700;display:inline-flex}.btn-secondary[data-v-9e36151f]{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-primary)}.btn-secondary__icon[data-v-9e36151f]{object-fit:contain;flex-shrink:0;width:18px;height:18px;display:block}.btn-primary[data-v-9e36151f]{background:var(--color-accent-navy);color:#fff;border:none}.btn-primary[data-v-9e36151f]:disabled{opacity:.7;cursor:wait}.min-note[data-v-9e36151f]{text-align:center;color:var(--color-text-muted);margin:6px 0 0;font-size:.7rem}.empty[data-v-9e36151f]{padding:40px var(--page-padding);text-align:center}.pd-desk-head[data-v-9e36151f]{padding-inline:var(--page-padding);justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:4px;display:flex}.pd-desk-head__actions[data-v-9e36151f]{flex-shrink:0;gap:4px;display:flex}.pd-desk-catalog-btn[data-v-9e36151f]{margin-top:10px}@media (width>=768px){.product-detail[data-v-9e36151f]{max-width:var(--content-max-width);width:100%;padding:8px var(--page-padding) 28px;box-sizing:border-box;margin-inline:auto}.pd-desk-head[data-v-9e36151f]{margin-bottom:12px;padding-inline:0}.pd-scroll[data-v-9e36151f]{padding-bottom:0}.gallery__stage[data-v-9e36151f]{border-radius:var(--radius-lg);overflow:hidden}.gallery__main[data-v-9e36151f]{border-radius:0;height:360px}.gallery__thumbs[data-v-9e36151f]{margin-inline:0}.pd-body[data-v-9e36151f]{padding-inline:0}.product-page__layout[data-v-9e36151f]{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:24px;display:grid}.product-page__sidebar[data-v-9e36151f]{position:sticky;top:16px}.cart-summary-panel__btn .btn-primary[data-v-9e36151f]{width:100%}}@media (width>=1200px){.product-page__layout[data-v-9e36151f]{grid-template-columns:minmax(0,1fr) 340px;gap:28px}.gallery__main[data-v-9e36151f]{height:420px}.gallery__dots[data-v-9e36151f]{bottom:16px}}
+.product-order-modal[data-v-9e750bcd]{width:100%;max-width:420px;padding:18px 18px 16px}.product-order-modal__head[data-v-9e750bcd]{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.product-order-modal__title[data-v-9e750bcd]{margin:0;font-size:1.0625rem;font-weight:700}.product-order-modal__close[data-v-9e750bcd]{width:32px;height:32px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;font-size:1.5rem;line-height:1}.product-order-modal__table-head[data-v-9e750bcd]{color:var(--color-text-muted);grid-template-columns:1fr auto;gap:12px;padding:0 4px 8px;font-size:.8125rem;font-weight:600;display:grid}.product-order-modal__rows[data-v-9e750bcd]{flex-direction:column;gap:10px;max-height:min(52vh,360px);margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.product-order-row[data-v-9e750bcd]{border:1px solid var(--color-border);background:var(--color-elevated);border-radius:14px;grid-template-columns:1fr auto;align-items:center;gap:12px;padding:10px 12px;display:grid}.product-order-row__color[data-v-9e750bcd]{align-items:center;gap:10px;min-width:0;display:flex}.product-order-row__swatch[data-v-9e750bcd]{border:1px solid var(--color-border);border-radius:999px;flex-shrink:0;width:28px;height:28px}.product-order-row__label[data-v-9e750bcd]{color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem;overflow:hidden}.product-order-row__stepper[data-v-9e750bcd]{align-items:center;gap:8px;display:inline-flex}.product-order-row__btn[data-v-9e750bcd]{border:1px solid var(--color-border);background:var(--color-surface);width:32px;height:32px;color:var(--color-text);cursor:pointer;border-radius:10px;font-size:1.125rem;line-height:1}.product-order-row__btn[data-v-9e750bcd]:disabled{opacity:.45;cursor:not-allowed}.product-order-row__qty[data-v-9e750bcd]{text-align:center;min-width:1.5rem;font-size:.9375rem;font-weight:700}.product-order-modal__error[data-v-9e750bcd]{color:var(--color-danger);margin:10px 0 0;font-size:.8125rem}.product-order-modal__footer[data-v-9e750bcd]{border-top:1px solid var(--color-border);flex-direction:column;gap:8px;margin-top:14px;padding-top:14px;display:flex}.product-order-modal__price[data-v-9e750bcd]{justify-content:space-between;align-items:baseline;gap:12px;font-size:.875rem;display:flex}.product-order-modal__price strong[data-v-9e750bcd]{color:var(--color-text);font-size:1rem}.product-order-modal__hint[data-v-9e750bcd]{color:var(--color-text-muted);margin:0;font-size:.75rem}.product-order-modal__submit[data-v-9e750bcd]{width:100%;margin-top:4px}@media (width<=767px){.product-order-overlay[data-v-9e750bcd]{align-items:flex-end;padding:0}.product-order-modal[data-v-9e750bcd]{border-bottom-right-radius:0;border-bottom-left-radius:0;max-width:none}}.product-detail[data-v-d495585d]{--pd-card-border:1px solid #eeeef1;--pd-card-shadow:0 1px 2px #1018280a, 0 6px 16px #1018280d;--pd-card-radius:16px;background:var(--color-surface);flex-direction:column;min-height:100%;display:flex}.pd-header[data-v-d495585d]{padding:8px var(--page-padding);background:var(--color-surface);justify-content:space-between;align-items:center;display:flex}.pd-header__actions[data-v-d495585d]{gap:4px;display:flex}.icon-btn[data-v-d495585d]{cursor:pointer;background:0 0;border:none;place-items:center;width:40px;height:40px;display:grid}.pd-scroll[data-v-d495585d]{flex:1;padding-bottom:120px;padding-left:1rem;padding-right:1rem}.gallery__stage[data-v-d495585d]{position:relative}.gallery__main[data-v-d495585d]{border-radius:var(--radius-lg);background:linear-gradient(160deg,#a8b5a0,#6f8570);height:260px}.gallery__dots[data-v-d495585d]{z-index:2;justify-content:center;gap:6px;display:flex;position:absolute;bottom:12px;left:0;right:0}.gallery__dot[data-v-d495585d]{cursor:pointer;background:#ffffff73;border:none;border-radius:999px;width:6px;height:6px;padding:0;transition:width .35s,background .35s;box-shadow:0 1px 3px #00000040}.gallery__dot--active[data-v-d495585d]{background:#fff;width:16px}.gallery__thumbs[data-v-d495585d]{margin:12px var(--page-padding) 0;background:var(--color-surface);border:var(--pd-card-border);border-radius:var(--pd-card-radius);box-shadow:var(--pd-card-shadow);gap:10px;padding:10px;display:flex;overflow-x:auto}.thumb[data-v-d495585d]{appearance:none;border:var(--pd-card-border);background:var(--color-surface);width:52px;height:52px;box-shadow:var(--pd-card-shadow);cursor:pointer;box-sizing:border-box;border-radius:14px;flex-shrink:0;padding:0}.thumb__swatch[data-v-d495585d]{border-radius:12px;width:100%;height:100%;display:block}.thumb--active[data-v-d495585d]{border:2px solid var(--color-primary);padding:3px}.thumb--active .thumb__swatch[data-v-d495585d]{border-radius:9px}.pd-body[data-v-d495585d]{padding:16px var(--page-padding) 20px;background:var(--color-surface);flex-direction:column;gap:18px;display:flex}.title-row[data-v-d495585d]{justify-content:flex-start;align-items:center;gap:8px;display:flex}.title-row h1[data-v-d495585d]{margin:0;font-size:1.2rem;font-weight:700}.new-badge[data-v-d495585d]{color:#fff;background:#96b49c;border:none;border-radius:10px;justify-content:center;align-items:center;height:26px;padding:0 16px;font-size:.8125rem;font-weight:500;line-height:1;display:inline-flex}.code[data-v-d495585d]{color:var(--color-text-muted);margin:-10px 0 0;font-size:.82rem}.specs[data-v-d495585d]{background:var(--color-surface);border:var(--pd-card-border);border-radius:var(--pd-card-radius);box-shadow:var(--pd-card-shadow);grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:14px 8px;display:grid}.spec-cell[data-v-d495585d]{text-align:center;flex-direction:column;align-items:center;gap:6px;min-width:0;display:flex}.spec-icon[data-v-d495585d]{color:#98a2ad;place-items:center;width:22px;height:22px;display:grid}.spec-icon svg[data-v-d495585d]{width:22px;height:22px}.spec-cell strong[data-v-d495585d]{color:var(--color-text);text-overflow:ellipsis;max-width:100%;font-size:.75rem;font-weight:700;line-height:1.45;overflow:hidden}.spec-cell span[data-v-d495585d]:not(.spec-icon){color:var(--color-text-muted);font-size:.72rem;font-weight:600}.specs-more[data-v-d495585d]{color:#8b939c;cursor:pointer;background:0 0;border:none;align-self:center;align-items:center;gap:4px;padding:0;font-size:.8rem;font-weight:500;display:inline-flex}.specs-more__chevron[data-v-d495585d]{width:12px;height:12px}.specs-more__chevron.is-open[data-v-d495585d]{transform:rotate(180deg)}.specs-extra[data-v-d495585d]{color:var(--color-text-muted);background:#f6f7f8;border-radius:12px;padding:12px 14px;font-size:.82rem}.specs-extra p[data-v-d495585d]{margin:0 0 6px}.specs-extra p[data-v-d495585d]:last-child{margin:0}.pd-section[data-v-d495585d]{flex-direction:column;gap:10px;display:flex}.pd-section--boxed[data-v-d495585d]{background:var(--color-surface);border:var(--pd-card-border);border-radius:var(--pd-card-radius);box-shadow:var(--pd-card-shadow);padding:12px 14px}.section-head[data-v-d495585d]{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.section-head h2[data-v-d495585d],.section-title[data-v-d495585d]{margin:0;font-size:.95rem;font-weight:700}.section-head span[data-v-d495585d]{color:#8b939c;font-size:.78rem}.colors[data-v-d495585d]{padding:4px 2px;flex-wrap:nowrap;gap:14px;padding-inline-start:20px;display:flex;overflow-x:auto}.color-dot[data-v-d495585d]{appearance:none;width:22px;height:22px;box-shadow:none;cursor:pointer;box-sizing:border-box;background-position:50%;background-size:cover;border:1px solid #00000014;border-radius:999px;flex-shrink:0;padding:0}.color-dot--active[data-v-d495585d]{box-shadow:0 0 0 2px #fff, 0 0 0 3.5px var(--color-primary);border-color:#0000}.tags[data-v-d495585d]{flex-wrap:wrap;justify-content:flex-start;gap:8px;display:flex}.tag[data-v-d495585d],button.tag[data-v-d495585d]{appearance:none;border:var(--pd-card-border);background:var(--color-surface);color:#6b7280;letter-spacing:0;white-space:nowrap;height:32px;min-height:32px;box-shadow:var(--pd-card-shadow);border-radius:6px;outline:none;justify-content:center;align-items:center;padding:0 16px;font-size:.8125rem;font-weight:400;line-height:1;display:inline-flex}button.tag[data-v-d495585d]{cursor:default;font-family:inherit}button.tag--link[data-v-d495585d]{cursor:pointer}button.tag--link[data-v-d495585d]:hover{background:var(--color-surface)}.roll-field[data-v-d495585d]{border:var(--pd-card-border);background:var(--color-surface);width:fit-content;max-width:100%;box-shadow:var(--pd-card-shadow);color:#6b7280;border-radius:6px;align-items:center;padding:0 16px;font-size:.9rem;display:inline-flex}.pd-footer[data-v-d495585d]{padding:12px var(--page-padding) calc(12px + env(safe-area-inset-bottom,0));background:var(--color-surface);border-top:1px solid var(--color-border);grid-template-columns:1.2fr 1fr;align-items:start;gap:8px;display:grid;position:sticky;bottom:0}.pd-footer__primary[data-v-d495585d]{flex-direction:column;display:flex}.btn-secondary[data-v-d495585d],.btn-primary[data-v-d495585d]{cursor:pointer;border-radius:12px;justify-content:center;align-items:center;gap:6px;width:100%;height:48px;min-height:48px;font-weight:700;display:inline-flex}.btn-secondary[data-v-d495585d]{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-primary)}.btn-secondary__icon[data-v-d495585d]{object-fit:contain;flex-shrink:0;width:18px;height:18px;display:block}.btn-primary[data-v-d495585d]{background:var(--color-accent-navy);color:#fff;border:none}.btn-primary[data-v-d495585d]:disabled{opacity:.7;cursor:wait}.min-note[data-v-d495585d]{text-align:center;color:var(--color-text-muted);margin:6px 0 0;font-size:.7rem}.pd-stock-badge[data-v-d495585d]{color:#b91c1c;vertical-align:middle;background:#b91c1c1f;border-radius:999px;margin-inline-start:8px;padding:2px 8px;font-size:.72rem;font-weight:700;display:inline-block}.stock-notify-panel[data-v-d495585d]{flex-direction:column;gap:10px;display:flex}.stock-notify-panel__lead[data-v-d495585d]{color:var(--color-text-muted);margin:0;font-size:.85rem;line-height:1.5}.btn-link[data-v-d495585d]{font:inherit;color:var(--color-primary);cursor:pointer;text-align:center;background:0 0;border:none;padding:0;font-size:.8rem;font-weight:600}.pd-footer__link[data-v-d495585d]{margin-top:8px}.empty[data-v-d495585d]{padding:40px var(--page-padding);text-align:center}.pd-desk-head[data-v-d495585d]{padding-inline:var(--page-padding);justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:4px;display:flex}.pd-desk-head__actions[data-v-d495585d]{flex-shrink:0;gap:4px;display:flex}.pd-desk-catalog-btn[data-v-d495585d]{margin-top:10px}@media (width>=768px){.product-detail[data-v-d495585d]{max-width:var(--content-max-width);width:100%;padding:8px var(--page-padding) 28px;box-sizing:border-box;margin-inline:auto}.pd-desk-head[data-v-d495585d]{margin-bottom:12px;padding-inline:0}.pd-scroll[data-v-d495585d]{padding-bottom:0}.gallery__stage[data-v-d495585d]{border-radius:var(--radius-lg);overflow:hidden}.gallery__main[data-v-d495585d]{border-radius:0;height:360px}.gallery__thumbs[data-v-d495585d]{margin-inline:0}.pd-body[data-v-d495585d]{padding-inline:0}.product-page__layout[data-v-d495585d]{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:24px;display:grid}.product-page__sidebar[data-v-d495585d]{position:sticky;top:16px}.cart-summary-panel__btn .btn-primary[data-v-d495585d]{width:100%}}@media (width>=1200px){.product-page__layout[data-v-d495585d]{grid-template-columns:minmax(0,1fr) 340px;gap:28px}.gallery__main[data-v-d495585d]{height:420px}.gallery__dots[data-v-d495585d]{bottom:16px}}
diff --git a/dist/assets/ProductDetailView-CkrXDVv9.js b/dist/assets/ProductDetailView-CkrXDVv9.js
new file mode 100644
index 0000000..63ab3c2
--- /dev/null
+++ b/dist/assets/ProductDetailView-CkrXDVv9.js
@@ -0,0 +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 _,t as v,u as y,ut as b,v as x}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{u as ee}from"./BasicIcon-ba1FsUKx.js";import{o as S}from"./format-C72AoJ2H.js";import{t as C}from"./catalog-DvXpKfLO.js";import{A as w,E as T,O as E,c as D,k as O,r as k,t as A,u as te}from"./index-BPUhS8CY.js";import{t as ne}from"./IconChevronBack-DytWz6TD.js";import{t as re}from"./PageSkeleton-DYdjm4l9.js";import{a as ie,o as ae,t as oe}from"./crm-BKPKhzCX.js";import{t as se}from"./useGoBack-BkqOD93C.js";import{n as ce,r as le,t as ue}from"./IconWeave-CTypFxhM.js";import{t as j}from"./IconHeart-CvzbNH_T.js";import{n as de,t as fe}from"./AddressCompletionModal-BQQfvcHU.js";import{n as M,t as pe}from"./colorSwatch-BgOH1LE5.js";import{r as me,t as he}from"./useStockNotify-DeMc7Vja.js";var ge=[`width`,`height`],_e=[`stroke`],N=[`stroke`],P=[`stroke`],F=x({__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,_e),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,N),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,P)],8,ge))}}),I={class:`dialog card product-order-modal`},L={class:`product-order-modal__head`},R={class:`product-order-modal__rows`},z={class:`product-order-row__color`},B=[`title`],V={key:0,class:`product-order-row__label`},H={class:`product-order-row__stepper`},U=[`disabled`,`onClick`],W={class:`product-order-row__qty`},G=[`disabled`,`onClick`],K={key:0,class:`product-order-modal__error`},q={class:`product-order-modal__footer`},J={class:`product-order-modal__price`},ve={key:0},Y={key:1},X={key:2},Z={key:0,class:`product-order-modal__hint`},ye=v(x({__name:`ProductOrderModal`,props:{open:{type:Boolean},product:{},rollMeters:{},minRolls:{},basePrice:{},loading:{type:Boolean},error:{}},emits:[`close`,`submit`],setup(e,{emit:m}){let v=e,x=m,C=g([]);s(()=>[v.open,v.product?.colors.length],([e])=>{!e||!v.product||(C.value=v.product.colors.map(()=>0))});let w=l(()=>C.value.reduce((e,t)=>e+(t>0?t:0),0)),T=l(()=>w.value*v.rollMeters),E=l(()=>!v.basePrice||T.value<=0?null:v.basePrice*T.value);function D(e){e.key===`Escape`&&v.open&&x(`close`)}s(()=>v.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 A(){x(`submit`,[...C.value])}return(t,s)=>(i(),y(_,{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]||=ee(e=>x(`close`),[`self`])},[h(`div`,I,[h(`header`,L,[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=>x(`close`)},` × `)]),s[4]||=h(`div`,{class:`product-order-modal__table-head`,"aria-hidden":`true`},[h(`span`,null,`رنگ`),h(`span`,null,`تعداد`)],-1),h(`ul`,R,[(i(!0),d(p,null,n(e.product.colors,(t,n)=>(i(),d(`li`,{key:n,class:`product-order-row`},[h(`div`,z,[h(`span`,{class:`product-order-row__swatch`,style:a(b(M)(t,e.product.colorImages?.[n]||e.product.imageUrls?.[n])),title:t},null,12,B),t?(i(),d(`span`,V,o(t),1)):u(``,!0)]),h(`div`,H,[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,U),h(`span`,W,o(b(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,G)])]))),128))]),e.error?(i(),d(`p`,K,o(e.error),1)):u(``,!0),h(`footer`,q,[h(`div`,J,[s[3]||=h(`span`,null,`قیمت`,-1),E.value==null?w.value>0?(i(),d(`strong`,Y,o(b(S)(T.value))+` متر `,1)):(i(),d(`strong`,X,`—`)):(i(),d(`strong`,ve,o(b(S)(E.value))+` تومان `,1))]),e.minRolls>0?(i(),d(`p`,Z,` حداقل سفارش: `+o(b(S)(e.minRolls))+` طاقه `,1)):u(``,!0),c(k,{class:`product-order-modal__submit`,disabled:e.loading,onClick:A},{default:r(()=>[f(o(e.loading?`در حال ثبت...`:`ثبت`),1)]),_:1},8,[`disabled`])])])])):u(``,!0)]))}}),[[`__scopeId`,`data-v-9e750bcd`]]),be={key:0,class:`page product-detail product-page`},xe={class:`pd-header mobile-only`},Se={class:`pd-header__actions`},Ce=[`aria-label`,`aria-pressed`],we={class:`desktop-page__head desktop-only pd-desk-head`},Te={class:`desktop-page__title`},Ee={class:`desktop-page__subtitle`},De={key:0,class:`pd-stock-badge`},Oe={class:`pd-desk-head__actions`},ke=[`aria-label`,`aria-pressed`],Ae={class:`page__scroll pd-scroll product-page__scroll`},je={class:`product-page__layout`},Me={class:`product-page__main`},Ne={class:`gallery`},Pe={class:`gallery__stage`},Fe={key:0,class:`gallery__dots`,role:`tablist`,"aria-label":`تصاویر محصول`},Ie=[`aria-label`,`aria-selected`,`onClick`],Le={class:`gallery__thumbs`},Re=[`onClick`],ze={class:`pd-body`},Be={class:`title-row`},Ve={key:0,class:`new-badge`},He={class:`code`},Ue={class:`specs`},We={class:`spec-cell`},Ge={class:`spec-icon`,"aria-hidden":`true`},Ke={class:`spec-cell`},qe={class:`spec-cell`},Je={class:`spec-icon`,"aria-hidden":`true`},Ye={class:`spec-cell`},Xe={class:`spec-icon`,"aria-hidden":`true`},Ze={key:0,class:`specs-extra`},Qe={class:`pd-section pd-section--boxed`},$e={class:`section-head`},et={class:`colors`},tt=[`onClick`],nt={class:`pd-section`},rt={class:`tags`,role:`list`},it=[`onClick`],at={class:`pd-section`},ot={class:`roll-field`},st={class:`product-page__sidebar desktop-only`},ct={class:`cart-summary-panel`},lt={class:`cart-summary-panel__row`},ut={class:`cart-summary-panel__row`},dt={key:0,class:`stock-notify-panel`},ft=[`disabled`],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=[`disabled`],vt={key:1,class:`pd-footer__primary`},yt={class:`min-note`},bt=[`disabled`],xt={key:1,class:`page empty`},St={key:2,class:`page empty`},Q=v(x({__name:`ProductDetailView`,setup(t){let r={suit:`پارچه کتشلواری`,trousers:`پارچه شلواری`,shirt:`پارچه پیراهنی`},_={summer:`پارچه تابستانه`,winter:`پارچه زمستانه`,all_season:`پارچه چهارفصل`},v=O(),y=w(),{goBack:x}=se(`/products`),ee=oe(),k=te(),ge=E(),_e=C(),N=l(()=>String(v.query.id??``)),P=g(null),I=g(!0),L=g(null),R=g(0),z=g(1),B=g(!1),V=g(!1),H=g(!1),U=g(``),{requesting:W,addressModalOpen:G,addressError:K,requestCatalog:q,submitAddressAndRequest:J,closeAddressModal:ve}=de(),Y=A(),X=me(()=>N.value),Z=l(()=>P.value?.rollMeters??50),Q=l(()=>he(P.value?.stock)),Ct=l(()=>{let e=P.value;return e?pe(e.colors,e.colorImages,e.imageUrls,R.value,e.imageUrl):``}),wt=l(()=>P.value?.colors[R.value]??``),Tt=l(()=>z.value*Z.value),Et=l(()=>{let e=P.value?.minMeterage;return e&&e>0?e:Z.value}),$=l(()=>Math.max(1,Math.ceil(Et.value/Z.value))),Dt=l(()=>r[P.value?.categoryId??``]||`—`),Ot=l(()=>_[P.value?.season??``]||`—`),kt=l(()=>{let e=P.value;if(!e)return[];let t=[],n=ae.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=ie.some(t=>t.id===e.season)?e.season:``,o=a?_[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 At(){if(!N.value){P.value=null,I.value=!1;return}I.value=!0,L.value=null;try{await Promise.all([k.hydrate(),_e.loadCompanies()]),P.value=await ee.loadProductById(N.value),R.value=0,z.value=$.value,await X.refreshSubscription()}catch(e){P.value=null,L.value=e instanceof Error?e.message:`محصول یافت نشد.`}finally{I.value=!1}}m(At),s(N,At);function jt(e,t=R.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:!0}}function Mt(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 Nt(){!P.value||Q.value||(U.value=``,H.value=!0)}function Pt(){H.value=!1,U.value=``}async function Ft(e){let t=P.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){U.value=`حداقل یک رنگ با تعداد انتخاب کنید.`;return}let r=n.reduce((e,t)=>e+t.rolls,0)*Z.value;if(r {{ error }} دسته موردنظر خود را انتخاب کنید کد محصول: {{ product.code }}
+ کد محصول: {{ product.code }}
+ ناموجود
+ این محصول فعلاً موجود نیست.انتخاب بر اساس کاربرد
{{ product.name }}
-