changeof UI

This commit is contained in:
2026-09-13 21:57:58 +03:30
parent 039e15e0dc
commit 6944788b10
59 changed files with 463 additions and 81 deletions
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{A as e,D as t,I as n,J as r,L as i,N as a,R as o,Tt as s,X as c,_ as l,et as u,j as d,k as f,n as p,nt as m,pt as ee,t as h,xt as g}from"./BasicIcon-B6lR-mG3.js";import{i as te,n as ne}from"./format-BHJptHdF.js";import{t as re}from"./catalog-DNpqlweh.js";import{g as ie,n as _}from"./index-DHK6R1xK.js";import{t as ae}from"./PageHeader-Cza56lK4.js";import{t as oe}from"./useRequirePricedOrder-C1A9oE_o.js";var v=o({__name:`IconSuccessCircle`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(t,n)=>(r(),d(h,{icon:`vuesax-linear:tick-circle`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),se={class:`page cash-mobile-page mobile-only`},ce={class:`cash-page__scroll page__scroll`},le={class:`cash-page__success cash-page__success--done`},ue={class:`cash-page__success-title`},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`},de={class:`accounts-panel`},F={class:`accounts-panel__title`},I={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=p(o({__name:`CashSettlementView`,setup(o){let d=l(),p=ie(),h=re(),U=ee([]),{orderId:W,order:G}=oe(),K=f(()=>G.value?.companyName??``);u(W,async e=>{e&&!p.getOrderById(e)&&await p.fetchOrder(e)},{immediate:!0}),u(()=>G.value?.id,async e=>{if(!e||!G.value){U.value=[];return}h.companies.length||await h.loadCompanies(),U.value=await p.getBankAccountsForOrder(G.value)},{immediate:!0});let q=f(()=>G.value?.finalAmount?ne(G.value.finalAmount):`—`),J=f(()=>{let e=G.value?.cashInvoiceExpiresAt;return e?`مهلت پرداخت این فاکتور تا ${te(e)} است.`:`مبلغ فاکتور را به یکی از حساب‌های زیر واریز و رسید را ثبت کنید.`}),Y=f(()=>{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(o,l)=>(r(),a(t,null,[e(`div`,se,[i(ae,{title:`تسویه نقدی`,"show-back":``,centered:``,onBack:l[0]||=e=>g(d).push(`/orders/${g(W)}`)}),e(`div`,ce,[e(`div`,le,[i(v,{size:56}),e(`p`,ue,`مبلغ قابل پرداخت `+s(q.value),1),e(`p`,y,s(J.value),1)]),e(`section`,b,[e(`h2`,x,s(Y.value),1),(r(!0),a(t,null,c(U.value,t=>(r(),a(`article`,{key:t.id,class:`bank-card`},[e(`div`,S,[e(`span`,C,s(t.bankName),1),e(`span`,w,s(t.bankName.charAt(0)),1)]),e(`div`,T,[l[1]||=e(`span`,{class:`bank-card__label`},`شماره کارت`,-1),e(`strong`,E,s(X(t.cardNumber)),1)]),e(`div`,D,[l[2]||=e(`span`,{class:`bank-card__label`},`شماره شبا`,-1),e(`strong`,O,s(Z(t.iban)),1)])]))),128))])]),e(`div`,k,[i(_,{variant:`outline`,block:``,onClick:Q},{default:m(()=>[...l[3]||=[n(`مشاهده سفارش`,-1)]]),_:1}),i(_,{block:``,class:`cash-page__submit`,onClick:$},{default:m(()=>[...l[4]||=[n(` ثبت رسید پرداخت `,-1)]]),_:1})])]),e(`div`,A,[e(`header`,j,[l[5]||=e(`h1`,{class:`desktop-page__title`},`تسویه نقدی`,-1),e(`p`,M,s(J.value),1)]),e(`div`,N,[i(v,{size:56}),e(`p`,P,`مبلغ قابل پرداخت `+s(q.value),1)]),e(`section`,de,[e(`h2`,F,s(Y.value),1),e(`div`,I,[(r(!0),a(t,null,c(U.value,t=>(r(),a(`article`,{key:t.id,class:`bank-card`},[e(`div`,L,[e(`span`,R,s(t.bankName),1),e(`span`,z,s(t.bankName.charAt(0)),1)]),e(`div`,B,[l[6]||=e(`span`,{class:`bank-card__label`},`شماره کارت`,-1),e(`strong`,V,s(X(t.cardNumber)),1)]),e(`div`,H,[l[7]||=e(`span`,{class:`bank-card__label`},`شماره شبا`,-1),e(`strong`,fe,s(Z(t.iban)),1)])]))),128))])]),e(`div`,pe,[i(_,{variant:`outline`,class:`desktop-btn-compact`,onClick:Q},{default:m(()=>[...l[8]||=[n(` مشاهده سفارش `,-1)]]),_:1}),i(_,{class:`desktop-btn-compact`,onClick:$},{default:m(()=>[...l[9]||=[n(` ثبت رسید پرداخت `,-1)]]),_:1})])])],64))}}),[[`__scopeId`,`data-v-c299caf6`]]);export{U as default};
import{A as e,D as t,I as n,J as r,L as i,N as a,R as o,Tt as s,X as c,_ as l,et as u,j as d,k as f,n as p,nt as m,pt as ee,t as h,xt as g}from"./BasicIcon-B6lR-mG3.js";import{i as te,n as ne}from"./format-BHJptHdF.js";import{t as re}from"./catalog-DNpqlweh.js";import{g as ie,n as _}from"./index-B20WsQhf.js";import{t as ae}from"./PageHeader-DXkA75qK.js";import{t as oe}from"./useRequirePricedOrder-BVRY4vCB.js";var v=o({__name:`IconSuccessCircle`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(t,n)=>(r(),d(h,{icon:`vuesax-linear:tick-circle`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),se={class:`page cash-mobile-page mobile-only`},ce={class:`cash-page__scroll page__scroll`},le={class:`cash-page__success cash-page__success--done`},ue={class:`cash-page__success-title`},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`},de={class:`accounts-panel`},F={class:`accounts-panel__title`},I={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=p(o({__name:`CashSettlementView`,setup(o){let d=l(),p=ie(),h=re(),U=ee([]),{orderId:W,order:G}=oe(),K=f(()=>G.value?.companyName??``);u(W,async e=>{e&&!p.getOrderById(e)&&await p.fetchOrder(e)},{immediate:!0}),u(()=>G.value?.id,async e=>{if(!e||!G.value){U.value=[];return}h.companies.length||await h.loadCompanies(),U.value=await p.getBankAccountsForOrder(G.value)},{immediate:!0});let q=f(()=>G.value?.finalAmount?ne(G.value.finalAmount):`—`),J=f(()=>{let e=G.value?.cashInvoiceExpiresAt;return e?`مهلت پرداخت این فاکتور تا ${te(e)} است.`:`مبلغ فاکتور را به یکی از حساب‌های زیر واریز و رسید را ثبت کنید.`}),Y=f(()=>{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(o,l)=>(r(),a(t,null,[e(`div`,se,[i(ae,{title:`تسویه نقدی`,"show-back":``,centered:``,onBack:l[0]||=e=>g(d).push(`/orders/${g(W)}`)}),e(`div`,ce,[e(`div`,le,[i(v,{size:56}),e(`p`,ue,`مبلغ قابل پرداخت `+s(q.value),1),e(`p`,y,s(J.value),1)]),e(`section`,b,[e(`h2`,x,s(Y.value),1),(r(!0),a(t,null,c(U.value,t=>(r(),a(`article`,{key:t.id,class:`bank-card`},[e(`div`,S,[e(`span`,C,s(t.bankName),1),e(`span`,w,s(t.bankName.charAt(0)),1)]),e(`div`,T,[l[1]||=e(`span`,{class:`bank-card__label`},`شماره کارت`,-1),e(`strong`,E,s(X(t.cardNumber)),1)]),e(`div`,D,[l[2]||=e(`span`,{class:`bank-card__label`},`شماره شبا`,-1),e(`strong`,O,s(Z(t.iban)),1)])]))),128))])]),e(`div`,k,[i(_,{variant:`outline`,block:``,onClick:Q},{default:m(()=>[...l[3]||=[n(`مشاهده سفارش`,-1)]]),_:1}),i(_,{block:``,class:`cash-page__submit`,onClick:$},{default:m(()=>[...l[4]||=[n(` ثبت رسید پرداخت `,-1)]]),_:1})])]),e(`div`,A,[e(`header`,j,[l[5]||=e(`h1`,{class:`desktop-page__title`},`تسویه نقدی`,-1),e(`p`,M,s(J.value),1)]),e(`div`,N,[i(v,{size:56}),e(`p`,P,`مبلغ قابل پرداخت `+s(q.value),1)]),e(`section`,de,[e(`h2`,F,s(Y.value),1),e(`div`,I,[(r(!0),a(t,null,c(U.value,t=>(r(),a(`article`,{key:t.id,class:`bank-card`},[e(`div`,L,[e(`span`,R,s(t.bankName),1),e(`span`,z,s(t.bankName.charAt(0)),1)]),e(`div`,B,[l[6]||=e(`span`,{class:`bank-card__label`},`شماره کارت`,-1),e(`strong`,V,s(X(t.cardNumber)),1)]),e(`div`,H,[l[7]||=e(`span`,{class:`bank-card__label`},`شماره شبا`,-1),e(`strong`,fe,s(Z(t.iban)),1)])]))),128))])]),e(`div`,pe,[i(_,{variant:`outline`,class:`desktop-btn-compact`,onClick:Q},{default:m(()=>[...l[8]||=[n(` مشاهده سفارش `,-1)]]),_:1}),i(_,{class:`desktop-btn-compact`,onClick:$},{default:m(()=>[...l[9]||=[n(` ثبت رسید پرداخت `,-1)]]),_:1})])])],64))}}),[[`__scopeId`,`data-v-c299caf6`]]);export{U as default};
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{A as e,D as t,J as n,K as r,L as i,N as a,R as o,Tt as s,X as c,_ as l,et as u,g as d,j as f,k as p,n as m,pt as h,xt as g}from"./BasicIcon-B6lR-mG3.js";import{t as _}from"./catalog-DNpqlweh.js";import{x as v}from"./index-DHK6R1xK.js";import{t as y}from"./EmptyState-C6UAJ5_3.js";import{t as b}from"./PageSkeleton-BImjuI6S.js";import{t as x}from"./PageHeader-Cza56lK4.js";import{t as S}from"./SearchField-txVsGGXT.js";var C={class:`page catalog-mobile-page mobile-only`},w={class:`page__scroll page__scroll--with-nav catalog-mobile-scroll`},T={key:1,class:`catalog-mobile-list`},E=[`onClick`],D={class:`catalog-card__icon`},O={class:`catalog-card__info`},k={class:`catalog-card__count`},A={class:`desktop-page catalog-desktop-page desktop-only`},j={class:`desktop-page__head`},M={class:`desktop-page__title`},N={key:0,class:`desktop-grid-3`},P=[`onClick`],F={class:`catalog-card__icon`},I={class:`catalog-card__info`},L={class:`catalog-card__count`},R=m(o({__name:`CatalogListView`,setup(o){let m=d(),R=l(),z=_(),B=h(!0),V=p(()=>m.params.companyId),H=p(()=>z.getCompany(V.value)),U=h(``),W=p(()=>z.fetchCatalogs(V.value,U.value));async function G(){B.value=!0,z.getCompany(V.value)||await z.loadCompanies(),await z.loadCatalogs(V.value),B.value=!1}r(G),u(V,G);function K(e){R.push({name:`catalog-detail`,params:{catalogId:e}})}function q(e){let t=z.getCatalog(e);return t?.productCount==null?z.fetchProducts(e).length:t.productCount}return(r,o)=>(n(),a(t,null,[e(`div`,C,[i(x,{title:H.value?.name??`کالیته‌ها`,subtitle:`کالیته مورد نظر را انتخاب کنید`,"show-back":``,centered:``,onBack:o[0]||=e=>g(R).push(`/`)},null,8,[`title`]),i(S,{modelValue:U.value,"onUpdate:modelValue":o[1]||=e=>U.value=e,placeholder:`جستجو بر اساس کد یا نام کالیته...`,class:`catalog-page__search`},null,8,[`modelValue`]),e(`div`,w,[B.value?(n(),f(b,{key:0,variant:`cards`,rows:5})):W.value.length>0?(n(),a(`div`,T,[(n(!0),a(t,null,c(W.value,t=>(n(),a(`button`,{key:t.id,type:`button`,class:`catalog-card`,onClick:e=>K(t.id)},[e(`span`,D,[i(v,{size:22})]),e(`div`,O,[e(`h3`,null,`کالیته کد `+s(t.code),1),e(`p`,null,s(t.name),1)]),e(`span`,k,s(q(t.id))+` محصول`,1)],8,E))),128))])):(n(),f(y,{key:2,variant:U.value?`search`:`catalogs`,message:U.value?`با این جستجو کالیته‌ای پیدا نشد`:`برای این شرکت هنوز کالیته‌ای ثبت نشده است`},null,8,[`variant`,`message`]))])]),e(`div`,A,[e(`header`,j,[e(`h1`,M,s(H.value?.name??`کالیته‌ها`),1),o[3]||=e(`p`,{class:`desktop-page__subtitle`},`کالیته مورد نظر را انتخاب کنید`,-1)]),i(S,{modelValue:U.value,"onUpdate:modelValue":o[2]||=e=>U.value=e,placeholder:`جستجو بر اساس کد یا نام کالیته...`,class:`catalog-page__search`},null,8,[`modelValue`]),W.value.length>0?(n(),a(`div`,N,[(n(!0),a(t,null,c(W.value,t=>(n(),a(`button`,{key:t.id,type:`button`,class:`catalog-card catalog-card--desktop`,onClick:e=>K(t.id)},[e(`span`,F,[i(v,{size:24})]),e(`div`,I,[e(`h3`,null,`کالیته کد `+s(t.code),1),e(`p`,null,s(t.name),1)]),e(`span`,L,s(q(t.id))+` محصول`,1)],8,P))),128))])):(n(),f(y,{key:1,variant:U.value?`search`:`catalogs`,message:U.value?`با این جستجو کالیته‌ای پیدا نشد`:`برای این شرکت هنوز کالیته‌ای ثبت نشده است`},null,8,[`variant`,`message`]))])],64))}}),[[`__scopeId`,`data-v-986a9367`]]);export{R as default};
import{A as e,D as t,J as n,K as r,L as i,N as a,R as o,Tt as s,X as c,_ as l,et as u,g as d,j as f,k as p,n as m,pt as h,xt as g}from"./BasicIcon-B6lR-mG3.js";import{t as _}from"./catalog-DNpqlweh.js";import{x as v}from"./index-B20WsQhf.js";import{t as y}from"./EmptyState-C6UAJ5_3.js";import{t as b}from"./PageSkeleton-BImjuI6S.js";import{t as x}from"./PageHeader-DXkA75qK.js";import{t as S}from"./SearchField-txVsGGXT.js";var C={class:`page catalog-mobile-page mobile-only`},w={class:`page__scroll page__scroll--with-nav catalog-mobile-scroll`},T={key:1,class:`catalog-mobile-list`},E=[`onClick`],D={class:`catalog-card__icon`},O={class:`catalog-card__info`},k={class:`catalog-card__count`},A={class:`desktop-page catalog-desktop-page desktop-only`},j={class:`desktop-page__head`},M={class:`desktop-page__title`},N={key:0,class:`desktop-grid-3`},P=[`onClick`],F={class:`catalog-card__icon`},I={class:`catalog-card__info`},L={class:`catalog-card__count`},R=m(o({__name:`CatalogListView`,setup(o){let m=d(),R=l(),z=_(),B=h(!0),V=p(()=>m.params.companyId),H=p(()=>z.getCompany(V.value)),U=h(``),W=p(()=>z.fetchCatalogs(V.value,U.value));async function G(){B.value=!0,z.getCompany(V.value)||await z.loadCompanies(),await z.loadCatalogs(V.value),B.value=!1}r(G),u(V,G);function K(e){R.push({name:`catalog-detail`,params:{catalogId:e}})}function q(e){let t=z.getCatalog(e);return t?.productCount==null?z.fetchProducts(e).length:t.productCount}return(r,o)=>(n(),a(t,null,[e(`div`,C,[i(x,{title:H.value?.name??`کالیته‌ها`,subtitle:`کالیته مورد نظر را انتخاب کنید`,"show-back":``,centered:``,onBack:o[0]||=e=>g(R).push(`/`)},null,8,[`title`]),i(S,{modelValue:U.value,"onUpdate:modelValue":o[1]||=e=>U.value=e,placeholder:`جستجو بر اساس کد یا نام کالیته...`,class:`catalog-page__search`},null,8,[`modelValue`]),e(`div`,w,[B.value?(n(),f(b,{key:0,variant:`cards`,rows:5})):W.value.length>0?(n(),a(`div`,T,[(n(!0),a(t,null,c(W.value,t=>(n(),a(`button`,{key:t.id,type:`button`,class:`catalog-card`,onClick:e=>K(t.id)},[e(`span`,D,[i(v,{size:22})]),e(`div`,O,[e(`h3`,null,`کالیته کد `+s(t.code),1),e(`p`,null,s(t.name),1)]),e(`span`,k,s(q(t.id))+` محصول`,1)],8,E))),128))])):(n(),f(y,{key:2,variant:U.value?`search`:`catalogs`,message:U.value?`با این جستجو کالیته‌ای پیدا نشد`:`برای این شرکت هنوز کالیته‌ای ثبت نشده است`},null,8,[`variant`,`message`]))])]),e(`div`,A,[e(`header`,j,[e(`h1`,M,s(H.value?.name??`کالیته‌ها`),1),o[3]||=e(`p`,{class:`desktop-page__subtitle`},`کالیته مورد نظر را انتخاب کنید`,-1)]),i(S,{modelValue:U.value,"onUpdate:modelValue":o[2]||=e=>U.value=e,placeholder:`جستجو بر اساس کد یا نام کالیته...`,class:`catalog-page__search`},null,8,[`modelValue`]),W.value.length>0?(n(),a(`div`,N,[(n(!0),a(t,null,c(W.value,t=>(n(),a(`button`,{key:t.id,type:`button`,class:`catalog-card catalog-card--desktop`,onClick:e=>K(t.id)},[e(`span`,F,[i(v,{size:24})]),e(`div`,I,[e(`h3`,null,`کالیته کد `+s(t.code),1),e(`p`,null,s(t.name),1)]),e(`span`,L,s(q(t.id))+` محصول`,1)],8,P))),128))])):(n(),f(y,{key:1,variant:U.value?`search`:`catalogs`,message:U.value?`با این جستجو کالیته‌ای پیدا نشد`:`برای این شرکت هنوز کالیته‌ای ثبت نشده است`},null,8,[`variant`,`message`]))])],64))}}),[[`__scopeId`,`data-v-986a9367`]]);export{R as default};
@@ -1 +1 @@
import{A as e,C as t,D as n,I as r,J as i,K as a,L as o,N as s,R as c,St as l,Tt as u,X as d,_ as f,g as p,j as m,k as h,n as g,pt as _,rt as v,xt as y}from"./BasicIcon-B6lR-mG3.js";import{o as b}from"./format-BHJptHdF.js";import{t as x}from"./PageSkeleton-BImjuI6S.js";import{t as S}from"./crm-DbcoqKAF.js";import{t as C}from"./PageHeader-Cza56lK4.js";import{t as w}from"./catalogRequests-4v_wDAbs.js";var T={class:`page`},E={class:`page__scroll page__scroll--with-nav body`},D={class:`hint`},O={key:1,class:`error`},k=[`value`,`onInput`],A={class:`note`},j={class:`summary`},M=[`disabled`],N=g(c({__name:`CatalogRequestView`,setup(c){let g=p(),N=f(),P=S(),F=w(),I=_(!0),L=_(!1),R=_(null),z=_(``),B=_([]),V=_({}),H=h(()=>String(g.query.productId??``)),U=h(()=>String(g.query.catalogId??``)),W=h(()=>B.value.filter(e=>(V.value[e.id]??0)>0).map(e=>({productId:e.id,productName:e.name,productCode:e.code,quantity:V.value[e.id]??0})));a(async()=>{I.value=!0,R.value=null;try{let e=await P.loadBrowseProducts(U.value?{catalogId:U.value}:void 0),t=H.value;B.value=t?[...e].sort((e,n)=>Number(n.id===t)-Number(e.id===t)):e,t&&(V.value={...V.value,[t]:1})}catch(e){R.value=e instanceof Error?e.message:`بارگذاری محصولات ناموفق بود.`}finally{I.value=!1}});function G(e,t){V.value={...V.value,[e]:Math.max(0,Math.floor(t)||0)}}async function K(){L.value=!0,R.value=null;try{let e=await F.create({items:W.value,note:z.value});if(!e.success){R.value=e.message;return}N.push(`/catalog-requests`)}finally{L.value=!1}}return(a,c)=>(i(),s(`div`,T,[o(C,{title:`درخواست کالیته`,"show-back":``,centered:``,onBack:c[0]||=e=>y(N).back()}),e(`div`,E,[e(`p`,D,u(H.value?`این محصول برای درخواست کالیته انتخاب شده است. در صورت نیاز اقلام دیگر را هم اضافه کنید.`:`محصولات و تعداد اقلام موردنظر را مشخص کنید.`),1),I.value?(i(),m(x,{key:0,variant:`form`})):R.value?(i(),s(`p`,O,u(R.value),1)):(i(),s(n,{key:2},[(i(!0),s(n,null,d(B.value,t=>(i(),s(`article`,{key:t.id,class:l([`row`,{"row--selected":H.value===t.id}])},[e(`div`,null,[e(`strong`,null,u(t.name),1),e(`span`,null,`کد `+u(t.code),1)]),e(`input`,{class:`qty`,type:`number`,min:`0`,value:V.value[t.id]??0,onInput:e=>G(t.id,Number(e.target.value))},null,40,k)],2))),128)),e(`label`,A,[c[3]||=r(` توضیحات `,-1),v(e(`textarea`,{"onUpdate:modelValue":c[1]||=e=>z.value=e,rows:`3`,placeholder:`آدرس یا توضیحات اختیاری`},null,512),[[t,z.value]])]),e(`p`,j,`اقلام انتخاب‌شده: `+u(y(b)(W.value.length)),1),e(`button`,{type:`button`,class:`submit`,disabled:L.value,onClick:K},u(L.value?`در حال ثبت...`:`ثبت درخواست کالیته`),9,M),e(`button`,{type:`button`,class:`linkish`,onClick:c[2]||=e=>y(N).push(`/catalog-requests`)},` وضعیت درخواست‌های قبلی `)],64))])]))}}),[[`__scopeId`,`data-v-6bde0457`]]);export{N as default};
import{A as e,C as t,D as n,I as r,J as i,K as a,L as o,N as s,R as c,St as l,Tt as u,X as d,_ as f,g as p,j as m,k as h,n as g,pt as _,rt as v,xt as y}from"./BasicIcon-B6lR-mG3.js";import{o as b}from"./format-BHJptHdF.js";import{t as x}from"./PageSkeleton-BImjuI6S.js";import{t as S}from"./crm-DbcoqKAF.js";import{t as C}from"./PageHeader-DXkA75qK.js";import{t as w}from"./catalogRequests-4v_wDAbs.js";var T={class:`page`},E={class:`page__scroll page__scroll--with-nav body`},D={class:`hint`},O={key:1,class:`error`},k=[`value`,`onInput`],A={class:`note`},j={class:`summary`},M=[`disabled`],N=g(c({__name:`CatalogRequestView`,setup(c){let g=p(),N=f(),P=S(),F=w(),I=_(!0),L=_(!1),R=_(null),z=_(``),B=_([]),V=_({}),H=h(()=>String(g.query.productId??``)),U=h(()=>String(g.query.catalogId??``)),W=h(()=>B.value.filter(e=>(V.value[e.id]??0)>0).map(e=>({productId:e.id,productName:e.name,productCode:e.code,quantity:V.value[e.id]??0})));a(async()=>{I.value=!0,R.value=null;try{let e=await P.loadBrowseProducts(U.value?{catalogId:U.value}:void 0),t=H.value;B.value=t?[...e].sort((e,n)=>Number(n.id===t)-Number(e.id===t)):e,t&&(V.value={...V.value,[t]:1})}catch(e){R.value=e instanceof Error?e.message:`بارگذاری محصولات ناموفق بود.`}finally{I.value=!1}});function G(e,t){V.value={...V.value,[e]:Math.max(0,Math.floor(t)||0)}}async function K(){L.value=!0,R.value=null;try{let e=await F.create({items:W.value,note:z.value});if(!e.success){R.value=e.message;return}N.push(`/catalog-requests`)}finally{L.value=!1}}return(a,c)=>(i(),s(`div`,T,[o(C,{title:`درخواست کالیته`,"show-back":``,centered:``,onBack:c[0]||=e=>y(N).back()}),e(`div`,E,[e(`p`,D,u(H.value?`این محصول برای درخواست کالیته انتخاب شده است. در صورت نیاز اقلام دیگر را هم اضافه کنید.`:`محصولات و تعداد اقلام موردنظر را مشخص کنید.`),1),I.value?(i(),m(x,{key:0,variant:`form`})):R.value?(i(),s(`p`,O,u(R.value),1)):(i(),s(n,{key:2},[(i(!0),s(n,null,d(B.value,t=>(i(),s(`article`,{key:t.id,class:l([`row`,{"row--selected":H.value===t.id}])},[e(`div`,null,[e(`strong`,null,u(t.name),1),e(`span`,null,`کد `+u(t.code),1)]),e(`input`,{class:`qty`,type:`number`,min:`0`,value:V.value[t.id]??0,onInput:e=>G(t.id,Number(e.target.value))},null,40,k)],2))),128)),e(`label`,A,[c[3]||=r(` توضیحات `,-1),v(e(`textarea`,{"onUpdate:modelValue":c[1]||=e=>z.value=e,rows:`3`,placeholder:`آدرس یا توضیحات اختیاری`},null,512),[[t,z.value]])]),e(`p`,j,`اقلام انتخاب‌شده: `+u(y(b)(W.value.length)),1),e(`button`,{type:`button`,class:`submit`,disabled:L.value,onClick:K},u(L.value?`در حال ثبت...`:`ثبت درخواست کالیته`),9,M),e(`button`,{type:`button`,class:`linkish`,onClick:c[2]||=e=>y(N).push(`/catalog-requests`)},` وضعیت درخواست‌های قبلی `)],64))])]))}}),[[`__scopeId`,`data-v-6bde0457`]]);export{N as default};
@@ -1 +1 @@
import{A as e,D as t,J as n,K as r,L as i,M as a,N as o,R as s,Tt as c,X as l,_ as u,n as d,xt as f}from"./BasicIcon-B6lR-mG3.js";import{o as p}from"./format-BHJptHdF.js";import{t as m}from"./PageHeader-Cza56lK4.js";import{t as h}from"./catalogRequests-4v_wDAbs.js";var g={class:`page`},_={class:`page__scroll page__scroll--with-nav body`},v={key:0,class:`empty`},y={class:`card__top`},b={class:`badge`},x={key:0,class:`note`},S=d(s({__name:`CatalogRequestsView`,setup(s){let d=u(),S=h();return r(()=>S.hydrate()),(r,s)=>(n(),o(`div`,g,[i(m,{title:`وضعیت کالیته‌ها`,"show-back":``,centered:``,onBack:s[0]||=e=>f(d).push(`/catalogs`)}),e(`div`,_,[e(`button`,{type:`button`,class:`new-btn`,onClick:s[1]||=e=>f(d).push(`/catalog-request`)},` درخواست کالیته جدید `),f(S).sorted.length?a(``,!0):(n(),o(`p`,v,`هنوز درخواستی ثبت نکرده‌اید.`)),(n(!0),o(t,null,l(f(S).sorted,r=>(n(),o(`article`,{key:r.id,class:`card`},[e(`div`,y,[e(`strong`,null,`درخواست `+c(r.id.slice(-6)),1),e(`span`,b,c(f(S).statusLabel(r.status)),1)]),e(`p`,null,c(r.createdAt.slice(0,10)),1),e(`p`,null,c(f(p)(r.items.length))+` قلم`,1),e(`ul`,null,[(n(!0),o(t,null,l(r.items,e=>(n(),o(`li`,{key:e.productId},c(e.productName)+` × `+c(f(p)(e.quantity)),1))),128))]),r.note?(n(),o(`p`,x,c(r.note),1)):a(``,!0)]))),128))])]))}}),[[`__scopeId`,`data-v-fc04181d`]]);export{S as default};
import{A as e,D as t,J as n,K as r,L as i,M as a,N as o,R as s,Tt as c,X as l,_ as u,n as d,xt as f}from"./BasicIcon-B6lR-mG3.js";import{o as p}from"./format-BHJptHdF.js";import{t as m}from"./PageHeader-DXkA75qK.js";import{t as h}from"./catalogRequests-4v_wDAbs.js";var g={class:`page`},_={class:`page__scroll page__scroll--with-nav body`},v={key:0,class:`empty`},y={class:`card__top`},b={class:`badge`},x={key:0,class:`note`},S=d(s({__name:`CatalogRequestsView`,setup(s){let d=u(),S=h();return r(()=>S.hydrate()),(r,s)=>(n(),o(`div`,g,[i(m,{title:`وضعیت کالیته‌ها`,"show-back":``,centered:``,onBack:s[0]||=e=>f(d).push(`/catalogs`)}),e(`div`,_,[e(`button`,{type:`button`,class:`new-btn`,onClick:s[1]||=e=>f(d).push(`/catalog-request`)},` درخواست کالیته جدید `),f(S).sorted.length?a(``,!0):(n(),o(`p`,v,`هنوز درخواستی ثبت نکرده‌اید.`)),(n(!0),o(t,null,l(f(S).sorted,r=>(n(),o(`article`,{key:r.id,class:`card`},[e(`div`,y,[e(`strong`,null,`درخواست `+c(r.id.slice(-6)),1),e(`span`,b,c(f(S).statusLabel(r.status)),1)]),e(`p`,null,c(r.createdAt.slice(0,10)),1),e(`p`,null,c(f(p)(r.items.length))+` قلم`,1),e(`ul`,null,[(n(!0),o(t,null,l(r.items,e=>(n(),o(`li`,{key:e.productId},c(e.productName)+` × `+c(f(p)(e.quantity)),1))),128))]),r.note?(n(),o(`p`,x,c(r.note),1)):a(``,!0)]))),128))])]))}}),[[`__scopeId`,`data-v-fc04181d`]]);export{S as default};
@@ -1 +1 @@
import{A as e,D as t,J as n,K as r,L as i,M as a,N as o,R as s,St as c,Tt as l,X as u,_ as d,g as f,j as p,k as m,n as h,pt as g,wt as _,xt as v}from"./BasicIcon-B6lR-mG3.js";import{o as y}from"./format-BHJptHdF.js";import{t as b}from"./catalog-DNpqlweh.js";import{i as x}from"./index-DHK6R1xK.js";import{t as S}from"./IconChevronBack-BXRfc2bX.js";import{t as C}from"./PageSkeleton-BImjuI6S.js";import{t as ee}from"./crm-DbcoqKAF.js";import{t as te}from"./useGoBack-yePcdjuj.js";import{a as w,n as T}from"./catalogGallery-sguYVy7M.js";import{t as E}from"./SearchField-txVsGGXT.js";import{t as D}from"./IconSearch-CQT-DmXF.js";var O={class:`page calite-hub`},k={class:`calite-hub__nav`},A={class:`calite-hub__nav-end`},j=[`aria-label`,`aria-pressed`],M={class:`page__scroll page__scroll--with-nav calite-hub__scroll`},N={class:`calite-hub__chips`,role:`tablist`,"aria-label":`مرتب‌سازی کالیته‌ها`},P=[`onClick`],F={key:2,class:`calite-hub__empty`},I={key:3,class:`calite-hub__list`},L=[`onClick`],R={key:0,class:`calite-card__badge`},z={class:`calite-card__copy`,dir:`rtl`},ne={class:`mr-4 text-white`},B={class:`text-lg font-bold`},V={class:`text-md`},H={class:`text-xs mt-4`},U=h(s({__name:`CatalogsHubView`,setup(s){let h=f(),U=d(),{goBack:W}=te(`/`),G=b(),K=ee(),q=g([]),J=g([]),Y=g(!0),X=g(!1),Z=g(``),Q=g(`all`),re=[{id:`all`,label:`همه`},{id:`newest`,label:`جدیدترین`},{id:`popular`,label:`محبوب‌ترین`},{id:`season`,label:`بر اساس فصل`}],ie=m(()=>T(q.value,J.value)),$=m(()=>w(ie.value,Q.value,Z.value));r(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(h.query.id??``);r&&q.value.some(e=>e.id===r)&&U.replace({name:`catalog-detail`,params:{catalogId:r}})}catch{q.value=[]}finally{Y.value=!1}});function ae(e){U.push({name:`catalog-detail`,params:{catalogId:e}})}function oe(){X.value=!X.value,X.value||(Z.value=``)}function se(e){let t=e.season===`winter`?`مناسب زمستان`:e.season===`summer`?`مناسب تابستان`:`مناسب چهار فصل`;return`${y(e.patternCount)} طرح • ${t}`}return(r,s)=>(n(),o(`div`,O,[e(`header`,k,[e(`button`,{type:`button`,class:`icon-btn mobile-only`,"aria-label":`بازگشت`,onClick:s[0]||=(...e)=>v(W)&&v(W)(...e)},[i(S,{size:20})]),s[2]||=e(`h1`,null,`کالیته‌ها`,-1),e(`div`,A,[i(x,{variant:`inline`,class:`mobile-only`}),e(`button`,{type:`button`,class:`icon-btn`,"aria-label":X.value?`بستن جستجو`:`جستجو`,"aria-pressed":X.value,onClick:oe},[i(D,{size:20})],8,j)])]),e(`div`,M,[s[4]||=e(`p`,{class:`calite-hub__lead`},`مجموعه‌ای از بهترین پارچه‌ها، در یک نگاه`,-1),X.value?(n(),p(E,{key:0,"model-value":Z.value,placeholder:`جستجوی نام کالیته...`,"onUpdate:modelValue":s[1]||=e=>Z.value=e},null,8,[`model-value`])):a(``,!0),e(`div`,N,[(n(),o(t,null,u(re,t=>e(`button`,{key:t.id,type:`button`,class:c([`calite-chip`,{"is-on":Q.value===t.id}]),onClick:e=>Q.value=t.id},l(t.label),11,P)),64))]),Y.value?(n(),p(C,{key:1,variant:`cards`,rows:4})):$.value.length?(n(),o(`div`,I,[(n(!0),o(t,null,u($.value,t=>(n(),o(`button`,{key:t.id,type:`button`,class:`calite-card`,dir:`ltr`,onClick:e=>ae(t.id)},[e(`span`,{class:`calite-card__photo`,style:_(t.imageUrl?{backgroundImage:`url(${t.imageUrl})`}:void 0)},null,4),t.badge?(n(),o(`span`,R,l(t.badge===`new`?`جدید`:`پرفروش`),1)):a(``,!0),e(`div`,z,[s[3]||=e(`svg`,{class:`calite-card__arrow`,width:`12`,height:`16`,viewBox:`0 0 8 12`,fill:`none`,"aria-hidden":`true`},[e(`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),e(`div`,ne,[e(`div`,B,l(t.title),1),e(`div`,V,l(t.subtitle),1),e(`div`,H,l(se(t)),1)])])],8,L))),128))])):(n(),o(`p`,F,`کالیته‌ای یافت نشد.`))])]))}}),[[`__scopeId`,`data-v-a6e04708`]]);export{U as default};
import{A as e,D as t,J as n,K as r,L as i,M as a,N as o,R as s,St as c,Tt as l,X as u,_ as d,g as f,j as p,k as m,n as h,pt as g,wt as _,xt as v}from"./BasicIcon-B6lR-mG3.js";import{o as y}from"./format-BHJptHdF.js";import{t as b}from"./catalog-DNpqlweh.js";import{i as x}from"./index-B20WsQhf.js";import{t as S}from"./IconChevronBack-BXRfc2bX.js";import{t as C}from"./PageSkeleton-BImjuI6S.js";import{t as ee}from"./crm-DbcoqKAF.js";import{t as te}from"./useGoBack-yePcdjuj.js";import{a as w,n as T}from"./catalogGallery-sguYVy7M.js";import{t as E}from"./SearchField-txVsGGXT.js";import{t as D}from"./IconSearch-CQT-DmXF.js";var O={class:`page calite-hub`},k={class:`calite-hub__nav`},A={class:`calite-hub__nav-end`},j=[`aria-label`,`aria-pressed`],M={class:`page__scroll page__scroll--with-nav calite-hub__scroll`},N={class:`calite-hub__chips`,role:`tablist`,"aria-label":`مرتب‌سازی کالیته‌ها`},P=[`onClick`],F={key:2,class:`calite-hub__empty`},I={key:3,class:`calite-hub__list`},L=[`onClick`],R={key:0,class:`calite-card__badge`},z={class:`calite-card__copy`,dir:`rtl`},ne={class:`mr-4 text-white`},B={class:`text-lg font-bold`},V={class:`text-md`},H={class:`text-xs mt-4`},U=h(s({__name:`CatalogsHubView`,setup(s){let h=f(),U=d(),{goBack:W}=te(`/`),G=b(),K=ee(),q=g([]),J=g([]),Y=g(!0),X=g(!1),Z=g(``),Q=g(`all`),re=[{id:`all`,label:`همه`},{id:`newest`,label:`جدیدترین`},{id:`popular`,label:`محبوب‌ترین`},{id:`season`,label:`بر اساس فصل`}],ie=m(()=>T(q.value,J.value)),$=m(()=>w(ie.value,Q.value,Z.value));r(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(h.query.id??``);r&&q.value.some(e=>e.id===r)&&U.replace({name:`catalog-detail`,params:{catalogId:r}})}catch{q.value=[]}finally{Y.value=!1}});function ae(e){U.push({name:`catalog-detail`,params:{catalogId:e}})}function oe(){X.value=!X.value,X.value||(Z.value=``)}function se(e){let t=e.season===`winter`?`مناسب زمستان`:e.season===`summer`?`مناسب تابستان`:`مناسب چهار فصل`;return`${y(e.patternCount)} طرح • ${t}`}return(r,s)=>(n(),o(`div`,O,[e(`header`,k,[e(`button`,{type:`button`,class:`icon-btn mobile-only`,"aria-label":`بازگشت`,onClick:s[0]||=(...e)=>v(W)&&v(W)(...e)},[i(S,{size:20})]),s[2]||=e(`h1`,null,`کالیته‌ها`,-1),e(`div`,A,[i(x,{variant:`inline`,class:`mobile-only`}),e(`button`,{type:`button`,class:`icon-btn`,"aria-label":X.value?`بستن جستجو`:`جستجو`,"aria-pressed":X.value,onClick:oe},[i(D,{size:20})],8,j)])]),e(`div`,M,[s[4]||=e(`p`,{class:`calite-hub__lead`},`مجموعه‌ای از بهترین پارچه‌ها، در یک نگاه`,-1),X.value?(n(),p(E,{key:0,"model-value":Z.value,placeholder:`جستجوی نام کالیته...`,"onUpdate:modelValue":s[1]||=e=>Z.value=e},null,8,[`model-value`])):a(``,!0),e(`div`,N,[(n(),o(t,null,u(re,t=>e(`button`,{key:t.id,type:`button`,class:c([`calite-chip`,{"is-on":Q.value===t.id}]),onClick:e=>Q.value=t.id},l(t.label),11,P)),64))]),Y.value?(n(),p(C,{key:1,variant:`cards`,rows:4})):$.value.length?(n(),o(`div`,I,[(n(!0),o(t,null,u($.value,t=>(n(),o(`button`,{key:t.id,type:`button`,class:`calite-card`,dir:`ltr`,onClick:e=>ae(t.id)},[e(`span`,{class:`calite-card__photo`,style:_(t.imageUrl?{backgroundImage:`url(${t.imageUrl})`}:void 0)},null,4),t.badge?(n(),o(`span`,R,l(t.badge===`new`?`جدید`:`پرفروش`),1)):a(``,!0),e(`div`,z,[s[3]||=e(`svg`,{class:`calite-card__arrow`,width:`12`,height:`16`,viewBox:`0 0 8 12`,fill:`none`,"aria-hidden":`true`},[e(`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),e(`div`,ne,[e(`div`,B,l(t.title),1),e(`div`,V,l(t.subtitle),1),e(`div`,H,l(se(t)),1)])])],8,L))),128))])):(n(),o(`p`,F,`کالیته‌ای یافت نشد.`))])]))}}),[[`__scopeId`,`data-v-a6e04708`]]);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{A as e,J as t,L as n,N as r,R as i,Tt as a,_ as o,et as s,k as c,n as l,xt as u}from"./BasicIcon-B6lR-mG3.js";import{n as d}from"./format-BHJptHdF.js";import{b as f,g as p}from"./index-DHK6R1xK.js";import{t as m}from"./IconEditPen-CppsBLM9.js";import{t as h}from"./PageHeader-Cza56lK4.js";import{t as g}from"./useRequirePricedOrder-C1A9oE_o.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=l(i({__name:`CheckModeSelectView`,setup(i){let l=o(),w=p(),{orderId:T,order:E}=g(),D=c(()=>E.value?.finalAmount?d(E.value.finalAmount):`—`);s(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(i,o)=>(t(),r(`div`,_,[n(h,{title:`تسویه چکی`,subtitle:`بر اساس مبلغ فاکتور، نحوه ثبت چک را انتخاب کنید`,"show-back":``,centered:``,onBack:o[0]||=e=>u(l).push(`/orders/${u(T)}`)}),e(`div`,v,[e(`div`,y,[o[3]||=e(`span`,{class:`check-mode-invoice__label`},`مبلغ فاکتور`,-1),e(`strong`,b,a(D.value),1)]),e(`div`,x,[e(`button`,{type:`button`,class:`mode-card`,onClick:o[1]||=e=>O(`full`)},[e(`span`,S,[n(f,{size:36})]),o[4]||=e(`h3`,{class:`mode-card__title`},`ثبت کامل (پیشنهادی)`,-1),o[5]||=e(`p`,{class:`mode-card__desc`},`وارد کردن همه اطلاعات چک`,-1)]),e(`button`,{type:`button`,class:`mode-card`,onClick:o[2]||=e=>O(`brief`)},[e(`span`,C,[n(m,{size:36})]),o[6]||=e(`h3`,{class:`mode-card__title`},`ثبت مختصر`,-1),o[7]||=e(`p`,{class:`mode-card__desc`},`وارد کردن حداقل اطلاعات`,-1)])])])]))}}),[[`__scopeId`,`data-v-680065b0`]]);export{w as default};
import{A as e,J as t,L as n,N as r,R as i,Tt as a,_ as o,et as s,k as c,n as l,xt as u}from"./BasicIcon-B6lR-mG3.js";import{n as d}from"./format-BHJptHdF.js";import{b as f,g as p}from"./index-B20WsQhf.js";import{t as m}from"./IconEditPen-CppsBLM9.js";import{t as h}from"./PageHeader-DXkA75qK.js";import{t as g}from"./useRequirePricedOrder-BVRY4vCB.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=l(i({__name:`CheckModeSelectView`,setup(i){let l=o(),w=p(),{orderId:T,order:E}=g(),D=c(()=>E.value?.finalAmount?d(E.value.finalAmount):`—`);s(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(i,o)=>(t(),r(`div`,_,[n(h,{title:`تسویه چکی`,subtitle:`بر اساس مبلغ فاکتور، نحوه ثبت چک را انتخاب کنید`,"show-back":``,centered:``,onBack:o[0]||=e=>u(l).push(`/orders/${u(T)}`)}),e(`div`,v,[e(`div`,y,[o[3]||=e(`span`,{class:`check-mode-invoice__label`},`مبلغ فاکتور`,-1),e(`strong`,b,a(D.value),1)]),e(`div`,x,[e(`button`,{type:`button`,class:`mode-card`,onClick:o[1]||=e=>O(`full`)},[e(`span`,S,[n(f,{size:36})]),o[4]||=e(`h3`,{class:`mode-card__title`},`ثبت کامل (پیشنهادی)`,-1),o[5]||=e(`p`,{class:`mode-card__desc`},`وارد کردن همه اطلاعات چک`,-1)]),e(`button`,{type:`button`,class:`mode-card`,onClick:o[2]||=e=>O(`brief`)},[e(`span`,C,[n(m,{size:36})]),o[6]||=e(`h3`,{class:`mode-card__title`},`ثبت مختصر`,-1),o[7]||=e(`p`,{class:`mode-card__desc`},`وارد کردن حداقل اطلاعات`,-1)])])])]))}}),[[`__scopeId`,`data-v-680065b0`]]);export{w as default};
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{A as e,I as t,J as n,L as r,N as i,R as a,_ as o,n as s,nt as c,pt as l,xt as u}from"./BasicIcon-B6lR-mG3.js";import{t as d}from"./http-CHgEV7QF.js";import{c as f}from"./format-BHJptHdF.js";import{a as p}from"./validation-BD7oi-2I.js";import{c as m,n as h}from"./index-DHK6R1xK.js";import{t as g}from"./FormErrorBanner-8PcsTbdO.js";import{n as _,r as v,t as y}from"./formErrors-DglFjYkZ.js";import{t as b}from"./crm-DbcoqKAF.js";import{t as x}from"./useGoBack-yePcdjuj.js";import{t as S}from"./PageHeader-Cza56lK4.js";import{t as C}from"./BaseInput-9HB-GJGt.js";var w={class:`page customer-create-page`},T={class:`page__scroll customer-create-scroll`},E={class:`form-card`},D={class:`footer`},O=s(a({__name:`CustomerCreateView`,setup(a){let s=o(),O=m(),k=b(),{goBack:A}=x(`/customers`),j=l(``),M=l(``),N=l(``),P=l(``),F=l({}),I=l(``),L=l(!1);function R(e){F.value=_(F.value,e),v(F.value)||(I.value=``)}async function z(){if(F.value={},I.value=``,!O.isAgent){I.value=`فقط واسطه می‌تواند مشتری به لیست خود اضافه کند.`;return}let e=f(N.value),t={};if(j.value.trim()||(t.firstName=`نام الزامی است.`),M.value.trim()||(t.lastName=`نام خانوادگی الزامی است.`),p(e)||(t.phone=`شماره موبایل معتبر نیست.`),v(t)){F.value=t,I.value=y;return}L.value=!0;try{let t=await k.registerCustomer({firstName:j.value.trim(),lastName:M.value.trim(),phone:e,businessName:P.value.trim()||void 0});if(t?.id){await s.replace({path:`/customer`,query:{id:t.id}});return}await s.replace(`/customers`)}catch(e){I.value=e instanceof d||e instanceof Error?e.message:`ثبت مشتری ناموفق بود.`}finally{L.value=!1}}return(a,o)=>(n(),i(`div`,w,[r(S,{title:`افزودن مشتری`,"show-back":``,centered:``,onBack:u(A)},null,8,[`onBack`]),e(`div`,T,[o[7]||=e(`p`,{class:`intro`},` مشتری به لیست شما اضافه می‌شود و بعد از ورود با همین شماره، سفارش‌هایش به حساب شما وصل می‌ماند. `,-1),r(g,{message:I.value},null,8,[`message`]),e(`div`,E,[r(C,{modelValue:j.value,"onUpdate:modelValue":[o[0]||=e=>j.value=e,o[1]||=e=>R(`firstName`)],label:`نام`,placeholder:`نام مشتری`,error:F.value.firstName},null,8,[`modelValue`,`error`]),r(C,{modelValue:M.value,"onUpdate:modelValue":[o[2]||=e=>M.value=e,o[3]||=e=>R(`lastName`)],label:`نام خانوادگی`,placeholder:`نام خانوادگی`,error:F.value.lastName},null,8,[`modelValue`,`error`]),r(C,{modelValue:N.value,"onUpdate:modelValue":[o[4]||=e=>N.value=e,o[5]||=e=>R(`phone`)],label:`شماره موبایل`,type:`tel`,inputmode:`tel`,dir:`ltr`,placeholder:`۰۹۱۲۳۴۵۶۷۸۹`,error:F.value.phone},null,8,[`modelValue`,`error`]),r(C,{modelValue:P.value,"onUpdate:modelValue":o[6]||=e=>P.value=e,label:`نام فروشگاه یا برند (اختیاری)`,placeholder:`مثلاً بوتیک رز`},null,8,[`modelValue`])])]),e(`footer`,D,[r(h,{block:``,loading:L.value,disabled:L.value,onClick:z},{default:c(()=>[...o[8]||=[t(` ثبت مشتری `,-1)]]),_:1},8,[`loading`,`disabled`])])]))}}),[[`__scopeId`,`data-v-f29dd241`]]);export{O as default};
import{A as e,I as t,J as n,L as r,N as i,R as a,_ as o,n as s,nt as c,pt as l,xt as u}from"./BasicIcon-B6lR-mG3.js";import{t as d}from"./http-CHgEV7QF.js";import{c as f}from"./format-BHJptHdF.js";import{a as p}from"./validation-BD7oi-2I.js";import{c as m,n as h}from"./index-B20WsQhf.js";import{t as g}from"./FormErrorBanner-8PcsTbdO.js";import{n as _,r as v,t as y}from"./formErrors-DglFjYkZ.js";import{t as b}from"./crm-DbcoqKAF.js";import{t as x}from"./useGoBack-yePcdjuj.js";import{t as S}from"./PageHeader-DXkA75qK.js";import{t as C}from"./BaseInput-9HB-GJGt.js";var w={class:`page customer-create-page`},T={class:`page__scroll customer-create-scroll`},E={class:`form-card`},D={class:`footer`},O=s(a({__name:`CustomerCreateView`,setup(a){let s=o(),O=m(),k=b(),{goBack:A}=x(`/customers`),j=l(``),M=l(``),N=l(``),P=l(``),F=l({}),I=l(``),L=l(!1);function R(e){F.value=_(F.value,e),v(F.value)||(I.value=``)}async function z(){if(F.value={},I.value=``,!O.isAgent){I.value=`فقط واسطه می‌تواند مشتری به لیست خود اضافه کند.`;return}let e=f(N.value),t={};if(j.value.trim()||(t.firstName=`نام الزامی است.`),M.value.trim()||(t.lastName=`نام خانوادگی الزامی است.`),p(e)||(t.phone=`شماره موبایل معتبر نیست.`),v(t)){F.value=t,I.value=y;return}L.value=!0;try{let t=await k.registerCustomer({firstName:j.value.trim(),lastName:M.value.trim(),phone:e,businessName:P.value.trim()||void 0});if(t?.id){await s.replace({path:`/customer`,query:{id:t.id}});return}await s.replace(`/customers`)}catch(e){I.value=e instanceof d||e instanceof Error?e.message:`ثبت مشتری ناموفق بود.`}finally{L.value=!1}}return(a,o)=>(n(),i(`div`,w,[r(S,{title:`افزودن مشتری`,"show-back":``,centered:``,onBack:u(A)},null,8,[`onBack`]),e(`div`,T,[o[7]||=e(`p`,{class:`intro`},` مشتری به لیست شما اضافه می‌شود و بعد از ورود با همین شماره، سفارش‌هایش به حساب شما وصل می‌ماند. `,-1),r(g,{message:I.value},null,8,[`message`]),e(`div`,E,[r(C,{modelValue:j.value,"onUpdate:modelValue":[o[0]||=e=>j.value=e,o[1]||=e=>R(`firstName`)],label:`نام`,placeholder:`نام مشتری`,error:F.value.firstName},null,8,[`modelValue`,`error`]),r(C,{modelValue:M.value,"onUpdate:modelValue":[o[2]||=e=>M.value=e,o[3]||=e=>R(`lastName`)],label:`نام خانوادگی`,placeholder:`نام خانوادگی`,error:F.value.lastName},null,8,[`modelValue`,`error`]),r(C,{modelValue:N.value,"onUpdate:modelValue":[o[4]||=e=>N.value=e,o[5]||=e=>R(`phone`)],label:`شماره موبایل`,type:`tel`,inputmode:`tel`,dir:`ltr`,placeholder:`۰۹۱۲۳۴۵۶۷۸۹`,error:F.value.phone},null,8,[`modelValue`,`error`]),r(C,{modelValue:P.value,"onUpdate:modelValue":o[6]||=e=>P.value=e,label:`نام فروشگاه یا برند (اختیاری)`,placeholder:`مثلاً بوتیک رز`},null,8,[`modelValue`])])]),e(`footer`,D,[r(h,{block:``,loading:L.value,disabled:L.value,onClick:z},{default:c(()=>[...o[8]||=[t(` ثبت مشتری `,-1)]]),_:1},8,[`loading`,`disabled`])])]))}}),[[`__scopeId`,`data-v-f29dd241`]]);export{O as default};
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{A as e,D as t,J as n,K as r,L as i,M as a,N as o,R as s,St as c,Tt as l,X as u,_ as d,et as f,g as p,j as m,k as h,n as g,nt as _,pt as v,wt as y,xt as b}from"./BasicIcon-B6lR-mG3.js";import{o as x}from"./format-BHJptHdF.js";import{S as ee,o as te,y as S}from"./index-DHK6R1xK.js";import{t as C}from"./IconFilter-DJjJ9EAy.js";import{t as w}from"./PageSkeleton-BImjuI6S.js";import{t as T}from"./crm-DbcoqKAF.js";import{t as E}from"./PageHeader-Cza56lK4.js";import{t as D}from"./SearchField-txVsGGXT.js";var O={class:`page customers-page`},k={class:`page__scroll page__scroll--with-nav customers-scroll`},A={class:`toolbar`},j={class:`summary-card`},M={class:`summary-card__icon`,"aria-hidden":`true`},N={class:`summary-card__cols`},P={class:`tabs`,role:`tablist`},F=[`aria-selected`,`onClick`],I={class:`tab__text`},ne={key:1},L=[`onClick`],R={class:`customer-card__body`},z={class:`customer-card__top`},B={dir:`ltr`},V=g(s({__name:`CustomersView`,setup(s){let g=p(),V=d(),H=T(),U=v(String(g.query.q??``)),W=h(()=>String(g.query.status??`all`)),G=v([]),K=v(!0),q=v(null),J=h(()=>G.value),Y=h(()=>G.value.filter(e=>e.status===`active`).length),X=h(()=>G.value.reduce((e,t)=>e+t.totalPurchaseToman,0)),Z=[{id:`all`,label:`همه`},{id:`active`,label:`فعال`},{id:`inactive`,label:`غیرفعال`},{id:`new`,label:`جدید`}];async function Q(){K.value=!0,q.value=null;try{G.value=await H.loadCustomers({q:U.value||void 0,status:W.value===`all`?void 0:W.value})}catch(e){q.value=e instanceof Error?e.message:`بارگذاری مشتریان ناموفق بود.`,G.value=[]}finally{K.value=!1}}r(Q),f([W,U],Q);function $(e){V.replace({path:`/customers`,query:{...e===`all`?{}:{status:e},...U.value?{q:U.value}:{}}})}function re(e){U.value=e,V.replace({path:`/customers`,query:{...W.value===`all`?{}:{status:W.value},...e?{q:e}:{}}})}function ie(e){return e===`active`?`فعال`:e===`inactive`?`غیرفعال`:`جدید`}function ae(){V.push(`/customers/new`)}function oe(){let e=[`all`,`active`,`inactive`,`new`],t=e.indexOf(W.value);$(e[(t<0?0:t+1)%e.length]??`all`)}return(r,s)=>(n(),o(`div`,O,[i(E,{title:`مشتریان من`,"show-back":``,centered:``,onBack:s[0]||=e=>b(V).back()},{trailing:_(()=>[e(`button`,{type:`button`,class:`nav-add-btn`,"aria-label":`ثبت مشتری`,onClick:ae},[i(S,{size:22})])]),_:1}),e(`div`,k,[e(`div`,A,[i(D,{"model-value":U.value,placeholder:`جستجو بر اساس نام یا موبایل...`,"onUpdate:modelValue":re},null,8,[`model-value`]),e(`button`,{type:`button`,class:`filter-btn`,"aria-label":`فیلتر وضعیت`,onClick:oe},[i(C,{size:18})])]),e(`section`,j,[e(`div`,M,[i(ee,{size:22,color:`#fff`})]),e(`div`,N,[e(`div`,null,[s[1]||=e(`span`,null,`تعداد مشتری فعال`,-1),e(`strong`,null,l(b(x)(Y.value)),1)]),s[4]||=e(`span`,{class:`summary-card__divider`,"aria-hidden":`true`},null,-1),e(`div`,null,[s[2]||=e(`span`,null,`مجموع خرید (ریال)`,-1),e(`strong`,null,l(b(x)(X.value)),1),s[3]||=e(`em`,null,`تومان`,-1)])])]),e(`div`,P,[(n(),o(t,null,u(Z,t=>e(`button`,{key:t.id,type:`button`,role:`tab`,class:c([`tab`,{"tab--active":W.value===t.id}]),"aria-selected":W.value===t.id,onClick:e=>$(t.id)},[e(`span`,I,l(t.label),1)],10,F)),64))]),K.value?(n(),m(w,{key:0,variant:`list`})):q.value?(n(),o(`p`,ne,l(q.value),1)):a(``,!0),(n(!0),o(t,null,u(J.value,t=>(n(),o(`button`,{key:t.id,type:`button`,class:`customer-card`,onClick:e=>b(V).push({path:`/customer`,query:{id:t.id}})},[e(`div`,{class:`customer-card__avatar`,style:y({background:t.avatarColor})},l(t.avatarLetter),5),e(`div`,R,[e(`div`,z,[e(`strong`,null,l(t.name),1),e(`span`,{class:c([`status`,t.status===`active`?`status--ok`:`status--muted`])},l(ie(t.status)),3)]),e(`p`,B,l(t.phone),1),e(`p`,null,`مجموع خرید: `+l(b(x)(t.totalPurchaseToman))+` تومان`,1)]),i(te,{size:18,class:`chevron`})],8,L))),128)),s[5]||=e(`section`,{class:`promo`},[e(`div`,null,[e(`strong`,null,`افزایش مشتریان = افزایش سطح شما`),e(`p`,null,`با جذب مشتریان بیشتر به سطح VIP برسید`)])],-1)])]))}}),[[`__scopeId`,`data-v-d0b58aa9`]]);export{V as default};
import{A as e,D as t,J as n,K as r,L as i,M as a,N as o,R as s,St as c,Tt as l,X as u,_ as d,et as f,g as p,j as m,k as h,n as g,nt as _,pt as v,wt as y,xt as b}from"./BasicIcon-B6lR-mG3.js";import{o as x}from"./format-BHJptHdF.js";import{S as ee,o as te,y as S}from"./index-B20WsQhf.js";import{t as C}from"./IconFilter-DJjJ9EAy.js";import{t as w}from"./PageSkeleton-BImjuI6S.js";import{t as T}from"./crm-DbcoqKAF.js";import{t as E}from"./PageHeader-DXkA75qK.js";import{t as D}from"./SearchField-txVsGGXT.js";var O={class:`page customers-page`},k={class:`page__scroll page__scroll--with-nav customers-scroll`},A={class:`toolbar`},j={class:`summary-card`},M={class:`summary-card__icon`,"aria-hidden":`true`},N={class:`summary-card__cols`},P={class:`tabs`,role:`tablist`},F=[`aria-selected`,`onClick`],I={class:`tab__text`},ne={key:1},L=[`onClick`],R={class:`customer-card__body`},z={class:`customer-card__top`},B={dir:`ltr`},V=g(s({__name:`CustomersView`,setup(s){let g=p(),V=d(),H=T(),U=v(String(g.query.q??``)),W=h(()=>String(g.query.status??`all`)),G=v([]),K=v(!0),q=v(null),J=h(()=>G.value),Y=h(()=>G.value.filter(e=>e.status===`active`).length),X=h(()=>G.value.reduce((e,t)=>e+t.totalPurchaseToman,0)),Z=[{id:`all`,label:`همه`},{id:`active`,label:`فعال`},{id:`inactive`,label:`غیرفعال`},{id:`new`,label:`جدید`}];async function Q(){K.value=!0,q.value=null;try{G.value=await H.loadCustomers({q:U.value||void 0,status:W.value===`all`?void 0:W.value})}catch(e){q.value=e instanceof Error?e.message:`بارگذاری مشتریان ناموفق بود.`,G.value=[]}finally{K.value=!1}}r(Q),f([W,U],Q);function $(e){V.replace({path:`/customers`,query:{...e===`all`?{}:{status:e},...U.value?{q:U.value}:{}}})}function re(e){U.value=e,V.replace({path:`/customers`,query:{...W.value===`all`?{}:{status:W.value},...e?{q:e}:{}}})}function ie(e){return e===`active`?`فعال`:e===`inactive`?`غیرفعال`:`جدید`}function ae(){V.push(`/customers/new`)}function oe(){let e=[`all`,`active`,`inactive`,`new`],t=e.indexOf(W.value);$(e[(t<0?0:t+1)%e.length]??`all`)}return(r,s)=>(n(),o(`div`,O,[i(E,{title:`مشتریان من`,"show-back":``,centered:``,onBack:s[0]||=e=>b(V).back()},{trailing:_(()=>[e(`button`,{type:`button`,class:`nav-add-btn`,"aria-label":`ثبت مشتری`,onClick:ae},[i(S,{size:22})])]),_:1}),e(`div`,k,[e(`div`,A,[i(D,{"model-value":U.value,placeholder:`جستجو بر اساس نام یا موبایل...`,"onUpdate:modelValue":re},null,8,[`model-value`]),e(`button`,{type:`button`,class:`filter-btn`,"aria-label":`فیلتر وضعیت`,onClick:oe},[i(C,{size:18})])]),e(`section`,j,[e(`div`,M,[i(ee,{size:22,color:`#fff`})]),e(`div`,N,[e(`div`,null,[s[1]||=e(`span`,null,`تعداد مشتری فعال`,-1),e(`strong`,null,l(b(x)(Y.value)),1)]),s[4]||=e(`span`,{class:`summary-card__divider`,"aria-hidden":`true`},null,-1),e(`div`,null,[s[2]||=e(`span`,null,`مجموع خرید (ریال)`,-1),e(`strong`,null,l(b(x)(X.value)),1),s[3]||=e(`em`,null,`تومان`,-1)])])]),e(`div`,P,[(n(),o(t,null,u(Z,t=>e(`button`,{key:t.id,type:`button`,role:`tab`,class:c([`tab`,{"tab--active":W.value===t.id}]),"aria-selected":W.value===t.id,onClick:e=>$(t.id)},[e(`span`,I,l(t.label),1)],10,F)),64))]),K.value?(n(),m(w,{key:0,variant:`list`})):q.value?(n(),o(`p`,ne,l(q.value),1)):a(``,!0),(n(!0),o(t,null,u(J.value,t=>(n(),o(`button`,{key:t.id,type:`button`,class:`customer-card`,onClick:e=>b(V).push({path:`/customer`,query:{id:t.id}})},[e(`div`,{class:`customer-card__avatar`,style:y({background:t.avatarColor})},l(t.avatarLetter),5),e(`div`,R,[e(`div`,z,[e(`strong`,null,l(t.name),1),e(`span`,{class:c([`status`,t.status===`active`?`status--ok`:`status--muted`])},l(ie(t.status)),3)]),e(`p`,B,l(t.phone),1),e(`p`,null,`مجموع خرید: `+l(b(x)(t.totalPurchaseToman))+` تومان`,1)]),i(te,{size:18,class:`chevron`})],8,L))),128)),s[5]||=e(`section`,{class:`promo`},[e(`div`,null,[e(`strong`,null,`افزایش مشتریان = افزایش سطح شما`),e(`p`,null,`با جذب مشتریان بیشتر به سطح VIP برسید`)])],-1)])]))}}),[[`__scopeId`,`data-v-d0b58aa9`]]);export{V as default};
@@ -1 +1 @@
import{A as e,D as t,E as n,J as r,K as i,L as a,M as o,N as s,R as c,Tt as l,X as u,_ as d,j as f,n as p,pt as m,xt as h}from"./BasicIcon-B6lR-mG3.js";import{l as g,o as _}from"./index-DHK6R1xK.js";import{t as v}from"./PageSkeleton-BImjuI6S.js";import{t as y}from"./crm-DbcoqKAF.js";import{t as b}from"./PageHeader-Cza56lK4.js";import{t as x}from"./IconHeart-DjMqqdO0.js";var S={class:`page`},C={class:`page__scroll page__scroll--with-nav body`},w={key:1},T={key:2,class:`empty`},E=[`onClick`],D={class:`row__body`},O=[`onClick`],k=p(c({__name:`FavoritesView`,setup(c){let p=d(),k=g(),A=y(),j=m([]),M=m(!0),N=m(null);i(async()=>{M.value=!0;try{await k.hydrate();let e=await A.loadBrowseProducts(),t=new Set(k.ids);j.value=e.filter(e=>t.has(e.id))}catch(e){N.value=e instanceof Error?e.message:`بارگذاری علاقه‌مندی‌ها ناموفق بود.`}finally{M.value=!1}});async function P(e){await k.toggle(e),j.value=j.value.filter(t=>t.id!==e)}return(i,c)=>(r(),s(`div`,S,[a(b,{title:`علاقه‌مندی‌ها`,"show-back":``,centered:``,onBack:c[0]||=e=>h(p).back()}),e(`div`,C,[M.value?(r(),f(v,{key:0,variant:`grid`})):N.value?(r(),s(`p`,w,l(N.value),1)):j.value.length?o(``,!0):(r(),s(`p`,T,`هنوز محصولی ذخیره نکرده‌اید.`)),(r(!0),s(t,null,u(j.value,t=>(r(),s(`article`,{key:t.id,class:`row`,onClick:e=>h(p).push({path:`/product`,query:{id:t.id}})},[e(`div`,D,[e(`strong`,null,l(t.name),1),e(`span`,null,`کد `+l(t.code),1)]),e(`button`,{type:`button`,class:`bookmark`,"aria-label":`حذف از نشان‌شده‌ها`,onClick:n(e=>P(t.id),[`stop`])},[a(x,{size:18,filled:``,color:`#0a353c`})],8,O),a(_,{size:16,color:`#9aa3a0`})],8,E))),128))])]))}}),[[`__scopeId`,`data-v-8e70f9c9`]]);export{k as default};
import{A as e,D as t,E as n,J as r,K as i,L as a,M as o,N as s,R as c,Tt as l,X as u,_ as d,j as f,n as p,pt as m,xt as h}from"./BasicIcon-B6lR-mG3.js";import{l as g,o as _}from"./index-B20WsQhf.js";import{t as v}from"./PageSkeleton-BImjuI6S.js";import{t as y}from"./crm-DbcoqKAF.js";import{t as b}from"./PageHeader-DXkA75qK.js";import{t as x}from"./IconHeart-DjMqqdO0.js";var S={class:`page`},C={class:`page__scroll page__scroll--with-nav body`},w={key:1},T={key:2,class:`empty`},E=[`onClick`],D={class:`row__body`},O=[`onClick`],k=p(c({__name:`FavoritesView`,setup(c){let p=d(),k=g(),A=y(),j=m([]),M=m(!0),N=m(null);i(async()=>{M.value=!0;try{await k.hydrate();let e=await A.loadBrowseProducts(),t=new Set(k.ids);j.value=e.filter(e=>t.has(e.id))}catch(e){N.value=e instanceof Error?e.message:`بارگذاری علاقه‌مندی‌ها ناموفق بود.`}finally{M.value=!1}});async function P(e){await k.toggle(e),j.value=j.value.filter(t=>t.id!==e)}return(i,c)=>(r(),s(`div`,S,[a(b,{title:`علاقه‌مندی‌ها`,"show-back":``,centered:``,onBack:c[0]||=e=>h(p).back()}),e(`div`,C,[M.value?(r(),f(v,{key:0,variant:`grid`})):N.value?(r(),s(`p`,w,l(N.value),1)):j.value.length?o(``,!0):(r(),s(`p`,T,`هنوز محصولی ذخیره نکرده‌اید.`)),(r(!0),s(t,null,u(j.value,t=>(r(),s(`article`,{key:t.id,class:`row`,onClick:e=>h(p).push({path:`/product`,query:{id:t.id}})},[e(`div`,D,[e(`strong`,null,l(t.name),1),e(`span`,null,`کد `+l(t.code),1)]),e(`button`,{type:`button`,class:`bookmark`,"aria-label":`حذف از نشان‌شده‌ها`,onClick:n(e=>P(t.id),[`stop`])},[a(x,{size:18,filled:``,color:`#0a353c`})],8,O),a(_,{size:16,color:`#9aa3a0`})],8,E))),128))])]))}}),[[`__scopeId`,`data-v-8e70f9c9`]]);export{k as default};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{A as e,I as t,J as n,L as r,M as i,N as a,R as o,Tt as s,_ as c,g as l,k as u,n as d,nt as f,xt as p}from"./BasicIcon-B6lR-mG3.js";import{a as m}from"./format-BHJptHdF.js";import{g as h,n as g}from"./index-DHK6R1xK.js";import{t as _}from"./useGoBack-yePcdjuj.js";import{t as v}from"./PageHeader-Cza56lK4.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=d(o({__name:`OrderSuccessView`,setup(o){let d=l(),T=c(),{goBack:E}=_(`/orders`),D=h(),O=u(()=>D.getOrderById(d.params.id));return(o,c)=>(n(),a(`div`,y,[r(v,{title:`ثبت موفق`,"show-back":``,centered:``,onBack:p(E)},null,8,[`onBack`]),e(`div`,b,[c[8]||=e(`div`,{class:`success-icon`},`✓`,-1),c[9]||=e(`h1`,{class:`page-title text-center`},`سفارش ثبت شد`,-1),c[10]||=e(`p`,{class:`text-center text-muted mb-4`},` سفارش شما با موفقیت ثبت شد. کارشناسان ما سفارش را بررسی و قیمت‌گذاری می‌کنند و به‌محض صدور فاکتور، از طریق پیامک و پنل کاربری به شما اطلاع می‌دهیم تا روش تسویه را انتخاب کنید. `,-1),O.value?(n(),a(`div`,x,[e(`div`,S,[c[2]||=e(`span`,null,`شماره سفارش:`,-1),e(`strong`,null,s(O.value.orderNumber),1)]),e(`div`,C,[c[3]||=e(`span`,null,`شرکت:`,-1),e(`span`,null,s(O.value.companyName),1)]),e(`div`,w,[c[4]||=e(`span`,null,`متراژ:`,-1),e(`span`,null,s(p(m)(O.value.totalMeterage)),1)]),c[5]||=e(`div`,{class:`info-row`},[e(`span`,null,`وضعیت:`),e(`span`,null,`در انتظار قیمت‌گذاری`)],-1)])):i(``,!0),r(g,{block:``,onClick:c[0]||=e=>p(T).replace(`/orders/${O.value?.id}`)},{default:f(()=>[...c[6]||=[t(` مشاهده جزئیات سفارش `,-1)]]),_:1}),r(g,{block:``,variant:`outline`,class:`mt-2`,onClick:c[1]||=e=>p(T).replace(`/`)},{default:f(()=>[...c[7]||=[t(` بازگشت به خانه `,-1)]]),_:1})])]))}}),[[`__scopeId`,`data-v-3d172af9`]]);export{T as default};
import{A as e,I as t,J as n,L as r,M as i,N as a,R as o,Tt as s,_ as c,g as l,k as u,n as d,nt as f,xt as p}from"./BasicIcon-B6lR-mG3.js";import{a as m}from"./format-BHJptHdF.js";import{g as h,n as g}from"./index-B20WsQhf.js";import{t as _}from"./useGoBack-yePcdjuj.js";import{t as v}from"./PageHeader-DXkA75qK.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=d(o({__name:`OrderSuccessView`,setup(o){let d=l(),T=c(),{goBack:E}=_(`/orders`),D=h(),O=u(()=>D.getOrderById(d.params.id));return(o,c)=>(n(),a(`div`,y,[r(v,{title:`ثبت موفق`,"show-back":``,centered:``,onBack:p(E)},null,8,[`onBack`]),e(`div`,b,[c[8]||=e(`div`,{class:`success-icon`},`✓`,-1),c[9]||=e(`h1`,{class:`page-title text-center`},`سفارش ثبت شد`,-1),c[10]||=e(`p`,{class:`text-center text-muted mb-4`},` سفارش شما با موفقیت ثبت شد. کارشناسان ما سفارش را بررسی و قیمت‌گذاری می‌کنند و به‌محض صدور فاکتور، از طریق پیامک و پنل کاربری به شما اطلاع می‌دهیم تا روش تسویه را انتخاب کنید. `,-1),O.value?(n(),a(`div`,x,[e(`div`,S,[c[2]||=e(`span`,null,`شماره سفارش:`,-1),e(`strong`,null,s(O.value.orderNumber),1)]),e(`div`,C,[c[3]||=e(`span`,null,`شرکت:`,-1),e(`span`,null,s(O.value.companyName),1)]),e(`div`,w,[c[4]||=e(`span`,null,`متراژ:`,-1),e(`span`,null,s(p(m)(O.value.totalMeterage)),1)]),c[5]||=e(`div`,{class:`info-row`},[e(`span`,null,`وضعیت:`),e(`span`,null,`در انتظار قیمت‌گذاری`)],-1)])):i(``,!0),r(g,{block:``,onClick:c[0]||=e=>p(T).replace(`/orders/${O.value?.id}`)},{default:f(()=>[...c[6]||=[t(` مشاهده جزئیات سفارش `,-1)]]),_:1}),r(g,{block:``,variant:`outline`,class:`mt-2`,onClick:c[1]||=e=>p(T).replace(`/`)},{default:f(()=>[...c[7]||=[t(` بازگشت به خانه `,-1)]]),_:1})])]))}}),[[`__scopeId`,`data-v-3d172af9`]]);export{T as default};
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
.otp-page[data-v-850131cb]{isolation:isolate;color:#f4ede4;background:#1a1612;height:100%;min-height:100%;position:relative;overflow:hidden}.otp-page__bg[data-v-850131cb]{z-index:0;object-fit:cover;object-position:center center;pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;inset:0}.otp-page__scroll[data-v-850131cb]{z-index:1;overscroll-behavior:contain;height:100%;position:relative;overflow:hidden auto}.otp-page__stage[data-v-850131cb]{width:100%;max-width:360px;min-height:100%;padding:calc(10px + env(safe-area-inset-top,0px)) 16px calc(14px + env(safe-area-inset-bottom,0px));flex-direction:column;margin-inline:auto;display:flex}.otp-top[data-v-850131cb]{justify-content:flex-end;align-items:center;min-height:36px;display:flex}.otp-top__back[data-v-850131cb]{color:#f3e6d6;cursor:pointer;background:#f4ede424;border:none;border-radius:999px;place-items:center;width:36px;height:36px;display:grid}.otp-brand[data-v-850131cb]{text-align:center;color:#f3e6d6;flex-direction:column;align-items:center;margin-top:18px;margin-bottom:18px;display:flex}.otp-brand__fa[data-v-850131cb]{margin:12px 0 0;font-size:1.625rem;font-weight:700;line-height:1.25}.otp-brand__en[data-v-850131cb]{letter-spacing:.28em;color:#ead7c0;margin:6px 0 0;font-size:.6875rem;font-weight:500}.otp-card[data-v-850131cb]{color:#2a2622;background:#f4f1ed;border:none;border-radius:28px;width:100%;margin:0;padding:22px 18px 18px;box-shadow:0 18px 40px #0c0a0838}.otp-card__title[data-v-850131cb]{text-align:center;color:#1c1b19;margin:0;font-size:1.0625rem;font-weight:700;line-height:1.5}.otp-card__lead[data-v-850131cb]{text-align:center;color:#8a847c;margin:6px 0 0;font-size:.75rem;line-height:1.7}.otp-card[data-v-850131cb] .form-error-banner{margin-top:14px;margin-bottom:0}.otp-row[data-v-850131cb]{justify-content:center;gap:10px;margin-top:18px;display:flex}.otp-box[data-v-850131cb]{color:#1c1b19;text-align:center;width:52px;height:56px;caret-color:var(--color-primary);background:#f7f5f1;border:1px solid #e4e0db;border-radius:16px;padding:0;font-family:inherit;font-size:1.25rem;font-weight:700;transition:border-color .15s}.otp-box[data-v-850131cb]:focus{border-color:var(--color-primary);background:#fff;outline:none}.otp-box--error[data-v-850131cb]{border-color:color-mix(in srgb, var(--color-danger) 55%, #e4e0db)}.otp-card__error[data-v-850131cb]{color:var(--color-danger);text-align:center;margin:8px 4px 0;font-size:.75rem}.otp-submit[data-v-850131cb]{color:#f7f4ef;cursor:pointer;background:#0a353c;border:none;border-radius:999px;justify-content:center;align-items:center;width:100%;height:48px;margin-top:16px;padding:0 44px;font-family:inherit;font-size:.9375rem;font-weight:600;transition:background .15s;display:flex;position:relative}.otp-submit[data-v-850131cb]:not(:disabled):hover,.otp-submit[data-v-850131cb]:not(:disabled):focus-visible{background:#072a2f}.otp-submit[data-v-850131cb]:disabled{opacity:.7;cursor:not-allowed}.otp-submit__chevron[data-v-850131cb]{place-items:center;display:grid;position:absolute;inset-inline-end:16px}.otp-submit__spinner[data-v-850131cb]{border:2px solid #ffffff47;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.6s linear infinite otp-spin-850131cb;position:absolute;inset-inline-start:16px}.otp-resend[data-v-850131cb]{color:#6f6b66;cursor:pointer;background:0 0;border:1px solid #d8d3cd;border-radius:999px;width:100%;height:48px;margin-top:10px;font-family:inherit;font-size:.875rem;font-weight:500}.otp-resend[data-v-850131cb]:disabled{opacity:.7;cursor:not-allowed}.otp-edit[data-v-850131cb]{color:#8a847c;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;gap:6px;width:100%;margin-top:14px;font-family:inherit;font-size:.8125rem;display:flex}.otp-spacer[data-v-850131cb]{flex:auto;min-height:16px}.otp-watermark[data-v-850131cb]{color:#f4ede494;letter-spacing:.2em;text-align:left;direction:ltr;margin:0;padding-bottom:8px;font-size:.625rem;font-weight:600;line-height:1.35}@keyframes otp-spin-850131cb{to{transform:rotate(360deg)}}@media (width>=768px){.otp-page[data-v-850131cb]{max-width:none;height:100%;min-height:0;margin:0;padding:0;overflow:hidden}}
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
.otp-page[data-v-ca2f5cfe]{isolation:isolate;color:#f4ede4;background:#1a1612;height:100%;min-height:100%;position:relative;overflow:hidden}.otp-page__bg[data-v-ca2f5cfe]{z-index:0;object-fit:cover;object-position:center center;pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;inset:0}.otp-page__scroll[data-v-ca2f5cfe]{z-index:1;overscroll-behavior:contain;height:100%;position:relative;overflow:hidden auto}.otp-page__stage[data-v-ca2f5cfe]{width:100%;max-width:390px;min-height:100%;padding:calc(10px + env(safe-area-inset-top,0px)) 16px calc(14px + env(safe-area-inset-bottom,0px));box-sizing:border-box;flex-direction:column;margin-inline:auto;display:flex}.otp-top[data-v-ca2f5cfe]{justify-content:flex-end;align-items:center;min-height:36px;display:flex}.otp-top__back[data-v-ca2f5cfe]{color:#f3e6d6;cursor:pointer;background:#f4ede424;border:none;border-radius:999px;place-items:center;width:36px;height:36px;display:grid}.otp-brand[data-v-ca2f5cfe]{text-align:center;color:#f3e6d6;flex-direction:column;align-items:center;margin-top:18px;margin-bottom:18px;display:flex}.otp-brand__fa[data-v-ca2f5cfe]{margin:12px 0 0;font-size:1.625rem;font-weight:700;line-height:1.25}.otp-brand__en[data-v-ca2f5cfe]{letter-spacing:.28em;color:#ead7c0;margin:6px 0 0;font-size:.6875rem;font-weight:500}.otp-card[data-v-ca2f5cfe]{color:#2a2622;background:#f4f1ed;border:none;border-radius:28px;width:100%;margin:0;padding:22px 18px 18px;box-shadow:0 18px 40px #0c0a0838}.otp-card__title[data-v-ca2f5cfe]{text-align:center;color:#1c1b19;margin:0;font-size:1.0625rem;font-weight:700;line-height:1.5}.otp-card__lead[data-v-ca2f5cfe]{text-align:center;color:#8a847c;margin:6px 0 0;font-size:.75rem;line-height:1.7}.otp-card[data-v-ca2f5cfe] .form-error-banner{margin-top:14px;margin-bottom:0}.otp-row[data-v-ca2f5cfe]{justify-content:center;gap:10px;margin-top:18px;display:flex}.otp-box[data-v-ca2f5cfe]{color:#1c1b19;text-align:center;width:52px;height:56px;caret-color:var(--color-primary);background:#f7f5f1;border:1px solid #e4e0db;border-radius:16px;padding:0;font-family:inherit;font-size:1.25rem;font-weight:700;transition:border-color .15s}.otp-box[data-v-ca2f5cfe]:focus{border-color:var(--color-primary);background:#fff;outline:none}.otp-box--error[data-v-ca2f5cfe]{border-color:color-mix(in srgb, var(--color-danger) 55%, #e4e0db)}.otp-card__error[data-v-ca2f5cfe]{color:var(--color-danger);text-align:center;margin:8px 4px 0;font-size:.75rem}.otp-submit[data-v-ca2f5cfe]{color:#f7f4ef;cursor:pointer;background:#0a353c;border:none;border-radius:999px;justify-content:center;align-items:center;width:100%;height:48px;margin-top:16px;padding:0 44px;font-family:inherit;font-size:.9375rem;font-weight:600;transition:background .15s;display:flex;position:relative}.otp-submit[data-v-ca2f5cfe]:not(:disabled):hover,.otp-submit[data-v-ca2f5cfe]:not(:disabled):focus-visible{background:#072a2f}.otp-submit[data-v-ca2f5cfe]:disabled{opacity:.7;cursor:not-allowed}.otp-submit__chevron[data-v-ca2f5cfe]{place-items:center;display:grid;position:absolute;inset-inline-end:16px}.otp-submit__spinner[data-v-ca2f5cfe]{border:2px solid #ffffff47;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.6s linear infinite otp-spin-ca2f5cfe;position:absolute;inset-inline-start:16px}.otp-resend[data-v-ca2f5cfe]{color:#6f6b66;cursor:pointer;background:0 0;border:1px solid #d8d3cd;border-radius:999px;width:100%;height:48px;margin-top:10px;font-family:inherit;font-size:.875rem;font-weight:500}.otp-resend[data-v-ca2f5cfe]:disabled{opacity:.7;cursor:not-allowed}.otp-edit[data-v-ca2f5cfe]{color:#8a847c;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;gap:6px;width:100%;margin-top:14px;font-family:inherit;font-size:.8125rem;display:flex}.otp-spacer[data-v-ca2f5cfe]{flex:auto;min-height:16px}.otp-watermark[data-v-ca2f5cfe]{color:#f4ede494;letter-spacing:.2em;text-align:left;direction:ltr;margin:0;padding-bottom:8px;font-size:.625rem;font-weight:600;line-height:1.35}@keyframes otp-spin-ca2f5cfe{to{transform:rotate(360deg)}}@media (width>=768px){.otp-page[data-v-ca2f5cfe]{max-width:none;height:100%;min-height:0;margin:0;padding:0;overflow:hidden}}
@@ -1 +1 @@
import{A as e,D as t,J as n,L as r,M as i,N as a,R as o,Tt as s,Z as c,n as l}from"./BasicIcon-B6lR-mG3.js";import{i as u}from"./index-DHK6R1xK.js";import{t as d}from"./IconChevronBack-BXRfc2bX.js";var f={class:`page-nav`},p={key:1,class:`nav-btn`},m={class:`page-nav__title`},h={class:`page-nav__trailing`},g={key:0,class:`page-nav__subtitle`},_={key:1,class:`page-header`},v={class:`header-text`},y={class:`page-title`},b={key:0,class:`page-subtitle`},x={class:`page-header__trailing`},S=l(o({__name:`PageHeader`,props:{title:{},subtitle:{},showBack:{type:Boolean},centered:{type:Boolean}},emits:[`back`],setup(o){return(l,S)=>o.centered?(n(),a(t,{key:0},[e(`header`,f,[o.showBack?(n(),a(`button`,{key:0,type:`button`,class:`nav-btn`,"aria-label":`بازگشت`,onClick:S[0]||=e=>l.$emit(`back`)},[r(d,{size:20})])):(n(),a(`span`,p)),e(`h1`,m,s(o.title),1),e(`div`,h,[c(l.$slots,`trailing`,{},void 0,!0),r(u,{variant:`inline`,class:`mobile-only`})])]),o.subtitle?(n(),a(`p`,g,s(o.subtitle),1)):i(``,!0)],64)):(n(),a(`header`,_,[o.showBack?(n(),a(`button`,{key:0,type:`button`,class:`back-btn`,"aria-label":`بازگشت`,onClick:S[1]||=e=>l.$emit(`back`)},[r(d,{size:20})])):i(``,!0),e(`div`,v,[e(`h1`,y,s(o.title),1),o.subtitle?(n(),a(`p`,b,s(o.subtitle),1)):i(``,!0)]),e(`div`,x,[c(l.$slots,`trailing`,{},void 0,!0),r(u,{variant:`inline`,class:`mobile-only`})])]))}}),[[`__scopeId`,`data-v-dd86426f`]]);export{S as t};
import{A as e,D as t,J as n,L as r,M as i,N as a,R as o,Tt as s,Z as c,n as l}from"./BasicIcon-B6lR-mG3.js";import{i as u}from"./index-B20WsQhf.js";import{t as d}from"./IconChevronBack-BXRfc2bX.js";var f={class:`page-nav`},p={key:1,class:`nav-btn`},m={class:`page-nav__title`},h={class:`page-nav__trailing`},g={key:0,class:`page-nav__subtitle`},_={key:1,class:`page-header`},v={class:`header-text`},y={class:`page-title`},b={key:0,class:`page-subtitle`},x={class:`page-header__trailing`},S=l(o({__name:`PageHeader`,props:{title:{},subtitle:{},showBack:{type:Boolean},centered:{type:Boolean}},emits:[`back`],setup(o){return(l,S)=>o.centered?(n(),a(t,{key:0},[e(`header`,f,[o.showBack?(n(),a(`button`,{key:0,type:`button`,class:`nav-btn`,"aria-label":`بازگشت`,onClick:S[0]||=e=>l.$emit(`back`)},[r(d,{size:20})])):(n(),a(`span`,p)),e(`h1`,m,s(o.title),1),e(`div`,h,[c(l.$slots,`trailing`,{},void 0,!0),r(u,{variant:`inline`,class:`mobile-only`})])]),o.subtitle?(n(),a(`p`,g,s(o.subtitle),1)):i(``,!0)],64)):(n(),a(`header`,_,[o.showBack?(n(),a(`button`,{key:0,type:`button`,class:`back-btn`,"aria-label":`بازگشت`,onClick:S[1]||=e=>l.$emit(`back`)},[r(d,{size:20})])):i(``,!0),e(`div`,v,[e(`h1`,y,s(o.title),1),o.subtitle?(n(),a(`p`,b,s(o.subtitle),1)):i(``,!0)]),e(`div`,x,[c(l.$slots,`trailing`,{},void 0,!0),r(u,{variant:`inline`,class:`mobile-only`})])]))}}),[[`__scopeId`,`data-v-dd86426f`]]);export{S 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{t as e}from"./CheckListView-DptVxtEw.js";import{J as t,R as n,j as r}from"./BasicIcon-B6lR-mG3.js";var i=n({__name:`ProfileChecksView`,setup(n){return(n,i)=>(t(),r(e))}});export{i as default};
import{t as e}from"./CheckListView-D8SjoAtS.js";import{J as t,R as n,j as r}from"./BasicIcon-B6lR-mG3.js";var i=n({__name:`ProfileChecksView`,setup(n){return(n,i)=>(t(),r(e))}});export{i as default};
@@ -1 +1 @@
import{A as e,D as t,I as n,J as r,L as i,M as a,N as o,R as s,St as c,Tt as l,X as u,_ as d,j as f,k as p,n as m,nt as h,pt as g,t as _,xt as v}from"./BasicIcon-B6lR-mG3.js";import{u as y}from"./dist-BcgVHqJQ.js";import{a as b,c as x,g as S,n as C}from"./index-DHK6R1xK.js";import{t as w}from"./ProfileSubpageLayout-CHfCB62H.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=m(s({__name:`ProfileDisplayView`,setup(s){let m=d(),B=x(),V=S(),H=b(),U=g(!1),{start:W}=y(()=>{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=p(()=>V.draftChecks.length);function q(){U.value=!0,W()}function J(){B.logout(),m.replace(`/login`)}return(s,d)=>(r(),f(w,{title:`تنظیمات`,subtitle:`نمایش، حساب کاربری و خروج`},{default:h(()=>[e(`div`,T,[e(`nav`,E,[e(`button`,{type:`button`,class:`settings-link`,onClick:d[0]||=e=>v(m).push(`/profile/edit`)},[e(`span`,D,[i(_,{icon:`vuesax-linear:profile-circle`,size:20,"stroke-width":1.5})]),d[2]||=e(`span`,{class:`settings-link__label`},`اطلاعات کاربری`,-1),i(_,{class:`settings-link__chevron`,icon:`vuesax-linear:arrow-left-1`,size:16,"stroke-width":1.5})]),e(`button`,{type:`button`,class:`settings-link`,onClick:d[1]||=e=>v(m).push(`/profile/checks`)},[e(`span`,O,[i(_,{icon:`vuesax-linear:card`,size:20,"stroke-width":1.5})]),e(`span`,k,[d[3]||=n(` لیست چک‌ها `,-1),K.value?(r(),o(`em`,A,`(`+l(K.value)+`)`,1)):a(``,!0)]),i(_,{class:`settings-link__chevron`,icon:`vuesax-linear:arrow-left-1`,size:16,"stroke-width":1.5})])]),e(`fieldset`,j,[d[4]||=e(`legend`,{class:`display-fieldset__legend`},`حالت نمایش`,-1),e(`div`,M,[(r(),o(t,null,u(G,t=>e(`button`,{key:t.value,type:`button`,class:c([`theme-card`,{"theme-card--active":v(H).preference===t.value}]),role:`radio`,"aria-checked":v(H).preference===t.value,onClick:e=>v(H).preference=t.value},[e(`span`,P,[i(_,{icon:t.icon,size:26,"stroke-width":1.5},null,8,[`icon`])]),e(`span`,F,[e(`strong`,I,l(t.label),1),e(`span`,L,l(t.description),1)]),e(`span`,R,[v(H).preference===t.value?(r(),f(_,{key:0,icon:`vuesax-linear:tick-circle`,size:20,"stroke-width":1.75})):a(``,!0)])],10,N)),64))])]),i(C,{block:``,onClick:q},{default:h(()=>[...d[5]||=[n(`ذخیره تنظیمات`,-1)]]),_:1}),U.value?(r(),o(`p`,z,`تنظیمات نمایش ذخیره شد ✓`)):a(``,!0),e(`button`,{type:`button`,class:`settings-logout`,onClick:J},`خروج`)])]),_:1}))}}),[[`__scopeId`,`data-v-3187a788`]]);export{B as default};
import{A as e,D as t,I as n,J as r,L as i,M as a,N as o,R as s,St as c,Tt as l,X as u,_ as d,j as f,k as p,n as m,nt as h,pt as g,t as _,xt as v}from"./BasicIcon-B6lR-mG3.js";import{u as y}from"./dist-BcgVHqJQ.js";import{a as b,c as x,g as S,n as C}from"./index-B20WsQhf.js";import{t as w}from"./ProfileSubpageLayout-CHfCB62H.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=m(s({__name:`ProfileDisplayView`,setup(s){let m=d(),B=x(),V=S(),H=b(),U=g(!1),{start:W}=y(()=>{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=p(()=>V.draftChecks.length);function q(){U.value=!0,W()}function J(){B.logout(),m.replace(`/login`)}return(s,d)=>(r(),f(w,{title:`تنظیمات`,subtitle:`نمایش، حساب کاربری و خروج`},{default:h(()=>[e(`div`,T,[e(`nav`,E,[e(`button`,{type:`button`,class:`settings-link`,onClick:d[0]||=e=>v(m).push(`/profile/edit`)},[e(`span`,D,[i(_,{icon:`vuesax-linear:profile-circle`,size:20,"stroke-width":1.5})]),d[2]||=e(`span`,{class:`settings-link__label`},`اطلاعات کاربری`,-1),i(_,{class:`settings-link__chevron`,icon:`vuesax-linear:arrow-left-1`,size:16,"stroke-width":1.5})]),e(`button`,{type:`button`,class:`settings-link`,onClick:d[1]||=e=>v(m).push(`/profile/checks`)},[e(`span`,O,[i(_,{icon:`vuesax-linear:card`,size:20,"stroke-width":1.5})]),e(`span`,k,[d[3]||=n(` لیست چک‌ها `,-1),K.value?(r(),o(`em`,A,`(`+l(K.value)+`)`,1)):a(``,!0)]),i(_,{class:`settings-link__chevron`,icon:`vuesax-linear:arrow-left-1`,size:16,"stroke-width":1.5})])]),e(`fieldset`,j,[d[4]||=e(`legend`,{class:`display-fieldset__legend`},`حالت نمایش`,-1),e(`div`,M,[(r(),o(t,null,u(G,t=>e(`button`,{key:t.value,type:`button`,class:c([`theme-card`,{"theme-card--active":v(H).preference===t.value}]),role:`radio`,"aria-checked":v(H).preference===t.value,onClick:e=>v(H).preference=t.value},[e(`span`,P,[i(_,{icon:t.icon,size:26,"stroke-width":1.5},null,8,[`icon`])]),e(`span`,F,[e(`strong`,I,l(t.label),1),e(`span`,L,l(t.description),1)]),e(`span`,R,[v(H).preference===t.value?(r(),f(_,{key:0,icon:`vuesax-linear:tick-circle`,size:20,"stroke-width":1.75})):a(``,!0)])],10,N)),64))])]),i(C,{block:``,onClick:q},{default:h(()=>[...d[5]||=[n(`ذخیره تنظیمات`,-1)]]),_:1}),U.value?(r(),o(`p`,z,`تنظیمات نمایش ذخیره شد ✓`)):a(``,!0),e(`button`,{type:`button`,class:`settings-logout`,onClick:J},`خروج`)])]),_:1}))}}),[[`__scopeId`,`data-v-3187a788`]]);export{B as default};
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{A as e,D as t,I as n,J as r,K as i,L as a,M as o,N as s,R as c,St as l,Tt as u,X as d,_ as f,j as p,k as m,n as h,nt as g,t as _,xt as v}from"./BasicIcon-B6lR-mG3.js";import{i as y}from"./format-BHJptHdF.js";import{n as b,u as x}from"./index-DHK6R1xK.js";import{t as S}from"./EmptyState-C6UAJ5_3.js";import{t as C}from"./ProfileSubpageLayout-CHfCB62H.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=h(c({__name:`ProfileNotificationsView`,setup(c){let h=f(),F=x(),I=m(()=>F.items),L=m(()=>F.hasUnread),R={info:`vuesax-linear:information`,success:`vuesax-linear:tick-circle`,warning:`vuesax-linear:timer`,danger:`vuesax-linear:close-circle`};i(()=>{F.hydrate()});async function z(e){await F.markRead(e.id),e.link&&h.push(e.link)}return(i,c)=>(r(),p(C,{title:`اعلان‌ها`,subtitle:`آخرین خبرهای سفارش‌های شما`},{default:g(()=>[I.value.length?(r(),s(`div`,w,[e(`div`,T,[e(`span`,E,u(L.value?`${v(F).unreadCount} اعلان خوانده‌نشده`:`همه خوانده شده`),1),L.value?(r(),p(b,{key:0,variant:`outline`,class:`notif-box__mark`,onClick:c[0]||=e=>v(F).markAllRead()},{default:g(()=>[...c[2]||=[n(` خواندن همه `,-1)]]),_:1})):o(``,!0)]),(r(!0),s(t,null,d(I.value,t=>(r(),s(`button`,{key:t.id,type:`button`,class:l([`notif-row`,[`notif-row--${t.tone}`,{"notif-row--unread":!t.isRead}]]),onClick:e=>z(t)},[e(`span`,O,[a(_,{icon:R[t.tone],size:22,"stroke-width":1.5},null,8,[`icon`])]),e(`span`,k,[e(`span`,A,[e(`strong`,j,u(t.title),1),t.isRead?o(``,!0):(r(),s(`span`,M))]),e(`span`,N,u(t.body),1),e(`span`,P,u(v(y)(t.sentAt)),1)])],10,D))),128))])):(r(),p(S,{key:1,icon:`vuesax-linear:notification-bing`,title:`اعلانی ندارید`,message:`وقتی فاکتور سفارشتان صادر شود یا وضعیت چک و پرداخت تغییر کند، همین‌جا خبردار می‌شوید.`},{default:g(()=>[a(b,{variant:`outline`,onClick:c[1]||=e=>v(h).push(`/orders`)},{default:g(()=>[...c[3]||=[n(`سفارش‌های من`,-1)]]),_:1})]),_:1}))]),_:1}))}}),[[`__scopeId`,`data-v-57190756`]]);export{F as default};
import{A as e,D as t,I as n,J as r,K as i,L as a,M as o,N as s,R as c,St as l,Tt as u,X as d,_ as f,j as p,k as m,n as h,nt as g,t as _,xt as v}from"./BasicIcon-B6lR-mG3.js";import{i as y}from"./format-BHJptHdF.js";import{n as b,u as x}from"./index-B20WsQhf.js";import{t as S}from"./EmptyState-C6UAJ5_3.js";import{t as C}from"./ProfileSubpageLayout-CHfCB62H.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=h(c({__name:`ProfileNotificationsView`,setup(c){let h=f(),F=x(),I=m(()=>F.items),L=m(()=>F.hasUnread),R={info:`vuesax-linear:information`,success:`vuesax-linear:tick-circle`,warning:`vuesax-linear:timer`,danger:`vuesax-linear:close-circle`};i(()=>{F.hydrate()});async function z(e){await F.markRead(e.id),e.link&&h.push(e.link)}return(i,c)=>(r(),p(C,{title:`اعلان‌ها`,subtitle:`آخرین خبرهای سفارش‌های شما`},{default:g(()=>[I.value.length?(r(),s(`div`,w,[e(`div`,T,[e(`span`,E,u(L.value?`${v(F).unreadCount} اعلان خوانده‌نشده`:`همه خوانده شده`),1),L.value?(r(),p(b,{key:0,variant:`outline`,class:`notif-box__mark`,onClick:c[0]||=e=>v(F).markAllRead()},{default:g(()=>[...c[2]||=[n(` خواندن همه `,-1)]]),_:1})):o(``,!0)]),(r(!0),s(t,null,d(I.value,t=>(r(),s(`button`,{key:t.id,type:`button`,class:l([`notif-row`,[`notif-row--${t.tone}`,{"notif-row--unread":!t.isRead}]]),onClick:e=>z(t)},[e(`span`,O,[a(_,{icon:R[t.tone],size:22,"stroke-width":1.5},null,8,[`icon`])]),e(`span`,k,[e(`span`,A,[e(`strong`,j,u(t.title),1),t.isRead?o(``,!0):(r(),s(`span`,M))]),e(`span`,N,u(t.body),1),e(`span`,P,u(v(y)(t.sentAt)),1)])],10,D))),128))])):(r(),p(S,{key:1,icon:`vuesax-linear:notification-bing`,title:`اعلانی ندارید`,message:`وقتی فاکتور سفارشتان صادر شود یا وضعیت چک و پرداخت تغییر کند، همین‌جا خبردار می‌شوید.`},{default:g(()=>[a(b,{variant:`outline`,onClick:c[1]||=e=>v(h).push(`/orders`)},{default:g(()=>[...c[3]||=[n(`سفارش‌های من`,-1)]]),_:1})]),_:1}))]),_:1}))}}),[[`__scopeId`,`data-v-57190756`]]);export{F as default};
@@ -1 +1 @@
import{A as e,I as t,J as n,L as r,M as i,N as a,R as o,j as s,n as c,nt as l,pt as u}from"./BasicIcon-B6lR-mG3.js";import{n as d}from"./index-DHK6R1xK.js";import{t as f}from"./FormErrorBanner-8PcsTbdO.js";import{n as p,r as m,t as h}from"./formErrors-DglFjYkZ.js";import{t as g}from"./BaseInput-9HB-GJGt.js";import{t as _}from"./ProfileSubpageLayout-CHfCB62H.js";var v={class:`settings-form`},y={key:0,class:`settings-form__saved`},b=c(o({__name:`ProfileSecurityView`,setup(o){let c=u(``),b=u(``),x=u(``),S=u({}),C=u(``),w=u(!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(c.value||(e.currentPassword=`رمز فعلی الزامی است.`),b.value.length<6&&(e.newPassword=`رمز جدید باید حداقل ۶ کاراکتر باشد.`),x.value!==b.value&&(e.confirmPassword=`تکرار رمز با رمز جدید یکسان نیست.`),m(e)){S.value=e,C.value=h;return}c.value=``,b.value=``,x.value=``,w.value=!0,setTimeout(()=>{w.value=!1},2e3)}return(o,u)=>(n(),s(_,{title:`امنیت حساب`,subtitle:`تغییر رمز عبور و تنظیمات ورود`},{default:l(()=>[r(f,{message:C.value},null,8,[`message`]),e(`div`,v,[r(g,{modelValue:c.value,"onUpdate:modelValue":[u[0]||=e=>c.value=e,u[1]||=e=>T(`currentPassword`)],type:`password`,label:`رمز عبور فعلی`,error:S.value.currentPassword},null,8,[`modelValue`,`error`]),r(g,{modelValue:b.value,"onUpdate:modelValue":[u[2]||=e=>b.value=e,u[3]||=e=>T(`newPassword`)],type:`password`,label:`رمز عبور جدید`,error:S.value.newPassword},null,8,[`modelValue`,`error`]),r(g,{modelValue:x.value,"onUpdate:modelValue":[u[4]||=e=>x.value=e,u[5]||=e=>T(`confirmPassword`)],type:`password`,label:`تکرار رمز عبور جدید`,error:S.value.confirmPassword},null,8,[`modelValue`,`error`]),r(d,{block:``,onClick:E},{default:l(()=>[...u[6]||=[t(`ذخیره رمز جدید`,-1)]]),_:1}),w.value?(n(),a(`p`,y,`رمز عبور با موفقیت تغییر کرد ✓`)):i(``,!0)])]),_:1}))}}),[[`__scopeId`,`data-v-074827a2`]]);export{b as default};
import{A as e,I as t,J as n,L as r,M as i,N as a,R as o,j as s,n as c,nt as l,pt as u}from"./BasicIcon-B6lR-mG3.js";import{n as d}from"./index-B20WsQhf.js";import{t as f}from"./FormErrorBanner-8PcsTbdO.js";import{n as p,r as m,t as h}from"./formErrors-DglFjYkZ.js";import{t as g}from"./BaseInput-9HB-GJGt.js";import{t as _}from"./ProfileSubpageLayout-CHfCB62H.js";var v={class:`settings-form`},y={key:0,class:`settings-form__saved`},b=c(o({__name:`ProfileSecurityView`,setup(o){let c=u(``),b=u(``),x=u(``),S=u({}),C=u(``),w=u(!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(c.value||(e.currentPassword=`رمز فعلی الزامی است.`),b.value.length<6&&(e.newPassword=`رمز جدید باید حداقل ۶ کاراکتر باشد.`),x.value!==b.value&&(e.confirmPassword=`تکرار رمز با رمز جدید یکسان نیست.`),m(e)){S.value=e,C.value=h;return}c.value=``,b.value=``,x.value=``,w.value=!0,setTimeout(()=>{w.value=!1},2e3)}return(o,u)=>(n(),s(_,{title:`امنیت حساب`,subtitle:`تغییر رمز عبور و تنظیمات ورود`},{default:l(()=>[r(f,{message:C.value},null,8,[`message`]),e(`div`,v,[r(g,{modelValue:c.value,"onUpdate:modelValue":[u[0]||=e=>c.value=e,u[1]||=e=>T(`currentPassword`)],type:`password`,label:`رمز عبور فعلی`,error:S.value.currentPassword},null,8,[`modelValue`,`error`]),r(g,{modelValue:b.value,"onUpdate:modelValue":[u[2]||=e=>b.value=e,u[3]||=e=>T(`newPassword`)],type:`password`,label:`رمز عبور جدید`,error:S.value.newPassword},null,8,[`modelValue`,`error`]),r(g,{modelValue:x.value,"onUpdate:modelValue":[u[4]||=e=>x.value=e,u[5]||=e=>T(`confirmPassword`)],type:`password`,label:`تکرار رمز عبور جدید`,error:S.value.confirmPassword},null,8,[`modelValue`,`error`]),r(d,{block:``,onClick:E},{default:l(()=>[...u[6]||=[t(`ذخیره رمز جدید`,-1)]]),_:1}),w.value?(n(),a(`p`,y,`رمز عبور با موفقیت تغییر کرد ✓`)):i(``,!0)])]),_:1}))}}),[[`__scopeId`,`data-v-074827a2`]]);export{b as default};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
.welcome-page[data-v-66f13882]{isolation:isolate;color:#f4ede4;background:#1a1612;height:100%;min-height:100%;position:relative;overflow:hidden}.welcome-page__bg[data-v-66f13882]{z-index:0;object-fit:cover;object-position:center;pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;inset:0}.welcome-page__veil[data-v-66f13882]{z-index:1;pointer-events:none;background:linear-gradient(#0c0a086b 0%,#0c0a0847 42%,#0c0a08b8 100%);position:absolute;inset:0}.welcome-page__scroll[data-v-66f13882]{z-index:2;overscroll-behavior:contain;height:100%;position:relative;overflow:hidden auto}.welcome-page__stage[data-v-66f13882]{width:100%;max-width:390px;min-height:100%;padding:calc(12px + env(safe-area-inset-top,0px)) 20px calc(20px + env(safe-area-inset-bottom,0px));box-sizing:border-box;flex-direction:column;margin-inline:auto;display:flex}.welcome-top[data-v-66f13882]{justify-content:flex-end;min-height:40px;display:flex}.welcome-skip[data-v-66f13882]{color:#f4ede4;height:34px;font:inherit;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0c0a0873;border:none;border-radius:999px;padding:0 16px;font-size:.8125rem;font-weight:500}.welcome-brand[data-v-66f13882]{text-align:center;flex-direction:column;align-items:center;margin-top:28px;display:flex}.welcome-brand__fa[data-v-66f13882]{color:#ead7c0;margin:14px 0 0;font-size:1.875rem;font-weight:700;line-height:1.3}.welcome-brand__tag[data-v-66f13882]{color:#f4ede4eb;max-width:16rem;margin:10px 0 0;font-size:.8125rem;font-weight:400;line-height:1.7}.welcome-brand__rule[data-v-66f13882]{background:#c9a56a;border-radius:1px;width:36px;height:1.5px;margin-top:16px;display:block}.welcome-features[data-v-66f13882]{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:36px 0 0;padding:0;list-style:none;display:grid}.welcome-feature[data-v-66f13882]{text-align:center;flex-direction:column;align-items:center;gap:8px;display:flex}.welcome-feature__icon[data-v-66f13882]{color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#f4ede438;border-radius:999px;place-items:center;width:48px;height:48px;display:grid}.welcome-feature__star[data-v-66f13882]{width:22px;height:22px}.welcome-feature strong[data-v-66f13882]{color:#f4ede4;font-size:.6875rem;font-weight:700;line-height:1.45}.welcome-feature span[data-v-66f13882]{color:#f4ede4b8;font-size:.5625rem;font-weight:400;line-height:1.5}.welcome-spacer[data-v-66f13882]{flex:auto;min-height:28px}.welcome-dots[data-v-66f13882]{justify-content:center;gap:6px;margin-bottom:16px;display:flex}.welcome-dots i[data-v-66f13882]{background:#f4ede447;border-radius:999px;width:6px;height:6px}.welcome-dots i.is-on[data-v-66f13882]{background:#f4ede4}.welcome-cta[data-v-66f13882]{color:#fff;width:100%;height:52px;font:inherit;cursor:pointer;-webkit-backdrop-filter:blur(10px);background:linear-gradient(135deg,#144e528c 0%,#0a353c6b 48%,#082a307a 100%);border:1px solid #f4ede447;border-radius:999px;justify-content:center;align-items:center;padding:0 44px;font-size:.9375rem;font-weight:600;display:flex;position:relative;box-shadow:inset 0 1px #ffffff1f}.welcome-cta__chevron[data-v-66f13882]{place-items:center;display:grid;position:absolute;inset-inline-end:16px}@media (width>=768px){.welcome-page[data-v-66f13882]{max-width:none;height:100%;min-height:0;margin:0;padding:0;overflow:hidden}.welcome-page__stage[data-v-66f13882]{max-width:390px;padding-block:16px 24px}}@media (width<=359px){.welcome-page__stage[data-v-66f13882]{padding-inline:14px}.welcome-brand__fa[data-v-66f13882]{font-size:1.625rem}.welcome-feature__icon[data-v-66f13882]{width:42px;height:42px}}
+1
View File
@@ -0,0 +1 @@
import{A as e,D as t,J as n,L as r,N as i,R as a,Tt as o,X as s,_ as c,j as l,n as u,t as d,xt as f}from"./BasicIcon-B6lR-mG3.js";import{m as p,o as m}from"./index-B20WsQhf.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=u(a({__name:`WelcomeView`,setup(a){let u=c(),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(a,c)=>(n(),i(`div`,g,[e(`img`,{class:`welcome-page__bg`,src:f(h),alt:``},null,8,_),c[7]||=e(`div`,{class:`welcome-page__veil`,"aria-hidden":`true`},null,-1),e(`div`,v,[e(`div`,y,[e(`header`,{class:`welcome-top`},[e(`button`,{type:`button`,class:`welcome-skip`,onClick:E},`رد شدن`)]),e(`div`,b,[r(p,{size:88}),c[0]||=e(`h1`,{class:`welcome-brand__fa`},`نادمی تکس`,-1),c[1]||=e(`p`,{class:`welcome-brand__tag`},`انتخاب حرفه‌ای، شروع یک همکاری ماندگار`,-1),c[2]||=e(`span`,{class:`welcome-brand__rule`,"aria-hidden":`true`},null,-1)]),e(`ul`,x,[(n(),i(t,null,s(T,t=>e(`li`,{key:t.title,class:`welcome-feature`},[e(`span`,S,[t.icon===`star`?(n(),i(`svg`,C,[...c[3]||=[e(`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)]])):(n(),l(d,{key:1,icon:t.icon,size:22,color:`#ffffff`},null,8,[`icon`]))]),e(`strong`,null,o(t.title),1),e(`span`,null,o(t.subtitle),1)])),64))]),c[5]||=e(`div`,{class:`welcome-spacer`,"aria-hidden":`true`},null,-1),c[6]||=e(`div`,{class:`welcome-dots`,"aria-hidden":`true`},[e(`i`,{class:`is-on`}),e(`i`),e(`i`),e(`i`)],-1),e(`button`,{type:`button`,class:`welcome-cta`,onClick:E},[c[4]||=e(`span`,null,`ورود / ثبت‌نام`,-1),e(`span`,w,[r(m,{size:18,color:`#ffffff`})])])])])]))}}),[[`__scopeId`,`data-v-66f13882`]]);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
Binary file not shown.

After

Width:  |  Height:  |  Size: 152 KiB

@@ -1 +1 @@
import{_ as e,et as t,g as n,k as r}from"./BasicIcon-B6lR-mG3.js";import{g as i}from"./index-DHK6R1xK.js";import{n as a}from"./orderInvoice-B0L1Aeuk.js";function o(){let o=n(),s=e(),c=i(),l=r(()=>o.params.id),u=r(()=>c.getOrderById(l.value)),d=r(()=>a(u.value));function f(e){e&&(a(e)||s.replace(`/orders/${e.id}`))}return t(l,async e=>{e&&f(c.getOrderById(e)??await c.fetchOrder(e))},{immediate:!0}),t(u,e=>{f(e)}),{orderId:l,order:u,invoiceReady:d}}export{o as t};
import{_ as e,et as t,g as n,k as r}from"./BasicIcon-B6lR-mG3.js";import{g as i}from"./index-B20WsQhf.js";import{n as a}from"./orderInvoice-B0L1Aeuk.js";function o(){let o=n(),s=e(),c=i(),l=r(()=>o.params.id),u=r(()=>c.getOrderById(l.value)),d=r(()=>a(u.value));function f(e){e&&(a(e)||s.replace(`/orders/${e.id}`))}return t(l,async e=>{e&&f(c.getOrderById(e)??await c.fetchOrder(e))},{immediate:!0}),t(u,e=>{f(e)}),{orderId:l,order:u,invoiceReady:d}}export{o as t};
+2 -2
View File
@@ -6,7 +6,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover">
<meta name="theme-color" content="#17379f">
<title>سامانه سفارش عمده پارچه</title>
<script type="module" crossorigin src="/assets/index-DHK6R1xK.js"></script>
<script type="module" crossorigin src="/assets/index-B20WsQhf.js"></script>
<link rel="modulepreload" crossorigin href="/assets/BasicIcon-B6lR-mG3.js">
<link rel="modulepreload" crossorigin href="/assets/http-CHgEV7QF.js">
<link rel="modulepreload" crossorigin href="/assets/dist-BcgVHqJQ.js">
@@ -15,7 +15,7 @@
<link rel="modulepreload" crossorigin href="/assets/validation-BD7oi-2I.js">
<link rel="modulepreload" crossorigin href="/assets/catalog-DNpqlweh.js">
<link rel="stylesheet" crossorigin href="/assets/BasicIcon-QF_b9Svq.css">
<link rel="stylesheet" crossorigin href="/assets/index-CsfOBUpl.css">
<link rel="stylesheet" crossorigin href="/assets/index-MldTA0ML.css">
</head>
<body>
<div id="app"></div>
Binary file not shown.

After

Width:  |  Height:  |  Size: 152 KiB

+10 -1
View File
@@ -259,14 +259,23 @@
padding: 24px;
}
/* صفحات احراز هویت: ستون موبایل در وسط دسکتاپ */
.app-shell--no-nav.app-shell--immersive {
padding: 0;
align-items: center;
justify-content: center;
background: #141210;
}
.app-shell--no-nav.app-shell--immersive .app-layout,
.app-shell--no-nav.app-shell--immersive .app-frame {
max-height: none;
max-width: 430px;
width: min(100%, 430px);
height: 100%;
max-height: 100dvh;
margin-inline: auto;
border-radius: 0;
box-shadow: none;
}
.app-shell--no-nav .app-layout,
+6 -1
View File
@@ -9,6 +9,7 @@ const route = useRoute()
const showNav = computed(() => {
const noNavRoutes = [
'welcome',
'login',
'register',
'otp',
@@ -34,7 +35,11 @@ const isWideGuest = computed(() => {
})
const isImmersiveAuth = computed(
() => route.name === 'login' || route.name === 'register' || route.name === 'otp',
() =>
route.name === 'welcome' ||
route.name === 'login' ||
route.name === 'register' ||
route.name === 'otp',
)
</script>
+6
View File
@@ -4,6 +4,12 @@ import { getCachedUser, isAuthenticated } from '@/services/authService'
const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL),
routes: [
{
path: '/welcome',
name: 'welcome',
component: () => import('@/views/auth/WelcomeView.vue'),
meta: { guest: true, hideNav: true },
},
{
path: '/login',
name: 'login',
+20 -3
View File
@@ -17,6 +17,7 @@ import {
type FieldErrors,
} from '@/utils/formErrors'
import fabricUrl from '@/assets/images/login-fabric.jpg'
import fabricUrl2 from '@/assets/images/login-fabric2.png'
const router = useRouter()
const auth = useAuthStore()
@@ -89,6 +90,7 @@ onMounted(async () => {
<template>
<div class="page login-page">
<img class="login-page__bg" :src="fabricUrl" alt="" />
<img class="login-page__fabric" :src="fabricUrl2" alt="" />
<div class="login-page__scroll">
<div class="login-page__stage">
@@ -219,6 +221,21 @@ onMounted(async () => {
user-select: none;
}
/* پارچه پایین صفحه — پشت باکس لاگین، نه روی آن */
.login-page__fabric {
position: absolute;
left: 0;
right: 0;
bottom: 0;
z-index: 3;
width: 100%;
height: 100%;
object-fit: cover;
object-position: center bottom;
pointer-events: none;
user-select: none;
}
.login-page__scroll {
position: relative;
z-index: 1;
@@ -292,7 +309,7 @@ onMounted(async () => {
padding: 22px 18px 16px;
border: none;
border-radius: 28px;
background: #f4f1ed;
background: #ebe4dc;
box-shadow: 0 18px 40px rgba(12, 10, 8, 0.22);
color: #2a2622;
}
@@ -328,8 +345,8 @@ onMounted(async () => {
margin-top: 18px;
padding: 0 8px 0 14px;
border: 1px solid #e4e0db;
border-radius: 999px;
background: #f7f5f1;
border-radius: 14px;
background: #e4ddd4;
}
.phone-field.is-invalid {
+2 -1
View File
@@ -359,10 +359,11 @@ onMounted(() => {
flex-direction: column;
min-height: 100%;
width: 100%;
max-width: 360px;
max-width: 390px;
margin-inline: auto;
padding: calc(10px + env(safe-area-inset-top, 0px)) 16px
calc(14px + env(safe-area-inset-bottom, 0px));
box-sizing: border-box;
}
.otp-top {
+35 -30
View File
@@ -5,7 +5,6 @@ import { useRouter } from 'vue-router'
import { useAuthStore } from '@/stores/auth'
import BasicIcon from '@/components/BasicPacks/BasicIcon.vue'
import FormErrorBanner from '@/components/ui/FormErrorBanner.vue'
import IconBuilding from '@/components/icons/IconBuilding.vue'
import IconChevronLeft from '@/components/icons/IconChevronLeft.vue'
import IconDiamond from '@/components/icons/IconDiamond.vue'
import IconPhone from '@/components/icons/IconPhone.vue'
@@ -216,7 +215,7 @@ async function submit() {
@click="jobOpen = !jobOpen"
>
<span class="reg-field__meta">
<IconBuilding :size="18" color="#8A847C" />
<BasicIcon icon="vuesax-linear:category" :size="18" color="#8A847C" />
<span :class="{ 'is-placeholder': !jobCategory }">{{ selectedJobLabel }}</span>
</span>
<svg class="job-chevron" viewBox="0 0 12 12" aria-hidden="true">
@@ -275,24 +274,24 @@ async function submit() {
</label>
<p v-if="fieldErrors.terms" class="reg-field__error">{{ fieldErrors.terms }}</p>
</form>
<section class="register-perks" aria-label="مزایا">
<article class="register-perk">
<IconVerified :size="22" color="#6F6B66" />
<strong>اطمینان از اصالت محصولات</strong>
</article>
<article class="register-perk">
<BasicIcon icon="vuesax-linear:truck-time" :size="22" color="#6F6B66" />
<strong>دسترسی سریع به کالیته‌های جدید</strong>
</article>
<article class="register-perk">
<IconDiamond :size="22" color="#6F6B66" />
<strong>تجربه خرید ویژه مشتریان</strong>
</article>
</section>
<div class="register-foot">
<img class="register-foot__bg" :src="cardUrl" alt="" />
<section class="register-perks" aria-label="مزایا">
<article class="register-perk">
<IconVerified :size="22" color="#6F6B66" />
<strong>اطمینان از اصالت محصولات</strong>
</article>
<article class="register-perk">
<BasicIcon icon="vuesax-linear:truck-time" :size="22" color="#6F6B66" />
<strong>دسترسی سریع به کالیته‌های جدید</strong>
</article>
<article class="register-perk">
<IconDiamond :size="22" color="#6F6B66" />
<strong>تجربه خرید ویژه مشتریان</strong>
</article>
</section>
<p class="register-foot__copy">همراه حرفه‌ای<br />کسب‌وکار شما</p>
</div>
</div>
@@ -322,6 +321,7 @@ async function submit() {
max-width: 390px;
margin-inline: auto;
padding: calc(10px + env(safe-area-inset-top, 0px)) 20px 0;
box-sizing: border-box;
}
.register-top {
@@ -383,9 +383,9 @@ async function submit() {
height: 52px;
margin-top: 10px;
padding: 0 14px;
border: 1px solid #e6e1db;
border-radius: 999px;
background: #fbfaf7;
border: 1px solid #e0d9d0;
border-radius: 14px;
background: #ebe4dc;
}
.reg-field.is-invalid,
@@ -619,13 +619,15 @@ async function submit() {
.register-perks {
position: relative;
z-index: 2;
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 8px;
margin-bottom: 20rem;
margin: 35px 0 -20px;
padding: 16px 10px 14px;
border-radius: 22px;
background: #f7f3ee;
background: #ebe4dc;
box-shadow: 0 10px 28px rgba(40, 32, 24, 0.12), 0 2px 8px rgba(40, 32, 24, 0.06);
}
.register-perk {
@@ -645,11 +647,14 @@ async function submit() {
.register-foot {
position: relative;
z-index: 1;
display: flex;
flex-direction: column;
margin-top: auto;
margin-inline: -20px;
min-height: 270px;
min-height: 260px;
overflow: hidden;
padding: 20px 20px calc(20px + env(safe-area-inset-bottom, 0px));
padding: 48px 0 calc(16px + env(safe-area-inset-bottom, 0px));
}
.register-foot__bg {
@@ -662,8 +667,8 @@ async function submit() {
object-position: 88% 32%;
pointer-events: none;
user-select: none;
mask-image: linear-gradient(to bottom, transparent 0%, #000 38%);
-webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 38%);
mask-image: linear-gradient(to bottom, transparent 0%, #000 42%);
-webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 42%);
}
.register-foot::before {
@@ -672,16 +677,16 @@ async function submit() {
.register-foot__copy {
position: absolute;
z-index: 3;
z-index: 1;
left: 24px;
top: 8.75rem;
top: 38%;
margin: 0;
max-width: 10rem;
font-size: 0.75rem;
font-weight: 600;
line-height: 1.55;
text-align: right;
color: #5a5550;
color:#1c1b19;
pointer-events: none;
}
+337
View File
@@ -0,0 +1,337 @@
<script setup lang="ts">
import { useRouter } from 'vue-router'
import BasicIcon from '@/components/BasicPacks/BasicIcon.vue'
import IconChevronLeft from '@/components/icons/IconChevronLeft.vue'
import IconQemashMark from '@/components/icons/IconQemashMark.vue'
import fabricUrl from '@/assets/images/login-fabric.jpg'
const router = useRouter()
/* ترتیب DOM از راست به چپ در RTL: ستاره → کامیون → لایه‌ها */
const features = [
{
icon: 'star',
title: 'همراه همیشگی کسب‌وکارتان',
subtitle: 'با خدمات ویژه مشتریان',
},
{
icon: 'vuesax-linear:truck-time',
title: 'سفارش عمده',
subtitle: 'مستقیم از تولیدکننده',
},
{
icon: 'vuesax-linear:element-3',
title: 'تنوع بی‌نظیر محصولات',
subtitle: 'از کلاسیک تا مدرن',
},
] as const
function goLogin() {
const redirect = typeof router.currentRoute.value.query.redirect === 'string'
? router.currentRoute.value.query.redirect
: undefined
router.push({
name: 'login',
query: redirect ? { redirect } : undefined,
})
}
</script>
<template>
<div class="page welcome-page">
<img class="welcome-page__bg" :src="fabricUrl" alt="" />
<div class="welcome-page__veil" aria-hidden="true" />
<div class="welcome-page__scroll">
<div class="welcome-page__stage">
<header class="welcome-top">
<button type="button" class="welcome-skip" @click="goLogin">رد شدن</button>
</header>
<div class="welcome-brand">
<IconQemashMark :size="88" />
<h1 class="welcome-brand__fa">نادمی تکس</h1>
<p class="welcome-brand__tag">انتخاب حرفه‌ای، شروع یک همکاری ماندگار</p>
<span class="welcome-brand__rule" aria-hidden="true" />
</div>
<ul class="welcome-features">
<li v-for="item in features" :key="item.title" class="welcome-feature">
<span class="welcome-feature__icon" aria-hidden="true">
<svg
v-if="item.icon === 'star'"
class="welcome-feature__star"
viewBox="0 0 24 24"
fill="none"
>
<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"
/>
</svg>
<BasicIcon v-else :icon="item.icon" :size="22" color="#ffffff" />
</span>
<strong>{{ item.title }}</strong>
<span>{{ item.subtitle }}</span>
</li>
</ul>
<div class="welcome-spacer" aria-hidden="true" />
<div class="welcome-dots" aria-hidden="true">
<i class="is-on" />
<i />
<i />
<i />
</div>
<button type="button" class="welcome-cta" @click="goLogin">
<span>ورود / ثبت‌نام</span>
<span class="welcome-cta__chevron" aria-hidden="true">
<IconChevronLeft :size="18" color="#ffffff" />
</span>
</button>
</div>
</div>
</div>
</template>
<style scoped>
.welcome-page {
position: relative;
isolation: isolate;
height: 100%;
min-height: 100%;
color: #f4ede4;
background: #1a1612;
overflow: hidden;
}
.welcome-page__bg {
position: absolute;
inset: 0;
z-index: 0;
width: 100%;
height: 100%;
object-fit: cover;
object-position: center;
pointer-events: none;
user-select: none;
}
.welcome-page__veil {
position: absolute;
inset: 0;
z-index: 1;
background:
linear-gradient(180deg, rgba(12, 10, 8, 0.42) 0%, rgba(12, 10, 8, 0.28) 42%, rgba(12, 10, 8, 0.72) 100%);
pointer-events: none;
}
.welcome-page__scroll {
position: relative;
z-index: 2;
height: 100%;
overflow-x: hidden;
overflow-y: auto;
overscroll-behavior: contain;
}
.welcome-page__stage {
display: flex;
flex-direction: column;
min-height: 100%;
width: 100%;
max-width: 390px;
margin-inline: auto;
padding: calc(12px + env(safe-area-inset-top, 0px)) 20px
calc(20px + env(safe-area-inset-bottom, 0px));
box-sizing: border-box;
}
.welcome-top {
display: flex;
justify-content: flex-end;
min-height: 40px;
}
.welcome-skip {
height: 34px;
padding: 0 16px;
border: none;
border-radius: 999px;
background: rgba(12, 10, 8, 0.45);
color: #f4ede4;
font: inherit;
font-size: 0.8125rem;
font-weight: 500;
cursor: pointer;
backdrop-filter: blur(6px);
}
.welcome-brand {
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
margin-top: 28px;
}
.welcome-brand__fa {
margin: 14px 0 0;
font-size: 1.875rem;
font-weight: 700;
line-height: 1.3;
color: #ead7c0;
}
.welcome-brand__tag {
margin: 10px 0 0;
max-width: 16rem;
font-size: 0.8125rem;
font-weight: 400;
line-height: 1.7;
color: rgba(244, 237, 228, 0.92);
}
.welcome-brand__rule {
display: block;
width: 36px;
height: 1.5px;
margin-top: 16px;
border-radius: 1px;
background: #c9a56a;
}
.welcome-features {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 10px;
margin: 36px 0 0;
padding: 0;
list-style: none;
}
.welcome-feature {
display: flex;
flex-direction: column;
align-items: center;
gap: 8px;
text-align: center;
}
.welcome-feature__icon {
display: grid;
place-items: center;
width: 48px;
height: 48px;
border-radius: 999px;
background: rgba(244, 237, 228, 0.22);
color: #fff;
backdrop-filter: blur(4px);
}
.welcome-feature__star {
width: 22px;
height: 22px;
}
.welcome-feature strong {
font-size: 0.6875rem;
font-weight: 700;
line-height: 1.45;
color: #f4ede4;
}
.welcome-feature span {
font-size: 0.5625rem;
font-weight: 400;
line-height: 1.5;
color: rgba(244, 237, 228, 0.72);
}
.welcome-spacer {
flex: 1 1 auto;
min-height: 28px;
}
.welcome-dots {
display: flex;
justify-content: center;
gap: 6px;
margin-bottom: 16px;
}
.welcome-dots i {
width: 6px;
height: 6px;
border-radius: 999px;
background: rgba(244, 237, 228, 0.28);
}
.welcome-dots i.is-on {
background: #f4ede4;
}
.welcome-cta {
position: relative;
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 52px;
padding: 0 44px;
border: 1px solid rgba(244, 237, 228, 0.28);
border-radius: 999px;
background:
linear-gradient(135deg, rgba(20, 78, 82, 0.55) 0%, rgba(10, 53, 60, 0.42) 48%, rgba(8, 42, 48, 0.48) 100%);
color: #fff;
font: inherit;
font-size: 0.9375rem;
font-weight: 600;
cursor: pointer;
backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12);
}
.welcome-cta__chevron {
position: absolute;
inset-inline-end: 16px;
display: grid;
place-items: center;
}
@media (min-width: 768px) {
.welcome-page {
padding: 0;
max-width: none;
margin: 0;
height: 100%;
min-height: 0;
overflow: hidden;
}
.welcome-page__stage {
max-width: 390px;
padding-block: 16px 24px;
}
}
@media (max-width: 359px) {
.welcome-page__stage {
padding-inline: 14px;
}
.welcome-brand__fa {
font-size: 1.625rem;
}
.welcome-feature__icon {
width: 42px;
height: 42px;
}
}
</style>