change nademitex2

This commit is contained in:
2026-09-30 22:10:12 +03:30
parent 9cf546bf8e
commit adb0ce886f
112 changed files with 433 additions and 694 deletions
@@ -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-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};
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-CpQ4kL4n.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};
File diff suppressed because one or more lines are too long
@@ -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-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};
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-CpQ4kL4n.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};
File diff suppressed because one or more lines are too long
@@ -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-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};
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-BHJptHdF.js";import{t as ie}from"./catalog-DvXpKfLO.js";import{A as ae,f as oe,r as h}from"./index-CpQ4kL4n.js";import{t as se}from"./PageHeader-BZqQYya4.js";import{t as ce}from"./useRequirePricedOrder-BNJcABKi.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};
-1
View File
@@ -1 +0,0 @@
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};
-1
View File
@@ -1 +0,0 @@
.catalog-list-page[data-v-a8edb49d]{background:var(--color-bg);color:var(--color-text);padding:12px 0 0}.catalog-list-page__desk-head[data-v-a8edb49d]{margin-bottom:16px}.catalog-list-page__desk-head h1[data-v-a8edb49d]{margin:0 0 6px;font-size:1.375rem;font-weight:700}.catalog-list-page__desk-head p[data-v-a8edb49d]{color:var(--color-text-muted);margin:0;font-size:.875rem}.catalog-list-page__search[data-v-a8edb49d]{margin-bottom:16px}.catalog-list-page__scroll[data-v-a8edb49d]{flex-direction:column;flex:1;min-height:0;display:flex}.catalog-list[data-v-a8edb49d]{flex-direction:column;gap:12px;display:flex}.catalog-card[data-v-a8edb49d]{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-elevated);width:100%;box-shadow:var(--shadow-sm);color:var(--color-text);text-align:right;cursor:pointer;align-items:center;gap:12px;padding:14px 16px;font-family:inherit;display:flex}.catalog-card[data-v-a8edb49d]:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md)}.catalog-card__icon[data-v-a8edb49d]{background:var(--color-primary-light);border-radius:var(--radius-sm);width:40px;height:40px;color:var(--color-primary);flex-shrink:0;justify-content:center;align-items:center;display:flex}.catalog-card__info[data-v-a8edb49d]{flex:1;min-width:0}.catalog-card__info h3[data-v-a8edb49d]{color:var(--color-text);margin:0 0 4px;font-size:.9375rem}.catalog-card__info p[data-v-a8edb49d]{color:var(--color-text-muted);margin:0;font-size:.8125rem}.catalog-card__count[data-v-a8edb49d]{color:var(--color-primary);flex-shrink:0;font-size:.8125rem;font-weight:600}@media (width>=768px){.catalog-list-page[data-v-a8edb49d]{background:0 0;padding:8px 0 28px}.catalog-list-page__scroll[data-v-a8edb49d]{overflow:visible}.catalog-list[data-v-a8edb49d]{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.catalog-card[data-v-a8edb49d]{flex-direction:column;align-items:flex-start;min-height:148px;padding:20px}}
-1
View File
@@ -1 +0,0 @@
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};
+1
View File
@@ -0,0 +1 @@
.body[data-v-90b3d301]{padding:12px var(--page-padding) 24px;flex-direction:column;gap:10px;display:flex}.new-btn[data-v-90b3d301]{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:12px;min-height:48px;font-weight:700}.empty[data-v-90b3d301]{text-align:center;color:var(--color-text-muted)}.card[data-v-90b3d301]{background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:14px}.card__top[data-v-90b3d301]{justify-content:space-between;align-items:center;gap:8px;display:flex}.badge[data-v-90b3d301]{background:var(--color-primary-soft);color:var(--color-primary);border-radius:999px;padding:4px 10px;font-size:.72rem;font-weight:700}.card p[data-v-90b3d301]{color:var(--color-text-muted);margin:6px 0 0;font-size:.82rem}.card ul[data-v-90b3d301]{margin:8px 0 0;padding-inline-start:18px;font-size:.85rem}.note[data-v-90b3d301]{color:var(--color-text)!important}.catalog-requests-desk-head[data-v-90b3d301]{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.desk-new-btn[data-v-90b3d301]{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:12px;flex-shrink:0;padding:10px 16px;font-family:inherit;font-size:.875rem;font-weight:700}@media (width>=768px){.catalog-requests-page[data-v-90b3d301]{max-width:var(--content-max-width);padding:20px var(--page-padding) 28px;box-sizing:border-box;margin-inline:auto}.body[data-v-90b3d301]{grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:12px;padding:0;display:grid}.empty[data-v-90b3d301]{grid-column:1/-1;padding:48px 0}.card[data-v-90b3d301]{box-shadow:var(--shadow-card);border:1px solid var(--color-border)}}@media (width>=1200px){.body[data-v-90b3d301]{grid-template-columns:repeat(3,minmax(0,1fr))}}
-1
View File
@@ -1 +0,0 @@
.body[data-v-9ea8c789]{padding:12px var(--page-padding) 24px;flex-direction:column;gap:10px;display:flex}.new-btn[data-v-9ea8c789]{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:12px;min-height:48px;font-weight:700}.empty[data-v-9ea8c789]{text-align:center;color:var(--color-text-muted)}.card[data-v-9ea8c789]{background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:14px}.card__top[data-v-9ea8c789]{justify-content:space-between;align-items:center;gap:8px;display:flex}.badge[data-v-9ea8c789]{background:var(--color-primary-soft);color:var(--color-primary);border-radius:999px;padding:4px 10px;font-size:.72rem;font-weight:700}.card p[data-v-9ea8c789]{color:var(--color-text-muted);margin:6px 0 0;font-size:.82rem}.card ul[data-v-9ea8c789]{margin:8px 0 0;padding-inline-start:18px;font-size:.85rem}.note[data-v-9ea8c789]{color:var(--color-text)!important}.catalog-requests-desk-head[data-v-9ea8c789]{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.desk-new-btn[data-v-9ea8c789]{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:12px;flex-shrink:0;padding:10px 16px;font-family:inherit;font-size:.875rem;font-weight:700}@media (width>=768px){.catalog-requests-page[data-v-9ea8c789]{max-width:var(--content-max-width);padding:20px var(--page-padding) 28px;box-sizing:border-box;margin-inline:auto}.body[data-v-9ea8c789]{grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:12px;padding:0;display:grid}.empty[data-v-9ea8c789]{grid-column:1/-1;padding:48px 0}.card[data-v-9ea8c789]{box-shadow:var(--shadow-card);border:1px solid var(--color-border)}}@media (width>=1200px){.body[data-v-9ea8c789]{grid-template-columns:repeat(3,minmax(0,1fr))}}
@@ -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-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};
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-BHJptHdF.js";import{A as p}from"./index-CpQ4kL4n.js";import{t as m}from"./PageHeader-BZqQYya4.js";import{t as h}from"./catalogRequests-COPPKp3x.js";var g={class:`page catalog-requests-page`},_={class:`desktop-page__head desktop-only catalog-requests-desk-head`},v={class:`page__scroll page__scroll--with-nav body`},y={key:0,class:`empty`},b={class:`card__top`},x={class:`badge`},S={key:0,class:`note`},C=l(d({__name:`CatalogRequestsView`,setup(l){let d=p(),C=h();return s(()=>C.hydrate()),(s,l)=>(t(),a(`div`,g,[r(m,{class:`mobile-only`,title:`وضعیت کالیته‌ها`,"show-back":``,centered:``,onBack:l[0]||=e=>u(d).push(`/products`)}),c(`header`,_,[l[3]||=c(`div`,null,[c(`h1`,{class:`desktop-page__title`},`وضعیت کالیته‌ها`),c(`p`,{class:`desktop-page__subtitle`},`پیگیری درخواست‌های کالیته ثبت‌شده`)],-1),c(`button`,{type:`button`,class:`desk-new-btn`,onClick:l[1]||=e=>u(d).push(`/categories`)},` درخواست کالیته جدید `)]),c(`div`,v,[c(`button`,{type:`button`,class:`new-btn mobile-only`,onClick:l[2]||=e=>u(d).push(`/categories`)},` درخواست کالیته جدید `),u(C).sorted.length?i(``,!0):(t(),a(`p`,y,`هنوز درخواستی ثبت نکرده‌اید.`)),(t(!0),a(o,null,e(u(C).sorted,r=>(t(),a(`article`,{key:r.id,class:`card`},[c(`div`,b,[c(`strong`,null,`درخواست `+n(r.id.slice(-6)),1),c(`span`,x,n(u(C).statusLabel(r.status)),1)]),c(`p`,null,n(r.createdAt.slice(0,10)),1),c(`p`,null,n(u(f)(r.items.length))+` قلم`,1),c(`ul`,null,[(t(!0),a(o,null,e(r.items,e=>(t(),a(`li`,{key:e.productId},n(e.productName)+` × `+n(u(f)(e.quantity)),1))),128))]),r.note?(t(),a(`p`,S,n(r.note),1)):i(``,!0)]))),128))])]))}}),[[`__scopeId`,`data-v-90b3d301`]]);export{C as default};
-1
View File
@@ -1 +0,0 @@
.calite-hub[data-v-daa79410]{background:var(--color-bg);color:var(--color-text)}.calite-hub__nav[data-v-daa79410]{background:var(--color-bg);grid-template-columns:40px 1fr auto;align-items:center;padding:6px 12px 0;display:grid}.calite-hub__nav-end[data-v-daa79410]{align-items:center;display:flex}.calite-hub__nav h1[data-v-daa79410]{text-align:center;margin:0;font-size:1.125rem;font-weight:700}.calite-hub__scroll[data-v-daa79410]{flex-direction:column;gap:12px;padding:2px 16px 28px;display:flex}.calite-hub__lead[data-v-daa79410]{text-align:center;color:var(--color-text-muted);margin:0;font-size:.78rem;line-height:1.7}.calite-hub__search[data-v-daa79410]{width:100%}.icon-btn[data-v-daa79410]{width:40px;height:40px;color:inherit;cursor:pointer;background:0 0;border:none;place-items:center;display:grid}.calite-hub__chips[data-v-daa79410]{scrollbar-width:none;gap:8px;padding:2px 0 4px;display:flex}.calite-hub__chips[data-v-daa79410]::-webkit-scrollbar{display:none}.calite-chip[data-v-daa79410]{border:1px solid var(--color-border);background:var(--color-surface);height:36px;color:var(--color-text-muted);font:inherit;cursor:pointer;border-radius:999px;flex-shrink:0;padding:0 16px;font-size:.78rem;font-weight:600}.calite-chip.is-on[data-v-daa79410]{border-color:var(--color-primary);background:var(--color-primary);color:#fff}.calite-hub__list[data-v-daa79410]{flex-direction:column;gap:12px;display:flex}.calite-card[data-v-daa79410]{cursor:pointer;text-align:start;color:#2c2824;background:#e7ddd4;border:none;border-radius:22px;width:100%;min-height:132px;padding:0;display:block;position:relative;overflow:hidden}.calite-card__photo[data-v-daa79410]{z-index:0;background:linear-gradient(160deg,#c4b7a8,#8a7b6c) 50%/cover;position:absolute;inset:0}.calite-card__photo[data-v-daa79410]:after{content:"";background:linear-gradient(90deg,#0000 28%,#e7ddd46b 58%,#e7ddd4e0 100%);position:absolute;inset:0}.calite-card__badge[data-v-daa79410]{z-index:2;color:#000;background:#e7ddd4;border-radius:999px;padding:5px 12px;font-size:1rem;font-weight:500;line-height:1.2;position:absolute;top:12px;left:12px}.calite-card__copy[data-v-daa79410]{z-index:1;align-items:center;gap:4px;min-height:132px;padding:16px 16px 16px 42%;display:flex;position:relative}.calite-card__copy strong[data-v-daa79410]{color:#2c2824;font-size:1.0625rem;font-weight:700;line-height:1.4}.calite-card__sub[data-v-daa79410]{color:#5c5752;justify-content:flex-start;align-items:center;gap:2px;display:flex}.calite-card__arrow[data-v-daa79410]{flex-shrink:0;display:block}.calite-card__copy em[data-v-daa79410]{color:#5c5752;font-size:.75rem;font-style:normal;font-weight:500;line-height:1.45}.calite-card__copy small[data-v-daa79410]{color:#7a746c;font-size:.6875rem;font-weight:500;line-height:1.45}.calite-hub__empty[data-v-daa79410]{text-align:center;color:var(--color-text-muted);margin:16px 0 0}html.dark .calite-card[data-v-daa79410]{color:#eef2f8;background:#1a2230}html.dark .calite-card__photo[data-v-daa79410]{background:linear-gradient(160deg,#3a4454,#151b24)}html.dark .calite-card__photo[data-v-daa79410]:after{background:linear-gradient(90deg,#0000 22%,#0b0f146b 55%,#0b0f14e0 100%)}html.dark .calite-card__badge[data-v-daa79410]{color:#121821;background:#e8e4df}html.dark .calite-card__copy strong[data-v-daa79410],html.dark .calite-card__sub[data-v-daa79410],html.dark .calite-card__copy em[data-v-daa79410],html.dark .calite-card__copy small[data-v-daa79410]{color:#eef2f8}html.dark .calite-card__copy small[data-v-daa79410]{color:#c5d0de}@media (width>=768px){.calite-hub[data-v-daa79410]{background:0 0;max-width:none;min-height:auto;margin:0;padding:0;overflow:visible}.calite-hub__nav[data-v-daa79410]{background:0 0}.calite-hub__scroll[data-v-daa79410]{gap:16px;width:100%;max-width:1120px;margin-inline:auto;padding:8px 28px 40px}.calite-hub__nav[data-v-daa79410]{grid-template-columns:1fr auto;width:100%;max-width:1120px;margin-inline:auto;padding:28px 28px 0}.calite-hub__nav h1[data-v-daa79410]{text-align:start;font-size:1.5rem}.calite-hub__lead[data-v-daa79410]{text-align:start;font-size:.9375rem}.calite-hub__chips[data-v-daa79410]{flex-wrap:wrap}.calite-chip[data-v-daa79410]{height:40px;padding:0 18px;font-size:.8125rem}.calite-hub__list[data-v-daa79410]{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.calite-card[data-v-daa79410],.calite-card__copy[data-v-daa79410]{min-height:176px}.calite-card__copy[data-v-daa79410]{padding:20px 20px 20px 38%}}@media (width>=1200px){.calite-hub__nav[data-v-daa79410],.calite-hub__scroll[data-v-daa79410]{padding-inline:40px}.calite-hub__scroll[data-v-daa79410]{padding-bottom:48px}.calite-hub__list[data-v-daa79410]{gap:20px}.calite-card[data-v-daa79410],.calite-card__copy[data-v-daa79410]{min-height:200px}}
-1
View File
@@ -1 +0,0 @@
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};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -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-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};
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-BHJptHdF.js";import{A as d,f,x as p}from"./index-CpQ4kL4n.js";import{t as m}from"./PageHeader-BZqQYya4.js";import{t as h}from"./useRequirePricedOrder-BNJcABKi.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};
@@ -1 +1 @@
import{At as e,M as t,Pt as n,U as r,d as i,f as a,l as o,nt as s,t as c,v as l}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{o as u,t as d}from"./format-C72AoJ2H.js";var f={class:`form-group`},p={key:0,class:`form-label`},m=[`value`,`placeholder`,`disabled`],h={key:1,class:`input-error-text`},g={key:2,class:`form-hint`},_=c(l({__name:`CurrencyInput`,props:{modelValue:{},label:{},placeholder:{},hint:{},error:{},disabled:{type:Boolean}},emits:[`update:modelValue`],setup(c,{emit:l}){let _=c,v=l,y=s(``);r(()=>_.modelValue,e=>{let t=d(e??``);y.value=t?u(Number(t)):``},{immediate:!0});function b(e){let t=e.target,n=d(t.value);y.value=n?u(Number(n)):``,v(`update:modelValue`,n)}return(r,s)=>(t(),a(`div`,f,[c.label?(t(),a(`label`,p,n(c.label),1)):i(``,!0),o(`input`,{class:e([`input`,{"input-error":c.error}]),type:`text`,inputmode:`numeric`,dir:`ltr`,value:y.value,placeholder:c.placeholder,disabled:c.disabled,onInput:b},null,42,m),c.error?(t(),a(`p`,h,n(c.error),1)):c.hint?(t(),a(`p`,g,n(c.hint),1)):i(``,!0)]))}}),[[`__scopeId`,`data-v-1becf1bc`]]);export{_ as t};
import{At as e,M as t,Pt as n,U as r,d as i,f as a,l as o,nt as s,t as c,v as l}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{o as u,t as d}from"./format-BHJptHdF.js";var f={class:`form-group`},p={key:0,class:`form-label`},m=[`value`,`placeholder`,`disabled`],h={key:1,class:`input-error-text`},g={key:2,class:`form-hint`},_=c(l({__name:`CurrencyInput`,props:{modelValue:{},label:{},placeholder:{},hint:{},error:{},disabled:{type:Boolean}},emits:[`update:modelValue`],setup(c,{emit:l}){let _=c,v=l,y=s(``);r(()=>_.modelValue,e=>{let t=d(e??``);y.value=t?u(Number(t)):``},{immediate:!0});function b(e){let t=e.target,n=d(t.value);y.value=n?u(Number(n)):``,v(`update:modelValue`,n)}return(r,s)=>(t(),a(`div`,f,[c.label?(t(),a(`label`,p,n(c.label),1)):i(``,!0),o(`input`,{class:e([`input`,{"input-error":c.error}]),type:`text`,inputmode:`numeric`,dir:`ltr`,value:y.value,placeholder:c.placeholder,disabled:c.disabled,onInput:b},null,42,m),c.error?(t(),a(`p`,h,n(c.error),1)):c.hint?(t(),a(`p`,g,n(c.hint),1)):i(``,!0)]))}}),[[`__scopeId`,`data-v-1becf1bc`]]);export{_ as t};
@@ -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-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};
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{c as v}from"./format-BHJptHdF.js";import{a as y}from"./validation-BD7oi-2I.js";import{t as b}from"./http-CU_N-R2R.js";import{l as x,r as S}from"./index-CpQ4kL4n.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-BPBlQFWp.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};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
.body[data-v-859a8068]{padding:12px var(--page-padding) 24px;flex-direction:column;gap:12px;display:flex}.empty[data-v-859a8068]{text-align:center;color:var(--color-text-muted);padding:32px 0}.product-item[data-v-859a8068]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;grid-template-columns:112px 1fr;align-items:stretch;gap:12px;padding:12px;display:grid}.product-item__image[data-v-859a8068]{background:linear-gradient(145deg,#2a3544,#111827) 50%/cover;border-radius:12px;min-height:112px}.product-item__body[data-v-859a8068]{flex-direction:column;gap:6px;min-width:0;display:flex}.product-item__head[data-v-859a8068]{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.product-item__title[data-v-859a8068]{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;display:flex}.product-item__title strong[data-v-859a8068]{color:var(--color-text);font-size:.9375rem;font-weight:700;line-height:1.4}.new-tag[data-v-859a8068]{background:var(--color-primary);color:#fff;white-space:nowrap;border-radius:6px;padding:2px 8px;font-size:.65rem;font-weight:700}.bookmark[data-v-859a8068]{cursor:pointer;background:0 0;border:none;flex-shrink:0;place-items:center;width:28px;height:28px;margin-inline-start:auto;padding:0;display:grid}.product-item__specs[data-v-859a8068]{color:var(--color-text-muted);text-align:start;flex-direction:column;gap:2px;margin:0;padding:0;font-size:.75rem;line-height:1.55;list-style:none;display:flex}.swatches[data-v-859a8068]{flex-wrap:wrap;gap:6px;margin-top:2px;display:flex}.swatch[data-v-859a8068]{background-position:50%;background-size:cover;border:1px solid #00000014;border-radius:999px;width:14px;height:14px}.details-link[data-v-859a8068]{color:var(--color-info);cursor:pointer;background:0 0;border:none;align-self:flex-end;align-items:center;gap:2px;margin-top:auto;padding:0;font-size:.75rem;display:inline-flex}@media (width>=768px){.favorites-page[data-v-859a8068]{max-width:var(--content-max-width);padding:20px var(--page-padding) 28px;box-sizing:border-box;margin-inline:auto}.body[data-v-859a8068]{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:0;display:grid}.empty[data-v-859a8068]{grid-column:1/-1;padding:48px 0}.product-item[data-v-859a8068]{grid-template-columns:120px 1fr;min-height:140px}.product-item__image[data-v-859a8068]{min-height:116px}}@media (width>=1200px){.body[data-v-859a8068]{grid-template-columns:repeat(3,minmax(0,1fr))}}
+1
View File
@@ -0,0 +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-BHJptHdF.js";import{A as v,s as y,u as b}from"./index-CpQ4kL4n.js";import{t as x}from"./PageHeader-BZqQYya4.js";import{t as S}from"./PageSkeleton-DYdjm4l9.js";import{t as C}from"./crm-BPBlQFWp.js";import{t as w}from"./IconBookmark-CQq-TOS-.js";import{n as T,r as E,t as D}from"./colorSwatch-CCSfH9o4.js";var O={class:`page favorites-page`},k={class:`page__scroll page__scroll--with-nav body`},A={key:1},j={key:2,class:`empty`},M=[`onClick`],N={class:`product-item__body`},P={class:`product-item__head`},F={class:`product-item__title`},I={key:0,class:`new-tag`},L=[`onClick`],R={class:`product-item__specs`},z={key:0,class:`swatches`},B=[`onClick`],V=f(h({__name:`FavoritesView`,setup(f){let h={summer:`تابستانه`,winter:`زمستانه`,all_season:`چهارفصل`},V=v(),H=b(),U=C(),W=d([]),G=d(!0),K=d(null);l(async()=>{G.value=!0;try{await H.hydrate();let e=await U.loadBrowseProducts(),t=new Set(H.ids);W.value=e.filter(e=>t.has(e.id))}catch(e){K.value=e instanceof Error?e.message:`بارگذاری علاقه‌مندی‌ها ناموفق بود.`}finally{G.value=!1}});function q(e){return h[e]??`—`}function J(e){return E(e.imageUrls,e.colorImages,e.imageUrl)}function Y(e){V.push({path:`/product`,query:{id:e}})}async function X(e){await H.toggle(e),W.value=W.value.filter(t=>t.id!==e)}return(l,d)=>(t(),o(`div`,O,[i(x,{class:`mobile-only`,title:`علاقه‌مندی‌ها`,"show-back":``,centered:``,onBack:d[0]||=e=>m(V).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`,k,[G.value?(t(),p(S,{key:0,variant:`grid`})):K.value?(t(),o(`p`,A,r(K.value),1)):W.value.length?a(``,!0):(t(),o(`p`,j,`هنوز محصولی ذخیره نکرده‌اید.`)),(t(!0),o(c,null,e(W.value,l=>(t(),o(`article`,{key:l.id,class:`product-item`,onClick:e=>Y(l.id)},[u(`div`,{class:`product-item__image`,style:n(J(l)?{backgroundImage:`url(${J(l)})`}:m(D)(l.colors[0]??``))},null,4),u(`div`,N,[u(`div`,P,[u(`div`,F,[u(`strong`,null,r(l.name),1),l.isNew?(t(),o(`span`,I,`جدید`)):a(``,!0)]),u(`button`,{type:`button`,class:`bookmark`,"aria-label":`حذف از علاقه‌مندی‌ها`,onClick:g(e=>X(l.id),[`stop`])},[i(w,{size:18,filled:``,color:`var(--color-primary)`})],8,L)]),u(`ul`,R,[u(`li`,null,`عرض: `+r(m(_)(l.widthCm))+` سانتی‌متر`,1),u(`li`,null,`ترکیب: `+r(l.composition||`—`),1),u(`li`,null,`مناسب: `+r(q(l.season)),1)]),l.colors.length?(t(),o(`div`,z,[(t(!0),o(c,null,e(l.colors.slice(0,6),(e,r)=>(t(),o(`span`,{key:r,class:`swatch`,style:n(m(D)(e,m(T)(l.colorImages,l.colorVariantImages,r)))},null,4))),128))])):a(``,!0),u(`button`,{type:`button`,class:`details-link`,onClick:g(e=>Y(l.id),[`stop`])},[d[1]||=s(` مشاهده جزئیات `,-1),i(y,{size:14})],8,B)])],8,M))),128))])]))}}),[[`__scopeId`,`data-v-859a8068`]]);export{V as default};
-1
View File
@@ -1 +0,0 @@
.body[data-v-cc481a5f]{padding:12px var(--page-padding) 24px;flex-direction:column;gap:12px;display:flex}.empty[data-v-cc481a5f]{text-align:center;color:var(--color-text-muted);padding:32px 0}.product-item[data-v-cc481a5f]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;grid-template-columns:112px 1fr;align-items:stretch;gap:12px;padding:12px;display:grid}.product-item__image[data-v-cc481a5f]{background:linear-gradient(145deg,#2a3544,#111827) 50%/cover;border-radius:12px;min-height:112px}.product-item__body[data-v-cc481a5f]{flex-direction:column;gap:6px;min-width:0;display:flex}.product-item__head[data-v-cc481a5f]{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.product-item__title[data-v-cc481a5f]{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;display:flex}.product-item__title strong[data-v-cc481a5f]{color:var(--color-text);font-size:.9375rem;font-weight:700;line-height:1.4}.new-tag[data-v-cc481a5f]{background:var(--color-primary);color:#fff;white-space:nowrap;border-radius:6px;padding:2px 8px;font-size:.65rem;font-weight:700}.bookmark[data-v-cc481a5f]{cursor:pointer;background:0 0;border:none;flex-shrink:0;place-items:center;width:28px;height:28px;margin-inline-start:auto;padding:0;display:grid}.product-item__specs[data-v-cc481a5f]{color:var(--color-text-muted);text-align:start;flex-direction:column;gap:2px;margin:0;padding:0;font-size:.75rem;line-height:1.55;list-style:none;display:flex}.swatches[data-v-cc481a5f]{flex-wrap:wrap;gap:6px;margin-top:2px;display:flex}.swatch[data-v-cc481a5f]{background-position:50%;background-size:cover;border:1px solid #00000014;border-radius:999px;width:14px;height:14px}.details-link[data-v-cc481a5f]{color:var(--color-info);cursor:pointer;background:0 0;border:none;align-self:flex-end;align-items:center;gap:2px;margin-top:auto;padding:0;font-size:.75rem;display:inline-flex}@media (width>=768px){.favorites-page[data-v-cc481a5f]{max-width:var(--content-max-width);padding:20px var(--page-padding) 28px;box-sizing:border-box;margin-inline:auto}.body[data-v-cc481a5f]{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:0;display:grid}.empty[data-v-cc481a5f]{grid-column:1/-1;padding:48px 0}.product-item[data-v-cc481a5f]{grid-template-columns:120px 1fr;min-height:140px}.product-item__image[data-v-cc481a5f]{min-height:116px}}@media (width>=1200px){.body[data-v-cc481a5f]{grid-template-columns:repeat(3,minmax(0,1fr))}}
-1
View File
@@ -1 +0,0 @@
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};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
import{M as e,u as t,v as n}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{t as r}from"./BasicIcon-ba1FsUKx.js";var i=n({__name:`IconSearch`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(n){return(i,a)=>(e(),t(r,{icon:`vuesax-linear:search-normal`,size:n.size,"stroke-width":n.strokeWidth,color:n.color},null,8,[`size`,`stroke-width`,`color`]))}});export{i as t};
@@ -1 +1 @@
import{M as e,Pt as t,_ as n,c as r,f as i,g as a,i as o,k as s,l as c,nt as l,t as u,u as d,ut as f,v as p}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{i as m,o as h}from"./format-C72AoJ2H.js";import{A as g}from"./index-BPUhS8CY.js";import{t as _}from"./PageHeader-CG1ktltl.js";import{t as v}from"./PageSkeleton-DYdjm4l9.js";import{t as y}from"./catalogRequests-COPPKp3x.js";import{t as b}from"./SimpleStatusTimeline-C5IzJmCG.js";var x=[{id:`registered`,label:`درخواست کالیته ثبت شد`},{id:`ready_to_ship`,label:`آماده ارسال`},{id:`shipped`,label:`ارسال شد`},{id:`returned`,label:`تحویل گرفته شد`},{id:`cancelled`,label:`درخواست لغو شد`}],S={new:0,approved:0,ready_to_ship:1,delivered:2,returned:3,cancelled:4};function C(e){return e.serverStatus?e.serverStatus:{submitted:`new`,reviewing:`approved`,preparing:`ready_to_ship`,shipped:`delivered`,delivered:`returned`,new:`new`,approved:`approved`,ready_to_ship:`ready_to_ship`,returned:`returned`,cancelled:`cancelled`}[e.status]??`new`}function w(e){return S[C(e)]??0}function T(e){let t=C(e),n=m(e.createdAt),r=e.updatedAt?m(e.updatedAt):null;return{registered:n,ready_to_ship:[`ready_to_ship`,`delivered`,`returned`].includes(t)?r:null,shipped:[`delivered`,`returned`].includes(t)?r:null,returned:t===`returned`?r:null,cancelled:t===`cancelled`?r:null}}var E={class:`page latest-status-page`},D={class:`page__scroll page__scroll--with-nav body`},O={class:`summary-card`},k={class:`summary-card__value`},A={class:`summary-card__meta`},j={key:2,class:`empty-cta`},M=u(p({__name:`LatestCatalogRequestStatusView`,setup(u){let p=g(),m=y(),S=l(!0),C=r(()=>m.sorted.length?m.sorted[0]:null),M=r(()=>C.value?w(C.value):0),N=r(()=>C.value?T(C.value):{});s(async()=>{S.value=!0,await m.hydrate(),S.value=!1});function P(){p.push(`/categories`)}return(r,s)=>(e(),i(`div`,E,[n(_,{class:`mobile-only`,title:`آخرین درخواست کالیته`,"show-back":``,centered:``,onBack:s[0]||=e=>f(p).push(`/`)}),s[4]||=c(`header`,{class:`desktop-page__head desktop-only`},[c(`div`,null,[c(`h1`,{class:`desktop-page__title`},`آخرین درخواست کالیته`),c(`p`,{class:`desktop-page__subtitle`},`پیگیری مراحل آخرین درخواست کالیته`)])],-1),c(`div`,D,[S.value?(e(),d(v,{key:0})):C.value?(e(),i(o,{key:1},[c(`article`,O,[s[2]||=c(`p`,{class:`summary-card__label`},`درخواست`,-1),c(`strong`,k,t(C.value.id.slice(-8)),1),c(`p`,A,t(f(h)(C.value.items.length))+` قلم کالیته `,1)]),n(b,{steps:f(x),"current-index":M.value,timestamps:N.value},null,8,[`steps`,`current-index`,`timestamps`]),c(`button`,{type:`button`,class:`detail-link`,onClick:s[1]||=e=>f(p).push(`/catalog-requests`)},` مشاهده همه درخواست‌ها `)],64)):(e(),i(`div`,j,[s[3]||=a(` شما هیچ کالیته ای درخواست نکرده اید، جهت درخواست کالیته و مشاهده فیزیکی پارچه ها کلیک کنید `,-1),c(`button`,{type:`button`,class:`desk-new-btn`,onClick:P},` مشاهده محصولات `)]))])]))}}),[[`__scopeId`,`data-v-ceeabf36`]]);export{M as default};
import{M as e,Pt as t,_ as n,c as r,f as i,g as a,i as o,k as s,l as c,nt as l,t as u,u as d,ut as f,v as p}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{i as m,o as h}from"./format-BHJptHdF.js";import{A as g}from"./index-CpQ4kL4n.js";import{t as _}from"./PageHeader-BZqQYya4.js";import{t as v}from"./catalogRequests-COPPKp3x.js";import{t as y}from"./PageSkeleton-DYdjm4l9.js";import{t as b}from"./SimpleStatusTimeline-C5IzJmCG.js";var x=[{id:`registered`,label:`درخواست کالیته ثبت شد`},{id:`ready_to_ship`,label:`آماده ارسال`},{id:`shipped`,label:`ارسال شد`},{id:`returned`,label:`تحویل گرفته شد`},{id:`cancelled`,label:`درخواست لغو شد`}],S={new:0,approved:0,ready_to_ship:1,delivered:2,returned:3,cancelled:4};function C(e){return e.serverStatus?e.serverStatus:{submitted:`new`,reviewing:`approved`,preparing:`ready_to_ship`,shipped:`delivered`,delivered:`returned`,new:`new`,approved:`approved`,ready_to_ship:`ready_to_ship`,returned:`returned`,cancelled:`cancelled`}[e.status]??`new`}function w(e){return S[C(e)]??0}function T(e){let t=C(e),n=m(e.createdAt),r=e.updatedAt?m(e.updatedAt):null;return{registered:n,ready_to_ship:[`ready_to_ship`,`delivered`,`returned`].includes(t)?r:null,shipped:[`delivered`,`returned`].includes(t)?r:null,returned:t===`returned`?r:null,cancelled:t===`cancelled`?r:null}}var E={class:`page latest-status-page`},D={class:`page__scroll page__scroll--with-nav body`},O={class:`summary-card`},k={class:`summary-card__value`},A={class:`summary-card__meta`},j={key:2,class:`empty-cta`},M=u(p({__name:`LatestCatalogRequestStatusView`,setup(u){let p=g(),m=v(),S=l(!0),C=r(()=>m.sorted.length?m.sorted[0]:null),M=r(()=>C.value?w(C.value):0),N=r(()=>C.value?T(C.value):{});s(async()=>{S.value=!0,await m.hydrate(),S.value=!1});function P(){p.push(`/categories`)}return(r,s)=>(e(),i(`div`,E,[n(_,{class:`mobile-only`,title:`آخرین درخواست کالیته`,"show-back":``,centered:``,onBack:s[0]||=e=>f(p).push(`/`)}),s[4]||=c(`header`,{class:`desktop-page__head desktop-only`},[c(`div`,null,[c(`h1`,{class:`desktop-page__title`},`آخرین درخواست کالیته`),c(`p`,{class:`desktop-page__subtitle`},`پیگیری مراحل آخرین درخواست کالیته`)])],-1),c(`div`,D,[S.value?(e(),d(y,{key:0})):C.value?(e(),i(o,{key:1},[c(`article`,O,[s[2]||=c(`p`,{class:`summary-card__label`},`درخواست`,-1),c(`strong`,k,t(C.value.id.slice(-8)),1),c(`p`,A,t(f(h)(C.value.items.length))+` قلم کالیته `,1)]),n(b,{steps:f(x),"current-index":M.value,timestamps:N.value},null,8,[`steps`,`current-index`,`timestamps`]),c(`button`,{type:`button`,class:`detail-link`,onClick:s[1]||=e=>f(p).push(`/catalog-requests`)},` مشاهده همه درخواست‌ها `)],64)):(e(),i(`div`,j,[s[3]||=a(` شما هیچ کالیته ای درخواست نکرده اید، جهت درخواست کالیته و مشاهده فیزیکی پارچه ها کلیک کنید `,-1),c(`button`,{type:`button`,class:`desk-new-btn`,onClick:P},` مشاهده محصولات `)]))])]))}}),[[`__scopeId`,`data-v-ceeabf36`]]);export{M as default};
@@ -1 +1 @@
import{M as e,Pt as t,_ as n,c as r,d as i,f as a,i as o,k as s,l as c,nt as l,t as u,u as d,ut as f,v as p}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{i as m,n as h}from"./format-C72AoJ2H.js";import{A as g,f as _,l as v}from"./index-BPUhS8CY.js";import{t as y}from"./PageHeader-CG1ktltl.js";import{t as b}from"./PageSkeleton-DYdjm4l9.js";import{t as x}from"./SimpleStatusTimeline-C5IzJmCG.js";var S=[{id:`registered`,label:`سفارش ثبت شد`},{id:`priced`,label:`قیمت گذاری انجام شد`},{id:`proforma_sent`,label:`پیش فاکتور ارسال شد`},{id:`proforma_confirmed`,label:`پیش فاکتور تایید شد`},{id:`invoice_sent`,label:`فاکتور ارسال شد`},{id:`shipped`,label:`بار ارسال شد`},{id:`delivered`,label:`بار توسط شما تحویل گرفته شد`}],C={submitted:0,awaiting_review:1,pricing:1,needs_correction:1,awaiting_settlement:2,awaiting_settlement_fix:2,cash_in_progress:2,cash_invoice_issued:2,awaiting_cash_payment:2,cash_payment_submitted:2,check_in_progress:2,awaiting_cash_confirmation:3,awaiting_check_review:3,check_needs_fix:3,check_rejected:3,checks_approved:3,cash_confirmed:3,final_approved:4,preparing:4,ready_to_ship:4,shipped:5,delivered:6,expired:2,cancelled:0,rejected:1},w={registered:[`submitted`],priced:[`pricing`,`awaiting_review`,`needs_correction`],proforma_sent:[`awaiting_settlement`,`awaiting_settlement_fix`,`cash_in_progress`,`cash_invoice_issued`,`awaiting_cash_payment`,`cash_payment_submitted`,`check_in_progress`],proforma_confirmed:[`awaiting_cash_confirmation`,`awaiting_check_review`,`check_needs_fix`,`check_rejected`,`checks_approved`,`cash_confirmed`],invoice_sent:[`final_approved`,`preparing`,`ready_to_ship`],shipped:[`shipped`],delivered:[`delivered`]};function T(e){return C[e]??0}function E(e){let t={};for(let n of S){if(n.id===`registered`){t[n.id]=m(e.createdAt);continue}let r=w[n.id]??[],i=[...e.statusHistory].reverse().find(e=>r.includes(e.toStatus));t[n.id]=i?m(i.changedAt):null}return t}var D={class:`page latest-status-page`},O={class:`page__scroll page__scroll--with-nav body`},k={class:`summary-card`},A={class:`summary-card__value`},j={key:0,class:`summary-card__meta`},M=u(p({__name:`LatestOrderStatusView`,setup(u){let p=g(),m=_(),C=v(),w=l(!0),M=r(()=>{let e=m.userOrders(C.user?.id??``);return e.length?e[0]:null}),N=r(()=>M.value?T(M.value.status):0),P=r(()=>M.value?E(M.value):{});s(async()=>{w.value=!0,await m.hydrate(),w.value=!1});function F(){p.push(`/categories`)}return(r,s)=>(e(),a(`div`,D,[n(y,{class:`mobile-only`,title:`آخرین وضعیت سفارش`,"show-back":``,centered:``,onBack:s[0]||=e=>f(p).push(`/`)}),s[3]||=c(`header`,{class:`desktop-page__head desktop-only`},[c(`div`,null,[c(`h1`,{class:`desktop-page__title`},`آخرین وضعیت سفارش`),c(`p`,{class:`desktop-page__subtitle`},`پیگیری مراحل آخرین سفارش ثبت‌شده`)])],-1),c(`div`,O,[w.value?(e(),d(b,{key:0})):M.value?(e(),a(o,{key:1},[c(`article`,k,[s[2]||=c(`p`,{class:`summary-card__label`},`سفارش شماره`,-1),c(`strong`,A,t(M.value.orderNumber),1),M.value.finalAmount?(e(),a(`p`,j,t(f(h)(M.value.finalAmount)),1)):i(``,!0)]),n(x,{steps:f(S),"current-index":N.value,timestamps:P.value},null,8,[`steps`,`current-index`,`timestamps`]),c(`button`,{type:`button`,class:`detail-link`,onClick:s[1]||=e=>f(p).push(`/orders/${M.value.id}`)},` مشاهده جزئیات سفارش `)],64)):(e(),a(`button`,{key:2,type:`button`,class:`empty-cta`,onClick:F},` سفارشی ثبت نکرده اید. لطفا جهت مشاهده محصولات کلیک کنید `))])]))}}),[[`__scopeId`,`data-v-030bc575`]]);export{M as default};
import{M as e,Pt as t,_ as n,c as r,d as i,f as a,i as o,k as s,l as c,nt as l,t as u,u as d,ut as f,v as p}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{i as m,n as h}from"./format-BHJptHdF.js";import{A as g,f as _,l as v}from"./index-CpQ4kL4n.js";import{t as y}from"./PageHeader-BZqQYya4.js";import{t as b}from"./PageSkeleton-DYdjm4l9.js";import{t as x}from"./SimpleStatusTimeline-C5IzJmCG.js";var S=[{id:`registered`,label:`سفارش ثبت شد`},{id:`priced`,label:`قیمت گذاری انجام شد`},{id:`proforma_sent`,label:`پیش فاکتور ارسال شد`},{id:`proforma_confirmed`,label:`پیش فاکتور تایید شد`},{id:`invoice_sent`,label:`فاکتور ارسال شد`},{id:`shipped`,label:`بار ارسال شد`},{id:`delivered`,label:`بار توسط شما تحویل گرفته شد`}],C={submitted:0,awaiting_review:1,pricing:1,needs_correction:1,awaiting_settlement:2,awaiting_settlement_fix:2,cash_in_progress:2,cash_invoice_issued:2,awaiting_cash_payment:2,cash_payment_submitted:2,check_in_progress:2,awaiting_cash_confirmation:3,awaiting_check_review:3,check_needs_fix:3,check_rejected:3,checks_approved:3,cash_confirmed:3,final_approved:4,preparing:4,ready_to_ship:4,shipped:5,delivered:6,expired:2,cancelled:0,rejected:1},w={registered:[`submitted`],priced:[`pricing`,`awaiting_review`,`needs_correction`],proforma_sent:[`awaiting_settlement`,`awaiting_settlement_fix`,`cash_in_progress`,`cash_invoice_issued`,`awaiting_cash_payment`,`cash_payment_submitted`,`check_in_progress`],proforma_confirmed:[`awaiting_cash_confirmation`,`awaiting_check_review`,`check_needs_fix`,`check_rejected`,`checks_approved`,`cash_confirmed`],invoice_sent:[`final_approved`,`preparing`,`ready_to_ship`],shipped:[`shipped`],delivered:[`delivered`]};function T(e){return C[e]??0}function E(e){let t={};for(let n of S){if(n.id===`registered`){t[n.id]=m(e.createdAt);continue}let r=w[n.id]??[],i=[...e.statusHistory].reverse().find(e=>r.includes(e.toStatus));t[n.id]=i?m(i.changedAt):null}return t}var D={class:`page latest-status-page`},O={class:`page__scroll page__scroll--with-nav body`},k={class:`summary-card`},A={class:`summary-card__value`},j={key:0,class:`summary-card__meta`},M=u(p({__name:`LatestOrderStatusView`,setup(u){let p=g(),m=_(),C=v(),w=l(!0),M=r(()=>{let e=m.userOrders(C.user?.id??``);return e.length?e[0]:null}),N=r(()=>M.value?T(M.value.status):0),P=r(()=>M.value?E(M.value):{});s(async()=>{w.value=!0,await m.hydrate(),w.value=!1});function F(){p.push(`/categories`)}return(r,s)=>(e(),a(`div`,D,[n(y,{class:`mobile-only`,title:`آخرین وضعیت سفارش`,"show-back":``,centered:``,onBack:s[0]||=e=>f(p).push(`/`)}),s[3]||=c(`header`,{class:`desktop-page__head desktop-only`},[c(`div`,null,[c(`h1`,{class:`desktop-page__title`},`آخرین وضعیت سفارش`),c(`p`,{class:`desktop-page__subtitle`},`پیگیری مراحل آخرین سفارش ثبت‌شده`)])],-1),c(`div`,O,[w.value?(e(),d(b,{key:0})):M.value?(e(),a(o,{key:1},[c(`article`,k,[s[2]||=c(`p`,{class:`summary-card__label`},`سفارش شماره`,-1),c(`strong`,A,t(M.value.orderNumber),1),M.value.finalAmount?(e(),a(`p`,j,t(f(h)(M.value.finalAmount)),1)):i(``,!0)]),n(x,{steps:f(S),"current-index":N.value,timestamps:P.value},null,8,[`steps`,`current-index`,`timestamps`]),c(`button`,{type:`button`,class:`detail-link`,onClick:s[1]||=e=>f(p).push(`/orders/${M.value.id}`)},` مشاهده جزئیات سفارش `)],64)):(e(),a(`button`,{key:2,type:`button`,class:`empty-cta`,onClick:F},` سفارشی ثبت نکرده اید. لطفا جهت مشاهده محصولات کلیک کنید `))])]))}}),[[`__scopeId`,`data-v-030bc575`]]);export{M as default};
@@ -1 +1 @@
import{At as e,G as t,L as n,M as r,Pt as i,_ as a,c as o,d as s,f as c,g 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{d as _,l as v}from"./format-C72AoJ2H.js";import{a as y}from"./validation-Duyyve7l.js";import{A as b,l as x}from"./index-BPUhS8CY.js";import{t as S}from"./AuthShell-CmEncS1b.js";import{t as C}from"./FormErrorBanner-Ud1D04xf.js";import{t as w}from"./IconPhone-Jt4M7S8Q.js";import{n as T,r as E,t as D}from"./formErrors-DglFjYkZ.js";var O=[`value`,`aria-invalid`],k={key:0,class:`auth-error`},A=[`disabled`],j=f(h({__name:`LoginView`,setup(f){let h=b(),j=x(),M=d(``),N=d({}),P=d(``),F=o(()=>M.value?_(M.value):``);function I(e){return e?y(e)?``:`شماره موبایل معتبر نیست. (مثال: ۰۹۱۲۱۲۳۴۵۶۷)`:`شماره موبایل را وارد کنید.`}function L(){N.value=T(N.value,`phone`),E(N.value)||(P.value=``)}function R(e){M.value=v(e),L()}function z(){if(!M.value)return;let e=I(M.value);e&&(N.value={...N.value,phone:e})}async function B(){N.value={},P.value=``;let e=v(M.value);M.value=e;let t=I(e);if(t){N.value={phone:t},P.value=D;return}let n=await j.requestOtp(e,{isRegister:!1});n.success?h.push({name:`otp`,query:{phone:e,mode:`login`}}):P.value=n.message??`خطا در ارسال کد تأیید.`}return(o,d)=>{let f=n(`RouterLink`);return r(),p(S,{"back-to":`/welcome`},{default:t(()=>[d[3]||=u(`h1`,{class:`auth-title`},`به نادمی تکس خوش آمدید`,-1),d[4]||=u(`p`,{class:`auth-lead`},`برای ادامه، وارد حساب کاربری خود شوید`,-1),u(`form`,{class:`auth-form`,onSubmit:g(B,[`prevent`])},[a(C,{message:P.value},null,8,[`message`]),u(`label`,{class:e([`auth-field`,{"is-invalid":!!N.value.phone}])},[a(w,{size:18,color:`#64748b`}),u(`input`,{value:F.value,type:`tel`,inputmode:`numeric`,autocomplete:`tel`,maxlength:`11`,placeholder:`شماره موبایل`,"aria-invalid":!!N.value.phone,"aria-label":`شماره موبایل`,onInput:d[0]||=e=>R(e.target.value),onBlur:z},null,40,O)],2),N.value.phone?(r(),c(`p`,k,i(N.value.phone),1)):s(``,!0),u(`button`,{class:`auth-submit`,type:`submit`,disabled:m(j).loading},i(m(j).loading?`در حال ارسال…`:`ورود`),9,A),d[2]||=u(`p`,{class:`auth-or`},[u(`span`,null,`یا`)],-1),a(f,{class:`auth-outline`,to:`/register`},{default:t(()=>[...d[1]||=[l(`ثبت‌نام در نادمی تکس`,-1)]]),_:1})],32)]),_:1})}}}),[[`__scopeId`,`data-v-5764ebe1`]]);export{j as default};
import{At as e,G as t,L as n,M as r,Pt as i,_ as a,c as o,d as s,f as c,g 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{c as _,u as v}from"./format-BHJptHdF.js";import{a as y}from"./validation-BD7oi-2I.js";import{A as b,l as x}from"./index-CpQ4kL4n.js";import{t as S}from"./AuthShell-CL1BsTQD.js";import{t as C}from"./FormErrorBanner-Ud1D04xf.js";import{t as w}from"./IconPhone-Jt4M7S8Q.js";import{n as T,r as E,t as D}from"./formErrors-DglFjYkZ.js";var O=[`value`,`aria-invalid`],k={key:0,class:`auth-error`},A=[`disabled`],j=f(h({__name:`LoginView`,setup(f){let h=b(),j=x(),M=d(``),N=d({}),P=d(``),F=o(()=>M.value?v(M.value):``);function I(e){return e?y(e)?``:`شماره موبایل معتبر نیست. (مثال: ۰۹۱۲۱۲۳۴۵۶۷)`:`شماره موبایل را وارد کنید.`}function L(){N.value=T(N.value,`phone`),E(N.value)||(P.value=``)}function R(e){M.value=_(e),L()}function z(){if(!M.value)return;let e=I(M.value);e&&(N.value={...N.value,phone:e})}async function B(){N.value={},P.value=``;let e=_(M.value);M.value=e;let t=I(e);if(t){N.value={phone:t},P.value=D;return}let n=await j.requestOtp(e,{isRegister:!1});n.success?h.push({name:`otp`,query:{phone:e,mode:`login`}}):P.value=n.message??`خطا در ارسال کد تأیید.`}return(o,d)=>{let f=n(`RouterLink`);return r(),p(S,{"back-to":`/welcome`},{default:t(()=>[d[3]||=u(`h1`,{class:`auth-title`},`به نادمی تکس خوش آمدید`,-1),d[4]||=u(`p`,{class:`auth-lead`},`برای ادامه، وارد حساب کاربری خود شوید`,-1),u(`form`,{class:`auth-form`,onSubmit:g(B,[`prevent`])},[a(C,{message:P.value},null,8,[`message`]),u(`label`,{class:e([`auth-field`,{"is-invalid":!!N.value.phone}])},[a(w,{size:18,color:`#64748b`}),u(`input`,{value:F.value,type:`tel`,inputmode:`numeric`,autocomplete:`tel`,maxlength:`11`,placeholder:`شماره موبایل`,"aria-invalid":!!N.value.phone,"aria-label":`شماره موبایل`,onInput:d[0]||=e=>R(e.target.value),onBlur:z},null,40,O)],2),N.value.phone?(r(),c(`p`,k,i(N.value.phone),1)):s(``,!0),u(`button`,{class:`auth-submit`,type:`submit`,disabled:m(j).loading},i(m(j).loading?`در حال ارسال…`:`ورود`),9,A),d[2]||=u(`p`,{class:`auth-or`},[u(`span`,null,`یا`)],-1),a(f,{class:`auth-outline`,to:`/register`},{default:t(()=>[...d[1]||=[l(`ثبت‌نام در نادمی تکس`,-1)]]),_:1})],32)]),_:1})}}}),[[`__scopeId`,`data-v-5764ebe1`]]);export{j as default};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{G as e,M as t,Pt as n,_ as r,c as i,d as a,f as o,g as s,l as c,t as l,ut as u,v as d}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{a as f}from"./format-C72AoJ2H.js";import{A as p,f as m,k as h,r as g}from"./index-BPUhS8CY.js";import{t as _}from"./PageHeader-CG1ktltl.js";import{t as v}from"./useGoBack-BkqOD93C.js";var y={class:`page success-page`},b={class:`page__scroll success-page__scroll`},x={key:0,class:`card mb-4`},S={class:`info-row`},C={class:`info-row`},w={class:`info-row`},T=l(d({__name:`OrderSuccessView`,setup(l){let d=h(),T=p(),{goBack:E}=v(`/orders`),D=m(),O=i(()=>D.getOrderById(d.params.id));return(i,l)=>(t(),o(`div`,y,[r(_,{title:`ثبت موفق`,"show-back":``,centered:``,onBack:u(E)},null,8,[`onBack`]),c(`div`,b,[l[8]||=c(`div`,{class:`success-icon`},`✓`,-1),l[9]||=c(`h1`,{class:`page-title text-center`},`سفارش ثبت شد`,-1),l[10]||=c(`p`,{class:`text-center text-muted mb-4`},` سفارش شما با موفقیت ثبت شد. کارشناسان ما سفارش را بررسی و قیمت‌گذاری می‌کنند و به‌محض صدور فاکتور، از طریق پیامک و پنل کاربری به شما اطلاع می‌دهیم تا روش تسویه را انتخاب کنید. `,-1),O.value?(t(),o(`div`,x,[c(`div`,S,[l[2]||=c(`span`,null,`شماره سفارش:`,-1),c(`strong`,null,n(O.value.orderNumber),1)]),c(`div`,C,[l[3]||=c(`span`,null,`تأمین‌کننده:`,-1),c(`span`,null,n(O.value.companyName),1)]),c(`div`,w,[l[4]||=c(`span`,null,`متراژ:`,-1),c(`span`,null,n(u(f)(O.value.totalMeterage)),1)]),l[5]||=c(`div`,{class:`info-row`},[c(`span`,null,`وضعیت:`),c(`span`,null,`در انتظار قیمت‌گذاری`)],-1)])):a(``,!0),r(g,{block:``,onClick:l[0]||=e=>u(T).replace(`/orders/${O.value?.id}`)},{default:e(()=>[...l[6]||=[s(` مشاهده جزئیات سفارش `,-1)]]),_:1}),r(g,{block:``,variant:`outline`,class:`mt-2`,onClick:l[1]||=e=>u(T).replace(`/`)},{default:e(()=>[...l[7]||=[s(` بازگشت به خانه `,-1)]]),_:1})])]))}}),[[`__scopeId`,`data-v-bb2e861d`]]);export{T as default};
import{G as e,M as t,Pt as n,_ as r,c as i,d as a,f as o,g as s,l as c,t as l,ut as u,v as d}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{a as f}from"./format-BHJptHdF.js";import{A as p,f as m,k as h,r as g}from"./index-CpQ4kL4n.js";import{t as _}from"./PageHeader-BZqQYya4.js";import{t as v}from"./useGoBack-CmDcQElX.js";var y={class:`page success-page`},b={class:`page__scroll success-page__scroll`},x={key:0,class:`card mb-4`},S={class:`info-row`},C={class:`info-row`},w={class:`info-row`},T=l(d({__name:`OrderSuccessView`,setup(l){let d=h(),T=p(),{goBack:E}=v(`/orders`),D=m(),O=i(()=>D.getOrderById(d.params.id));return(i,l)=>(t(),o(`div`,y,[r(_,{title:`ثبت موفق`,"show-back":``,centered:``,onBack:u(E)},null,8,[`onBack`]),c(`div`,b,[l[8]||=c(`div`,{class:`success-icon`},`✓`,-1),l[9]||=c(`h1`,{class:`page-title text-center`},`سفارش ثبت شد`,-1),l[10]||=c(`p`,{class:`text-center text-muted mb-4`},` سفارش شما با موفقیت ثبت شد. کارشناسان ما سفارش را بررسی و قیمت‌گذاری می‌کنند و به‌محض صدور فاکتور، از طریق پیامک و پنل کاربری به شما اطلاع می‌دهیم تا روش تسویه را انتخاب کنید. `,-1),O.value?(t(),o(`div`,x,[c(`div`,S,[l[2]||=c(`span`,null,`شماره سفارش:`,-1),c(`strong`,null,n(O.value.orderNumber),1)]),c(`div`,C,[l[3]||=c(`span`,null,`تأمین‌کننده:`,-1),c(`span`,null,n(O.value.companyName),1)]),c(`div`,w,[l[4]||=c(`span`,null,`متراژ:`,-1),c(`span`,null,n(u(f)(O.value.totalMeterage)),1)]),l[5]||=c(`div`,{class:`info-row`},[c(`span`,null,`وضعیت:`),c(`span`,null,`در انتظار قیمت‌گذاری`)],-1)])):a(``,!0),r(g,{block:``,onClick:l[0]||=e=>u(T).replace(`/orders/${O.value?.id}`)},{default:e(()=>[...l[6]||=[s(` مشاهده جزئیات سفارش `,-1)]]),_:1}),r(g,{block:``,variant:`outline`,class:`mt-2`,onClick:l[1]||=e=>u(T).replace(`/`)},{default:e(()=>[...l[7]||=[s(` بازگشت به خانه `,-1)]]),_:1})])]))}}),[[`__scopeId`,`data-v-bb2e861d`]]);export{T as default};
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
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<P&&(e.code=`کد تأیید را کامل وارد کنید.`),D(e)){H.value=e,U.value=O;return}let t=await L.confirmOtp(R.value,C(G.value));t.success?I.replace(`/`):(U.value=t.message??`کد تأیید نامعتبر است.`,B.value=Array.from({length:P},()=>``),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};
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{c as x,t as S,u as C}from"./format-BHJptHdF.js";import{A as w,g as T,k as E,l as ee}from"./index-CpQ4kL4n.js";import{t as te}from"./AuthShell-CL1BsTQD.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 x(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(()=>C(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=S(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=S(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?C(e):``}async function $(){if(L.loading)return;H.value={},U.value=``;let e={};if(G.value.length<P&&(e.code=`کد تأیید را کامل وارد کنید.`),D(e)){H.value=e,U.value=O;return}let t=await L.confirmOtp(R.value,S(G.value));t.success?I.replace(`/`):(U.value=t.message??`کد تأیید نامعتبر است.`,B.value=Array.from({length:P},()=>``),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(_(C)(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":`رقم ${_(C)(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};
@@ -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-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};
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-CpQ4kL4n.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};
+1
View File
@@ -0,0 +1 @@
import{At as e,D as t,F as n,M as r,Pt as i,U 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,ut as m,v as h}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{u as g}from"./BasicIcon-ba1FsUKx.js";import{d as _,f as v,g as y,h as b,m as x,p as S,u as C,y as w}from"./format-BHJptHdF.js";var T={key:0,class:`form-label`},E=[`disabled`],D={class:`persian-date-input__header`},O={class:`persian-date-input__month`},k={class:`persian-date-input__weekdays`},A={class:`persian-date-input__grid`},j={key:0,class:`persian-date-input__cell persian-date-input__cell--empty`},M=[`onClick`],N={key:2,class:`input-error-text`},P={key:3,class:`form-hint`},F=p(h({__name:`PersianDateInput`,props:{modelValue:{},label:{},placeholder:{},hint:{},error:{},disabled:{type:Boolean}},emits:[`update:modelValue`],setup(p,{emit:h}){let F=p,I=h,L=f(null),R=f(!1),z=f(w().jy),B=f(w().jm),V=o(()=>b(F.modelValue??``)),H=o(()=>{if(!V.value)return``;let{jy:e,jm:t,jd:n}=V.value;return x(e,t,n)}),U=o(()=>S(z.value,B.value)),W=o(()=>`${_[B.value-1]} ${C(String(z.value))}`);a(()=>F.modelValue,e=>{let t=b(e??``);t&&(z.value=t.jy,B.value=t.jm)},{immediate:!0});function G(){F.disabled||(R.value=!R.value)}function K(){R.value=!1}function q(e){I(`update:modelValue`,y(z.value,B.value,e)),K()}function J(e){let t=B.value+e,n=z.value;t>12?(t=1,n+=1):t<1&&(t=12,--n),B.value=t,z.value=n}function Y(){let e=w();z.value=e.jy,B.value=e.jm,I(`update:modelValue`,y(e.jy,e.jm,e.jd)),K()}function X(e){if(!V.value)return!1;let{jy:t,jm:n,jd:r}=V.value;return t===z.value&&n===B.value&&r===e}function Z(e){let t=w();return t.jy===z.value&&t.jm===B.value&&t.jd===e}function Q(e){L.value?.contains(e.target)||K()}return u(()=>{document.addEventListener(`click`,Q)}),t(()=>{document.removeEventListener(`click`,Q)}),(t,a)=>(r(),c(`div`,{ref_key:`rootRef`,ref:L,class:`form-group persian-date-input`},[p.label?(r(),c(`label`,T,i(p.label),1)):s(``,!0),d(`button`,{type:`button`,class:e([`input persian-date-input__trigger`,{"input-error":p.error,"is-open":R.value}]),disabled:p.disabled,onClick:g(G,[`stop`])},[d(`span`,{class:e({"persian-date-input__placeholder":!H.value})},i(H.value||p.placeholder||`انتخاب تاریخ`),3),a[3]||=d(`span`,{class:`persian-date-input__icon`,"aria-hidden":`true`},[d(`svg`,{width:`18`,height:`18`,viewBox:`0 0 24 24`,fill:`none`},[d(`rect`,{x:`3`,y:`5`,width:`18`,height:`16`,rx:`2`,stroke:`currentColor`,"stroke-width":`1.5`}),d(`path`,{d:`M8 3v4M16 3v4M3 10h18`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`})])],-1)],10,E),R.value?(r(),c(`div`,{key:1,class:`persian-date-input__panel`,onClick:a[2]||=g(()=>{},[`stop`])},[d(`div`,D,[d(`button`,{type:`button`,class:`persian-date-input__nav`,onClick:a[0]||=e=>J(-1)},`‹`),d(`strong`,O,i(W.value),1),d(`button`,{type:`button`,class:`persian-date-input__nav`,onClick:a[1]||=e=>J(1)},`›`)]),d(`div`,k,[(r(!0),c(l,null,n(m(v),e=>(r(),c(`span`,{key:e},i(e),1))),128))]),d(`div`,A,[(r(!0),c(l,null,n(U.value,(t,n)=>(r(),c(l,{key:n},[t===null?(r(),c(`span`,j)):(r(),c(`button`,{key:1,type:`button`,class:e([`persian-date-input__cell`,{"persian-date-input__cell--selected":X(t),"persian-date-input__cell--today":Z(t)}]),onClick:e=>q(t)},i(m(C)(String(t))),11,M))],64))),128))]),d(`button`,{type:`button`,class:`persian-date-input__today`,onClick:Y},`امروز`)])):s(``,!0),p.error?(r(),c(`p`,N,i(p.error),1)):p.hint?(r(),c(`p`,P,i(p.hint),1)):s(``,!0)],512))}}),[[`__scopeId`,`data-v-f02e5adc`]]);export{F as t};
-1
View File
@@ -1 +0,0 @@
import{At as e,D as t,F as n,M as r,Pt as i,U 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,ut as m,v as h}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{u as g}from"./BasicIcon-ba1FsUKx.js";import{_,b as v,d as y,f as b,g as x,h as S,m as C,p as w}from"./format-C72AoJ2H.js";var T={key:0,class:`form-label`},E=[`disabled`],D={class:`persian-date-input__header`},O={class:`persian-date-input__month`},k={class:`persian-date-input__weekdays`},A={class:`persian-date-input__grid`},j={key:0,class:`persian-date-input__cell persian-date-input__cell--empty`},M=[`onClick`],N={key:2,class:`input-error-text`},P={key:3,class:`form-hint`},F=p(h({__name:`PersianDateInput`,props:{modelValue:{},label:{},placeholder:{},hint:{},error:{},disabled:{type:Boolean}},emits:[`update:modelValue`],setup(p,{emit:h}){let F=p,I=h,L=f(null),R=f(!1),z=f(v().jy),B=f(v().jm),V=o(()=>x(F.modelValue??``)),H=o(()=>{if(!V.value)return``;let{jy:e,jm:t,jd:n}=V.value;return S(e,t,n)}),U=o(()=>C(z.value,B.value)),W=o(()=>`${b[B.value-1]} ${y(String(z.value))}`);a(()=>F.modelValue,e=>{let t=x(e??``);t&&(z.value=t.jy,B.value=t.jm)},{immediate:!0});function G(){F.disabled||(R.value=!R.value)}function K(){R.value=!1}function q(e){I(`update:modelValue`,_(z.value,B.value,e)),K()}function J(e){let t=B.value+e,n=z.value;t>12?(t=1,n+=1):t<1&&(t=12,--n),B.value=t,z.value=n}function Y(){let e=v();z.value=e.jy,B.value=e.jm,I(`update:modelValue`,_(e.jy,e.jm,e.jd)),K()}function X(e){if(!V.value)return!1;let{jy:t,jm:n,jd:r}=V.value;return t===z.value&&n===B.value&&r===e}function Z(e){let t=v();return t.jy===z.value&&t.jm===B.value&&t.jd===e}function Q(e){L.value?.contains(e.target)||K()}return u(()=>{document.addEventListener(`click`,Q)}),t(()=>{document.removeEventListener(`click`,Q)}),(t,a)=>(r(),c(`div`,{ref_key:`rootRef`,ref:L,class:`form-group persian-date-input`},[p.label?(r(),c(`label`,T,i(p.label),1)):s(``,!0),d(`button`,{type:`button`,class:e([`input persian-date-input__trigger`,{"input-error":p.error,"is-open":R.value}]),disabled:p.disabled,onClick:g(G,[`stop`])},[d(`span`,{class:e({"persian-date-input__placeholder":!H.value})},i(H.value||p.placeholder||`انتخاب تاریخ`),3),a[3]||=d(`span`,{class:`persian-date-input__icon`,"aria-hidden":`true`},[d(`svg`,{width:`18`,height:`18`,viewBox:`0 0 24 24`,fill:`none`},[d(`rect`,{x:`3`,y:`5`,width:`18`,height:`16`,rx:`2`,stroke:`currentColor`,"stroke-width":`1.5`}),d(`path`,{d:`M8 3v4M16 3v4M3 10h18`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`})])],-1)],10,E),R.value?(r(),c(`div`,{key:1,class:`persian-date-input__panel`,onClick:a[2]||=g(()=>{},[`stop`])},[d(`div`,D,[d(`button`,{type:`button`,class:`persian-date-input__nav`,onClick:a[0]||=e=>J(-1)},`‹`),d(`strong`,O,i(W.value),1),d(`button`,{type:`button`,class:`persian-date-input__nav`,onClick:a[1]||=e=>J(1)},`›`)]),d(`div`,k,[(r(!0),c(l,null,n(m(w),e=>(r(),c(`span`,{key:e},i(e),1))),128))]),d(`div`,A,[(r(!0),c(l,null,n(U.value,(t,n)=>(r(),c(l,{key:n},[t===null?(r(),c(`span`,j)):(r(),c(`button`,{key:1,type:`button`,class:e([`persian-date-input__cell`,{"persian-date-input__cell--selected":X(t),"persian-date-input__cell--today":Z(t)}]),onClick:e=>q(t)},i(m(y)(String(t))),11,M))],64))),128))]),d(`button`,{type:`button`,class:`persian-date-input__today`,onClick:Y},`امروز`)])):s(``,!0),p.error?(r(),c(`p`,N,i(p.error),1)):p.hint?(r(),c(`p`,P,i(p.hint),1)):s(``,!0)],512))}}),[[`__scopeId`,`data-v-f02e5adc`]]);export{F as t};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{t as e}from"./CheckListView-CdyymO5t.js";import{M as t,u as n,v as r}from"./_plugin-vue_export-helper-1xMDlcEE.js";var i=r({__name:`ProfileChecksView`,setup(r){return(r,i)=>(t(),n(e))}});export{i as default};
import{t as e}from"./CheckListView-BAgR3fYG.js";import{M as t,u as n,v as r}from"./_plugin-vue_export-helper-1xMDlcEE.js";var i=r({__name:`ProfileChecksView`,setup(r){return(r,i)=>(t(),n(e))}});export{i as default};
@@ -1 +1 @@
import{At as e,F as t,G as n,M as r,Pt as i,_ 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 p,u as m,ut as h,v as g}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{t as _}from"./BasicIcon-ba1FsUKx.js";import{u as v}from"./dist-U-AqZ6hP.js";import{A as y,f as b,l as x,o as S,r as C}from"./index-BPUhS8CY.js";import{t as w}from"./ProfileSubpageLayout-Bj7iaKP1.js";var T={class:`settings-page`},E={class:`settings-links`,"aria-label":`حساب کاربری`},D={class:`settings-link__icon`,"aria-hidden":`true`},O={class:`settings-link__icon`,"aria-hidden":`true`},k={class:`settings-link__label`},A={key:0},j={class:`display-fieldset`},M={class:`display-grid`,role:`radiogroup`,"aria-label":`حالت نمایش`},N=[`aria-checked`,`onClick`],P={class:`theme-card__icon`,"aria-hidden":`true`},F={class:`theme-card__body`},I={class:`theme-card__label`},L={class:`theme-card__desc`},R={class:`theme-card__check`,"aria-hidden":`true`},z={key:0,class:`display-saved`},B=p(g({__name:`ProfileDisplayView`,setup(p){let g=y(),B=x(),V=b(),H=S(),U=f(!1),{start:W}=v(()=>{U.value=!1},2e3),G=[{value:`light`,label:`روشن`,description:`پس‌زمینه روشن و کنتراست بالا`,icon:`vuesax-linear:sun-1`},{value:`dark`,label:`تاریک`,description:`مناسب استفاده در شب`,icon:`vuesax-linear:moon`},{value:`system`,label:`سیستم`,description:`هم‌تراز با تنظیمات دستگاه`,icon:`vuesax-linear:mobile`}],K=o(()=>V.draftChecks.length);function q(){U.value=!0,W()}function J(){B.logout(),g.replace(`/welcome`)}return(o,f)=>(r(),m(w,{title:`تنظیمات`,subtitle:`نمایش، حساب کاربری و خروج`},{default:n(()=>[d(`div`,T,[d(`nav`,E,[d(`button`,{type:`button`,class:`settings-link`,onClick:f[0]||=e=>h(g).push(`/profile/edit`)},[d(`span`,D,[a(_,{icon:`vuesax-linear:profile-circle`,size:20,"stroke-width":1.5})]),f[2]||=d(`span`,{class:`settings-link__label`},`اطلاعات کاربری`,-1),a(_,{class:`settings-link__chevron`,icon:`vuesax-linear:arrow-left-1`,size:16,"stroke-width":1.5})]),d(`button`,{type:`button`,class:`settings-link`,onClick:f[1]||=e=>h(g).push(`/profile/checks`)},[d(`span`,O,[a(_,{icon:`vuesax-linear:card`,size:20,"stroke-width":1.5})]),d(`span`,k,[f[3]||=l(` لیست چک‌ها `,-1),K.value?(r(),c(`em`,A,`(`+i(K.value)+`)`,1)):s(``,!0)]),a(_,{class:`settings-link__chevron`,icon:`vuesax-linear:arrow-left-1`,size:16,"stroke-width":1.5})])]),d(`fieldset`,j,[f[4]||=d(`legend`,{class:`display-fieldset__legend`},`حالت نمایش`,-1),d(`div`,M,[(r(),c(u,null,t(G,t=>d(`button`,{key:t.value,type:`button`,class:e([`theme-card`,{"theme-card--active":h(H).preference===t.value}]),role:`radio`,"aria-checked":h(H).preference===t.value,onClick:e=>h(H).preference=t.value},[d(`span`,P,[a(_,{icon:t.icon,size:26,"stroke-width":1.5},null,8,[`icon`])]),d(`span`,F,[d(`strong`,I,i(t.label),1),d(`span`,L,i(t.description),1)]),d(`span`,R,[h(H).preference===t.value?(r(),m(_,{key:0,icon:`vuesax-linear:tick-circle`,size:20,"stroke-width":1.75})):s(``,!0)])],10,N)),64))])]),a(C,{block:``,onClick:q},{default:n(()=>[...f[5]||=[l(`ذخیره تنظیمات`,-1)]]),_:1}),U.value?(r(),c(`p`,z,`تنظیمات نمایش ذخیره شد ✓`)):s(``,!0),d(`button`,{type:`button`,class:`settings-logout`,onClick:J},`خروج`)])]),_:1}))}}),[[`__scopeId`,`data-v-f16dc950`]]);export{B as default};
import{At as e,F as t,G as n,M as r,Pt as i,_ 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 p,u as m,ut as h,v as g}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{t as _}from"./BasicIcon-ba1FsUKx.js";import{u as v}from"./dist-U-AqZ6hP.js";import{A as y,f as b,l as x,o as S,r as C}from"./index-CpQ4kL4n.js";import{t as w}from"./ProfileSubpageLayout-CKyfOxv2.js";var T={class:`settings-page`},E={class:`settings-links`,"aria-label":`حساب کاربری`},D={class:`settings-link__icon`,"aria-hidden":`true`},O={class:`settings-link__icon`,"aria-hidden":`true`},k={class:`settings-link__label`},A={key:0},j={class:`display-fieldset`},M={class:`display-grid`,role:`radiogroup`,"aria-label":`حالت نمایش`},N=[`aria-checked`,`onClick`],P={class:`theme-card__icon`,"aria-hidden":`true`},F={class:`theme-card__body`},I={class:`theme-card__label`},L={class:`theme-card__desc`},R={class:`theme-card__check`,"aria-hidden":`true`},z={key:0,class:`display-saved`},B=p(g({__name:`ProfileDisplayView`,setup(p){let g=y(),B=x(),V=b(),H=S(),U=f(!1),{start:W}=v(()=>{U.value=!1},2e3),G=[{value:`light`,label:`روشن`,description:`پس‌زمینه روشن و کنتراست بالا`,icon:`vuesax-linear:sun-1`},{value:`dark`,label:`تاریک`,description:`مناسب استفاده در شب`,icon:`vuesax-linear:moon`},{value:`system`,label:`سیستم`,description:`هم‌تراز با تنظیمات دستگاه`,icon:`vuesax-linear:mobile`}],K=o(()=>V.draftChecks.length);function q(){U.value=!0,W()}function J(){B.logout(),g.replace(`/welcome`)}return(o,f)=>(r(),m(w,{title:`تنظیمات`,subtitle:`نمایش، حساب کاربری و خروج`},{default:n(()=>[d(`div`,T,[d(`nav`,E,[d(`button`,{type:`button`,class:`settings-link`,onClick:f[0]||=e=>h(g).push(`/profile/edit`)},[d(`span`,D,[a(_,{icon:`vuesax-linear:profile-circle`,size:20,"stroke-width":1.5})]),f[2]||=d(`span`,{class:`settings-link__label`},`اطلاعات کاربری`,-1),a(_,{class:`settings-link__chevron`,icon:`vuesax-linear:arrow-left-1`,size:16,"stroke-width":1.5})]),d(`button`,{type:`button`,class:`settings-link`,onClick:f[1]||=e=>h(g).push(`/profile/checks`)},[d(`span`,O,[a(_,{icon:`vuesax-linear:card`,size:20,"stroke-width":1.5})]),d(`span`,k,[f[3]||=l(` لیست چک‌ها `,-1),K.value?(r(),c(`em`,A,`(`+i(K.value)+`)`,1)):s(``,!0)]),a(_,{class:`settings-link__chevron`,icon:`vuesax-linear:arrow-left-1`,size:16,"stroke-width":1.5})])]),d(`fieldset`,j,[f[4]||=d(`legend`,{class:`display-fieldset__legend`},`حالت نمایش`,-1),d(`div`,M,[(r(),c(u,null,t(G,t=>d(`button`,{key:t.value,type:`button`,class:e([`theme-card`,{"theme-card--active":h(H).preference===t.value}]),role:`radio`,"aria-checked":h(H).preference===t.value,onClick:e=>h(H).preference=t.value},[d(`span`,P,[a(_,{icon:t.icon,size:26,"stroke-width":1.5},null,8,[`icon`])]),d(`span`,F,[d(`strong`,I,i(t.label),1),d(`span`,L,i(t.description),1)]),d(`span`,R,[h(H).preference===t.value?(r(),m(_,{key:0,icon:`vuesax-linear:tick-circle`,size:20,"stroke-width":1.75})):s(``,!0)])],10,N)),64))])]),a(C,{block:``,onClick:q},{default:n(()=>[...f[5]||=[l(`ذخیره تنظیمات`,-1)]]),_:1}),U.value?(r(),c(`p`,z,`تنظیمات نمایش ذخیره شد ✓`)):s(``,!0),d(`button`,{type:`button`,class:`settings-logout`,onClick:J},`خروج`)])]),_:1}))}}),[[`__scopeId`,`data-v-f16dc950`]]);export{B as default};
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{At as e,F as t,G as n,M as r,Pt as i,_ as a,c as o,d as s,f as c,g as l,i as u,k as d,l as f,t as p,u as m,ut as h,v as g}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{t as _}from"./BasicIcon-ba1FsUKx.js";import{i as v}from"./format-C72AoJ2H.js";import{A as y,d as b,r as x}from"./index-BPUhS8CY.js";import{t as S}from"./EmptyState-DYhkpGhZ.js";import{t as C}from"./ProfileSubpageLayout-Bj7iaKP1.js";var w={key:0,class:`notif-box`},T={class:`notif-box__head`},E={class:`notif-box__count`},D=[`onClick`],O={class:`notif-row__icon`,"aria-hidden":`true`},k={class:`notif-row__body`},A={class:`notif-row__title-row`},j={class:`notif-row__title`},M={key:0,class:`notif-row__dot`,"aria-label":`خوانده‌نشده`},N={class:`notif-row__text`},P={class:`notif-row__time`},F=p(g({__name:`ProfileNotificationsView`,setup(p){let g=y(),F=b(),I=o(()=>F.items),L=o(()=>F.hasUnread),R={info:`vuesax-linear:information`,success:`vuesax-linear:tick-circle`,warning:`vuesax-linear:timer`,danger:`vuesax-linear:close-circle`};d(()=>{F.hydrate()});async function z(e){await F.markRead(e.id),e.link&&g.push(e.link)}return(o,d)=>(r(),m(C,{title:`اعلان‌ها`,subtitle:`سفارش‌ها، پیشنهاد محصول و سایر اعلان‌ها`},{default:n(()=>[I.value.length?(r(),c(`div`,w,[f(`div`,T,[f(`span`,E,i(L.value?`${h(F).unreadCount} اعلان خوانده‌نشده`:`همه خوانده شده`),1),L.value?(r(),m(x,{key:0,variant:`outline`,class:`notif-box__mark`,onClick:d[0]||=e=>h(F).markAllRead()},{default:n(()=>[...d[2]||=[l(` خواندن همه `,-1)]]),_:1})):s(``,!0)]),(r(!0),c(u,null,t(I.value,t=>(r(),c(`button`,{key:t.id,type:`button`,class:e([`notif-row`,[`notif-row--${t.tone}`,{"notif-row--unread":!t.isRead}]]),onClick:e=>z(t)},[f(`span`,O,[a(_,{icon:R[t.tone],size:22,"stroke-width":1.5},null,8,[`icon`])]),f(`span`,k,[f(`span`,A,[f(`strong`,j,i(t.title),1),t.isRead?s(``,!0):(r(),c(`span`,M))]),f(`span`,N,i(t.body),1),f(`span`,P,i(h(v)(t.sentAt)),1)])],10,D))),128))])):(r(),m(S,{key:1,icon:`vuesax-linear:notification-bing`,title:`اعلانی ندارید`,message:`وقتی فاکتور سفارشتان صادر شود، پیشنهاد محصولی برایتان ثبت شود یا وضعیت پرداخت تغییر کند، همین‌جا خبردار می‌شوید.`},{default:n(()=>[a(x,{variant:`outline`,onClick:d[1]||=e=>h(g).push(`/orders`)},{default:n(()=>[...d[3]||=[l(`سفارش‌های من`,-1)]]),_:1})]),_:1}))]),_:1}))}}),[[`__scopeId`,`data-v-7e884b50`]]);export{F as default};
import{At as e,F as t,G as n,M as r,Pt as i,_ as a,c as o,d as s,f as c,g as l,i as u,k as d,l as f,t as p,u as m,ut as h,v as g}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{t as _}from"./BasicIcon-ba1FsUKx.js";import{i as v}from"./format-BHJptHdF.js";import{A as y,d as b,r as x}from"./index-CpQ4kL4n.js";import{t as S}from"./EmptyState-DYhkpGhZ.js";import{t as C}from"./ProfileSubpageLayout-CKyfOxv2.js";var w={key:0,class:`notif-box`},T={class:`notif-box__head`},E={class:`notif-box__count`},D=[`onClick`],O={class:`notif-row__icon`,"aria-hidden":`true`},k={class:`notif-row__body`},A={class:`notif-row__title-row`},j={class:`notif-row__title`},M={key:0,class:`notif-row__dot`,"aria-label":`خوانده‌نشده`},N={class:`notif-row__text`},P={class:`notif-row__time`},F=p(g({__name:`ProfileNotificationsView`,setup(p){let g=y(),F=b(),I=o(()=>F.items),L=o(()=>F.hasUnread),R={info:`vuesax-linear:information`,success:`vuesax-linear:tick-circle`,warning:`vuesax-linear:timer`,danger:`vuesax-linear:close-circle`};d(()=>{F.hydrate()});async function z(e){await F.markRead(e.id),e.link&&g.push(e.link)}return(o,d)=>(r(),m(C,{title:`اعلان‌ها`,subtitle:`سفارش‌ها، پیشنهاد محصول و سایر اعلان‌ها`},{default:n(()=>[I.value.length?(r(),c(`div`,w,[f(`div`,T,[f(`span`,E,i(L.value?`${h(F).unreadCount} اعلان خوانده‌نشده`:`همه خوانده شده`),1),L.value?(r(),m(x,{key:0,variant:`outline`,class:`notif-box__mark`,onClick:d[0]||=e=>h(F).markAllRead()},{default:n(()=>[...d[2]||=[l(` خواندن همه `,-1)]]),_:1})):s(``,!0)]),(r(!0),c(u,null,t(I.value,t=>(r(),c(`button`,{key:t.id,type:`button`,class:e([`notif-row`,[`notif-row--${t.tone}`,{"notif-row--unread":!t.isRead}]]),onClick:e=>z(t)},[f(`span`,O,[a(_,{icon:R[t.tone],size:22,"stroke-width":1.5},null,8,[`icon`])]),f(`span`,k,[f(`span`,A,[f(`strong`,j,i(t.title),1),t.isRead?s(``,!0):(r(),c(`span`,M))]),f(`span`,N,i(t.body),1),f(`span`,P,i(h(v)(t.sentAt)),1)])],10,D))),128))])):(r(),m(S,{key:1,icon:`vuesax-linear:notification-bing`,title:`اعلانی ندارید`,message:`وقتی فاکتور سفارشتان صادر شود، پیشنهاد محصولی برایتان ثبت شود یا وضعیت پرداخت تغییر کند، همین‌جا خبردار می‌شوید.`},{default:n(()=>[a(x,{variant:`outline`,onClick:d[1]||=e=>h(g).push(`/orders`)},{default:n(()=>[...d[3]||=[l(`سفارش‌های من`,-1)]]),_:1})]),_:1}))]),_:1}))}}),[[`__scopeId`,`data-v-7e884b50`]]);export{F as default};
@@ -1 +1 @@
import{G as e,M as t,_ as n,d as r,f as i,g as a,l as o,nt as s,t as c,u as l,v as u}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{r as d}from"./index-BPUhS8CY.js";import{t as f}from"./FormErrorBanner-Ud1D04xf.js";import{n as p,r as m,t as h}from"./formErrors-DglFjYkZ.js";import{t as g}from"./BaseInput-CpE3bVJZ.js";import{t as _}from"./ProfileSubpageLayout-Bj7iaKP1.js";var v={class:`settings-form`},y={key:0,class:`settings-form__saved`},b=c(u({__name:`ProfileSecurityView`,setup(c){let u=s(``),b=s(``),x=s(``),S=s({}),C=s(``),w=s(!1);function T(e){S.value=p(S.value,e),m(S.value)||(C.value=``)}function E(){S.value={},C.value=``,w.value=!1;let e={};if(u.value||(e.currentPassword=`رمز فعلی الزامی است.`),b.value.length<6&&(e.newPassword=`رمز جدید باید حداقل ۶ کاراکتر باشد.`),x.value!==b.value&&(e.confirmPassword=`تکرار رمز با رمز جدید یکسان نیست.`),m(e)){S.value=e,C.value=h;return}u.value=``,b.value=``,x.value=``,w.value=!0,setTimeout(()=>{w.value=!1},2e3)}return(s,c)=>(t(),l(_,{title:`امنیت حساب`,subtitle:`تغییر رمز عبور و تنظیمات ورود`},{default:e(()=>[n(f,{message:C.value},null,8,[`message`]),o(`div`,v,[n(g,{modelValue:u.value,"onUpdate:modelValue":[c[0]||=e=>u.value=e,c[1]||=e=>T(`currentPassword`)],type:`password`,label:`رمز عبور فعلی`,error:S.value.currentPassword},null,8,[`modelValue`,`error`]),n(g,{modelValue:b.value,"onUpdate:modelValue":[c[2]||=e=>b.value=e,c[3]||=e=>T(`newPassword`)],type:`password`,label:`رمز عبور جدید`,error:S.value.newPassword},null,8,[`modelValue`,`error`]),n(g,{modelValue:x.value,"onUpdate:modelValue":[c[4]||=e=>x.value=e,c[5]||=e=>T(`confirmPassword`)],type:`password`,label:`تکرار رمز عبور جدید`,error:S.value.confirmPassword},null,8,[`modelValue`,`error`]),n(d,{block:``,onClick:E},{default:e(()=>[...c[6]||=[a(`ذخیره رمز جدید`,-1)]]),_:1}),w.value?(t(),i(`p`,y,`رمز عبور با موفقیت تغییر کرد ✓`)):r(``,!0)])]),_:1}))}}),[[`__scopeId`,`data-v-074827a2`]]);export{b as default};
import{G as e,M as t,_ as n,d as r,f as i,g as a,l as o,nt as s,t as c,u as l,v as u}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{r as d}from"./index-CpQ4kL4n.js";import{t as f}from"./FormErrorBanner-Ud1D04xf.js";import{n as p,r as m,t as h}from"./formErrors-DglFjYkZ.js";import{t as g}from"./BaseInput-CpE3bVJZ.js";import{t as _}from"./ProfileSubpageLayout-CKyfOxv2.js";var v={class:`settings-form`},y={key:0,class:`settings-form__saved`},b=c(u({__name:`ProfileSecurityView`,setup(c){let u=s(``),b=s(``),x=s(``),S=s({}),C=s(``),w=s(!1);function T(e){S.value=p(S.value,e),m(S.value)||(C.value=``)}function E(){S.value={},C.value=``,w.value=!1;let e={};if(u.value||(e.currentPassword=`رمز فعلی الزامی است.`),b.value.length<6&&(e.newPassword=`رمز جدید باید حداقل ۶ کاراکتر باشد.`),x.value!==b.value&&(e.confirmPassword=`تکرار رمز با رمز جدید یکسان نیست.`),m(e)){S.value=e,C.value=h;return}u.value=``,b.value=``,x.value=``,w.value=!0,setTimeout(()=>{w.value=!1},2e3)}return(s,c)=>(t(),l(_,{title:`امنیت حساب`,subtitle:`تغییر رمز عبور و تنظیمات ورود`},{default:e(()=>[n(f,{message:C.value},null,8,[`message`]),o(`div`,v,[n(g,{modelValue:u.value,"onUpdate:modelValue":[c[0]||=e=>u.value=e,c[1]||=e=>T(`currentPassword`)],type:`password`,label:`رمز عبور فعلی`,error:S.value.currentPassword},null,8,[`modelValue`,`error`]),n(g,{modelValue:b.value,"onUpdate:modelValue":[c[2]||=e=>b.value=e,c[3]||=e=>T(`newPassword`)],type:`password`,label:`رمز عبور جدید`,error:S.value.newPassword},null,8,[`modelValue`,`error`]),n(g,{modelValue:x.value,"onUpdate:modelValue":[c[4]||=e=>x.value=e,c[5]||=e=>T(`confirmPassword`)],type:`password`,label:`تکرار رمز عبور جدید`,error:S.value.confirmPassword},null,8,[`modelValue`,`error`]),n(d,{block:``,onClick:E},{default:e(()=>[...c[6]||=[a(`ذخیره رمز جدید`,-1)]]),_:1}),w.value?(t(),i(`p`,y,`رمز عبور با موفقیت تغییر کرد ✓`)):r(``,!0)])]),_:1}))}}),[[`__scopeId`,`data-v-074827a2`]]);export{b as default};
@@ -1 +1 @@
import{I as e,M as t,Pt as n,_ as r,d as i,f as a,i as o,l as s,t as c,v as l}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{A as u}from"./index-BPUhS8CY.js";import{t as d}from"./IconChevronBack-DytWz6TD.js";var f={class:`page profile-subpage mobile-only`},p={class:`page__scroll page__scroll--with-nav`},m={class:`profile-subpage__card card`},h={class:`profile-subpage__nav`},g={class:`profile-subpage__title`},_={type:`button`,class:`nav-btn nav-btn--ghost`,"aria-hidden":`true`,tabindex:`-1`},v={class:`desktop-page profile-subpage-desktop desktop-only`},y={class:`desktop-page__head profile-subpage-desktop__head`},b={class:`desktop-page__title`},x={key:0,class:`desktop-page__subtitle`},S={class:`profile-subpage-desktop__panel card`},C=c(l({__name:`ProfileSubpageLayout`,props:{title:{},subtitle:{}},setup(c){let l=u();function C(){l.push(`/profile`)}return(l,u)=>(t(),a(o,null,[s(`div`,f,[s(`div`,p,[s(`div`,m,[s(`header`,h,[s(`button`,{type:`button`,class:`nav-btn`,"aria-label":`بازگشت`,onClick:C},[r(d,{size:20})]),s(`h1`,g,n(c.title),1),s(`button`,_,[r(d,{size:18,class:`nav-btn__flip`})])]),e(l.$slots,`default`,{},void 0,!0)])])]),s(`div`,v,[s(`header`,y,[s(`h1`,b,n(c.title),1),c.subtitle?(t(),a(`p`,x,n(c.subtitle),1)):i(``,!0)]),s(`section`,S,[e(l.$slots,`default`,{},void 0,!0)])])],64))}}),[[`__scopeId`,`data-v-e7684fde`]]);export{C as t};
import{I as e,M as t,Pt as n,_ as r,d as i,f as a,i as o,l as s,t as c,v as l}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{A as u}from"./index-CpQ4kL4n.js";import{t as d}from"./IconChevronBack-DytWz6TD.js";var f={class:`page profile-subpage mobile-only`},p={class:`page__scroll page__scroll--with-nav`},m={class:`profile-subpage__card card`},h={class:`profile-subpage__nav`},g={class:`profile-subpage__title`},_={type:`button`,class:`nav-btn nav-btn--ghost`,"aria-hidden":`true`,tabindex:`-1`},v={class:`desktop-page profile-subpage-desktop desktop-only`},y={class:`desktop-page__head profile-subpage-desktop__head`},b={class:`desktop-page__title`},x={key:0,class:`desktop-page__subtitle`},S={class:`profile-subpage-desktop__panel card`},C=c(l({__name:`ProfileSubpageLayout`,props:{title:{},subtitle:{}},setup(c){let l=u();function C(){l.push(`/profile`)}return(l,u)=>(t(),a(o,null,[s(`div`,f,[s(`div`,p,[s(`div`,m,[s(`header`,h,[s(`button`,{type:`button`,class:`nav-btn`,"aria-label":`بازگشت`,onClick:C},[r(d,{size:20})]),s(`h1`,g,n(c.title),1),s(`button`,_,[r(d,{size:18,class:`nav-btn__flip`})])]),e(l.$slots,`default`,{},void 0,!0)])])]),s(`div`,v,[s(`header`,y,[s(`h1`,b,n(c.title),1),c.subtitle?(t(),a(`p`,x,n(c.subtitle),1)):i(``,!0)]),s(`section`,S,[e(l.$slots,`default`,{},void 0,!0)])])],64))}}),[[`__scopeId`,`data-v-e7684fde`]]);export{C as t};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
.stock-alerts-error[data-v-c1c726c4]{color:var(--color-danger);margin:0 0 12px;font-size:.8125rem}.stock-alerts-empty[data-v-c1c726c4]{text-align:center;color:var(--color-text-muted);flex-direction:column;align-items:center;gap:10px;padding:32px 16px;display:flex}.stock-alerts-empty__hint[data-v-c1c726c4]{max-width:280px;margin:0;font-size:.8125rem;line-height:1.6}.stock-alerts-section[data-v-c1c726c4]{margin-bottom:20px}.stock-alerts-section__title[data-v-c1c726c4]{color:var(--color-text-muted);margin:0 0 10px;font-size:.875rem;font-weight:700}.stock-alerts-list[data-v-c1c726c4]{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.stock-alert-card[data-v-c1c726c4]{border:1px solid var(--color-border);background:var(--color-elevated);border-radius:14px;align-items:stretch;gap:8px;padding:10px;display:flex}.stock-alert-card--muted[data-v-c1c726c4]{opacity:.88}.stock-alert-card__main[data-v-c1c726c4]{text-align:start;cursor:pointer;min-width:0;color:inherit;font:inherit;background:0 0;border:none;flex:1;gap:12px;padding:0;display:flex}.stock-alert-card__thumb[data-v-c1c726c4]{background:var(--color-bg) center / cover no-repeat;border:1px solid var(--color-border);border-radius:10px;flex-shrink:0;width:56px;height:56px}.stock-alert-card__thumb--empty[data-v-c1c726c4]{background:var(--color-primary-soft)}.stock-alert-card__body[data-v-c1c726c4]{flex-direction:column;gap:4px;min-width:0;display:flex}.stock-alert-card__badge[data-v-c1c726c4]{background:var(--color-bg);color:var(--color-text-muted);border-radius:999px;align-self:flex-start;padding:2px 8px;font-size:.6875rem;font-weight:700}.stock-alert-card__badge--active[data-v-c1c726c4]{background:var(--color-primary-soft);color:var(--color-primary)}.stock-alert-card__badge--done[data-v-c1c726c4]{color:var(--color-success-dark,#15803d);background:#22c55e26}.stock-alert-card__name[data-v-c1c726c4]{font-size:.9375rem;line-height:1.35}.stock-alert-card__meta[data-v-c1c726c4]{color:var(--color-text-muted);margin:0;font-size:.75rem;line-height:1.5}.stock-alert-card__cancel[data-v-c1c726c4]{color:var(--color-danger);font:inherit;cursor:pointer;background:0 0;border:none;flex-shrink:0;align-self:center;padding:8px;font-size:.8125rem;font-weight:600}
-1
View File
@@ -1 +0,0 @@
import{At as e,F as t,G as n,M as r,Nt as i,Pt as a,_ as ee,c 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 m,u as h,ut as g,v as _}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{i as v,o as y}from"./format-C72AoJ2H.js";import{t as b}from"./http-CU_N-R2R.js";import{A as x,r as S,t as C}from"./index-BPUhS8CY.js";import{t as te}from"./PageSkeleton-DYdjm4l9.js";import{a as ne,i as re,n as w,t as ie}from"./useStockNotify-DeMc7Vja.js";import{t as ae}from"./ProfileSubpageLayout-Bj7iaKP1.js";var T={key:0,class:`stock-alerts-error`},E={key:0,class:`stock-alerts-empty`},D={key:0,class:`stock-alerts-section`},O={class:`stock-alerts-section__title`},k={class:`stock-alerts-list`},A=[`onClick`],j={class:`stock-alert-card__body`},M={class:`stock-alert-card__badge stock-alert-card__badge--active`},N={class:`stock-alert-card__name`},P={class:`stock-alert-card__meta`},F={dir:`ltr`},I={class:`stock-alert-card__meta`},L={key:0},R=[`disabled`,`onClick`],z={key:1,class:`stock-alerts-section`},B={class:`stock-alerts-list`},V=[`onClick`],H={class:`stock-alert-card__body`},U={class:`stock-alert-card__name`},W={class:`stock-alert-card__meta`},G=m(_({__name:`StockAlertsView`,setup(m){let _=x(),G=C(),K=p([]),q=p(!0),J=p(``),Y=p(null),X=o(()=>K.value.filter(e=>e.active)),Z=o(()=>K.value.filter(e=>!e.active));async function Q(){q.value=!0,J.value=``;try{K.value=await ne()}catch(e){J.value=e instanceof b||e instanceof Error?e.message:`بارگذاری درخواست‌ها ناموفق بود.`}finally{q.value=!1}}d(Q);function $(e){_.push({path:`/product`,query:{id:e.productId}})}async function oe(e){if(!(!e.active||Y.value)){Y.value=e.id;try{await re(e.productId),G.show(`درخواست خبر موجودی لغو شد.`,{tone:`success`}),await Q()}catch(e){G.show(e instanceof b||e instanceof Error?e.message:`لغو درخواست ناموفق بود.`,{tone:`error`})}finally{Y.value=null}}}return(o,d)=>(r(),h(ae,{title:`خبر موجودی`,subtitle:`وقتی محصول ناموجود دوباره موجود شود، در اعلان‌ها مطلع می‌شوید`},{default:n(()=>[J.value?(r(),c(`p`,T,a(J.value),1)):s(``,!0),q.value?(r(),h(te,{key:1,variant:`list`})):(r(),c(u,{key:2},[K.value.length?(r(),c(u,{key:1},[X.value.length?(r(),c(`section`,D,[f(`h2`,O,`فعال (`+a(g(y)(X.value.length))+`)`,1),f(`ul`,k,[(r(!0),c(u,null,t(X.value,t=>(r(),c(`li`,{key:t.id,class:`stock-alert-card`},[f(`button`,{type:`button`,class:`stock-alert-card__main`,onClick:e=>$(t)},[f(`span`,{class:e([`stock-alert-card__thumb`,{"stock-alert-card__thumb--empty":!t.imageUrl}]),style:i(t.imageUrl?{backgroundImage:`url(${t.imageUrl})`}:void 0)},null,6),f(`div`,j,[f(`span`,M,a(g(w)(t)),1),f(`strong`,N,a(t.productName),1),f(`p`,P,[l(` کالیته `+a(t.catalogCode)+` · `+a(t.color)+` `,1),f(`span`,F,`(`+a(t.productCode)+`)`,1)]),f(`p`,I,[l(` ثبت: `+a(g(v)(t.createdAt))+` `,1),g(ie)(t.stock)?(r(),c(`span`,L,` · موجودی: ۰`)):s(``,!0)])])],8,A),f(`button`,{type:`button`,class:`stock-alert-card__cancel`,disabled:Y.value===t.id,onClick:e=>oe(t)},` لغو `,8,R)]))),128))])])):s(``,!0),Z.value.length?(r(),c(`section`,z,[d[4]||=f(`h2`,{class:`stock-alerts-section__title`},`تاریخچه`,-1),f(`ul`,B,[(r(!0),c(u,null,t(Z.value,t=>(r(),c(`li`,{key:t.id,class:`stock-alert-card stock-alert-card--muted`},[f(`button`,{type:`button`,class:`stock-alert-card__main`,onClick:e=>$(t)},[f(`span`,{class:e([`stock-alert-card__thumb`,{"stock-alert-card__thumb--empty":!t.imageUrl}]),style:i(t.imageUrl?{backgroundImage:`url(${t.imageUrl})`}:void 0)},null,6),f(`div`,H,[f(`span`,{class:e([`stock-alert-card__badge`,{"stock-alert-card__badge--done":!!t.notifiedAt}])},a(g(w)(t)),3),f(`strong`,U,a(t.productName),1),f(`p`,W,a(t.notifiedAt?`اطلاع: ${g(v)(t.notifiedAt)}`:g(v)(t.createdAt)),1)])],8,V)]))),128))])])):s(``,!0)],64)):(r(),c(`div`,E,[d[2]||=f(`p`,null,`هنوز درخواستی ثبت نکرده‌اید.`,-1),d[3]||=f(`p`,{class:`stock-alerts-empty__hint`},` در صفحهٔ محصول ناموجود، دکمه «خبرم کن» را بزنید. `,-1),ee(S,{size:`sm`,variant:`outline`,onClick:d[0]||=e=>g(_).push(`/products`)},{default:n(()=>[...d[1]||=[l(` مشاهده محصولات `,-1)]]),_:1})]))],64))]),_:1}))}}),[[`__scopeId`,`data-v-c1c726c4`]]);export{G as default};
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{At as e,D as t,F as n,M as r,Pt as i,f as a,i as o,k as s,l as c,nt as l,t as u,ut as d,v as f}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{A as p}from"./index-BPUhS8CY.js";import{t as m}from"./nademitex-auth-logo-CQhPwje_.js";var h=`/assets/login-fabric-CSZOoxR9.jpg`,g=`/assets/fabric-slide-2-BWGo09Th.jpg`,_=`/assets/fabric-slide-3-CyMWKjFB.jpg`,v=`/assets/fabric-slide-4-UycLZic-.jpg`,y=[`src`],b={class:`welcome__brand`},x=[`src`],S={class:`welcome__copy`},C={class:`welcome__dots`,role:`tablist`,"aria-label":`اسلایدها`},w=[`aria-label`,`onClick`],T=u(f({__name:`WelcomeView`,setup(u){let f=p(),T=[{image:h,title:`پارچه، برای ایده‌های بزرگ`,lead:`انتخاب بهتر، تأمین سریع‌تر، همراه حرفه‌ای شما در مسیر تولید پوشاک`},{image:g,title:`پارچه، برای ایده‌های بزرگ`,lead:`از کت و شلوار تا مانتو؛ بافتی که طرح شما را کامل می‌کند`},{image:_,title:`پارچه، برای ایده‌های بزرگ`,lead:`کتان، پنبه و فاستونی؛ موجودی عمده برای مزون و تولیدکننده`},{image:v,title:`پارچه، برای ایده‌های بزرگ`,lead:`کالیته را ببینید، رنگ را لمس کنید، بعد سفارش دهید`}],E=l(0),D=0,O=0;function k(e){E.value=(e+T.length)%T.length}function A(e){O=e.changedTouches[0]?.clientX??0}function j(e){let t=(e.changedTouches[0]?.clientX??0)-O;Math.abs(t)<40||k(E.value+(t<0?1:-1))}return s(()=>{D=window.setInterval(()=>k(E.value+1),4500)}),t(()=>window.clearInterval(D)),(t,s)=>(r(),a(`div`,{class:`welcome`,onTouchstartPassive:A,onTouchendPassive:j},[(r(),a(o,null,n(T,(t,n)=>c(`img`,{key:t.lead,class:e([`welcome__photo`,{"is-on":n===E.value}]),src:t.image,alt:``},null,10,y)),64)),s[1]||=c(`div`,{class:`welcome__shade`},null,-1),c(`header`,b,[c(`img`,{class:`welcome__logo`,src:d(m),alt:`Nademi Tex`,draggable:`false`},null,8,x)]),c(`div`,S,[c(`h1`,null,i(T[E.value]?.title),1),c(`p`,null,i(T[E.value]?.lead),1),c(`div`,C,[(r(),a(o,null,n(T,(t,n)=>c(`button`,{key:t.lead,type:`button`,class:e({"is-on":n===E.value}),"aria-label":`اسلاید ${n+1}`,onClick:e=>k(n)},null,10,w)),64))])]),c(`button`,{type:`button`,class:`welcome__cta`,onClick:s[0]||=e=>d(f).push(`/login`)},`ورود / ثبت‌نام`)],32))}}),[[`__scopeId`,`data-v-34e03d54`]]);export{T as default};
import{At as e,D as t,F as n,M as r,Pt as i,f as a,i as o,k as s,l as c,nt as l,t as u,ut as d,v as f}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{A as p}from"./index-CpQ4kL4n.js";import{t as m}from"./nademitex-auth-logo-CQhPwje_.js";var h=`/assets/login-fabric-CSZOoxR9.jpg`,g=`/assets/fabric-slide-2-BWGo09Th.jpg`,_=`/assets/fabric-slide-3-CyMWKjFB.jpg`,v=`/assets/fabric-slide-4-UycLZic-.jpg`,y=[`src`],b={class:`welcome__brand`},x=[`src`],S={class:`welcome__copy`},C={class:`welcome__dots`,role:`tablist`,"aria-label":`اسلایدها`},w=[`aria-label`,`onClick`],T=u(f({__name:`WelcomeView`,setup(u){let f=p(),T=[{image:h,title:`پارچه، برای ایده‌های بزرگ`,lead:`انتخاب بهتر، تأمین سریع‌تر، همراه حرفه‌ای شما در مسیر تولید پوشاک`},{image:g,title:`پارچه، برای ایده‌های بزرگ`,lead:`از کت و شلوار تا مانتو؛ بافتی که طرح شما را کامل می‌کند`},{image:_,title:`پارچه، برای ایده‌های بزرگ`,lead:`کتان، پنبه و فاستونی؛ موجودی عمده برای مزون و تولیدکننده`},{image:v,title:`پارچه، برای ایده‌های بزرگ`,lead:`کالیته را ببینید، رنگ را لمس کنید، بعد سفارش دهید`}],E=l(0),D=0,O=0;function k(e){E.value=(e+T.length)%T.length}function A(e){O=e.changedTouches[0]?.clientX??0}function j(e){let t=(e.changedTouches[0]?.clientX??0)-O;Math.abs(t)<40||k(E.value+(t<0?1:-1))}return s(()=>{D=window.setInterval(()=>k(E.value+1),4500)}),t(()=>window.clearInterval(D)),(t,s)=>(r(),a(`div`,{class:`welcome`,onTouchstartPassive:A,onTouchendPassive:j},[(r(),a(o,null,n(T,(t,n)=>c(`img`,{key:t.lead,class:e([`welcome__photo`,{"is-on":n===E.value}]),src:t.image,alt:``},null,10,y)),64)),s[1]||=c(`div`,{class:`welcome__shade`},null,-1),c(`header`,b,[c(`img`,{class:`welcome__logo`,src:d(m),alt:`Nademi Tex`,draggable:`false`},null,8,x)]),c(`div`,S,[c(`h1`,null,i(T[E.value]?.title),1),c(`p`,null,i(T[E.value]?.lead),1),c(`div`,C,[(r(),a(o,null,n(T,(t,n)=>c(`button`,{key:t.lead,type:`button`,class:e({"is-on":n===E.value}),"aria-label":`اسلاید ${n+1}`,onClick:e=>k(n)},null,10,w)),64))])]),c(`button`,{type:`button`,class:`welcome__cta`,onClick:s[0]||=e=>d(f).push(`/login`)},`ورود / ثبت‌نام`)],32))}}),[[`__scopeId`,`data-v-34e03d54`]]);export{T as default};
File diff suppressed because one or more lines are too long
Binary file not shown.

Before

Width:  |  Height:  |  Size: 178 KiB

@@ -1 +1 @@
function e(e){let t=e.trim();return!t||/[\u0600-\u06FF]/.test(t)?!1:t.startsWith(`#`)||/^(rgb|hsl)a?\(/i.test(t)||/^(transparent|currentcolor|black|white|navy|beige|gray|grey|red|blue|green|brown|gold|silver|ivory|khaki|olive|teal|maroon|purple|orange|pink|cyan|magenta|lime|aqua|fuchsia|indigo|violet|tan|wheat|snow)$/i.test(t)}function t(t,n){return n?{backgroundImage:`url(${n})`,backgroundSize:`cover`,backgroundPosition:`center`,backgroundRepeat:`no-repeat`}:e(t)?{background:t}:{background:`#c5cdc9`}}function n(e,t,n,r,i){return t?.[r]||n?.[r]||i||``}export{t as n,n as t};
function e(e){let t=e.trim();return!t||/[\u0600-\u06FF]/.test(t)?!1:t.startsWith(`#`)||/^(rgb|hsl)a?\(/i.test(t)||/^(transparent|currentcolor|black|white|navy|beige|gray|grey|red|blue|green|brown|gold|silver|ivory|khaki|olive|teal|maroon|purple|orange|pink|cyan|magenta|lime|aqua|fuchsia|indigo|violet|tan|wheat|snow)$/i.test(t)}function t(t,n){return n?{backgroundImage:`url(${n})`,backgroundSize:`cover`,backgroundPosition:`center`,backgroundRepeat:`no-repeat`}:e(t)?{background:t}:{background:`#c5cdc9`}}function n(e,t,n){return e?.[0]||t?.find(Boolean)||n||``}function r(e,t,n){let r=t?.[n];return r?.length?r[0]:e?.[n]||``}export{r as n,n as r,t};
-1
View File
@@ -1 +0,0 @@
import{nt as e}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{n as t}from"./pinia-BK9B9Wwf.js";import{n,t as r}from"./http-CU_N-R2R.js";var i=[{id:`trousers`,title:`پارچه‌های شلواری`,subtitle:`مشاهده محصولات`},{id:`suit`,title:`پارچه‌های کت‌شلواری`,subtitle:`مشاهده محصولات`},{id:`shirt`,title:`پارچه‌های پیراهنی`,subtitle:`مشاهده محصولات`}],a=[{id:`summer`,title:`تابستانه`,description:`سبک، خنک و مناسب فصل گرم`},{id:`winter`,title:`زمستانه`,description:`گرم و مناسب فصل سرد`},{id:`all_season`,title:`چهارفصل`,description:`مناسب استفاده در بیشتر فصل‌های سال`}];function o(){return{usage:i,seasons:a}}var s=`سرویس واسطه روی سرور فعال نیست. پس از migrate و deploy سرور دوباره تلاش کنید.`;async function c(e,t){try{return await n(e,t)}catch(e){throw e instanceof r&&(e.status===404||e.status===501)?new r(e.status,s):e}}async function l(){try{return await n(`/catalog/categories`)}catch{try{return await n(`/products/meta/categories`)}catch{return o()}}}async function u(e){return n(`/products`,{query:{activeOnly:!0,categoryId:e?.categoryId,season:e?.season,catalogId:e?.catalogId,companyId:e?.companyId}})}async function d(e){return n(`/banners`,{query:{slot:e}})}async function f(){return c(`/agent/profile`)}async function p(e){return c(`/agent/customers`,{query:e})}async function m(e){return c(`/agent/customers`,{method:`POST`,body:e})}async function h(e,t){return c(`/agent/customers/${e}`,{method:`PATCH`,body:t})}async function g(e){return c(`/agent/customers/${e}`)}async function _(e){return c(`/agent/meetings`,{method:`POST`,body:e})}async function v(e){return c(`/agent/reminders`,{query:{filter:e}})}async function y(e){return c(`/agent/reminders/${e}`)}async function b(e,t=!0){return c(`/agent/reminders/${e}/complete`,{method:`PATCH`,body:{completed:t}})}async function x(e){return c(`/agent/reminders`,{method:`POST`,body:e})}function S(e){return{id:e.id,name:e.name,code:e.code,categoryId:e.categoryId||e.usageCategory||`other`,season:e.season||`all_season`,widthCm:e.widthCm??150,composition:e.composition??``,weightGrams:e.weightGrams,weaveType:e.weaveType,colors:e.colors?.length?e.colors:[`#6b7280`],colorImages:e.colorImages,tags:e.tags??[],isNew:!!e.isNew,imageUrl:e.imageUrl||e.colorImages?.find(Boolean)||e.imageUrls?.[0],imageUrls:e.imageUrls,subtitle:e.subtitle,rollMeters:e.rollMeters??50,companyId:e.companyId,catalogId:e.catalogId,catalogCode:e.catalogCode,catalogName:e.catalogName,color:e.color,minMeterage:e.minMeterage??30,orderMultiplier:e.orderMultiplier??10,basePrice:e.basePrice??void 0,stock:e.stock??null}}var C=t(`crm`,()=>{let t=e(!1),r=e(null),i=e(null),a=e([]),o=e([]),s=e([]),c=e([]),d=e([]);async function C(){let e=await l();return s.value=e.usage,c.value=e.seasons,e}async function w(e){let t=await u(e);return d.value=t.map(S),d.value}async function T(e){return S(await n(`/products/${e}`))}async function E(){return i.value=await f(),i.value}async function D(e){return a.value=await p(e),a.value}async function O(e){return await g(e)}async function k(e){return _(e)}async function A(e){return m(e)}async function j(e,t){return h(e,t)}async function M(e){return o.value=await v(e),o.value}async function N(e){return y(e)}async function P(e){return b(e,!0)}async function F(e){return x(e)}return{loading:t,error:r,agentProfile:i,customers:a,reminders:o,usageCategories:s,seasonCategories:c,browseProducts:d,loadCategories:C,loadBrowseProducts:w,loadProductById:T,loadAgentProfile:E,loadCustomers:D,loadCustomerDetail:O,submitMeeting:k,registerCustomer:A,updateCustomer:j,loadReminders:M,loadReminderDetail:N,markReminderComplete:P,createReminder:F}});export{a,v as i,f as n,i as o,d as r,C as t};
+1
View File
@@ -0,0 +1 @@
import{nt as e}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{n as t}from"./pinia-BK9B9Wwf.js";import{n,t as r}from"./http-CU_N-R2R.js";var i=[{id:`trousers`,title:`پارچه‌های شلواری`,subtitle:`مشاهده محصولات`},{id:`suit`,title:`پارچه‌های کت‌شلواری`,subtitle:`مشاهده محصولات`},{id:`shirt`,title:`پارچه‌های پیراهنی`,subtitle:`مشاهده محصولات`}],a=[{id:`summer`,title:`تابستانه`,description:`سبک، خنک و مناسب فصل گرم`},{id:`winter`,title:`زمستانه`,description:`گرم و مناسب فصل سرد`},{id:`all_season`,title:`چهارفصل`,description:`مناسب استفاده در بیشتر فصل‌های سال`}];function o(){return{usage:i,seasons:a}}var s=`سرویس واسطه روی سرور فعال نیست. پس از migrate و deploy سرور دوباره تلاش کنید.`;async function c(e,t){try{return await n(e,t)}catch(e){throw e instanceof r&&(e.status===404||e.status===501)?new r(e.status,s):e}}async function l(){try{return await n(`/catalog/categories`)}catch{try{return await n(`/products/meta/categories`)}catch{return o()}}}async function u(e){return n(`/products`,{query:{activeOnly:!0,categoryId:e?.categoryId,season:e?.season,companyId:e?.companyId}})}async function d(e){return n(`/banners`,{query:{slot:e}})}async function f(){return c(`/agent/profile`)}async function p(e){return c(`/agent/customers`,{query:e})}async function m(e){return c(`/agent/customers`,{method:`POST`,body:e})}async function h(e,t){return c(`/agent/customers/${e}`,{method:`PATCH`,body:t})}async function g(e){return c(`/agent/customers/${e}`)}async function _(e){return c(`/agent/meetings`,{method:`POST`,body:e})}async function v(e){return c(`/agent/reminders`,{query:{filter:e}})}async function y(e){return c(`/agent/reminders/${e}`)}async function b(e,t=!0){return c(`/agent/reminders/${e}/complete`,{method:`PATCH`,body:{completed:t}})}async function x(e){return c(`/agent/reminders`,{method:`POST`,body:e})}function S(e){return{id:e.id,name:e.name,code:e.code,categoryId:e.categoryId||e.usageCategory||`other`,season:e.season||`all_season`,widthCm:e.widthCm??150,composition:e.composition??``,weightGrams:e.weightGrams,weaveType:e.weaveType,colors:e.colors?.length?e.colors:[`#6b7280`],colorImages:e.colorImages,colorVariantImages:e.colorVariantImages,tags:e.tags??[],isNew:!!e.isNew,imageUrl:e.imageUrls?.[0]||e.imageUrl||e.colorImages?.find(Boolean)||void 0,imageUrls:e.imageUrls,subtitle:e.subtitle,rollMeters:e.rollMeters??50,companyId:e.companyId,catalogId:e.catalogId,catalogCode:e.catalogCode,catalogName:e.catalogName,color:e.color,minMeterage:e.minMeterage??30,orderMultiplier:e.orderMultiplier??10,basePrice:e.basePrice??void 0,stock:e.stock??null}}var C=t(`crm`,()=>{let t=e(!1),r=e(null),i=e(null),a=e([]),o=e([]),s=e([]),c=e([]),d=e([]);async function C(){let e=await l();return s.value=e.usage,c.value=e.seasons,e}async function w(e){let t=await u(e);return d.value=t.map(S),d.value}async function T(e){return S(await n(`/products/${e}`))}async function E(){return i.value=await f(),i.value}async function D(e){return a.value=await p(e),a.value}async function O(e){return await g(e)}async function k(e){return _(e)}async function A(e){return m(e)}async function j(e,t){return h(e,t)}async function M(e){return o.value=await v(e),o.value}async function N(e){return y(e)}async function P(e){return b(e,!0)}async function F(e){return x(e)}return{loading:t,error:r,agentProfile:i,customers:a,reminders:o,usageCategories:s,seasonCategories:c,browseProducts:d,loadCategories:C,loadBrowseProducts:w,loadProductById:T,loadAgentProfile:E,loadCustomers:D,loadCustomerDetail:O,submitMeeting:k,registerCustomer:A,updateCustomer:j,loadReminders:M,loadReminderDetail:N,markReminderComplete:P,createReminder:F}});export{a,v as i,f as n,i as o,d as r,C as t};
Binary file not shown.

Before

Width:  |  Height:  |  Size: 112 KiB

@@ -1 +1 @@
var e=[-61,9,38,199,426,686,756,818,1111,1181,1210,1635,2060,2097,2192,2262,2324,2394,2456,3178],t=e[0],n=e[e.length-1]-1;function r(e,t,n){return e instanceof Date?u(d(e.getFullYear(),e.getMonth()+1,e.getDate())):u(d(e,t,n))}function i(e,t,n){return f(l(e,t,n))}function a(e){return h(e)===0}function o(e,t){return t<=6?31:t<=11||a(e)?30:29}function s(e){let{gy:t,march:n,jump:r,n:i}=p(e);return{leap:m(r,i),gy:t,march:n}}function c(e){let{gy:t,march:n}=p(e);return{gy:t,march:n}}function l(e,t,n){let r=c(e);return d(r.gy,3,r.march)+(t-1)*31-g(t,7)*(t-7)+n-1}function u(e){let t=f(e).gy,n=t-621,r=s(n),i=e-d(t,3,r.march);if(i>=0){if(i<=185)return{jy:n,jm:1+g(i,31),jd:_(i,31)+1};i-=186}else--n,i+=179,r.leap===1&&(i+=1);return{jy:n,jm:7+g(i,30),jd:_(i,30)+1}}function d(e,t,n){let r=g((e+g(t-8,6)+100100)*1461,4)+g(153*_(t+9,12)+2,5)+n-34840408;return r=r-g(g(e+100100+g(t-8,6),100)*3,4)+752,r}function f(e){let t=4*e+139361631;t=t+g(g(4*e+183187720,146097)*3,4)*4-3908;let n=g(_(t,1461),4)*5+308,r=g(_(n,153),5)+1,i=_(g(n,153),12)+1;return{gy:g(t,1461)-100100+g(8-i,6),gm:i,gd:r}}function p(r){if(!Number.isFinite(r)||r<t||r>n)throw RangeError(`Invalid Jalaali year ${r}: must be a finite number between ${t} and ${n} (inclusive)`);let i=r+621,a=-14,o=e[0],s=0,c=0;for(let t=1;t<e.length&&(s=e[t],c=s-o,!(r<s));t+=1)a=a+g(c,33)*8+g(_(c,33),4),o=s;let l=r-o;a=a+g(l,33)*8+g(_(l,33)+3,4),_(c,33)===4&&c-l===4&&(a+=1);let u=g(i,4)-g((g(i,100)+1)*3,4)-150;return{gy:i,march:20+a-u,jump:c,n:l}}function m(e,t){let n=t;e-t<6&&(n=t-e+g(e+4,33)*33);let r=_(_(n+1,33)-1,4);return r===-1&&(r=4),r}function h(r){if(!Number.isFinite(r)||r<t||r>n)throw RangeError(`Invalid Jalaali year ${r}: must be a finite number between ${t} and ${n} (inclusive)`);let i=e[0],a=0,o=0;for(let t=1;t<e.length&&(a=e[t],o=a-i,!(r<a));t+=1)i=a;return m(o,r-i)}function g(e,t){return~~(e/t)}function _(e,t){return e-~~(e/t)*t}var v=`۰۱۲۳۴۵۶۷۸۹`;function y(e){return e.replace(/\d/g,e=>v[Number(e)])}var b=[`فروردین`,`اردیبهشت`,`خرداد`,`تیر`,`مرداد`,`شهریور`,`مهر`,`آبان`,`آذر`,`دی`,`بهمن`,`اسفند`],x=[`ش`,`ی`,`د`,`س`,`چ`,`پ`,`ج`];function S(e){let t=e.trim().match(/^(\d{4})-(\d{2})-(\d{2})/);if(t)return new Date(Number(t[1]),Number(t[2])-1,Number(t[3]));let n=new Date(e);return Number.isNaN(n.getTime())?new Date(NaN):new Date(n.getFullYear(),n.getMonth(),n.getDate())}function C(e){return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`}function w(e){let{jy:t,jm:n,jd:i}=r(e.getFullYear(),e.getMonth()+1,e.getDate());return{jy:t,jm:n,jd:i}}function T(e,t,n){let{gy:r,gm:a,gd:o}=i(e,t,n);return new Date(r,a-1,o)}function E(e){return e?w(S(e)):null}function D(e,t,n){return C(T(e,t,n))}function O(e,t,n){return`${y(String(n))} ${b[t-1]} ${y(String(e))}`}function k(e,t,n){let{gy:r,gm:a,gd:o}=i(e,t,n);return(new Date(r,a-1,o).getDay()+1)%7}function A(e,t){return o(e,t)}function j(e,t){let n=A(e,t),r=k(e,t,1),i=Array.from({length:r},()=>null);for(let e=1;e<=n;e+=1)i.push(e);for(;i.length%7!=0;)i.push(null);return i}function M(){return w(new Date)}var N=`۰۱۲۳۴۵۶۷۸۹`,P=new Intl.NumberFormat(`fa-IR`,{useGrouping:!0});function F(e){return e.replace(/[۰-۹]/g,e=>String(N.indexOf(e)))}function I(e){return F(e).replace(/[^\d]/g,``)}function L(e){let t=I(e);return t?Number(t):0}function R(e){return Number.isFinite(e)?P.format(e):`—`}function z(e){return`${R(e)} تومان`}function B(e){return`${R(e)} متر`}var V=new Intl.DateTimeFormat(`fa-IR-u-ca-persian`,{year:`numeric`,month:`2-digit`,day:`2-digit`}),H=new Intl.DateTimeFormat(`fa-IR-u-ca-persian`,{year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`});function U(e){let t=F(e.trim()).replace(/-/g,`/`).match(/^(\d{4})\/(\d{1,2})\/(\d{1,2})/);if(!t)return!1;let n=Number(t[1]);return n>=1300&&n<=1500}function W(e){if(typeof e!=`string`)return e;let t=e.trim();if(/^\d{4}-\d{2}-\d{2}$/.test(t))return S(t);let n=new Date(t);return Number.isNaN(n.getTime())?new Date(NaN):n}function G(e){if(!e)return`—`;if(typeof e==`string`&&U(e)){let t=F(e.trim()).replace(/-/g,`/`),n=t.match(/^(\d{4})\/(\d{1,2})\/(\d{1,2})/);if(!n)return q(t);let[,r,i,a]=n;return q(`${r}/${i.padStart(2,`0`)}/${a.padStart(2,`0`)}`)}let t=W(e);return Number.isNaN(t.getTime())?`—`:V.format(t)}function K(e){if(!e)return`—`;if(typeof e==`string`&&U(e)&&!/[T\s]\d/.test(e))return G(e);let t=W(e);return Number.isNaN(t.getTime())?`—`:H.format(t)}function q(e){return e.replace(/\d/g,e=>N[Number(e)])}function J(e){let t=I(e);return t.startsWith(`98`)?t=`0`+t.slice(2):t.startsWith(`9`)&&t.length===10&&(t=`0`+t),t.slice(0,11)}function Y(){return crypto.randomUUID()}export{D as _,B as a,M as b,F as c,q as d,b as f,E as g,O as h,K as i,J as l,j as m,z as n,R as o,x as p,G as r,Y as s,I as t,L as u,S as v,C as y};
var e=[-61,9,38,199,426,686,756,818,1111,1181,1210,1635,2060,2097,2192,2262,2324,2394,2456,3178],t=e[0],n=e[e.length-1]-1;function r(e,t,n){return e instanceof Date?u(d(e.getFullYear(),e.getMonth()+1,e.getDate())):u(d(e,t,n))}function i(e,t,n){return f(l(e,t,n))}function a(e){return h(e)===0}function o(e,t){return t<=6?31:t<=11||a(e)?30:29}function s(e){let{gy:t,march:n,jump:r,n:i}=p(e);return{leap:m(r,i),gy:t,march:n}}function c(e){let{gy:t,march:n}=p(e);return{gy:t,march:n}}function l(e,t,n){let r=c(e);return d(r.gy,3,r.march)+(t-1)*31-g(t,7)*(t-7)+n-1}function u(e){let t=f(e).gy,n=t-621,r=s(n),i=e-d(t,3,r.march);if(i>=0){if(i<=185)return{jy:n,jm:1+g(i,31),jd:_(i,31)+1};i-=186}else--n,i+=179,r.leap===1&&(i+=1);return{jy:n,jm:7+g(i,30),jd:_(i,30)+1}}function d(e,t,n){let r=g((e+g(t-8,6)+100100)*1461,4)+g(153*_(t+9,12)+2,5)+n-34840408;return r=r-g(g(e+100100+g(t-8,6),100)*3,4)+752,r}function f(e){let t=4*e+139361631;t=t+g(g(4*e+183187720,146097)*3,4)*4-3908;let n=g(_(t,1461),4)*5+308,r=g(_(n,153),5)+1,i=_(g(n,153),12)+1;return{gy:g(t,1461)-100100+g(8-i,6),gm:i,gd:r}}function p(r){if(!Number.isFinite(r)||r<t||r>n)throw RangeError(`Invalid Jalaali year ${r}: must be a finite number between ${t} and ${n} (inclusive)`);let i=r+621,a=-14,o=e[0],s=0,c=0;for(let t=1;t<e.length&&(s=e[t],c=s-o,!(r<s));t+=1)a=a+g(c,33)*8+g(_(c,33),4),o=s;let l=r-o;a=a+g(l,33)*8+g(_(l,33)+3,4),_(c,33)===4&&c-l===4&&(a+=1);let u=g(i,4)-g((g(i,100)+1)*3,4)-150;return{gy:i,march:20+a-u,jump:c,n:l}}function m(e,t){let n=t;e-t<6&&(n=t-e+g(e+4,33)*33);let r=_(_(n+1,33)-1,4);return r===-1&&(r=4),r}function h(r){if(!Number.isFinite(r)||r<t||r>n)throw RangeError(`Invalid Jalaali year ${r}: must be a finite number between ${t} and ${n} (inclusive)`);let i=e[0],a=0,o=0;for(let t=1;t<e.length&&(a=e[t],o=a-i,!(r<a));t+=1)i=a;return m(o,r-i)}function g(e,t){return~~(e/t)}function _(e,t){return e-~~(e/t)*t}var v=`۰۱۲۳۴۵۶۷۸۹`;function y(e){return e.replace(/\d/g,e=>v[Number(e)])}var b=[`فروردین`,`اردیبهشت`,`خرداد`,`تیر`,`مرداد`,`شهریور`,`مهر`,`آبان`,`آذر`,`دی`,`بهمن`,`اسفند`],x=[`ش`,`ی`,`د`,`س`,`چ`,`پ`,`ج`];function S(e){let t=e.trim().match(/^(\d{4})-(\d{2})-(\d{2})/);if(t)return new Date(Number(t[1]),Number(t[2])-1,Number(t[3]));let n=new Date(e);return Number.isNaN(n.getTime())?new Date(NaN):new Date(n.getFullYear(),n.getMonth(),n.getDate())}function C(e){return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`}function w(e){let{jy:t,jm:n,jd:i}=r(e.getFullYear(),e.getMonth()+1,e.getDate());return{jy:t,jm:n,jd:i}}function T(e,t,n){let{gy:r,gm:a,gd:o}=i(e,t,n);return new Date(r,a-1,o)}function E(e){return e?w(S(e)):null}function D(e,t,n){return C(T(e,t,n))}function O(e,t,n){return`${y(String(n))} ${b[t-1]} ${y(String(e))}`}function k(e,t,n){let{gy:r,gm:a,gd:o}=i(e,t,n);return(new Date(r,a-1,o).getDay()+1)%7}function A(e,t){return o(e,t)}function j(e,t){let n=A(e,t),r=k(e,t,1),i=Array.from({length:r},()=>null);for(let e=1;e<=n;e+=1)i.push(e);for(;i.length%7!=0;)i.push(null);return i}function M(){return w(new Date)}var N=`۰۱۲۳۴۵۶۷۸۹`,P=new Intl.NumberFormat(`fa-IR`,{useGrouping:!0});function F(e){return e.replace(/[۰-۹]/g,e=>String(N.indexOf(e)))}function I(e){return F(e).replace(/[^\d]/g,``)}function L(e){let t=I(e);return t?Number(t):0}function R(e){return Number.isFinite(e)?P.format(e):`—`}function z(e){return`${R(e)} تومان`}function B(e){return`${R(e)} متر`}var V=new Intl.DateTimeFormat(`fa-IR-u-ca-persian`,{year:`numeric`,month:`2-digit`,day:`2-digit`}),H=new Intl.DateTimeFormat(`fa-IR-u-ca-persian`,{year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`});function U(e){let t=F(e.trim()).replace(/-/g,`/`).match(/^(\d{4})\/(\d{1,2})\/(\d{1,2})/);if(!t)return!1;let n=Number(t[1]);return n>=1300&&n<=1500}function W(e){if(typeof e!=`string`)return e;let t=e.trim();if(/^\d{4}-\d{2}-\d{2}$/.test(t))return S(t);let n=new Date(t);return Number.isNaN(n.getTime())?new Date(NaN):n}function G(e){if(!e)return`—`;if(typeof e==`string`&&U(e)){let t=F(e.trim()).replace(/-/g,`/`),n=t.match(/^(\d{4})\/(\d{1,2})\/(\d{1,2})/);if(!n)return q(t);let[,r,i,a]=n;return q(`${r}/${i.padStart(2,`0`)}/${a.padStart(2,`0`)}`)}let t=W(e);return Number.isNaN(t.getTime())?`—`:V.format(t)}function K(e){if(!e)return`—`;if(typeof e==`string`&&U(e)&&!/[T\s]\d/.test(e))return G(e);let t=W(e);return Number.isNaN(t.getTime())?`—`:H.format(t)}function q(e){return e.replace(/\d/g,e=>N[Number(e)])}function J(e){let t=I(e);return t.startsWith(`98`)?t=`0`+t.slice(2):t.startsWith(`9`)&&t.length===10&&(t=`0`+t),t.slice(0,11)}function Y(){return crypto.randomUUID()}export{S as _,B as a,J as c,b as d,x as f,D as g,E as h,K as i,L as l,O as m,z as n,R as o,j as p,G as r,Y as s,I as t,q as u,C as v,M as y};
-3
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+3
View File
File diff suppressed because one or more lines are too long
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 144 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 218 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 89 KiB

@@ -1 +1 @@
import{A as e}from"./index-BPUhS8CY.js";function t(t=`/`){let n=e();function r(){if(window.history.length>1){n.back();return}n.push(t)}return{goBack:r}}export{t};
import{A as e}from"./index-CpQ4kL4n.js";function t(t=`/`){let n=e();function r(){if(window.history.length>1){n.back();return}n.push(t)}return{goBack:r}}export{t};
@@ -1 +1 @@
import{U as e,c as t}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{A as n,f as r,k as i}from"./index-BPUhS8CY.js";import{n as a}from"./orderInvoice-DPYzRyAs.js";function o(){let o=i(),s=n(),c=r(),l=t(()=>o.params.id),u=t(()=>c.getOrderById(l.value)),d=t(()=>a(u.value));function f(e){e&&(a(e)||s.replace(`/orders/${e.id}`))}return e(l,async e=>{e&&f(c.getOrderById(e)??await c.fetchOrder(e))},{immediate:!0}),e(u,e=>{f(e)}),{orderId:l,order:u,invoiceReady:d}}export{o as t};
import{U as e,c as t}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{A as n,f as r,k as i}from"./index-CpQ4kL4n.js";import{n as a}from"./orderInvoice-DPYzRyAs.js";function o(){let o=i(),s=n(),c=r(),l=t(()=>o.params.id),u=t(()=>c.getOrderById(l.value)),d=t(()=>a(u.value));function f(e){e&&(a(e)||s.replace(`/orders/${e.id}`))}return e(l,async e=>{e&&f(c.getOrderById(e)??await c.fetchOrder(e))},{immediate:!0}),e(u,e=>{f(e)}),{orderId:l,order:u,invoiceReady:d}}export{o as t};
@@ -1 +1 @@
import{M as e,f as t,k as n,l as r,nt as i,u as a,v as o}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{t as s}from"./BasicIcon-ba1FsUKx.js";import{C as c,D as l,v as u}from"./index-BPUhS8CY.js";import{n as d,t as f}from"./IconDiamond-CCzZ7nPM.js";import{r as p}from"./crm-BKPKhzCX.js";import{n as m,r as h,t as g}from"./IconWeave-CTypFxhM.js";var _=o({__name:`IconBolt`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(t){return(n,r)=>(e(),a(s,{icon:`vuesax-linear:flash`,size:t.size,"stroke-width":t.strokeWidth,color:t.color},null,8,[`size`,`stroke-width`,`color`]))}}),v=o({__name:`IconFeather`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(t){return(n,r)=>(e(),a(s,{icon:`vuesax-linear:pen-add`,size:t.size,"stroke-width":t.strokeWidth,color:t.color},null,8,[`size`,`stroke-width`,`color`]))}}),y=o({__name:`IconIdCard`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(t){return(n,r)=>(e(),a(s,{icon:`vuesax-linear:personalcard`,size:t.size,"stroke-width":t.strokeWidth,color:t.color},null,8,[`size`,`stroke-width`,`color`]))}}),b=[`width`,`height`],x=[`stroke`,`stroke-width`],S=[`stroke`,`stroke-width`],C=o({__name:`IconShirt`,props:{size:{default:24},color:{default:`currentColor`},strokeWidth:{default:1.5}},setup(n){return(i,a)=>(e(),t(`svg`,{width:n.size,height:n.size,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,"aria-hidden":`true`},[r(`path`,{d:`M8.25 5.25 12 7.75l3.75-2.5 2.25 2.75L16 9.5V18.5a1 1 0 0 1-1 1H9a1 1 0 0 1-1-1V9.5L6 8l2.25-2.75Z`,stroke:n.color,"stroke-width":n.strokeWidth,"stroke-linecap":`round`,"stroke-linejoin":`round`},null,8,x),r(`path`,{d:`M12 7.75V18.5`,stroke:n.color,"stroke-width":n.strokeWidth,"stroke-linecap":`round`},null,8,S)],8,b))}}),w=[`width`,`height`],T=[`stroke`,`stroke-width`],E=[`stroke`,`stroke-width`],D=[`stroke`,`stroke-width`],O=[`stroke`,`stroke-width`],k=o({__name:`IconSuit`,props:{size:{default:24},color:{default:`currentColor`},strokeWidth:{default:1.5}},setup(n){return(i,a)=>(e(),t(`svg`,{width:n.size,height:n.size,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,"aria-hidden":`true`},[r(`path`,{d:`M7.5 5.5h9l2 3v10.5a1 1 0 0 1-1 1h-11a1 1 0 0 1-1-1V8.5l2-3Z`,stroke:n.color,"stroke-width":n.strokeWidth,"stroke-linecap":`round`,"stroke-linejoin":`round`},null,8,T),r(`path`,{d:`M12 5.5v13`,stroke:n.color,"stroke-width":n.strokeWidth,"stroke-linecap":`round`},null,8,E),r(`path`,{d:`M7.5 9 12 11.75 16.5 9`,stroke:n.color,"stroke-width":n.strokeWidth,"stroke-linecap":`round`,"stroke-linejoin":`round`},null,8,D),r(`path`,{d:`M10.25 5.5V4a1.75 1.75 0 0 1 3.5 0v1.5`,stroke:n.color,"stroke-width":n.strokeWidth,"stroke-linecap":`round`},null,8,O)],8,w))}}),A=[`width`,`height`],j=[`stroke`,`stroke-width`],M=[`stroke`,`stroke-width`],N=[`stroke`,`stroke-width`],P=o({__name:`IconTrousers`,props:{size:{default:24},color:{default:`currentColor`},strokeWidth:{default:1.5}},setup(n){return(i,a)=>(e(),t(`svg`,{width:n.size,height:n.size,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,"aria-hidden":`true`},[r(`path`,{d:`M8 4.5h8v4.25l-1.75 11H13l-1-9.5-1 9.5H7.75L6 8.75V4.5Z`,stroke:n.color,"stroke-width":n.strokeWidth,"stroke-linecap":`round`,"stroke-linejoin":`round`},null,8,j),r(`path`,{d:`M12 8.75v11`,stroke:n.color,"stroke-width":n.strokeWidth,"stroke-linecap":`round`},null,8,M),r(`path`,{d:`M8 7.25h8`,stroke:n.color,"stroke-width":n.strokeWidth,"stroke-linecap":`round`},null,8,N)],8,A))}}),F=[`width`,`height`,`stroke`,`stroke-width`],I={bolt:_,feather:v,diamond:f,grid:d,bag:h,"id-card":y,catalog:c,headset:u,home:l,shirt:C,suit:k,trousers:P,ruler:m,composition:o({__name:`IconComposition`,props:{size:{default:22},color:{default:`currentColor`},strokeWidth:{default:1.6}},setup(n){return(i,a)=>(e(),t(`svg`,{width:n.size,height:n.size,viewBox:`0 0 24 24`,fill:`none`,stroke:n.color,"stroke-width":n.strokeWidth,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[...a[0]||=[r(`path`,{d:`M12 3.5 20 8v8l-8 4.5L4 16V8l8-4.5Z`},null,-1)]],8,F))}}),weight:h,weave:g},L={shirt:`shirt`,suit:`suit`,trousers:`trousers`};function R(e){return L[e.id]?L[e.id]:e.icon&&I[e.icon]?e.icon:e.icon??`grid`}function z(e,t=f){return e&&I[e]||t}function B(e){let t=i([]),r=i(!0);async function a(){r.value=!0;try{t.value=await p(e)}catch{t.value=[]}finally{r.value=!1}}return n(()=>{a()}),{banners:t,loading:r,reload:a}}export{z as n,R as r,B as t};
import{M as e,f as t,k as n,l as r,nt as i,u as a,v as o}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{t as s}from"./BasicIcon-ba1FsUKx.js";import{C as c,D as l,v as u}from"./index-CpQ4kL4n.js";import{n as d,t as f}from"./IconDiamond-CCzZ7nPM.js";import{r as p}from"./crm-BPBlQFWp.js";import{n as m,r as h,t as g}from"./IconWeave-CTypFxhM.js";var _=o({__name:`IconBolt`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(t){return(n,r)=>(e(),a(s,{icon:`vuesax-linear:flash`,size:t.size,"stroke-width":t.strokeWidth,color:t.color},null,8,[`size`,`stroke-width`,`color`]))}}),v=o({__name:`IconFeather`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(t){return(n,r)=>(e(),a(s,{icon:`vuesax-linear:pen-add`,size:t.size,"stroke-width":t.strokeWidth,color:t.color},null,8,[`size`,`stroke-width`,`color`]))}}),y=o({__name:`IconIdCard`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(t){return(n,r)=>(e(),a(s,{icon:`vuesax-linear:personalcard`,size:t.size,"stroke-width":t.strokeWidth,color:t.color},null,8,[`size`,`stroke-width`,`color`]))}}),b=[`width`,`height`],x=[`stroke`,`stroke-width`],S=[`stroke`,`stroke-width`],C=o({__name:`IconShirt`,props:{size:{default:24},color:{default:`currentColor`},strokeWidth:{default:1.5}},setup(n){return(i,a)=>(e(),t(`svg`,{width:n.size,height:n.size,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,"aria-hidden":`true`},[r(`path`,{d:`M8.25 5.25 12 7.75l3.75-2.5 2.25 2.75L16 9.5V18.5a1 1 0 0 1-1 1H9a1 1 0 0 1-1-1V9.5L6 8l2.25-2.75Z`,stroke:n.color,"stroke-width":n.strokeWidth,"stroke-linecap":`round`,"stroke-linejoin":`round`},null,8,x),r(`path`,{d:`M12 7.75V18.5`,stroke:n.color,"stroke-width":n.strokeWidth,"stroke-linecap":`round`},null,8,S)],8,b))}}),w=[`width`,`height`],T=[`stroke`,`stroke-width`],E=[`stroke`,`stroke-width`],D=[`stroke`,`stroke-width`],O=[`stroke`,`stroke-width`],k=o({__name:`IconSuit`,props:{size:{default:24},color:{default:`currentColor`},strokeWidth:{default:1.5}},setup(n){return(i,a)=>(e(),t(`svg`,{width:n.size,height:n.size,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,"aria-hidden":`true`},[r(`path`,{d:`M7.5 5.5h9l2 3v10.5a1 1 0 0 1-1 1h-11a1 1 0 0 1-1-1V8.5l2-3Z`,stroke:n.color,"stroke-width":n.strokeWidth,"stroke-linecap":`round`,"stroke-linejoin":`round`},null,8,T),r(`path`,{d:`M12 5.5v13`,stroke:n.color,"stroke-width":n.strokeWidth,"stroke-linecap":`round`},null,8,E),r(`path`,{d:`M7.5 9 12 11.75 16.5 9`,stroke:n.color,"stroke-width":n.strokeWidth,"stroke-linecap":`round`,"stroke-linejoin":`round`},null,8,D),r(`path`,{d:`M10.25 5.5V4a1.75 1.75 0 0 1 3.5 0v1.5`,stroke:n.color,"stroke-width":n.strokeWidth,"stroke-linecap":`round`},null,8,O)],8,w))}}),A=[`width`,`height`],j=[`stroke`,`stroke-width`],M=[`stroke`,`stroke-width`],N=[`stroke`,`stroke-width`],P=o({__name:`IconTrousers`,props:{size:{default:24},color:{default:`currentColor`},strokeWidth:{default:1.5}},setup(n){return(i,a)=>(e(),t(`svg`,{width:n.size,height:n.size,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,"aria-hidden":`true`},[r(`path`,{d:`M8 4.5h8v4.25l-1.75 11H13l-1-9.5-1 9.5H7.75L6 8.75V4.5Z`,stroke:n.color,"stroke-width":n.strokeWidth,"stroke-linecap":`round`,"stroke-linejoin":`round`},null,8,j),r(`path`,{d:`M12 8.75v11`,stroke:n.color,"stroke-width":n.strokeWidth,"stroke-linecap":`round`},null,8,M),r(`path`,{d:`M8 7.25h8`,stroke:n.color,"stroke-width":n.strokeWidth,"stroke-linecap":`round`},null,8,N)],8,A))}}),F=[`width`,`height`,`stroke`,`stroke-width`],I={bolt:_,feather:v,diamond:f,grid:d,bag:h,"id-card":y,catalog:c,headset:u,home:l,shirt:C,suit:k,trousers:P,ruler:m,composition:o({__name:`IconComposition`,props:{size:{default:22},color:{default:`currentColor`},strokeWidth:{default:1.6}},setup(n){return(i,a)=>(e(),t(`svg`,{width:n.size,height:n.size,viewBox:`0 0 24 24`,fill:`none`,stroke:n.color,"stroke-width":n.strokeWidth,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[...a[0]||=[r(`path`,{d:`M12 3.5 20 8v8l-8 4.5L4 16V8l8-4.5Z`},null,-1)]],8,F))}}),weight:h,weave:g},L={shirt:`shirt`,suit:`suit`,trousers:`trousers`};function R(e){return L[e.id]?L[e.id]:e.icon&&I[e.icon]?e.icon:e.icon??`grid`}function z(e,t=f){return e&&I[e]||t}function B(e){let t=i([]),r=i(!0);async function a(){r.value=!0;try{t.value=await p(e)}catch{t.value=[]}finally{r.value=!1}}return n(()=>{a()}),{banners:t,loading:r,reload:a}}export{z as n,R as r,B as t};
-1
View File
@@ -1 +0,0 @@
import{nt as e}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{n as t,t as n}from"./http-CU_N-R2R.js";async function r(){return t(`/stock-alerts`)}async function i(e){return t(`/stock-alerts`,{body:{productId:e}})}async function a(e){return t(`/stock-alerts/${e}/cancel`,{method:`POST`})}function o(e){return e!=null&&e<=0}function s(t){let o=e(!1),s=e(!1),c=e(``);async function l(){let e=t();if(!e){o.value=!1;return}try{let t=await r();o.value=t.some(t=>t.productId===e&&t.active)}catch{o.value=!1}}async function u(){let e=t();if(!(!e||s.value)){s.value=!0,c.value=``;try{return await i(e),o.value=!0,!0}catch(e){return c.value=e instanceof n||e instanceof Error?e.message:`ثبت درخواست خبر موجودی ناموفق بود.`,!1}finally{s.value=!1}}}async function d(){let e=t();if(!(!e||s.value)){s.value=!0,c.value=``;try{return await a(e),o.value=!1,!0}catch(e){return c.value=e instanceof n||e instanceof Error?e.message:`لغو درخواست ناموفق بود.`,!1}finally{s.value=!1}}}return{subscribed:o,loading:s,error:c,refreshSubscription:l,subscribe:u,unsubscribe:d}}function c(e){return e.active?`در انتظار موجودی`:e.notifiedAt?`اطلاع داده شد`:`لغو شده`}export{r as a,a as i,c as n,s as r,o as t};
+1
View File
@@ -0,0 +1 @@
function e(e){let t=0,n=0;function r(r){if(!e.enabled())return;let i=r.touches[0];i&&(t=i.clientX,n=i.clientY)}function i(r){if(!e.enabled())return;let i=r.changedTouches[0];if(!i)return;let a=i.clientX-t,o=i.clientY-n,s=e.thresholdPx??40;Math.abs(a)<s||Math.abs(o)>Math.abs(a)||e.onSwipe(a<0?1:-1)}return{onTouchStart:r,onTouchEnd:i}}export{e as t};
@@ -1 +1 @@
import{l as e}from"./format-C72AoJ2H.js";function t(e){if(!/^\d{10}$/.test(e)||/^(\d)\1{9}$/.test(e))return!1;let t=Number(e[9]),n=0;for(let t=0;t<9;t++)n+=Number(e[t])*(10-t);let r=n%11;return r<2?t===r:t===11-r}function n(e){return/^\d{16}$/.test(e.replace(/\s/g,``))}function r(t){return/^09\d{9}$/.test(e(t))}function i(e,t,n,r,i=0){if(!Number.isFinite(e)||e<=0)return{valid:!1,message:`متراژ باید عددی بزرگ‌تر از صفر باشد.`};if(e<t.minMeterage)return{valid:!1,message:`حداقل متراژ سفارش برای این محصول ${t.minMeterage} متر است.`};if(e%t.orderMultiplier!==0)return{valid:!1,message:`متراژ باید مضربی از ${t.orderMultiplier} باشد.`};if(n-i+e>r){let e=r-(n-i);return{valid:!1,message:`حداکثر متراژ قابل ثبت در هر فاکتور ${r} متر است. شما فقط می‌توانید ${Math.max(0,e)} متر دیگر به این سفارش اضافه کنید.`}}return{valid:!0}}function a(e){return[`image/jpeg`,`image/png`,`image/webp`].includes(e.type)?e.size>5242880?{valid:!1,message:`حجم تصویر نباید بیشتر از ۵ مگابایت باشد.`}:{valid:!0}:{valid:!1,message:`فرمت تصویر مجاز نیست. (JPG, PNG, WEBP)`}}async function o(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(r.result),r.onerror=n,r.readAsDataURL(e)})}export{r as a,t as i,a as n,n as o,i as r,o as t};
import{c as e}from"./format-BHJptHdF.js";function t(e){if(!/^\d{10}$/.test(e)||/^(\d)\1{9}$/.test(e))return!1;let t=Number(e[9]),n=0;for(let t=0;t<9;t++)n+=Number(e[t])*(10-t);let r=n%11;return r<2?t===r:t===11-r}function n(e){return/^\d{16}$/.test(e.replace(/\s/g,``))}function r(t){return/^09\d{9}$/.test(e(t))}function i(e,t,n,r,i=0){if(!Number.isFinite(e)||e<=0)return{valid:!1,message:`متراژ باید عددی بزرگ‌تر از صفر باشد.`};if(e<t.minMeterage)return{valid:!1,message:`حداقل متراژ سفارش برای این محصول ${t.minMeterage} متر است.`};if(e%t.orderMultiplier!==0)return{valid:!1,message:`متراژ باید مضربی از ${t.orderMultiplier} باشد.`};if(n-i+e>r){let e=r-(n-i);return{valid:!1,message:`حداکثر متراژ قابل ثبت در هر فاکتور ${r} متر است. شما فقط می‌توانید ${Math.max(0,e)} متر دیگر به این سفارش اضافه کنید.`}}return{valid:!0}}function a(e){return[`image/jpeg`,`image/png`,`image/webp`].includes(e.type)?e.size>5242880?{valid:!1,message:`حجم تصویر نباید بیشتر از ۵ مگابایت باشد.`}:{valid:!0}:{valid:!1,message:`فرمت تصویر مجاز نیست. (JPG, PNG, WEBP)`}}async function o(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(r.result),r.onerror=n,r.readAsDataURL(e)})}export{r as a,t as i,a as n,n as o,i as r,o as t};
+4 -4
View File
@@ -11,18 +11,18 @@
<meta name="mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-capable" content="yes">
<title>سامانه سفارش عمده پارچه</title>
<script type="module" crossorigin src="/assets/index-BPUhS8CY.js"></script>
<script type="module" crossorigin src="/assets/index-CpQ4kL4n.js"></script>
<link rel="modulepreload" crossorigin href="/assets/_plugin-vue_export-helper-1xMDlcEE.js">
<link rel="modulepreload" crossorigin href="/assets/BasicIcon-ba1FsUKx.js">
<link rel="modulepreload" crossorigin href="/assets/pinia-BK9B9Wwf.js">
<link rel="modulepreload" crossorigin href="/assets/dist-U-AqZ6hP.js">
<link rel="modulepreload" crossorigin href="/assets/dist-Bc4P4ngC.js">
<link rel="modulepreload" crossorigin href="/assets/format-C72AoJ2H.js">
<link rel="modulepreload" crossorigin href="/assets/validation-Duyyve7l.js">
<link rel="modulepreload" crossorigin href="/assets/format-BHJptHdF.js">
<link rel="modulepreload" crossorigin href="/assets/validation-BD7oi-2I.js">
<link rel="modulepreload" crossorigin href="/assets/http-CU_N-R2R.js">
<link rel="modulepreload" crossorigin href="/assets/catalog-DvXpKfLO.js">
<link rel="stylesheet" crossorigin href="/assets/BasicIcon-QF_b9Svq.css">
<link rel="stylesheet" crossorigin href="/assets/index-BXHY06kj.css">
<link rel="stylesheet" crossorigin href="/assets/index-CAEFQyc9.css">
</head>
<body>
<div id="app"></div>
+39
View File
@@ -2,6 +2,7 @@
import { computed, ref } from 'vue'
import { useRouter } from 'vue-router'
import { useSlotBanners } from '@/composables/useSlotBanners'
import { useTouchSwipe } from '@/composables/useTouchSwipe'
const props = withDefaults(
defineProps<{
@@ -38,6 +39,13 @@ function setSlide(i: number) {
if (!banners.value.length) return
index.value = ((i % banners.value.length) + banners.value.length) % banners.value.length
}
const { onTouchStart, onTouchEnd } = useTouchSwipe({
enabled: () => banners.value.length > 1,
onSwipe(dir) {
setSlide(index.value + dir)
},
})
</script>
<template>
@@ -48,6 +56,8 @@ function setSlide(i: number) {
:class="{ 'slot-banner--photo': !!banner?.imageUrl }"
:style="bannerStyle"
:aria-label="banner?.title || 'بنر'"
@touchstart.passive="onTouchStart"
@touchend.passive="onTouchEnd"
>
<template v-if="banner">
<div class="slot-banner__content">
@@ -93,6 +103,7 @@ function setSlide(i: number) {
<style scoped>
.slot-banner {
position: relative;
touch-action: pan-y;
isolation: isolate;
flex-shrink: 0;
display: flex;
@@ -210,4 +221,32 @@ function setSlide(i: number) {
background: #fff;
width: 18px;
}
/* دسکتاپ: همان نسبت و اندازه بنر صفحهٔ خانه */
@media (min-width: 768px) {
.slot-banner--photo {
max-height: none;
min-height: 0;
aspect-ratio: 2.1 / 1;
border-radius: 20px;
}
.slot-banner__content {
padding: 24px 28px 24px 36px;
}
.slot-banner__title {
font-size: 1.15rem;
}
}
@media (min-width: 1200px) {
.slot-banner--photo {
aspect-ratio: 2.2 / 1;
}
.slot-banner__title {
font-size: 1.25rem;
}
}
</style>
+27 -12
View File
@@ -2,7 +2,7 @@
import { computed, onBeforeUnmount, ref, watch } from 'vue'
import type { CatalogProductCard } from '@/types/crm'
import { formatNumber } from '@/utils/format'
import { colorSwatchStyle } from '@/utils/colorSwatch'
import { colorSwatchStyle, colorVariantThumb } from '@/utils/colorSwatch'
import BaseButton from '@/components/ui/BaseButton.vue'
const props = defineProps<{
@@ -94,7 +94,7 @@ function submit() {
<div class="product-order-modal__table-head" aria-hidden="true">
<span>رنگ</span>
<span>تعداد</span>
<span>طاقه</span>
</div>
<ul class="product-order-modal__rows">
@@ -102,7 +102,12 @@ function submit() {
<div class="product-order-row__color">
<span
class="product-order-row__swatch"
:style="colorSwatchStyle(color, product.colorImages?.[idx] || product.imageUrls?.[idx])"
:style="
colorSwatchStyle(
color,
colorVariantThumb(product.colorImages, product.colorVariantImages, idx),
)
"
:title="color"
/>
<span v-if="color" class="product-order-row__label">{{ color }}</span>
@@ -134,15 +139,19 @@ function submit() {
<p v-if="error" class="product-order-modal__error">{{ error }}</p>
<footer class="product-order-modal__footer">
<div class="product-order-modal__price">
<span>قیمت</span>
<strong v-if="estimatedPrice != null">
{{ formatNumber(estimatedPrice) }} تومان
</strong>
<strong v-else-if="totalRolls > 0">
{{ formatNumber(totalMeters) }} متر
</strong>
<strong v-else>—</strong>
<div class="product-order-modal__prices">
<div v-if="basePrice && basePrice > 0" class="product-order-modal__price">
<span>قیمت هر متر</span>
<strong>{{ formatNumber(basePrice) }} تومان</strong>
</div>
<div class="product-order-modal__price">
<span>جمع تقریبی</span>
<strong v-if="estimatedPrice != null">{{ formatNumber(estimatedPrice) }} تومان</strong>
<strong v-else-if="totalRolls > 0 && (!basePrice || basePrice <= 0)">
{{ formatNumber(totalMeters) }} متر
</strong>
<strong v-else>—</strong>
</div>
</div>
<p v-if="minRolls > 0" class="product-order-modal__hint">
حداقل سفارش: {{ formatNumber(minRolls) }} طاقه
@@ -288,6 +297,12 @@ function submit() {
gap: 8px;
}
.product-order-modal__prices {
display: flex;
flex-direction: column;
gap: 6px;
}
.product-order-modal__price {
display: flex;
align-items: baseline;
-80
View File
@@ -1,80 +0,0 @@
import { ref } from 'vue'
import {
cancelStockAlert,
fetchMyStockAlerts,
subscribeStockAlert,
type StockAlertRequest,
} from '@/services/stockAlerts'
import { ApiError } from '@/services/http'
export function isProductOutOfStock(stock: number | null | undefined): boolean {
return stock != null && stock <= 0
}
export function useStockNotify(productId: () => string) {
const subscribed = ref(false)
const loading = ref(false)
const error = ref('')
async function refreshSubscription() {
const id = productId()
if (!id) {
subscribed.value = false
return
}
try {
const rows = await fetchMyStockAlerts()
subscribed.value = rows.some((r) => r.productId === id && r.active)
} catch {
subscribed.value = false
}
}
async function subscribe() {
const id = productId()
if (!id || loading.value) return
loading.value = true
error.value = ''
try {
await subscribeStockAlert(id)
subscribed.value = true
return true
} catch (e) {
error.value =
e instanceof ApiError || e instanceof Error
? e.message
: 'ثبت درخواست خبر موجودی ناموفق بود.'
return false
} finally {
loading.value = false
}
}
async function unsubscribe() {
const id = productId()
if (!id || loading.value) return
loading.value = true
error.value = ''
try {
await cancelStockAlert(id)
subscribed.value = false
return true
} catch (e) {
error.value =
e instanceof ApiError || e instanceof Error
? e.message
: 'لغو درخواست ناموفق بود.'
return false
} finally {
loading.value = false
}
}
return { subscribed, loading, error, refreshSubscription, subscribe, unsubscribe }
}
export function stockAlertStatusLabel(row: StockAlertRequest): string {
if (row.active) return 'در انتظار موجودی'
if (row.notifiedAt) return 'اطلاع داده شد'
return 'لغو شده'
}
+33
View File
@@ -0,0 +1,33 @@
/**
* اسلاید با سوایپ افقی (موبایل). سوایپ عمودی نادیده گرفته می‌شود تا اسکرول صفحه مختل نشود.
*/
export function useTouchSwipe(options: {
enabled: () => boolean
onSwipe: (direction: 1 | -1) => void
thresholdPx?: number
}) {
let startX = 0
let startY = 0
function onTouchStart(event: TouchEvent) {
if (!options.enabled()) return
const touch = event.touches[0]
if (!touch) return
startX = touch.clientX
startY = touch.clientY
}
function onTouchEnd(event: TouchEvent) {
if (!options.enabled()) return
const touch = event.changedTouches[0]
if (!touch) return
const dx = touch.clientX - startX
const dy = touch.clientY - startY
const threshold = options.thresholdPx ?? 40
if (Math.abs(dx) < threshold) return
if (Math.abs(dy) > Math.abs(dx)) return
options.onSwipe(dx < 0 ? 1 : -1)
}
return { onTouchStart, onTouchEnd }
}
+10 -20
View File
@@ -59,15 +59,14 @@ const router = createRouter({
},
{
path: '/catalogs',
name: 'catalogs',
component: () => import('@/views/catalogs/CatalogsHubView.vue'),
meta: { requiresAuth: true },
redirect: '/products',
},
{
path: '/catalogs/:catalogId',
name: 'catalog-detail',
component: () => import('@/views/catalogs/CatalogProductRedirectView.vue'),
meta: { requiresAuth: true },
redirect: (to) => ({
path: '/product',
query: { id: String(to.params.catalogId ?? '') },
}),
},
{
path: '/catalog-requests',
@@ -131,19 +130,16 @@ const router = createRouter({
},
{
path: '/companies/:companyId/catalogs',
name: 'company-catalogs',
component: () => import('@/views/catalogs/CatalogListView.vue'),
meta: { requiresAuth: true },
redirect: (to) => ({
path: '/products',
query: { companyId: String(to.params.companyId ?? '') },
}),
},
{
path: '/companies/:companyId/catalogs/:catalogId/products',
name: 'company-products',
redirect: (to) => ({
path: '/products',
query: {
catalogId: String(to.params.catalogId ?? ''),
companyId: String(to.params.companyId ?? ''),
},
query: { companyId: String(to.params.companyId ?? '') },
}),
},
{
@@ -233,12 +229,6 @@ const router = createRouter({
component: () => import('@/views/profile/AddressesView.vue'),
meta: { requiresAuth: true },
},
{
path: '/profile/stock-alerts',
name: 'profile-stock-alerts',
component: () => import('@/views/profile/StockAlertsView.vue'),
meta: { requiresAuth: true },
},
{
path: '/profile/security',
name: 'profile-security',
-2
View File
@@ -122,7 +122,6 @@ export async function fetchCatalogCategories() {
export async function fetchBrowseProducts(query?: {
categoryId?: string
season?: string
catalogId?: string
companyId?: string
}) {
return apiRequest<BrowseProductDto[]>('/products', {
@@ -130,7 +129,6 @@ export async function fetchBrowseProducts(query?: {
activeOnly: true,
categoryId: query?.categoryId,
season: query?.season,
catalogId: query?.catalogId,
companyId: query?.companyId,
},
})
-32
View File
@@ -1,32 +0,0 @@
import { apiRequest } from './http'
export type StockAlertRequest = {
id: string
productId: string
productName: string
productCode: string
catalogCode: string
color: string
stock: number | null
imageUrl: string
active: boolean
createdAt: string
notifiedAt: string | null
}
export async function fetchMyStockAlerts() {
return apiRequest<StockAlertRequest[]>('/stock-alerts')
}
export async function subscribeStockAlert(productId: string) {
return apiRequest<StockAlertRequest>('/stock-alerts', {
body: { productId },
})
}
export async function cancelStockAlert(productId: string) {
return apiRequest<{ productId: string; active: boolean }>(
`/stock-alerts/${productId}/cancel`,
{ method: 'POST' },
)
}
+5 -1
View File
@@ -40,6 +40,7 @@ function mapProduct(p: {
weaveType?: string
colors?: string[]
colorImages?: Array<string | null>
colorVariantImages?: string[][]
tags?: string[]
isNew?: boolean
subtitle?: string
@@ -60,9 +61,11 @@ function mapProduct(p: {
weaveType: p.weaveType,
colors: p.colors?.length ? p.colors : ['#6b7280'],
colorImages: p.colorImages,
colorVariantImages: p.colorVariantImages,
tags: p.tags ?? [],
isNew: !!p.isNew,
imageUrl: p.imageUrl || p.colorImages?.find(Boolean) || p.imageUrls?.[0],
imageUrl:
p.imageUrls?.[0] || p.imageUrl || p.colorImages?.find(Boolean) || undefined,
imageUrls: p.imageUrls,
subtitle: p.subtitle,
rollMeters: p.rollMeters ?? 50,
@@ -128,6 +131,7 @@ export const useCrmStore = defineStore('crm', () => {
weaveType?: string
colors?: string[]
colorImages?: Array<string | null>
colorVariantImages?: string[][]
tags?: string[]
isNew?: boolean
subtitle?: string

Some files were not shown because too many files have changed in this diff Show More