1 line
10 KiB
JavaScript
1 line
10 KiB
JavaScript
import{$ as e,A as t,E as n,F as r,G as i,I as a,L as o,M as s,O as c,Y as l,_ as u,bt as d,ft as f,g as p,j as m,k as h,n as g,q as _,tt as v,wt as y,xt as b}from"./BasicIcon-CjTTsi6o.js";import{a as x,o as S,u as C}from"./format-BHJptHdF.js";import{t as ee}from"./catalog-Dd554brK.js";import{C as w,T,n as E}from"./index-BQQA5ZX-.js";import{t as D}from"./EmptyState-BpC5eqVE.js";import{t as O}from"./PageHeader-WFa4BbgN.js";function k(){let t=p(),n=u(),r=ee(),a=T(),o=f(!0),s=c(()=>t.params.companyId),l=c(()=>t.params.catalogId),d=c(()=>r.getCatalog(l.value)),m=c(()=>r.getCompany(s.value)),h=f(`all`),g=c(()=>[`all`,...r.getUniqueColors(l.value)]),_={all:`همه`},v=c(()=>r.fetchProducts(l.value,h.value===`all`?void 0:h.value)),y=f({}),b=f({}),x=f(``);async function S(){o.value=!0,r.getCompany(s.value)||await r.loadCompanies(),r.getCatalog(l.value)||await r.loadCatalogs(s.value),await r.loadProducts(l.value),o.value=!1}i(S),e([s,l],S),e(h,async e=>{await r.loadProducts(l.value,e===`all`?void 0:e)});function C(e){return y.value[e]??0}function w(e,t,n){let r=C(e);y.value[e]=Math.max(0,r+t*n)}async function E(e){let t=r.getProduct(e);if(!t||!d.value){b.value={...b.value,[e]:`اطلاعات محصول هنوز آماده نیست. صفحه را تازه کنید.`};return}let n=C(e);if(n<=0){b.value={...b.value,[e]:`متراژ را وارد کنید.`};return}let i=await a.addItem(t,d.value.code,n);i.success?(b.value={...b.value,[e]:``},x.value=`${t.name} به سبد اضافه شد.`,setTimeout(()=>{x.value=``},2e3)):b.value={...b.value,[e]:i.message??`خطا`}}function D(e,t){y.value[e]=Math.max(0,t)}function O(){n.push(`/cart`)}function k(){n.push(`/companies/${s.value}/catalogs`)}return{companyId:s,catalogId:l,catalog:d,company:m,colorFilter:h,colors:g,colorLabels:_,products:v,meterages:y,errors:b,toast:x,loading:o,cartStore:a,adjustMeterage:w,setMeterage:D,addProduct:E,goToCart:O,goBack:k}}var A={class:`cart-meterage-footer__info`},j={class:`cart-meterage-footer__value`},M={class:`cart-meterage-footer__action`},N={class:`cart-meterage-footer__icon-wrap`},P={key:0,class:`cart-meterage-footer__badge`},F=g(o({__name:`CartMeterageFooter`,props:{totalMeterage:{},itemCount:{}},emits:[`click`],setup(e){return(t,n)=>(_(),s(`button`,{type:`button`,class:`cart-meterage-footer`,"aria-label":`مشاهده سبد خرید`,onClick:n[0]||=e=>t.$emit(`click`)},[h(`span`,A,[n[1]||=h(`span`,{class:`cart-meterage-footer__label`},`کل متراژ`,-1),h(`span`,j,y(d(x)(e.totalMeterage)),1)]),h(`span`,M,[n[2]||=h(`span`,{class:`cart-meterage-footer__action-text`},`مشاهده سبد`,-1),h(`span`,N,[a(w,{size:20}),e.itemCount?(_(),s(`span`,P,y(d(C)(String(e.itemCount))),1)):m(``,!0)])])]))}}),[[`__scopeId`,`data-v-d8ea9109`]]),I={class:`page product-mobile-page`},L={class:`color-tabs`},R=[`onClick`],z={class:`page__scroll product-mobile-page__scroll`},B={key:0,class:`product-mobile-list`},V={class:`product-mobile-card__head`},H={class:`product-mobile-card__meta`},U={class:`meterage-input-row`},W=[`onClick`],G=[`value`,`step`,`onInput`],K=[`onClick`],q={key:0,class:`error-text`},J={key:0,class:`toast`},Y={key:1,class:`sticky-footer`},X=g(o({__name:`MobileProductPage`,props:{catalogCode:{},companyName:{},colors:{},colorLabels:{},colorFilter:{},products:{},meterages:{},errors:{},totalMeterage:{},itemCount:{},toast:{}},emits:[`back`,`update:colorFilter`,`adjust`,`setMeterage`,`add`,`cart`],setup(e,{emit:i}){let o=i;return(i,c)=>(_(),s(`div`,I,[a(O,{title:`کالیته ${e.catalogCode}`,subtitle:e.companyName,"show-back":``,centered:``,onBack:c[0]||=e=>o(`back`)},null,8,[`title`,`subtitle`]),h(`div`,L,[(_(!0),s(n,null,l(e.colors,t=>(_(),s(`button`,{key:t,type:`button`,class:b([`color-tab`,{active:e.colorFilter===t}]),onClick:e=>o(`update:colorFilter`,t)},y(e.colorLabels[t]??t),11,R))),128))]),h(`div`,z,[e.products.length>0?(_(),s(`div`,B,[(_(!0),s(n,null,l(e.products,t=>(_(),s(`article`,{key:t.id,class:`product-mobile-card`},[h(`div`,V,[h(`h3`,null,y(t.name),1),h(`span`,null,`کد: `+y(t.code),1)]),h(`p`,H,`حداقل سفارش: `+y(d(x)(t.minMeterage)),1),h(`div`,U,[h(`button`,{type:`button`,class:`qty-btn`,"aria-label":`کاهش`,onClick:e=>o(`adjust`,t.id,-1,t.orderMultiplier)},` − `,8,W),h(`input`,{value:e.meterages[t.id]??``,type:`number`,class:`meterage-input`,step:t.orderMultiplier,min:0,placeholder:`۰`,onInput:e=>o(`setMeterage`,t.id,Number(e.target.value)||0)},null,40,G),h(`button`,{type:`button`,class:`qty-btn`,"aria-label":`افزایش`,onClick:e=>o(`adjust`,t.id,1,t.orderMultiplier)},` + `,8,K)]),a(E,{block:``,onClick:e=>o(`add`,t.id)},{default:v(()=>[...c[2]||=[r(`افزودن`,-1)]]),_:1},8,[`onClick`]),e.errors[t.id]?(_(),s(`p`,q,y(e.errors[t.id]),1)):m(``,!0)]))),128))])):(_(),t(D,{key:1,variant:`products`,message:`برای این کالیته یا رنگ، محصولی ثبت نشده است`}))]),e.toast?(_(),s(`div`,J,y(e.toast),1)):m(``,!0),e.itemCount>0?(_(),s(`div`,Y,[a(F,{"total-meterage":e.totalMeterage,"item-count":e.itemCount,onClick:c[1]||=e=>o(`cart`)},null,8,[`total-meterage`,`item-count`])])):m(``,!0)]))}}),[[`__scopeId`,`data-v-2d9826d0`]]),Z={class:`desktop-page product-desktop-page`},Q={class:`desktop-page__head`},te={class:`desktop-page__title`},ne={class:`desktop-page__subtitle`},re={class:`product-breadcrumbs`,"aria-label":`مسیر`},ie={class:`desktop-two-col`},ae={class:`desktop-two-col__main`},oe={class:`color-tabs`},se=[`onClick`],ce={key:0,class:`product-desktop-grid`},le={class:`product-desktop-card__body`},ue={class:`product-desktop-card__head`},de={class:`product-desktop-card__meta`},fe={class:`meterage-input-row`},pe=[`onClick`],$=[`value`,`step`,`onInput`],me=[`onClick`],he={key:0,class:`error-text`},ge={key:0,class:`desktop-summary-panel`},_e={class:`desktop-summary-panel__row`},ve={class:`desktop-summary-panel__row`},ye={class:`desktop-summary-panel__row`},be={class:`desktop-summary-panel__action`},xe={key:0,class:`product-desktop-toast`},Se=g(o({__name:`DesktopProductPage`,props:{catalogCode:{},companyName:{},companyId:{},colors:{},colorLabels:{},colorFilter:{},products:{},meterages:{},errors:{},itemCount:{},totalMeterage:{},remainingCapacity:{},toast:{}},emits:[`update:colorFilter`,`adjust`,`setMeterage`,`add`,`cart`,`home`,`catalogs`],setup(e,{emit:i}){let o=i;return(i,c)=>(_(),s(`div`,Z,[h(`header`,Q,[h(`h1`,te,`کالیته `+y(e.catalogCode),1),h(`p`,ne,y(e.companyName),1)]),h(`nav`,re,[h(`button`,{type:`button`,onClick:c[0]||=e=>o(`home`)},`سفارشگذاری`),c[3]||=h(`span`,{"aria-hidden":`true`},`›`,-1),h(`button`,{type:`button`,onClick:c[1]||=e=>o(`catalogs`)},y(e.companyName),1),c[4]||=h(`span`,{"aria-hidden":`true`},`›`,-1),h(`span`,null,`کالیته `+y(e.catalogCode),1)]),h(`div`,ie,[h(`div`,ae,[h(`div`,oe,[(_(!0),s(n,null,l(e.colors,t=>(_(),s(`button`,{key:t,type:`button`,class:b([`color-tab`,{active:e.colorFilter===t}]),onClick:e=>o(`update:colorFilter`,t)},y(e.colorLabels[t]??t),11,se))),128))]),e.products.length>0?(_(),s(`div`,ce,[(_(!0),s(n,null,l(e.products,t=>(_(),s(`article`,{key:t.id,class:`product-desktop-card`},[c[6]||=h(`div`,{class:`product-desktop-card__preview`,"aria-hidden":`true`},null,-1),h(`div`,le,[h(`div`,ue,[h(`h3`,null,y(t.name),1),h(`span`,null,`کد: `+y(t.code),1)]),h(`p`,de,` حداقل سفارش: `+y(d(x)(t.minMeterage)),1),h(`div`,fe,[h(`button`,{type:`button`,class:`qty-btn`,"aria-label":`کاهش`,onClick:e=>o(`adjust`,t.id,-1,t.orderMultiplier)},` − `,8,pe),h(`input`,{value:e.meterages[t.id]??``,type:`number`,class:`meterage-input`,step:t.orderMultiplier,min:0,placeholder:`۰`,onInput:e=>o(`setMeterage`,t.id,Number(e.target.value)||0)},null,40,$),h(`button`,{type:`button`,class:`qty-btn`,"aria-label":`افزایش`,onClick:e=>o(`adjust`,t.id,1,t.orderMultiplier)},` + `,8,me)]),a(E,{class:`desktop-btn-compact product-desktop-card__add`,onClick:e=>o(`add`,t.id)},{default:v(()=>[a(w,{size:16}),c[5]||=r(` افزودن `,-1)]),_:1},8,[`onClick`]),e.errors[t.id]?(_(),s(`p`,he,y(e.errors[t.id]),1)):m(``,!0)])]))),128))])):(_(),t(D,{key:1,variant:`products`,message:`برای این کالیته یا رنگ، محصولی ثبت نشده است`}))]),e.itemCount>0?(_(),s(`aside`,ge,[c[11]||=h(`h2`,{class:`desktop-summary-panel__title`},`خلاصه سبد`,-1),h(`div`,_e,[c[7]||=h(`span`,null,`تعداد اقلام`,-1),h(`strong`,null,y(d(S)(e.itemCount)),1)]),h(`div`,ve,[c[8]||=h(`span`,null,`کل متراژ`,-1),h(`strong`,null,y(d(x)(e.totalMeterage)),1)]),h(`div`,ye,[c[9]||=h(`span`,null,`باقیمانده`,-1),h(`strong`,null,y(d(x)(e.remainingCapacity)),1)]),h(`div`,be,[a(E,{block:``,onClick:c[2]||=e=>o(`cart`)},{default:v(()=>[a(w,{size:18}),c[10]||=r(` مشاهده سبد خرید `,-1)]),_:1})])])):m(``,!0)]),e.toast?(_(),s(`div`,xe,y(e.toast),1)):m(``,!0)]))}}),[[`__scopeId`,`data-v-e9acee69`]]),Ce=o({__name:`ProductListView`,setup(e){let t=u(),{companyId:r,catalog:i,company:o,colorFilter:c,colors:l,colorLabels:f,products:p,meterages:m,errors:h,toast:g,cartStore:v,adjustMeterage:y,setMeterage:b,addProduct:x,goToCart:S,goBack:C}=k();return(e,u)=>(_(),s(n,null,[a(X,{class:`mobile-only`,"catalog-code":d(i)?.code??``,"company-name":d(o)?.name??``,colors:d(l),"color-labels":d(f),"color-filter":d(c),products:d(p),meterages:d(m),errors:d(h),"total-meterage":d(v).totalMeterage,"item-count":d(v).itemCount,toast:d(g),onBack:d(C),"onUpdate:colorFilter":u[0]||=e=>c.value=e,onAdjust:d(y),onSetMeterage:d(b),onAdd:d(x),onCart:d(S)},null,8,[`catalog-code`,`company-name`,`colors`,`color-labels`,`color-filter`,`products`,`meterages`,`errors`,`total-meterage`,`item-count`,`toast`,`onBack`,`onAdjust`,`onSetMeterage`,`onAdd`,`onCart`]),a(Se,{class:`desktop-only`,"catalog-code":d(i)?.code??``,"company-name":d(o)?.name??``,"company-id":d(r),colors:d(l),"color-labels":d(f),"color-filter":d(c),products:d(p),meterages:d(m),errors:d(h),"item-count":d(v).itemCount,"total-meterage":d(v).totalMeterage,"remaining-capacity":d(v).remainingCapacity,toast:d(g),"onUpdate:colorFilter":u[1]||=e=>c.value=e,onAdjust:d(y),onSetMeterage:d(b),onAdd:d(x),onCart:d(S),onHome:u[2]||=e=>d(t).push(`/`),onCatalogs:d(C)},null,8,[`catalog-code`,`company-name`,`company-id`,`colors`,`color-labels`,`color-filter`,`products`,`meterages`,`errors`,`item-count`,`total-meterage`,`remaining-capacity`,`toast`,`onAdjust`,`onSetMeterage`,`onAdd`,`onCart`,`onCatalogs`])],64))}});export{Ce as default}; |