Files
nademitex_user/dist/assets/ProductDetailView-7kd_faet.js
T

1 line
11 KiB
JavaScript

import{A as e,Ct as t,Dt as n,Et as r,J as i,L as a,N as o,O as s,P as c,Q as l,R as u,X as d,_ as ee,g as te,ht as f,j as p,n as ne,nt as re,wt as m,z as h}from"./BasicIcon-Bnxm-DKk.js";import{o as g}from"./format-C72AoJ2H.js";import{t as ie}from"./catalog-B2Z_WZGF.js";import{A as ae,O as _,l as oe}from"./index-DB4cQnln.js";import{t as se}from"./IconChevronBack-DguSlPDK.js";import{t as ce}from"./PageSkeleton-CpZ7eT1v.js";import{t as v}from"./IconShare-DtutVVj1.js";import{a as le,o as ue,t as de}from"./crm-CZ7XH3z9.js";import{t as fe}from"./useGoBack-Ds4z3swU.js";import{n as y,t as pe}from"./colorSwatch-BgOH1LE5.js";import{t as me}from"./IconShoppingBag-kdnOLLiZ.js";import{t as b}from"./quick-catalog-request-Di7-t6Ua.js";import{t as x}from"./IconHeart-CiwVmqRC.js";var he={key:0,class:`page product-detail product-page`},ge={class:`pd-header mobile-only`},_e={class:`pd-header__actions`},ve=[`aria-label`,`aria-pressed`],ye={class:`desktop-page__head desktop-only pd-desk-head`},be={class:`desktop-page__title`},xe={class:`desktop-page__subtitle`},S={class:`pd-desk-head__actions`},C=[`aria-label`,`aria-pressed`],w={class:`page__scroll pd-scroll product-page__scroll`},T={class:`product-page__layout`},E={class:`product-page__main`},D={class:`gallery`},O={class:`gallery__count`},k={class:`gallery__thumbs`},A=[`onClick`],j={class:`pd-body`},M={class:`title-row`},Se={key:0,class:`new-badge`},Ce={class:`code`},we={class:`specs`},Te={class:`spec-cell`},Ee={class:`spec-cell`},De={class:`spec-cell`},Oe={class:`spec-icon`,"aria-hidden":`true`},ke={class:`spec-cell`},Ae={key:0,class:`specs-extra`},je={class:`pd-section pd-section--boxed`},Me={class:`section-head`},Ne={class:`colors`},Pe=[`onClick`],Fe={class:`pd-section`},Ie={class:`tags`,role:`list`},Le=[`onClick`],Re={class:`pd-section`},ze={class:`roll-field`},Be={class:`product-page__sidebar desktop-only`},N={class:`cart-summary-panel`},Ve={class:`cart-summary-panel__row`},He={class:`cart-summary-panel__row`},Ue={class:`cart-summary-panel__btn`},We=[`disabled`],Ge=[`src`],Ke={class:`pd-footer mobile-only sticky-footer`},qe={class:`pd-footer__primary`},Je=[`disabled`],Ye={class:`min-note`},Xe=[`src`],Ze={key:1,class:`page empty`},Qe={key:2,class:`page empty`},P=ne(h({__name:`ProductDetailView`,setup(ne){let h={suit:`پارچه کت‌شلواری`,trousers:`پارچه شلواری`,shirt:`پارچه پیراهنی`},P={summer:`پارچه تابستانه`,winter:`پارچه زمستانه`,all_season:`پارچه چهارفصل`},$e=te(),F=ee(),{goBack:I}=fe(`/products`),et=de(),L=oe(),tt=ae(),nt=ie(),R=e(()=>String($e.query.id??``)),z=f(null),B=f(!0),V=f(null),H=f(0),U=f(1),W=f(!1),G=f(!1),K=e(()=>z.value?.rollMeters??50),q=e(()=>{let e=z.value;return e?pe(e.colors,e.colorImages,e.imageUrls,H.value,e.imageUrl):``}),rt=e(()=>z.value?.colors[H.value]??``),J=e(()=>U.value*K.value),it=e(()=>{let e=z.value?.minMeterage;return e&&e>0?e:K.value}),Y=e(()=>Math.max(1,Math.ceil(it.value/K.value))),at=e(()=>h[z.value?.categoryId??``]||`—`),ot=e(()=>P[z.value?.season??``]||`—`),st=e(()=>{let e=z.value;if(!e)return[];let t=[],n=ue.some(t=>t.id===e.categoryId)?e.categoryId:``,r=n?h[n]:``;r&&t.push({key:`usage-${n}`,label:r,to:{path:`/products`,query:{categoryId:n}}});let i=le.some(t=>t.id===e.season)?e.season:``,a=i?P[i]:``;a&&t.push({key:`season-${i}`,label:a,to:{path:`/products`,query:{season:i}}});let o=new Set(t.flatMap(e=>[e.label,e.label.replace(/^پارچه\s*/,``)]));for(let n of e.tags){let e=n.replace(/^پارچه‌?های?\s*/,``).trim();if(!e||o.has(e)||t.some(t=>t.label.includes(e)))continue;let r=n.startsWith(`پارچه`)?n:`پارچه ${e}`;o.add(e),t.push({key:`tag-${n}`,label:r})}return t});async function X(){if(!R.value){z.value=null,B.value=!1;return}B.value=!0,V.value=null;try{await Promise.all([L.hydrate(),nt.loadCompanies()]),z.value=await et.loadProductById(R.value),H.value=0,U.value=Y.value}catch(e){z.value=null,V.value=e instanceof Error?e.message:`محصول یافت نشد.`}finally{B.value=!1}}i(X),re(R,X);function ct(e){let t=e.rollMeters||50,n=e.orderMultiplier&&e.orderMultiplier>0?e.orderMultiplier:t,r=e.minMeterage&&e.minMeterage>0?e.minMeterage:t;return{id:e.id,companyId:e.companyId||``,catalogId:e.catalogId||``,name:e.name,code:e.code,color:e.color||e.colors[H.value]||`—`,minMeterage:r,orderMultiplier:n,basePrice:e.basePrice,isActive:!0}}function lt(e,t,n){let r=t>0?t:1,i=Math.ceil(e/r)*r,a=Math.ceil(n/r)*r;return Math.max(i,a)}async function Z(){if(!z.value)return;let e=ct(z.value);W.value=!0;try{let t=lt(J.value,e.orderMultiplier,e.minMeterage);await tt.addItem(e,z.value.catalogCode||z.value.code,t)}finally{W.value=!1}}function Q(){z.value&&L.toggle(z.value.id)}function $(){let e=window.location.href;if(navigator.share){navigator.share({title:z.value?.name,url:e}).catch(()=>void 0);return}navigator.clipboard?.writeText(e)}return(e,i)=>z.value?(d(),c(`div`,he,[p(`header`,ge,[p(`button`,{type:`button`,class:`icon-btn`,"aria-label":`بازگشت`,onClick:i[0]||=(...e)=>t(I)&&t(I)(...e)},[u(se,{size:20})]),p(`div`,_e,[p(`button`,{type:`button`,class:`icon-btn`,"aria-label":t(L).isFavorite(z.value.id)?`حذف از علاقه‌مندی‌ها`:`افزودن به علاقه‌مندی‌ها`,"aria-pressed":t(L).isFavorite(z.value.id),onClick:Q},[u(x,{size:20,filled:t(L).isFavorite(z.value.id),color:t(L).isFavorite(z.value.id)?`#0a353c`:void 0},null,8,[`filled`,`color`])],8,ve),p(`button`,{type:`button`,class:`icon-btn`,"aria-label":`اشتراک‌گذاری`,onClick:$},[u(v,{size:20})])])]),p(`header`,ye,[p(`div`,null,[p(`h1`,be,n(z.value.name),1),p(`p`,xe,`کد محصول: `+n(z.value.code),1)]),p(`div`,S,[p(`button`,{type:`button`,class:`icon-btn`,"aria-label":t(L).isFavorite(z.value.id)?`حذف از علاقه‌مندی‌ها`:`افزودن به علاقه‌مندی‌ها`,"aria-pressed":t(L).isFavorite(z.value.id),onClick:Q},[u(x,{size:20,filled:t(L).isFavorite(z.value.id),color:t(L).isFavorite(z.value.id)?`#0a353c`:void 0},null,8,[`filled`,`color`])],8,C),p(`button`,{type:`button`,class:`icon-btn`,"aria-label":`اشتراک‌گذاری`,onClick:$},[u(v,{size:20})])])]),p(`div`,w,[p(`div`,T,[p(`div`,E,[p(`div`,D,[p(`div`,{class:`gallery__main`,style:r(q.value?{backgroundImage:`url(${q.value})`,backgroundSize:`cover`,backgroundPosition:`center`}:t(y)(rt.value))},[p(`span`,O,n(t(g)(H.value+1))+`/`+n(t(g)(Math.max(z.value.colors.length,1))),1)],4),p(`div`,k,[(d(!0),c(s,null,l(z.value.colors,(e,n)=>(d(),c(`button`,{key:n,type:`button`,class:m([`thumb`,{"thumb--active":H.value===n}]),onClick:e=>H.value=n},[p(`span`,{class:`thumb__swatch`,style:r(t(y)(e,z.value.colorImages?.[n]||z.value.imageUrls?.[n]))},null,4)],10,A))),128))])]),p(`div`,j,[p(`div`,M,[p(`h1`,null,n(z.value.name),1),z.value.isNew?(d(),c(`span`,Se,`جدید`)):o(``,!0)]),p(`p`,Ce,`کد محصول: `+n(z.value.code),1),p(`div`,we,[p(`div`,Te,[i[5]||=p(`span`,{class:`spec-icon`,"aria-hidden":`true`},[p(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.6`},[p(`rect`,{x:`4`,y:`8`,width:`16`,height:`8`,rx:`2`})])],-1),i[6]||=p(`span`,null,`عرض`,-1),p(`strong`,null,n(t(g)(z.value.widthCm))+` سانتی‌متر`,1)]),p(`div`,Ee,[i[7]||=p(`span`,{class:`spec-icon`,"aria-hidden":`true`},[p(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.6`},[p(`path`,{d:`M12 3.5 20 8v8l-8 4.5L4 16V8l8-4.5Z`})])],-1),i[8]||=p(`span`,null,`جنس`,-1),p(`strong`,null,n(z.value.composition||`—`),1)]),p(`div`,De,[p(`span`,Oe,[u(me,{size:22,color:`#98a2ad`})]),i[9]||=p(`span`,null,`وزن`,-1),p(`strong`,null,n(z.value.weightGrams?`${t(g)(z.value.weightGrams)} گرم`:`—`),1)]),p(`div`,ke,[i[10]||=p(`span`,{class:`spec-icon`,"aria-hidden":`true`},[p(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.6`},[p(`circle`,{cx:`12`,cy:`12`,r:`8`}),p(`path`,{d:`M12 8a6 6 0 0 1 0 8`})])],-1),i[11]||=p(`span`,null,`نوع بافت`,-1),p(`strong`,null,n(z.value.weaveType||`—`),1)])]),p(`button`,{type:`button`,class:`specs-more`,onClick:i[1]||=e=>G.value=!G.value},[a(n(G.value?`بستن مشخصات`:`مشاهده همه مشخصات`)+` `,1),(d(),c(`svg`,{class:m([`specs-more__chevron`,{"is-open":G.value}]),viewBox:`0 0 12 12`,"aria-hidden":`true`},[...i[12]||=[p(`path`,{d:`M3 4.5 6 8l3-3.5`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.4`,"stroke-linecap":`round`},null,-1)]],2))]),G.value?(d(),c(`div`,Ae,[p(`p`,null,`فصل: `+n(ot.value),1),p(`p`,null,`دسته: `+n(at.value),1),p(`p`,null,`جمع سفارش: `+n(t(g)(J.value))+` متر`,1)])):o(``,!0),p(`section`,je,[p(`div`,Me,[i[13]||=p(`h2`,null,`رنگ‌بندی`,-1),p(`span`,null,`(`+n(t(g)(z.value.colors.length))+` رنگ موجود)`,1)]),p(`div`,Ne,[(d(!0),c(s,null,l(z.value.colors,(e,n)=>(d(),c(`button`,{key:n,type:`button`,class:m([`color-dot`,{"color-dot--active":H.value===n}]),style:r(t(y)(e,z.value.colorImages?.[n]||z.value.imageUrls?.[n])),onClick:e=>H.value=n},null,14,Pe))),128))])]),p(`section`,Fe,[i[14]||=p(`h2`,{class:`section-title`},`دسته‌بندی`,-1),p(`div`,Ie,[(d(!0),c(s,null,l(st.value,e=>(d(),c(`button`,{key:e.key,type:`button`,class:m([`tag`,{"tag--link":!!e.to}]),role:`listitem`,onClick:n=>e.to&&t(F).push(e.to)},n(e.label),11,Le))),128))])]),p(`section`,Re,[i[15]||=p(`h2`,{class:`section-title`},`متراژ هر ساقه (طاقه)`,-1),p(`div`,ze,n(t(g)(z.value.rollMeters))+` متر`,1)])])]),p(`aside`,Be,[p(`div`,N,[i[19]||=p(`h2`,{class:`cart-summary-panel__title`},`ثبت سفارش`,-1),p(`div`,Ve,[i[16]||=p(`span`,null,`متراژ سفارش`,-1),p(`strong`,null,n(t(g)(J.value))+` متر`,1)]),p(`div`,He,[i[17]||=p(`span`,null,`حداقل سفارش`,-1),p(`strong`,null,n(t(g)(Y.value))+` طاقه`,1)]),p(`div`,Ue,[p(`button`,{type:`button`,class:`btn-primary`,disabled:W.value,onClick:Z},[u(_,{size:18,color:`#ffffff`}),a(` `+n(W.value?`در حال افزودن...`:`افزودن به سفارش`),1)],8,We)]),p(`button`,{type:`button`,class:`btn-secondary pd-desk-catalog-btn`,onClick:i[2]||=e=>t(F).push({path:`/catalog-request`,query:{productId:z.value.id}})},[p(`img`,{class:`btn-secondary__icon`,src:t(b),alt:``,"aria-hidden":`true`},null,8,Ge),i[18]||=a(` درخواست کالیته `,-1)])])])])]),p(`footer`,Ke,[p(`div`,qe,[p(`button`,{type:`button`,class:`btn-primary`,disabled:W.value,onClick:Z},[u(_,{size:18,color:`#ffffff`}),a(` `+n(W.value?`در حال افزودن...`:`افزودن به سفارش`),1)],8,Je),p(`p`,Ye,`حداقل سفارش: `+n(t(g)(Y.value))+` طاقه`,1)]),p(`button`,{type:`button`,class:`btn-secondary`,onClick:i[3]||=e=>t(F).push({path:`/catalog-request`,query:{productId:z.value.id}})},[p(`img`,{class:`btn-secondary__icon`,src:t(b),alt:``,"aria-hidden":`true`},null,8,Xe),i[20]||=a(` درخواست کالیته `,-1)])])])):B.value?(d(),c(`div`,Ze,[u(ce,{variant:`detail`})])):(d(),c(`div`,Qe,[p(`p`,null,n(V.value||`محصول یافت نشد.`),1),p(`button`,{type:`button`,onClick:i[4]||=e=>t(F).push(`/products`)},`بازگشت به لیست`)]))}}),[[`__scopeId`,`data-v-2ab27b4c`]]);export{P as default};