Save catalog delivery addresses and reuse them on the next request.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-26 11:12:09 +03:30
co-authored by Cursor
parent c3cef161eb
commit 892a1fbcf3
63 changed files with 277 additions and 63 deletions
+1
View File
@@ -0,0 +1 @@
.addr-error[data-v-fb759dd7]{color:var(--color-danger);font-size:.8125rem}.addr-muted[data-v-fb759dd7]{color:var(--color-text-muted);font-size:.875rem}.addr-list[data-v-fb759dd7]{flex-direction:column;gap:10px;margin:0 0 16px;padding:0;list-style:none;display:flex}.addr-item[data-v-fb759dd7]{border:1px solid var(--color-border);border-radius:12px;justify-content:space-between;gap:12px;padding:12px;display:flex}.addr-item p[data-v-fb759dd7]{margin:6px 0 0;font-size:.875rem;line-height:1.6}.addr-badge[data-v-fb759dd7]{color:var(--color-primary);margin-right:8px;font-size:.75rem}.addr-actions[data-v-fb759dd7]{flex-direction:column;gap:6px;display:flex}.addr-actions button[data-v-fb759dd7]{color:var(--color-primary);font:inherit;cursor:pointer;background:0 0;border:0}.addr-remove[data-v-fb759dd7]{color:var(--color-danger)!important}.addr-field[data-v-fb759dd7]{flex-direction:column;gap:6px;margin-bottom:12px;font-size:.8125rem;font-weight:600;display:flex}.addr-field input[data-v-fb759dd7],.addr-field textarea[data-v-fb759dd7]{border:1px solid var(--color-border);width:100%;font:inherit;color:var(--color-text);background:0 0;border-radius:10px;padding:10px 12px;font-weight:400}
+1
View File
@@ -0,0 +1 @@
import{F as e,G as t,K as n,M as r,Pt as i,_ as a,d as o,f as s,g as c,i as l,k as u,l as d,nt as f,t as p,u as m,v as h}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{s as g}from"./BasicIcon-Bzeb0Iwd.js";import{t as _}from"./http-CU_N-R2R.js";import{n as v}from"./index-BK4-SNil.js";import{t as y}from"./addresses-tV-zgZYG.js";import{t as b}from"./ProfileSubpageLayout-BRGCIQFS.js";var x={key:0,class:`addr-error`},S={key:1,class:`addr-muted`},C={key:2,class:`addr-list`},w={key:0,class:`addr-badge`},T={class:`addr-actions`},E=[`onClick`],D=[`onClick`],O={key:3,class:`addr-muted`},k={class:`addr-field`},A={class:`addr-field`},j=p(h({__name:`AddressesView`,setup(p){let h=f([]),j=f(``),M=f(``),N=f(``),P=f(!0),F=f(!1);async function I(){P.value=!0,N.value=``;try{h.value=await y.list()}catch(e){N.value=e instanceof _||e instanceof Error?e.message:`دریافت آدرس‌ها ناموفق بود.`}finally{P.value=!1}}u(I);async function L(){let e=j.value.trim();if(e.length<3||F.value){N.value=`آدرس را کامل‌تر بنویسید.`;return}F.value=!0,N.value=``;try{await y.create({text:e,label:M.value.trim()||void 0}),j.value=``,M.value=``,h.value=await y.list()}catch(e){N.value=e instanceof _||e instanceof Error?e.message:`ذخیره آدرس ناموفق بود.`}finally{F.value=!1}}async function R(e){N.value=``;try{h.value=await y.makeDefault(e)}catch(e){N.value=e instanceof Error?e.message:`تغییر آدرس پیش‌فرض ناموفق بود.`}}async function z(e){N.value=``;try{h.value=await y.remove(e)}catch(e){N.value=e instanceof Error?e.message:`حذف آدرس ناموفق بود.`}}return(u,f)=>(r(),m(b,{title:`آدرس‌ها`,subtitle:`برای ارسال کالیته از آدرس پیش‌فرض استفاده می‌شود`},{default:t(()=>[N.value?(r(),s(`p`,x,i(N.value),1)):o(``,!0),P.value?(r(),s(`p`,S,`در حال دریافت…`)):h.value.length?(r(),s(`ul`,C,[(r(!0),s(l,null,e(h.value,e=>(r(),s(`li`,{key:e.id,class:`addr-item`},[d(`div`,null,[d(`strong`,null,i(e.label||`آدرس`),1),e.isDefault?(r(),s(`span`,w,`پیش‌فرض`)):o(``,!0),d(`p`,null,i(e.text),1)]),d(`div`,T,[e.isDefault?o(``,!0):(r(),s(`button`,{key:0,type:`button`,onClick:t=>R(e.id)},`پیش‌فرض`,8,E)),d(`button`,{type:`button`,class:`addr-remove`,onClick:t=>z(e.id)},`حذف`,8,D)])]))),128))])):(r(),s(`p`,O,`هنوز آدرسی ثبت نشده است.`)),d(`label`,k,[f[2]||=d(`span`,null,`عنوان (اختیاری)`,-1),n(d(`input`,{"onUpdate:modelValue":f[0]||=e=>M.value=e,type:`text`,maxlength:`40`,placeholder:`مثلاً فروشگاه`},null,512),[[g,M.value]])]),d(`label`,A,[f[3]||=d(`span`,null,`آدرس`,-1),n(d(`textarea`,{"onUpdate:modelValue":f[1]||=e=>j.value=e,rows:`3`,maxlength:`500`,placeholder:`آدرس کامل محل فعالیت`},null,512),[[g,j.value]])]),a(v,{loading:F.value,onClick:L},{default:t(()=>[...f[4]||=[c(`افزودن آدرس`,-1)]]),_:1},8,[`loading`])]),_:1}))}}),[[`__scopeId`,`data-v-fb759dd7`]]);export{j as default};
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-Bzeb0Iwd.js";import{i as ne,n as re}from"./format-C72AoJ2H.js";import{t as ie}from"./catalog-BHsy1JeE.js";import{M as ae,d as oe,n as h}from"./index-3Kv0ngks.js";import{t as se}from"./PageHeader-CNPTCfZY.js";import{t as ce}from"./useRequirePricedOrder-ByrAOTuM.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-Bzeb0Iwd.js";import{i as ne,n as re}from"./format-C72AoJ2H.js";import{t as ie}from"./catalog-DvXpKfLO.js";import{M as ae,d as oe,n as h}from"./index-BK4-SNil.js";import{t as se}from"./PageHeader-Ba-2yDNw.js";import{t as ce}from"./useRequirePricedOrder-CitBsmr0.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 +1 @@
import{F as e,M as t,Pt as n,U as r,_ as i,c as a,f as o,i as s,k as c,l,nt as u,t as d,u as f,ut as p,v as m}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{t as h}from"./catalog-BHsy1JeE.js";import{M as g,T as _,j as v}from"./index-3Kv0ngks.js";import{t as y}from"./EmptyState-D72g65G-.js";import{t as b}from"./PageHeader-CNPTCfZY.js";import{t as x}from"./SearchField-dVDn9y5S.js";import{t as S}from"./PageSkeleton-DYdjm4l9.js";import{t as C}from"./catalogNavigation-CNQR36ce.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};
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{M as g,T as _,j as v}from"./index-BK4-SNil.js";import{t as y}from"./EmptyState-D72g65G-.js";import{t as b}from"./PageHeader-Ba-2yDNw.js";import{t as x}from"./SearchField-dVDn9y5S.js";import{t as S}from"./PageSkeleton-DYdjm4l9.js";import{t as C}from"./catalogNavigation-BwOBRghQ.js";var w={class:`page catalog-list-page`},T={class:`catalog-list-page__desk-head desktop-only`},E={class:`page__scroll page__scroll--with-nav catalog-list-page__scroll`},D={key:1,class:`catalog-list`},O=[`onClick`],k={class:`catalog-card__icon`},A={class:`catalog-card__info`},j={class:`catalog-card__count`},M=d(m({__name:`CatalogListView`,setup(d){let m=v(),M=g(),N=h(),P=u(!0),F=a(()=>m.params.companyId),I=a(()=>N.getCompany(F.value)),L=u(``),R=a(()=>N.fetchCatalogs(F.value,L.value));async function z(){P.value=!0,N.getCompany(F.value)||await N.loadCompanies(),await N.loadCatalogs(F.value),P.value=!1}c(z),r(F,z);function B(e){C(M,e)}function V(e){let t=N.getCatalog(e);return t?.productCount==null?N.fetchProducts(e).length:t.productCount}return(r,a)=>(t(),o(`div`,w,[i(b,{class:`mobile-only`,title:I.value?.name??`کالیته‌ها`,subtitle:`کالیته مورد نظر را انتخاب کنید`,"show-back":``,centered:``,onBack:a[0]||=e=>p(M).push(`/catalogs`)},null,8,[`title`]),l(`header`,T,[l(`h1`,null,n(I.value?.name??`کالیته‌ها`),1),a[2]||=l(`p`,null,`کالیته مورد نظر را انتخاب کنید`,-1)]),i(x,{modelValue:L.value,"onUpdate:modelValue":a[1]||=e=>L.value=e,placeholder:`جستجو بر اساس کد یا نام کالیته...`,class:`catalog-list-page__search`},null,8,[`modelValue`]),l(`div`,E,[P.value?(t(),f(S,{key:0,variant:`cards`,rows:5})):R.value.length>0?(t(),o(`div`,D,[(t(!0),o(s,null,e(R.value,e=>(t(),o(`button`,{key:e.id,type:`button`,class:`catalog-card`,onClick:t=>B(e.id)},[l(`span`,k,[i(_,{size:22})]),l(`div`,A,[l(`h3`,null,`کالیته کد `+n(e.code),1),l(`p`,null,n(e.name),1)]),l(`span`,j,n(V(e.id))+` محصول`,1)],8,O))),128))])):(t(),f(y,{key:2,variant:L.value?`search`:`catalogs`,message:L.value?`با این جستجو کالیته‌ای پیدا نشد`:`برای این شرکت هنوز کالیته‌ای ثبت نشده است`},null,8,[`variant`,`message`]))])]))}}),[[`__scopeId`,`data-v-a8edb49d`]]);export{M as default};
@@ -1 +1 @@
import{M as e,_ as t,f as n,k as r,v as i}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{M as a,j as o}from"./index-3Kv0ngks.js";import{t as s}from"./PageSkeleton-DYdjm4l9.js";import{t as c}from"./catalogNavigation-CNQR36ce.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};
import{M as e,_ as t,f as n,k as r,v as i}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{M as a,j as o}from"./index-BK4-SNil.js";import{t as s}from"./PageSkeleton-DYdjm4l9.js";import{t as c}from"./catalogNavigation-BwOBRghQ.js";var l={class:`page`},u=i({__name:`CatalogProductRedirectView`,setup(i){let u=o(),d=a();return r(()=>{c(d,String(u.params.catalogId??``))}),(r,i)=>(e(),n(`div`,l,[t(s,{variant:`detail`})]))}});export{u as default};
@@ -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{M as p}from"./index-3Kv0ngks.js";import{t as m}from"./PageHeader-CNPTCfZY.js";import{t as h}from"./catalogRequests-Bfg-Nm09.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-C72AoJ2H.js";import{M as p}from"./index-BK4-SNil.js";import{t as m}from"./PageHeader-Ba-2yDNw.js";import{t as h}from"./catalogRequests-DmXxqAPC.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};
@@ -1 +1 @@
import{At as e,F as t,M as n,Nt as r,Pt as i,_ as a,c as o,d as s,f as c,i as l,k as u,l as d,nt as f,t as p,u as m,ut as h,v as g}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{o as _}from"./format-C72AoJ2H.js";import{t as v}from"./catalog-BHsy1JeE.js";import{M as y,i as b,j as x}from"./index-3Kv0ngks.js";import{t as S}from"./IconChevronBack-CDeN0Cbu.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-CNQR36ce.js";import{t as E}from"./crm-DoYzOa8A.js";import{t as D}from"./IconSearch-CUp0Xr9R.js";import{t as O}from"./useGoBack-pkrD1deE.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};
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{M as y,i as b,j as x}from"./index-BK4-SNil.js";import{t as S}from"./IconChevronBack-CDeN0Cbu.js";import{t as ee}from"./SearchField-dVDn9y5S.js";import{t as te}from"./PageSkeleton-DYdjm4l9.js";import{i as ne,n as C,r as w,t as T}from"./catalogNavigation-BwOBRghQ.js";import{t as E}from"./crm-Bj4T2PId.js";import{t as D}from"./IconSearch-CUp0Xr9R.js";import{t as O}from"./useGoBack-BjVI8c38.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
@@ -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{C as d,M as f,d as p}from"./index-3Kv0ngks.js";import{t as m}from"./IconEditPen-DkMxper9.js";import{t as h}from"./PageHeader-CNPTCfZY.js";import{t as g}from"./useRequirePricedOrder-ByrAOTuM.js";var _={class:`page check-mode-page`},v={class:`page__scroll check-mode-page__scroll`},y={class:`check-mode-invoice`},b={class:`check-mode-invoice__value`},x={class:`mode-options`},S={class:`mode-card__icon`},C={class:`mode-card__icon`},w=s(l({__name:`CheckModeSelectView`,setup(s){let l=f(),w=p(),{orderId:T,order:E}=g(),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(h,{title:`تسویه چکی`,subtitle:`بر اساس مبلغ فاکتور، نحوه ثبت چک را انتخاب کنید`,"show-back":``,centered:``,onBack:i[0]||=e=>c(l).push(`/orders/${c(T)}`)}),o(`div`,v,[o(`div`,y,[i[3]||=o(`span`,{class:`check-mode-invoice__label`},`مبلغ فاکتور`,-1),o(`strong`,b,t(D.value),1)]),o(`div`,x,[o(`button`,{type:`button`,class:`mode-card`,onClick:i[1]||=e=>O(`full`)},[o(`span`,S,[r(d,{size:36})]),i[4]||=o(`h3`,{class:`mode-card__title`},`ثبت کامل (پیشنهادی)`,-1),i[5]||=o(`p`,{class:`mode-card__desc`},`وارد کردن همه اطلاعات چک`,-1)]),o(`button`,{type:`button`,class:`mode-card`,onClick:i[2]||=e=>O(`brief`)},[o(`span`,C,[r(m,{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-C72AoJ2H.js";import{C as d,M as f,d as p}from"./index-BK4-SNil.js";import{t as m}from"./IconEditPen-DkMxper9.js";import{t as h}from"./PageHeader-Ba-2yDNw.js";import{t as g}from"./useRequirePricedOrder-CitBsmr0.js";var _={class:`page check-mode-page`},v={class:`page__scroll check-mode-page__scroll`},y={class:`check-mode-invoice`},b={class:`check-mode-invoice__value`},x={class:`mode-options`},S={class:`mode-card__icon`},C={class:`mode-card__icon`},w=s(l({__name:`CheckModeSelectView`,setup(s){let l=f(),w=p(),{orderId:T,order:E}=g(),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(h,{title:`تسویه چکی`,subtitle:`بر اساس مبلغ فاکتور، نحوه ثبت چک را انتخاب کنید`,"show-back":``,centered:``,onBack:i[0]||=e=>c(l).push(`/orders/${c(T)}`)}),o(`div`,v,[o(`div`,y,[i[3]||=o(`span`,{class:`check-mode-invoice__label`},`مبلغ فاکتور`,-1),o(`strong`,b,t(D.value),1)]),o(`div`,x,[o(`button`,{type:`button`,class:`mode-card`,onClick:i[1]||=e=>O(`full`)},[o(`span`,S,[r(d,{size:36})]),i[4]||=o(`h3`,{class:`mode-card__title`},`ثبت کامل (پیشنهادی)`,-1),i[5]||=o(`p`,{class:`mode-card__desc`},`وارد کردن همه اطلاعات چک`,-1)]),o(`button`,{type:`button`,class:`mode-card`,onClick:i[2]||=e=>O(`brief`)},[o(`span`,C,[r(m,{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{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-Bzeb0Iwd.js";import{t as v}from"./http-Cmeatq0_.js";import{l as y}from"./format-C72AoJ2H.js";import{a as b}from"./validation-Duyyve7l.js";import{c as x,n as S}from"./index-3Kv0ngks.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-DoYzOa8A.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=y(N.value),t={};if(_.value.trim()||(t.firstName=`نام الزامی است.`),M.value.trim()||(t.lastName=`نام خانوادگی الزامی است.`),b(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 v||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-Bzeb0Iwd.js";import{l as v}from"./format-C72AoJ2H.js";import{a as y}from"./validation-Duyyve7l.js";import{t as b}from"./http-CU_N-R2R.js";import{c as x,n as S}from"./index-BK4-SNil.js";import{t as C}from"./FormErrorBanner-Ud1D04xf.js";import{n as w,r as T,t as E}from"./formErrors-DglFjYkZ.js";import{t as D}from"./crm-Bj4T2PId.js";import{t as O}from"./BaseInput-CpE3bVJZ.js";var k={class:`customer-create-form`},A={key:0,class:`customer-create-form__intro`},j={class:`customer-create-form__fields`},M=p(h({__name:`CustomerCreateForm`,props:{customerId:{},initial:{}},emits:[`success`],setup(e,{expose:o,emit:f}){let p=e,m=f,h=x(),g=D(),_=d(``),M=d(``),N=d(``),P=d(``),F=d({}),I=d(``),L=d(!1),R=()=>!!p.customerId;function z(e){_.value=e?.firstName??``,M.value=e?.lastName??``,N.value=e?.phone??``,P.value=e?.businessName??``,F.value={},I.value=``}i(()=>p.initial,e=>z(e),{immediate:!0});function B(e){F.value=w(F.value,e),T(F.value)||(I.value=``)}async function V(){if(F.value={},I.value=``,!h.isAgent){I.value=`فقط واسطه می‌تواند مشتری به لیست خود اضافه کند.`;return}let e=v(N.value),t={};if(_.value.trim()||(t.firstName=`نام الزامی است.`),M.value.trim()||(t.lastName=`نام خانوادگی الزامی است.`),y(e)||(t.phone=`شماره موبایل معتبر نیست.`),T(t)){F.value=t,I.value=E;return}let n={firstName:_.value.trim(),lastName:M.value.trim(),phone:e,businessName:P.value.trim()||void 0};L.value=!0;try{if(R()&&p.customerId){let e=await g.updateCustomer(p.customerId,n);m(`success`,e?.id??p.customerId);return}let e=await g.registerCustomer(n);m(`success`,e?.id)}catch(e){I.value=e instanceof b||e instanceof Error?e.message:R()?`ویرایش مشتری ناموفق بود.`:`ثبت مشتری ناموفق بود.`}finally{L.value=!1}}return o({submit:V,saving:L}),(e,i)=>(n(),c(`div`,k,[R()?s(``,!0):(n(),c(`p`,A,` مشتری به لیست شما اضافه می‌شود و بعد از ورود با همین شماره، سفارش‌هایش به حساب شما وصل می‌ماند. `)),a(C,{message:I.value},null,8,[`message`]),u(`div`,j,[a(O,{modelValue:_.value,"onUpdate:modelValue":[i[0]||=e=>_.value=e,i[1]||=e=>B(`firstName`)],label:`نام`,placeholder:`نام مشتری`,error:F.value.firstName},null,8,[`modelValue`,`error`]),a(O,{modelValue:M.value,"onUpdate:modelValue":[i[2]||=e=>M.value=e,i[3]||=e=>B(`lastName`)],label:`نام خانوادگی`,placeholder:`نام خانوادگی`,error:F.value.lastName},null,8,[`modelValue`,`error`]),a(O,{modelValue:N.value,"onUpdate:modelValue":[i[4]||=e=>N.value=e,i[5]||=e=>B(`phone`)],label:`شماره موبایل`,type:`tel`,inputmode:`tel`,dir:`ltr`,placeholder:`۰۹۱۲۳۴۵۶۷۸۹`,error:F.value.phone},null,8,[`modelValue`,`error`]),a(O,{modelValue:P.value,"onUpdate:modelValue":i[6]||=e=>P.value=e,label:`نام فروشگاه یا برند (اختیاری)`,placeholder:`مثلاً بوتیک رز`},null,8,[`modelValue`])]),a(S,{block:``,loading:L.value,disabled:L.value,onClick:V},{default:t(()=>[l(r(R()?`ذخیره تغییرات`:`ثبت مشتری`),1)]),_:1},8,[`loading`,`disabled`])]))}}),[[`__scopeId`,`data-v-4f911c6f`]]),N={class:`customer-create-sheet`},P={class:`customer-create-sheet__head`},F={id:`customer-create-title`},I=p(h({__name:`CustomerCreateOverlay`,props:{open:{type:Boolean},customerId:{},initial:{},title:{}},emits:[`close`,`success`],setup(l,{emit:d}){let p=l,h=o(()=>p.title??(p.customerId?`ویرایش مشتری`:`افزودن مشتری`)),v=d;function y(){v(`close`)}function b(e){v(`success`,e)}function x(e){e.key===`Escape`&&p.open&&y()}return i(()=>p.open,e=>{document.body.style.overflow=e?`hidden`:``,e?window.addEventListener(`keydown`,x):window.removeEventListener(`keydown`,x)},{immediate:!0}),e(()=>{document.body.style.overflow=``,window.removeEventListener(`keydown`,x)}),(e,i)=>(n(),m(f,{to:`body`},[a(g,{name:`customer-create-sheet`},{default:t(()=>[l.open?(n(),c(`div`,{key:0,class:`customer-create-overlay`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`customer-create-title`,onClick:_(y,[`self`])},[u(`div`,N,[i[0]||=u(`div`,{class:`customer-create-sheet__handle`,"aria-hidden":`true`},null,-1),u(`header`,P,[u(`h2`,F,r(h.value),1),u(`button`,{type:`button`,class:`customer-create-sheet__close`,"aria-label":`بستن`,onClick:y},` × `)]),a(M,{"customer-id":l.customerId,initial:l.initial,onSuccess:b},null,8,[`customer-id`,`initial`])])])):s(``,!0)]),_:1})]))}}),[[`__scopeId`,`data-v-ac91feb8`]]);export{I as t};
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{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-Bzeb0Iwd.js";import{o as _}from"./format-C72AoJ2H.js";import{M as v,l as y,o as b}from"./index-3Kv0ngks.js";import{t as x}from"./PageHeader-CNPTCfZY.js";import{t as S}from"./PageSkeleton-DYdjm4l9.js";import{t as C}from"./crm-DoYzOa8A.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=y(),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(b,{size:14})],8,z)])],8,j))),128))])]))}}),[[`__scopeId`,`data-v-cc481a5f`]]);export{B as default};
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-Bzeb0Iwd.js";import{o as _}from"./format-C72AoJ2H.js";import{M as v,l as y,o as b}from"./index-BK4-SNil.js";import{t as x}from"./PageHeader-Ba-2yDNw.js";import{t as S}from"./PageSkeleton-DYdjm4l9.js";import{t as C}from"./crm-Bj4T2PId.js";import{t as w}from"./IconBookmark-CQq-TOS-.js";import{n as T,t as E}from"./colorSwatch-BgOH1LE5.js";var D={class:`page favorites-page`},O={class:`page__scroll page__scroll--with-nav body`},k={key:1},A={key:2,class:`empty`},j=[`onClick`],M={class:`product-item__body`},N={class:`product-item__head`},P={class:`product-item__title`},F={key:0,class:`new-tag`},I=[`onClick`],L={class:`product-item__specs`},R={key:0,class:`swatches`},z=[`onClick`],B=f(h({__name:`FavoritesView`,setup(f){let h={summer:`تابستانه`,winter:`زمستانه`,all_season:`چهارفصل`},B=v(),V=y(),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(b,{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
@@ -1 +1 @@
import{M as e,Pt as t,_ as n,c as r,f as i,i as a,k as o,l as s,nt as c,t as l,u,ut as d,v as f}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{i as p,o as m}from"./format-C72AoJ2H.js";import{M as h}from"./index-3Kv0ngks.js";import{t as g}from"./PageHeader-CNPTCfZY.js";import{t as _}from"./PageSkeleton-DYdjm4l9.js";import{t as v}from"./catalogRequests-Bfg-Nm09.js";import{t as y}from"./SimpleStatusTimeline-BYp_nmbJ.js";var b=[{id:`registered`,label:`درخواست کالیته ثبت شد`},{id:`ready_to_ship`,label:`آماده ارسال`},{id:`shipped`,label:`ارسال شد`},{id:`returned`,label:`تحویل گرفته شد`}],x={new:0,approved:0,ready_to_ship:1,delivered:2,returned:3,cancelled:0};function S(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 C(e){return x[S(e)]??0}function w(e){let t=S(e),n=p(e.createdAt),r=e.updatedAt?p(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}}var T={class:`page latest-status-page`},E={class:`page__scroll page__scroll--with-nav body`},D={class:`summary-card`},O={class:`summary-card__value`},k={class:`summary-card__meta`},A=l(f({__name:`LatestCatalogRequestStatusView`,setup(l){let f=h(),p=v(),x=c(!0),S=r(()=>p.sorted.length?p.sorted[0]:null),A=r(()=>S.value?C(S.value):0),j=r(()=>S.value?w(S.value):{});o(async()=>{x.value=!0,await p.hydrate(),x.value=!1});function M(){f.push(`/categories`)}return(r,o)=>(e(),i(`div`,T,[n(g,{class:`mobile-only`,title:`آخرین درخواست کالیته`,"show-back":``,centered:``,onBack:o[0]||=e=>d(f).push(`/`)}),o[3]||=s(`header`,{class:`desktop-page__head desktop-only`},[s(`div`,null,[s(`h1`,{class:`desktop-page__title`},`آخرین درخواست کالیته`),s(`p`,{class:`desktop-page__subtitle`},`پیگیری مراحل آخرین درخواست کالیته`)])],-1),s(`div`,E,[x.value?(e(),u(_,{key:0})):S.value?(e(),i(a,{key:1},[s(`article`,D,[o[2]||=s(`p`,{class:`summary-card__label`},`درخواست`,-1),s(`strong`,O,t(S.value.id.slice(-8)),1),s(`p`,k,t(d(m)(S.value.items.length))+` قلم کالیته `,1)]),n(y,{steps:d(b),"current-index":A.value,timestamps:j.value},null,8,[`steps`,`current-index`,`timestamps`]),s(`button`,{type:`button`,class:`detail-link`,onClick:o[1]||=e=>d(f).push(`/catalog-requests`)},` مشاهده همه درخواست‌ها `)],64)):(e(),i(`button`,{key:2,type:`button`,class:`empty-cta`,onClick:M},` شما هیچ کالیته ای درخواست نکرده اید، جهت درخواست کالیته و مشاهده فیزیکی پارچه ها کلیک کنید `))])]))}}),[[`__scopeId`,`data-v-e09a36c6`]]);export{A as default};
import{M as e,Pt as t,_ as n,c as r,f as i,i as a,k as o,l as s,nt as c,t as l,u,ut as d,v as f}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{i as p,o as m}from"./format-C72AoJ2H.js";import{M as h}from"./index-BK4-SNil.js";import{t as g}from"./PageHeader-Ba-2yDNw.js";import{t as _}from"./PageSkeleton-DYdjm4l9.js";import{t as v}from"./catalogRequests-DmXxqAPC.js";import{t as y}from"./SimpleStatusTimeline-BYp_nmbJ.js";var b=[{id:`registered`,label:`درخواست کالیته ثبت شد`},{id:`ready_to_ship`,label:`آماده ارسال`},{id:`shipped`,label:`ارسال شد`},{id:`returned`,label:`تحویل گرفته شد`}],x={new:0,approved:0,ready_to_ship:1,delivered:2,returned:3,cancelled:0};function S(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 C(e){return x[S(e)]??0}function w(e){let t=S(e),n=p(e.createdAt),r=e.updatedAt?p(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}}var T={class:`page latest-status-page`},E={class:`page__scroll page__scroll--with-nav body`},D={class:`summary-card`},O={class:`summary-card__value`},k={class:`summary-card__meta`},A=l(f({__name:`LatestCatalogRequestStatusView`,setup(l){let f=h(),p=v(),x=c(!0),S=r(()=>p.sorted.length?p.sorted[0]:null),A=r(()=>S.value?C(S.value):0),j=r(()=>S.value?w(S.value):{});o(async()=>{x.value=!0,await p.hydrate(),x.value=!1});function M(){f.push(`/categories`)}return(r,o)=>(e(),i(`div`,T,[n(g,{class:`mobile-only`,title:`آخرین درخواست کالیته`,"show-back":``,centered:``,onBack:o[0]||=e=>d(f).push(`/`)}),o[3]||=s(`header`,{class:`desktop-page__head desktop-only`},[s(`div`,null,[s(`h1`,{class:`desktop-page__title`},`آخرین درخواست کالیته`),s(`p`,{class:`desktop-page__subtitle`},`پیگیری مراحل آخرین درخواست کالیته`)])],-1),s(`div`,E,[x.value?(e(),u(_,{key:0})):S.value?(e(),i(a,{key:1},[s(`article`,D,[o[2]||=s(`p`,{class:`summary-card__label`},`درخواست`,-1),s(`strong`,O,t(S.value.id.slice(-8)),1),s(`p`,k,t(d(m)(S.value.items.length))+` قلم کالیته `,1)]),n(y,{steps:d(b),"current-index":A.value,timestamps:j.value},null,8,[`steps`,`current-index`,`timestamps`]),s(`button`,{type:`button`,class:`detail-link`,onClick:o[1]||=e=>d(f).push(`/catalog-requests`)},` مشاهده همه درخواست‌ها `)],64)):(e(),i(`button`,{key:2,type:`button`,class:`empty-cta`,onClick:M},` شما هیچ کالیته ای درخواست نکرده اید، جهت درخواست کالیته و مشاهده فیزیکی پارچه ها کلیک کنید `))])]))}}),[[`__scopeId`,`data-v-e09a36c6`]]);export{A 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{M as g,c as _,d as v}from"./index-3Kv0ngks.js";import{t as y}from"./PageHeader-CNPTCfZY.js";import{t as b}from"./PageSkeleton-DYdjm4l9.js";import{t as x}from"./SimpleStatusTimeline-BYp_nmbJ.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=v(),C=_(),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-C72AoJ2H.js";import{M as g,c as _,d as v}from"./index-BK4-SNil.js";import{t as y}from"./PageHeader-Ba-2yDNw.js";import{t as b}from"./PageSkeleton-DYdjm4l9.js";import{t as x}from"./SimpleStatusTimeline-BYp_nmbJ.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=v(),C=_(),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};
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{M as p,d as m,j as h,n as g}from"./index-3Kv0ngks.js";import{t as _}from"./PageHeader-CNPTCfZY.js";import{t as v}from"./useGoBack-pkrD1deE.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-C72AoJ2H.js";import{M as p,d as m,j as h,n as g}from"./index-BK4-SNil.js";import{t as _}from"./PageHeader-Ba-2yDNw.js";import{t as v}from"./useGoBack-BjVI8c38.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
File diff suppressed because one or more lines are too long
@@ -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{i as d}from"./index-3Kv0ngks.js";import{t as f}from"./IconChevronBack-CDeN0Cbu.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{i as d}from"./index-BK4-SNil.js";import{t as f}from"./IconChevronBack-CDeN0Cbu.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};
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-CPHDCypX.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-XTnl-Jq_.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-Bzeb0Iwd.js";import{u as v}from"./dist-U-AqZ6hP.js";import{M as y,a as b,c as x,d as S,n as C}from"./index-3Kv0ngks.js";import{t as w}from"./ProfileSubpageLayout-CgqJi1zW.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=S(),H=b(),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-Bzeb0Iwd.js";import{u as v}from"./dist-U-AqZ6hP.js";import{M as y,a as b,c as x,d as S,n as C}from"./index-BK4-SNil.js";import{t as w}from"./ProfileSubpageLayout-BRGCIQFS.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=S(),H=b(),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-Bzeb0Iwd.js";import{i as v}from"./format-C72AoJ2H.js";import{M as y,n as b,u as x}from"./index-3Kv0ngks.js";import{t as S}from"./EmptyState-D72g65G-.js";import{t as C}from"./ProfileSubpageLayout-CgqJi1zW.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=x(),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(b,{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(b,{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-Bzeb0Iwd.js";import{i as v}from"./format-C72AoJ2H.js";import{M as y,n as b,u as x}from"./index-BK4-SNil.js";import{t as S}from"./EmptyState-D72g65G-.js";import{t as C}from"./ProfileSubpageLayout-BRGCIQFS.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=x(),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(b,{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(b,{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{n as d}from"./index-3Kv0ngks.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-CgqJi1zW.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{n as d}from"./index-BK4-SNil.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-BRGCIQFS.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{M as u}from"./index-3Kv0ngks.js";import{t as d}from"./IconChevronBack-CDeN0Cbu.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{M as u}from"./index-BK4-SNil.js";import{t as d}from"./IconChevronBack-CDeN0Cbu.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
@@ -1 +1 @@
import{F as e,M as t,Pt as n,_ as r,f as i,i as a,l as o,t as s,u as c,ut as l,v as u}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{t as d}from"./BasicIcon-Bzeb0Iwd.js";import{M as f,_ as p,o as m}from"./index-3Kv0ngks.js";import{t as h}from"./login-fabric-CzrIXTnD.js";var g={class:`page welcome-page`},_=[`src`],v={class:`welcome-page__scroll`},y={class:`welcome-page__stage`},b={class:`welcome-brand`},x={class:`welcome-features`},S={class:`welcome-feature__icon`,"aria-hidden":`true`},C={key:0,class:`welcome-feature__star`,viewBox:`0 0 24 24`,fill:`none`},w={class:`welcome-cta__chevron`,"aria-hidden":`true`},T=s(u({__name:`WelcomeView`,setup(s){let u=f(),T=[{icon:`star`,title:`همراه همیشگی کسب‌وکارتان`,subtitle:`با خدمات ویژه مشتریان`},{icon:`vuesax-linear:truck-time`,title:`سفارش عمده`,subtitle:`مستقیم از تولیدکننده`},{icon:`vuesax-linear:element-3`,title:`تنوع بی‌نظیر محصولات`,subtitle:`از کلاسیک تا مدرن`}];function E(){let e=typeof u.currentRoute.value.query.redirect==`string`?u.currentRoute.value.query.redirect:void 0;u.push({name:`login`,query:e?{redirect:e}:void 0})}return(s,u)=>(t(),i(`div`,g,[o(`img`,{class:`welcome-page__bg`,src:l(h),alt:``},null,8,_),u[7]||=o(`div`,{class:`welcome-page__veil`,"aria-hidden":`true`},null,-1),o(`div`,v,[o(`div`,y,[o(`header`,{class:`welcome-top`},[o(`button`,{type:`button`,class:`welcome-skip`,onClick:E},`رد شدن`)]),o(`div`,b,[r(p,{size:88}),u[0]||=o(`h1`,{class:`welcome-brand__fa`},`نادمی تکس`,-1),u[1]||=o(`p`,{class:`welcome-brand__tag`},`انتخاب حرفه‌ای، شروع یک همکاری ماندگار`,-1),u[2]||=o(`span`,{class:`welcome-brand__rule`,"aria-hidden":`true`},null,-1)]),o(`ul`,x,[(t(),i(a,null,e(T,e=>o(`li`,{key:e.title,class:`welcome-feature`},[o(`span`,S,[e.icon===`star`?(t(),i(`svg`,C,[...u[3]||=[o(`path`,{d:`M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z`,stroke:`#fff`,"stroke-width":`1.5`,"stroke-linejoin":`round`},null,-1)]])):(t(),c(d,{key:1,icon:e.icon,size:22,color:`#ffffff`},null,8,[`icon`]))]),o(`strong`,null,n(e.title),1),o(`span`,null,n(e.subtitle),1)])),64))]),u[5]||=o(`div`,{class:`welcome-spacer`,"aria-hidden":`true`},null,-1),u[6]||=o(`div`,{class:`welcome-dots`,"aria-hidden":`true`},[o(`i`,{class:`is-on`}),o(`i`),o(`i`),o(`i`)],-1),o(`button`,{type:`button`,class:`welcome-cta`,onClick:E},[u[4]||=o(`span`,null,`ورود / ثبت‌نام`,-1),o(`span`,w,[r(m,{size:18,color:`#ffffff`})])])])])]))}}),[[`__scopeId`,`data-v-443d4085`]]);export{T as default};
import{F as e,M as t,Pt as n,_ as r,f as i,i as a,l as o,t as s,u as c,ut as l,v as u}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{t as d}from"./BasicIcon-Bzeb0Iwd.js";import{M as f,_ as p,o as m}from"./index-BK4-SNil.js";import{t as h}from"./login-fabric-CzrIXTnD.js";var g={class:`page welcome-page`},_=[`src`],v={class:`welcome-page__scroll`},y={class:`welcome-page__stage`},b={class:`welcome-brand`},x={class:`welcome-features`},S={class:`welcome-feature__icon`,"aria-hidden":`true`},C={key:0,class:`welcome-feature__star`,viewBox:`0 0 24 24`,fill:`none`},w={class:`welcome-cta__chevron`,"aria-hidden":`true`},T=s(u({__name:`WelcomeView`,setup(s){let u=f(),T=[{icon:`star`,title:`همراه همیشگی کسب‌وکارتان`,subtitle:`با خدمات ویژه مشتریان`},{icon:`vuesax-linear:truck-time`,title:`سفارش عمده`,subtitle:`مستقیم از تولیدکننده`},{icon:`vuesax-linear:element-3`,title:`تنوع بی‌نظیر محصولات`,subtitle:`از کلاسیک تا مدرن`}];function E(){let e=typeof u.currentRoute.value.query.redirect==`string`?u.currentRoute.value.query.redirect:void 0;u.push({name:`login`,query:e?{redirect:e}:void 0})}return(s,u)=>(t(),i(`div`,g,[o(`img`,{class:`welcome-page__bg`,src:l(h),alt:``},null,8,_),u[7]||=o(`div`,{class:`welcome-page__veil`,"aria-hidden":`true`},null,-1),o(`div`,v,[o(`div`,y,[o(`header`,{class:`welcome-top`},[o(`button`,{type:`button`,class:`welcome-skip`,onClick:E},`رد شدن`)]),o(`div`,b,[r(p,{size:88}),u[0]||=o(`h1`,{class:`welcome-brand__fa`},`نادمی تکس`,-1),u[1]||=o(`p`,{class:`welcome-brand__tag`},`انتخاب حرفه‌ای، شروع یک همکاری ماندگار`,-1),u[2]||=o(`span`,{class:`welcome-brand__rule`,"aria-hidden":`true`},null,-1)]),o(`ul`,x,[(t(),i(a,null,e(T,e=>o(`li`,{key:e.title,class:`welcome-feature`},[o(`span`,S,[e.icon===`star`?(t(),i(`svg`,C,[...u[3]||=[o(`path`,{d:`M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z`,stroke:`#fff`,"stroke-width":`1.5`,"stroke-linejoin":`round`},null,-1)]])):(t(),c(d,{key:1,icon:e.icon,size:22,color:`#ffffff`},null,8,[`icon`]))]),o(`strong`,null,n(e.title),1),o(`span`,null,n(e.subtitle),1)])),64))]),u[5]||=o(`div`,{class:`welcome-spacer`,"aria-hidden":`true`},null,-1),u[6]||=o(`div`,{class:`welcome-dots`,"aria-hidden":`true`},[o(`i`,{class:`is-on`}),o(`i`),o(`i`),o(`i`)],-1),o(`button`,{type:`button`,class:`welcome-cta`,onClick:E},[u[4]||=o(`span`,null,`ورود / ثبت‌نام`,-1),o(`span`,w,[r(m,{size:18,color:`#ffffff`})])])])])]))}}),[[`__scopeId`,`data-v-443d4085`]]);export{T as default};
+1
View File
@@ -0,0 +1 @@
import{n as e}from"./http-CU_N-R2R.js";var t={list:()=>e(`/addresses`),create:t=>e(`/addresses`,{method:`POST`,body:t}),makeDefault:t=>e(`/addresses/${t}/default`,{method:`POST`}),remove:t=>e(`/addresses/${t}`,{method:`DELETE`})};export{t};
-1
View File
@@ -1 +0,0 @@
import{nt as e}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{n as t,o as n}from"./http-Cmeatq0_.js";var r=n(`catalog`,()=>{let n=e([]),r=e([]),i=e([]),a=e([]),o=e(``),s=e(!1),c=e(!1);async function l(e=!1){if(c.value&&!e)return n.value;s.value=!0;try{let e=await t(`/companies`,{query:{activeOnly:!0}});n.value=e.filter(e=>e.isActive).sort((e,t)=>e.displayOrder-t.displayOrder),c.value=!0}finally{s.value=!1}return n.value}function u(){return[...n.value].sort((e,t)=>e.displayOrder-t.displayOrder)}function d(e){return n.value.find(t=>t.id===e)}async function f(e){let n=await t(`/catalogs`,{query:{companyId:e,activeOnly:!0}});return r.value=[...r.value.filter(t=>t.companyId!==e),...n],n}async function p(e,n){let r=await t(`/products`,{query:{catalogId:e,color:n&&n!==`all`?n:void 0,activeOnly:!0}}),a=i.value.filter(t=>t.catalogId!==e);return i.value=[...a,...r],r}async function m(e){let n=await t(`/companies/${e}/bank-accounts`);return a.value=[...a.value.filter(t=>t.companyId!==e),...n.filter(e=>e.isActive)],a.value.filter(t=>t.companyId===e)}function h(e,t=``){let n=r.value.filter(t=>t.companyId===e&&t.isActive);if(t.trim()){let e=t.trim();n=n.filter(t=>t.code.includes(e)||t.name.includes(e))}return[...n].sort((e,t)=>e.displayOrder-t.displayOrder)}function g(e,t){let n=i.value.filter(t=>t.catalogId===e&&t.isActive);return t&&t!==`all`&&(n=n.filter(e=>e.color.includes(t))),n}function _(e){return r.value.find(t=>t.id===e)}function v(e){return i.value.find(t=>t.id===e)}function y(e){return[...new Set(g(e).map(e=>e.color))]}function b(e){return a.value.filter(t=>t.companyId===e&&t.isActive).sort((e,t)=>e.displayOrder-t.displayOrder)}return{companies:n,catalogs:r,products:i,bankAccounts:a,searchQuery:o,loading:s,loaded:c,loadCompanies:l,loadCatalogs:f,loadProducts:p,loadBankAccounts:m,getActiveCompanies:u,getCompany:d,fetchCatalogs:h,fetchProducts:g,getCatalog:_,getProduct:v,getUniqueColors:y,getBankAccountsByCompany:b}});export{r 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}from"./http-CU_N-R2R.js";var r=t(`catalog`,()=>{let t=e([]),r=e([]),i=e([]),a=e([]),o=e(``),s=e(!1),c=e(!1);async function l(e=!1){if(c.value&&!e)return t.value;s.value=!0;try{let e=await n(`/companies`,{query:{activeOnly:!0}});t.value=e.filter(e=>e.isActive).sort((e,t)=>e.displayOrder-t.displayOrder),c.value=!0}finally{s.value=!1}return t.value}function u(){return[...t.value].sort((e,t)=>e.displayOrder-t.displayOrder)}function d(e){return t.value.find(t=>t.id===e)}async function f(e){let t=await n(`/catalogs`,{query:{companyId:e,activeOnly:!0}});return r.value=[...r.value.filter(t=>t.companyId!==e),...t],t}async function p(e,t){let r=await n(`/products`,{query:{catalogId:e,color:t&&t!==`all`?t:void 0,activeOnly:!0}}),a=i.value.filter(t=>t.catalogId!==e);return i.value=[...a,...r],r}async function m(e){let t=await n(`/companies/${e}/bank-accounts`);return a.value=[...a.value.filter(t=>t.companyId!==e),...t.filter(e=>e.isActive)],a.value.filter(t=>t.companyId===e)}function h(e,t=``){let n=r.value.filter(t=>t.companyId===e&&t.isActive);if(t.trim()){let e=t.trim();n=n.filter(t=>t.code.includes(e)||t.name.includes(e))}return[...n].sort((e,t)=>e.displayOrder-t.displayOrder)}function g(e,t){let n=i.value.filter(t=>t.catalogId===e&&t.isActive);return t&&t!==`all`&&(n=n.filter(e=>e.color.includes(t))),n}function _(e){return r.value.find(t=>t.id===e)}function v(e){return i.value.find(t=>t.id===e)}function y(e){return[...new Set(g(e).map(e=>e.color))]}function b(e){return a.value.filter(t=>t.companyId===e&&t.isActive).sort((e,t)=>e.displayOrder-t.displayOrder)}return{companies:t,catalogs:r,products:i,bankAccounts:a,searchQuery:o,loading:s,loaded:c,loadCompanies:l,loadCatalogs:f,loadProducts:p,loadBankAccounts:m,getActiveCompanies:u,getCompany:d,fetchCatalogs:h,fetchProducts:g,getCatalog:_,getProduct:v,getUniqueColors:y,getBankAccountsByCompany:b}});export{r as t};
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
import{c as e,nt as t}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{n,o as r}from"./http-Cmeatq0_.js";var i=`ft_catalog_requests`,a={new:`submitted`,approved:`reviewing`,ready_to_ship:`preparing`,delivered:`delivered`,returned:`delivered`,cancelled:`submitted`};function o(){try{let e=localStorage.getItem(i);if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)?t:[]}catch{return[]}}function s(e){localStorage.setItem(i,JSON.stringify(e))}var c={submitted:`ثبت‌شده`,reviewing:`در حال بررسی`,preparing:`آماده‌سازی`,shipped:`ارسال‌شده`,delivered:`تحویل‌شده`,new:`درخواست جدید`,approved:`تأیید شده`,ready_to_ship:`آماده ارسال`,returned:`بازگردانده شده`,cancelled:`لغو شده`};function l(e){return{id:e.id,createdAt:e.createdAt,updatedAt:e.updatedAt,status:a[e.status]??e.status,serverStatus:e.status,note:e.note,items:e.items.map(e=>({productId:e.productId,productName:e.productName,productCode:e.productCode,quantity:e.quantity}))}}var u=r(`catalogRequests`,()=>{let r=t(o()),i=t(!0),a=e(()=>[...r.value].sort((e,t)=>t.createdAt.localeCompare(e.createdAt)));function u(e){return c[e]??e}async function d(){if(!i.value){r.value=o();return}try{let e=await n(`/catalog-requests`);r.value=e.map(l),s(r.value)}catch{i.value=!1,r.value=o()}}async function f(e){let t=e.items.filter(e=>e.productId&&e.quantity>0).map(e=>({...e,quantity:Math.max(1,Math.floor(e.quantity))}));if(!t.length)return{success:!1,message:`حداقل یک قلم با تعداد معتبر لازم است.`};if(i.value)try{let i=l(await n(`/catalog-requests`,{method:`POST`,body:{note:e.note?.trim()||void 0,items:t.map(e=>({productId:e.productId,quantity:e.quantity}))}}));return r.value=[i,...r.value.filter(e=>e.id!==i.id)],s(r.value),{success:!0,request:i}}catch{i.value=!1}let a={id:`cr-${Date.now()}`,createdAt:new Date().toISOString(),status:`submitted`,note:e.note?.trim()||void 0,items:t};return r.value=[a,...r.value],s(r.value),{success:!0,request:a}}function p(e){return r.value.find(t=>t.id===e)??null}return{requests:r,sorted:a,statusLabel:u,create:f,getById:p,hydrate:d}});export{u as t};
+1
View File
@@ -0,0 +1 @@
import{c as e,nt as t}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{n}from"./pinia-BK9B9Wwf.js";import{n as r,t as i}from"./http-CU_N-R2R.js";var a=`ft_catalog_requests`,o={new:`submitted`,approved:`reviewing`,ready_to_ship:`preparing`,delivered:`delivered`,returned:`delivered`,cancelled:`submitted`};function s(){try{let e=localStorage.getItem(a);if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)?t:[]}catch{return[]}}function c(e){localStorage.setItem(a,JSON.stringify(e))}var l={submitted:`ثبت‌شده`,reviewing:`در حال بررسی`,preparing:`آماده‌سازی`,shipped:`ارسال‌شده`,delivered:`تحویل‌شده`,new:`درخواست جدید`,approved:`تأیید شده`,ready_to_ship:`آماده ارسال`,returned:`بازگردانده شده`,cancelled:`لغو شده`};function u(e){return{id:e.id,createdAt:e.createdAt,updatedAt:e.updatedAt,status:o[e.status]??e.status,serverStatus:e.status,note:e.note,items:e.items.map(e=>({productId:e.productId,productName:e.productName,productCode:e.productCode,quantity:e.quantity}))}}var d=n(`catalogRequests`,()=>{let n=t(s()),a=t(!0),o=e(()=>[...n.value].sort((e,t)=>t.createdAt.localeCompare(e.createdAt)));function d(e){return l[e]??e}async function f(){if(!a.value){n.value=s();return}try{let e=await r(`/catalog-requests`);n.value=e.map(u),c(n.value)}catch{a.value=!1,n.value=s()}}async function p(e){let t=e.items.filter(e=>e.productId&&e.quantity>0).map(e=>({...e,quantity:Math.max(1,Math.floor(e.quantity))}));if(!t.length)return{success:!1,message:`حداقل یک قلم با تعداد معتبر لازم است.`};if(a.value)try{let i=u(await r(`/catalog-requests`,{method:`POST`,body:{note:e.note?.trim()||void 0,items:t.map(e=>({productId:e.productId,quantity:e.quantity}))}}));return n.value=[i,...n.value.filter(e=>e.id!==i.id)],c(n.value),{success:!0,request:i}}catch(e){if(e instanceof i&&e.status>=400&&e.status<500)return{success:!1,message:e.message};a.value=!1}let o={id:`cr-${Date.now()}`,createdAt:new Date().toISOString(),status:`submitted`,note:e.note?.trim()||void 0,items:t};return n.value=[o,...n.value],c(n.value),{success:!0,request:o}}function m(e){return n.value.find(t=>t.id===e)??null}return{requests:n,sorted:o,statusLabel:d,create:p,getById:m,hydrate:f}});export{d as t};
@@ -1 +1 @@
import{M as e,f as t,l as n,u as r,v as i}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{t as a}from"./BasicIcon-Bzeb0Iwd.js";import{T as o,k as s,v as c}from"./index-3Kv0ngks.js";import{t as l}from"./IconDiamond-bOGfMf7j.js";import{t as u}from"./IconLayoutGrid-CTmPrZXE.js";import{t as d}from"./IconShoppingBag-BHoZiOex.js";var f=i({__name:`IconBolt`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(t){return(n,i)=>(e(),r(a,{icon:`vuesax-linear:flash`,size:t.size,"stroke-width":t.strokeWidth,color:t.color},null,8,[`size`,`stroke-width`,`color`]))}}),p=i({__name:`IconFeather`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(t){return(n,i)=>(e(),r(a,{icon:`vuesax-linear:pen-add`,size:t.size,"stroke-width":t.strokeWidth,color:t.color},null,8,[`size`,`stroke-width`,`color`]))}}),m=i({__name:`IconIdCard`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(t){return(n,i)=>(e(),r(a,{icon:`vuesax-linear:personalcard`,size:t.size,"stroke-width":t.strokeWidth,color:t.color},null,8,[`size`,`stroke-width`,`color`]))}}),h=[`width`,`height`],g=[`stroke`,`stroke-width`],_=[`stroke`,`stroke-width`],v=i({__name:`IconShirt`,props:{size:{default:24},color:{default:`currentColor`},strokeWidth:{default:1.5}},setup(r){return(i,a)=>(e(),t(`svg`,{width:r.size,height:r.size,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,"aria-hidden":`true`},[n(`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:r.color,"stroke-width":r.strokeWidth,"stroke-linecap":`round`,"stroke-linejoin":`round`},null,8,g),n(`path`,{d:`M12 7.75V18.5`,stroke:r.color,"stroke-width":r.strokeWidth,"stroke-linecap":`round`},null,8,_)],8,h))}}),y=[`width`,`height`],b=[`stroke`,`stroke-width`],x=[`stroke`,`stroke-width`],S=[`stroke`,`stroke-width`],C=[`stroke`,`stroke-width`],w=i({__name:`IconSuit`,props:{size:{default:24},color:{default:`currentColor`},strokeWidth:{default:1.5}},setup(r){return(i,a)=>(e(),t(`svg`,{width:r.size,height:r.size,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,"aria-hidden":`true`},[n(`path`,{d:`M7.5 5.5h9l2 3v10.5a1 1 0 0 1-1 1h-11a1 1 0 0 1-1-1V8.5l2-3Z`,stroke:r.color,"stroke-width":r.strokeWidth,"stroke-linecap":`round`,"stroke-linejoin":`round`},null,8,b),n(`path`,{d:`M12 5.5v13`,stroke:r.color,"stroke-width":r.strokeWidth,"stroke-linecap":`round`},null,8,x),n(`path`,{d:`M7.5 9 12 11.75 16.5 9`,stroke:r.color,"stroke-width":r.strokeWidth,"stroke-linecap":`round`,"stroke-linejoin":`round`},null,8,S),n(`path`,{d:`M10.25 5.5V4a1.75 1.75 0 0 1 3.5 0v1.5`,stroke:r.color,"stroke-width":r.strokeWidth,"stroke-linecap":`round`},null,8,C)],8,y))}}),T=[`width`,`height`],E=[`stroke`,`stroke-width`],D=[`stroke`,`stroke-width`],O=[`stroke`,`stroke-width`],k={bolt:f,feather:p,diamond:l,grid:u,bag:d,"id-card":m,catalog:o,headset:c,home:s,shirt:v,suit:w,trousers:i({__name:`IconTrousers`,props:{size:{default:24},color:{default:`currentColor`},strokeWidth:{default:1.5}},setup(r){return(i,a)=>(e(),t(`svg`,{width:r.size,height:r.size,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,"aria-hidden":`true`},[n(`path`,{d:`M8 4.5h8v4.25l-1.75 11H13l-1-9.5-1 9.5H7.75L6 8.75V4.5Z`,stroke:r.color,"stroke-width":r.strokeWidth,"stroke-linecap":`round`,"stroke-linejoin":`round`},null,8,E),n(`path`,{d:`M12 8.75v11`,stroke:r.color,"stroke-width":r.strokeWidth,"stroke-linecap":`round`},null,8,D),n(`path`,{d:`M8 7.25h8`,stroke:r.color,"stroke-width":r.strokeWidth,"stroke-linecap":`round`},null,8,O)],8,T))}})},A={shirt:`shirt`,suit:`suit`,trousers:`trousers`};function j(e){return A[e.id]?A[e.id]:e.icon&&k[e.icon]?e.icon:e.icon??`grid`}function M(e,t=l){return e&&k[e]||t}export{j as n,M as t};
import{M as e,f as t,l as n,u as r,v as i}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{t as a}from"./BasicIcon-Bzeb0Iwd.js";import{T as o,k as s,v as c}from"./index-BK4-SNil.js";import{t as l}from"./IconDiamond-bOGfMf7j.js";import{t as u}from"./IconLayoutGrid-CTmPrZXE.js";import{t as d}from"./IconShoppingBag-BHoZiOex.js";var f=i({__name:`IconBolt`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(t){return(n,i)=>(e(),r(a,{icon:`vuesax-linear:flash`,size:t.size,"stroke-width":t.strokeWidth,color:t.color},null,8,[`size`,`stroke-width`,`color`]))}}),p=i({__name:`IconFeather`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(t){return(n,i)=>(e(),r(a,{icon:`vuesax-linear:pen-add`,size:t.size,"stroke-width":t.strokeWidth,color:t.color},null,8,[`size`,`stroke-width`,`color`]))}}),m=i({__name:`IconIdCard`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(t){return(n,i)=>(e(),r(a,{icon:`vuesax-linear:personalcard`,size:t.size,"stroke-width":t.strokeWidth,color:t.color},null,8,[`size`,`stroke-width`,`color`]))}}),h=[`width`,`height`],g=[`stroke`,`stroke-width`],_=[`stroke`,`stroke-width`],v=i({__name:`IconShirt`,props:{size:{default:24},color:{default:`currentColor`},strokeWidth:{default:1.5}},setup(r){return(i,a)=>(e(),t(`svg`,{width:r.size,height:r.size,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,"aria-hidden":`true`},[n(`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:r.color,"stroke-width":r.strokeWidth,"stroke-linecap":`round`,"stroke-linejoin":`round`},null,8,g),n(`path`,{d:`M12 7.75V18.5`,stroke:r.color,"stroke-width":r.strokeWidth,"stroke-linecap":`round`},null,8,_)],8,h))}}),y=[`width`,`height`],b=[`stroke`,`stroke-width`],x=[`stroke`,`stroke-width`],S=[`stroke`,`stroke-width`],C=[`stroke`,`stroke-width`],w=i({__name:`IconSuit`,props:{size:{default:24},color:{default:`currentColor`},strokeWidth:{default:1.5}},setup(r){return(i,a)=>(e(),t(`svg`,{width:r.size,height:r.size,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,"aria-hidden":`true`},[n(`path`,{d:`M7.5 5.5h9l2 3v10.5a1 1 0 0 1-1 1h-11a1 1 0 0 1-1-1V8.5l2-3Z`,stroke:r.color,"stroke-width":r.strokeWidth,"stroke-linecap":`round`,"stroke-linejoin":`round`},null,8,b),n(`path`,{d:`M12 5.5v13`,stroke:r.color,"stroke-width":r.strokeWidth,"stroke-linecap":`round`},null,8,x),n(`path`,{d:`M7.5 9 12 11.75 16.5 9`,stroke:r.color,"stroke-width":r.strokeWidth,"stroke-linecap":`round`,"stroke-linejoin":`round`},null,8,S),n(`path`,{d:`M10.25 5.5V4a1.75 1.75 0 0 1 3.5 0v1.5`,stroke:r.color,"stroke-width":r.strokeWidth,"stroke-linecap":`round`},null,8,C)],8,y))}}),T=[`width`,`height`],E=[`stroke`,`stroke-width`],D=[`stroke`,`stroke-width`],O=[`stroke`,`stroke-width`],k={bolt:f,feather:p,diamond:l,grid:u,bag:d,"id-card":m,catalog:o,headset:c,home:s,shirt:v,suit:w,trousers:i({__name:`IconTrousers`,props:{size:{default:24},color:{default:`currentColor`},strokeWidth:{default:1.5}},setup(r){return(i,a)=>(e(),t(`svg`,{width:r.size,height:r.size,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,"aria-hidden":`true`},[n(`path`,{d:`M8 4.5h8v4.25l-1.75 11H13l-1-9.5-1 9.5H7.75L6 8.75V4.5Z`,stroke:r.color,"stroke-width":r.strokeWidth,"stroke-linecap":`round`,"stroke-linejoin":`round`},null,8,E),n(`path`,{d:`M12 8.75v11`,stroke:r.color,"stroke-width":r.strokeWidth,"stroke-linecap":`round`},null,8,D),n(`path`,{d:`M8 7.25h8`,stroke:r.color,"stroke-width":r.strokeWidth,"stroke-linecap":`round`},null,8,O)],8,T))}})},A={shirt:`shirt`,suit:`suit`,trousers:`trousers`};function j(e){return A[e.id]?A[e.id]:e.icon&&k[e.icon]?e.icon:e.icon??`grid`}function M(e,t=l){return e&&k[e]||t}export{j as n,M 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,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}}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
@@ -1 +0,0 @@
import{nt as e}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{n as t,o as n,t as r}from"./http-Cmeatq0_.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,n){try{return await t(e,n)}catch(e){throw e instanceof r&&(e.status===404||e.status===501)?new r(e.status,s):e}}async function l(){try{return await t(`/catalog/categories`)}catch{try{return await t(`/products/meta/categories`)}catch{return o()}}}async function u(e){return t(`/products`,{query:{activeOnly:!0,categoryId:e?.categoryId,season:e?.season,catalogId:e?.catalogId,companyId:e?.companyId}})}async function d(e){return t(`/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}}var C=n(`crm`,()=>{let n=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 t(`/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:n,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 @@
var e=`ft_access_token`;function t(){return`https://nademitex.montest.ir/server/api`.replace(/\/$/,``)||`https://nademitex.montest.ir/server/api`}function n(){return localStorage.getItem(e)}function r(t){t?localStorage.setItem(e,t):localStorage.removeItem(e)}var i=class extends Error{status;constructor(e,t){super(t),this.status=e}};function a(e,n){let r=t(),i=e.startsWith(`http`)?e:`${r.replace(/\/$/,``)}/${e.replace(/^\//,``)}`,a=i.startsWith(`http`)?new URL(i):new URL(i,typeof window<`u`?window.location.origin:`http://127.0.0.1`);if(n)for(let[e,t]of Object.entries(n))t!=null&&t!==``&&a.searchParams.set(e,String(t));return a.toString()}function o(e,t){if(typeof e==`object`&&e){if(`message`in e){let t=e.message;if(Array.isArray(t))return t.join(`، `);if(t!=null&&String(t).trim())return String(t)}if(`error`in e){let n=e.error;if(typeof n==`string`&&n.trim())return`${n} (${t})`}}if(typeof e==`string`){if(/upstream error/i.test(e))return`سرور API در دسترس نیست. کمی بعد دوباره تلاش کنید.`;if(e.trim()&&!e.trimStart().startsWith(`<`))return e.trim().slice(0,200)}return t===400?`درخواست نامعتبر است. اطلاعات سفارش را بررسی کنید.`:t===401?`نشست شما منقضی شده است. دوباره وارد شوید.`:`خطای سرور (${t})`}async function s(e,t={}){let s={Accept:`application/json`};if(t.body!==void 0&&(s[`Content-Type`]=`application/json`),t.auth!==!1){let e=n();e&&(s.Authorization=`Bearer ${e}`)}let c;try{c=await fetch(a(e,t.query),{method:t.method??(t.body===void 0?`GET`:`POST`),headers:s,body:t.body===void 0?void 0:JSON.stringify(t.body),signal:AbortSignal.timeout(2e4)})}catch(e){throw new i(0,e instanceof DOMException&&e.name===`TimeoutError`||e instanceof Error&&e.name===`TimeoutError`?`پاسخ سرور طول کشید. دوباره تلاش کنید.`:`اتصال به سرور برقرار نشد. اینترنت یا آدرس API را بررسی کنید.`)}let l=await c.text(),u=null;if(l)try{u=JSON.parse(l)}catch{u=l}if(!c.ok){if(c.status===401&&t.auth!==!1){r(null);try{localStorage.removeItem(`ft_user`)}catch{}let e=`/login`;if(typeof window<`u`&&!window.location.pathname.startsWith(e)){let t=encodeURIComponent(`${window.location.pathname}${window.location.search}`);window.location.assign(`${e}?redirect=${t}`)}}throw new i(c.status,o(u,c.status))}return u}export{r as i,s as n,n as r,i as t};
-1
View File
File diff suppressed because one or more lines are too long
-2
View File
File diff suppressed because one or more lines are too long
+2
View File
File diff suppressed because one or more lines are too long
+1
View File
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{M as e}from"./index-3Kv0ngks.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{M as e}from"./index-BK4-SNil.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{M as n,d as r,j as i}from"./index-3Kv0ngks.js";import{n as a}from"./orderInvoice-B0L1Aeuk.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{M as n,d as r,j as i}from"./index-BK4-SNil.js";import{n as a}from"./orderInvoice-B0L1Aeuk.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};
+4 -3
View File
@@ -11,15 +11,16 @@
<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-3Kv0ngks.js"></script>
<script type="module" crossorigin src="/assets/index-BK4-SNil.js"></script>
<link rel="modulepreload" crossorigin href="/assets/_plugin-vue_export-helper-1xMDlcEE.js">
<link rel="modulepreload" crossorigin href="/assets/BasicIcon-Bzeb0Iwd.js">
<link rel="modulepreload" crossorigin href="/assets/http-Cmeatq0_.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/catalog-BHsy1JeE.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-Co7zlmVV.css">
</head>
+16 -10
View File
@@ -1,5 +1,6 @@
import { ref } from 'vue'
import { useAuthStore } from '@/stores/auth'
import { addressesApi } from '@/services/addresses'
import { ApiError } from '@/services/http'
import { useCatalogRequestsStore } from '@/stores/catalogRequests'
import type { CatalogProductCard } from '@/types/crm'
@@ -7,7 +8,6 @@ const SUCCESS_MESSAGE =
'درخواست دریافت فیزیکی کالیته برای شما ثبت شد و به زودی همکاران ما برای شما خواهند آورد'
export function useCatalogRequest() {
const auth = useAuthStore()
const requestsStore = useCatalogRequestsStore()
const requesting = ref(false)
@@ -47,11 +47,17 @@ export function useCatalogRequest() {
async function requestCatalog(product: CatalogProductCard) {
addressError.value = ''
const savedAddress = auth.user?.address?.trim()
if (savedAddress) {
let saved = ''
try {
const rows = await addressesApi.list()
saved = (rows.find((row) => row.isDefault) ?? rows[0])?.text.trim() ?? ''
} catch {
saved = ''
}
if (saved) {
requesting.value = true
try {
await createRequest(product, savedAddress)
await createRequest(product, saved)
} finally {
requesting.value = false
}
@@ -73,14 +79,14 @@ export function useCatalogRequest() {
addressError.value = ''
requesting.value = true
try {
const updated = await auth.updateProfile({ address: trimmed })
if (!updated) {
addressError.value = 'ذخیره آدرس ناموفق بود.'
return false
}
await addressesApi.create({ text: trimmed })
const ok = await createRequest(product, trimmed)
if (ok) closeAddressModal()
return ok
} catch (e) {
addressError.value =
e instanceof ApiError || e instanceof Error ? e.message : 'ذخیره آدرس ناموفق بود.'
return false
} finally {
requesting.value = false
}
+6
View File
@@ -227,6 +227,12 @@ const router = createRouter({
component: () => import('@/views/profile/ProfileEditView.vue'),
meta: { requiresAuth: true },
},
{
path: '/profile/addresses',
name: 'profile-addresses',
component: () => import('@/views/profile/AddressesView.vue'),
meta: { requiresAuth: true },
},
{
path: '/profile/security',
name: 'profile-security',
+17
View File
@@ -0,0 +1,17 @@
import { apiRequest } from '@/services/http'
export type SavedAddress = {
id: string
label: string | null
text: string
isDefault: boolean
}
export const addressesApi = {
list: () => apiRequest<SavedAddress[]>('/addresses'),
create: (body: { text: string; label?: string }) =>
apiRequest<SavedAddress>('/addresses', { method: 'POST', body }),
makeDefault: (id: string) =>
apiRequest<SavedAddress[]>(`/addresses/${id}/default`, { method: 'POST' }),
remove: (id: string) => apiRequest<SavedAddress[]>(`/addresses/${id}`, { method: 'DELETE' }),
}
+4 -2
View File
@@ -1,6 +1,6 @@
import { defineStore } from 'pinia'
import { computed, ref } from 'vue'
import { apiRequest } from '@/services/http'
import { ApiError, apiRequest } from '@/services/http'
const STORAGE_KEY = 'ft_catalog_requests'
@@ -182,8 +182,10 @@ export const useCatalogRequestsStore = defineStore('catalogRequests', () => {
writeAll(requests.value)
return { success: true as const, request: mapped }
} catch (err) {
if (err instanceof ApiError && err.status >= 400 && err.status < 500) {
return { success: false as const, message: err.message }
}
useApi.value = false
// fall through to local
}
}
+178
View File
@@ -0,0 +1,178 @@
<script setup lang="ts">
import { onMounted, ref } from 'vue'
import BaseButton from '@/components/ui/BaseButton.vue'
import ProfileSubpageLayout from '@/views/profile/components/ProfileSubpageLayout.vue'
import { addressesApi, type SavedAddress } from '@/services/addresses'
import { ApiError } from '@/services/http'
const rows = ref<SavedAddress[]>([])
const text = ref('')
const label = ref('')
const error = ref('')
const loading = ref(true)
const saving = ref(false)
async function load() {
loading.value = true
error.value = ''
try {
rows.value = await addressesApi.list()
} catch (e) {
error.value = e instanceof ApiError || e instanceof Error ? e.message : 'دریافت آدرس‌ها ناموفق بود.'
} finally {
loading.value = false
}
}
onMounted(load)
async function add() {
const trimmed = text.value.trim()
if (trimmed.length < 3 || saving.value) {
error.value = 'آدرس را کامل‌تر بنویسید.'
return
}
saving.value = true
error.value = ''
try {
await addressesApi.create({ text: trimmed, label: label.value.trim() || undefined })
text.value = ''
label.value = ''
rows.value = await addressesApi.list()
} catch (e) {
error.value = e instanceof ApiError || e instanceof Error ? e.message : 'ذخیره آدرس ناموفق بود.'
} finally {
saving.value = false
}
}
async function makeDefault(id: string) {
error.value = ''
try {
rows.value = await addressesApi.makeDefault(id)
} catch (e) {
error.value = e instanceof Error ? e.message : 'تغییر آدرس پیش‌فرض ناموفق بود.'
}
}
async function remove(id: string) {
error.value = ''
try {
rows.value = await addressesApi.remove(id)
} catch (e) {
error.value = e instanceof Error ? e.message : 'حذف آدرس ناموفق بود.'
}
}
</script>
<template>
<ProfileSubpageLayout title="آدرس‌ها" subtitle="برای ارسال کالیته از آدرس پیش‌فرض استفاده می‌شود">
<p v-if="error" class="addr-error">{{ error }}</p>
<p v-if="loading" class="addr-muted">در حال دریافت…</p>
<ul v-else-if="rows.length" class="addr-list">
<li v-for="row in rows" :key="row.id" class="addr-item">
<div>
<strong>{{ row.label || 'آدرس' }}</strong>
<span v-if="row.isDefault" class="addr-badge">پیش‌فرض</span>
<p>{{ row.text }}</p>
</div>
<div class="addr-actions">
<button v-if="!row.isDefault" type="button" @click="makeDefault(row.id)">پیش‌فرض</button>
<button type="button" class="addr-remove" @click="remove(row.id)">حذف</button>
</div>
</li>
</ul>
<p v-else class="addr-muted">هنوز آدرسی ثبت نشده است.</p>
<label class="addr-field">
<span>عنوان (اختیاری)</span>
<input v-model="label" type="text" maxlength="40" placeholder="مثلاً فروشگاه" />
</label>
<label class="addr-field">
<span>آدرس</span>
<textarea v-model="text" rows="3" maxlength="500" placeholder="آدرس کامل محل فعالیت" />
</label>
<BaseButton :loading="saving" @click="add">افزودن آدرس</BaseButton>
</ProfileSubpageLayout>
</template>
<style scoped>
.addr-error {
color: var(--color-danger);
font-size: 0.8125rem;
}
.addr-muted {
color: var(--color-text-muted);
font-size: 0.875rem;
}
.addr-list {
list-style: none;
margin: 0 0 16px;
padding: 0;
display: flex;
flex-direction: column;
gap: 10px;
}
.addr-item {
display: flex;
justify-content: space-between;
gap: 12px;
padding: 12px;
border: 1px solid var(--color-border);
border-radius: 12px;
}
.addr-item p {
margin: 6px 0 0;
font-size: 0.875rem;
line-height: 1.6;
}
.addr-badge {
margin-right: 8px;
font-size: 0.75rem;
color: var(--color-primary);
}
.addr-actions {
display: flex;
flex-direction: column;
gap: 6px;
}
.addr-actions button {
border: 0;
background: transparent;
color: var(--color-primary);
font: inherit;
cursor: pointer;
}
.addr-remove {
color: var(--color-danger) !important;
}
.addr-field {
display: flex;
flex-direction: column;
gap: 6px;
margin-bottom: 12px;
font-size: 0.8125rem;
font-weight: 600;
}
.addr-field input,
.addr-field textarea {
width: 100%;
padding: 10px 12px;
border: 1px solid var(--color-border);
border-radius: 10px;
font: inherit;
font-weight: 400;
color: var(--color-text);
background: transparent;
}
</style>
@@ -91,7 +91,7 @@ const companyRows = computed(() => [
const quickAccess = [
{ label: 'حساب‌های بانکی', icon: IconCashSettlement },
{ label: 'آدرس‌ها', icon: IconMapPin },
{ label: 'آدرس‌ها', icon: IconMapPin, path: '/profile/addresses' },
{ label: 'حمایت و پشتیبانی', icon: IconHeadset, href: 'tel:02112345678' },
{ label: 'فاکتورهای من', icon: IconOrders, path: '/orders' },
]