1 line
7.5 KiB
JavaScript
1 line
7.5 KiB
JavaScript
import{$ as e,Ct as t,E as n,F as r,G as i,I as a,L as ee,M as o,O as s,Y as c,_ as te,bt as l,ft as u,g as ne,j as d,k as f,n as p,q as m,wt as h,xt as g}from"./BasicIcon-CjTTsi6o.js";import{a as re,o as _}from"./format-BHJptHdF.js";import{t as ie}from"./catalog-Dd554brK.js";import{C as ae,T as oe,b as se,l as ce}from"./index-BQQA5ZX-.js";import{t as le}from"./IconChevronBack-B10eZjCQ.js";import{t as ue}from"./PageSkeleton-CyATkHE1.js";import{t as de}from"./crm-DPw1h61_.js";import{t as fe}from"./useGoBack-D3aJ73Q-.js";import{t as pe}from"./IconMail-B6_IInpi.js";import{t as me}from"./IconHeart-BmvFB3Xr.js";var he={key:0,class:`page product-detail`},ge={class:`pd-header`},_e={class:`pd-header__actions`},ve=[`aria-label`,`aria-pressed`],ye={class:`page__scroll pd-scroll`},be={class:`gallery`},v={class:`gallery__count`},y={class:`gallery__thumbs`},b=[`onClick`],x={class:`pd-body`},S={class:`title-row`},C={key:0,class:`new-badge`},w={class:`code`},T={class:`specs`},E={class:`spec-cell`},D={class:`spec-cell`},O={class:`spec-cell`},k={class:`spec-cell`},A={key:0,class:`specs-extra`},j={key:0},M={class:`section-label`},N={class:`colors`},xe=[`onClick`],Se={class:`tags`},Ce={key:0,class:`tag`},we={class:`roll-field`},Te={class:`roll-stepper`},Ee={class:`order-meters`},P={key:1,class:`action-msg`},De={class:`pd-footer`},Oe={class:`pd-footer__primary`},ke=[`disabled`],Ae={class:`min-note`},je={key:1,class:`page empty`},Me={key:2,class:`page empty`},F=p(ee({__name:`ProductDetailView`,setup(ee){let p=ne(),F=te(),{goBack:I}=fe(`/products`),Ne=de(),L=ce(),Pe=oe(),R=ie(),z=s(()=>String(p.query.id??``)),B=u(null),V=u(!0),H=u(null),U=u(0),W=u(1),G=u(!1),K=u(null),q=u(!1),J=s(()=>B.value?.rollMeters??50),Y=s(()=>W.value*J.value),X=s(()=>{let e=B.value?.minMeterage;return e&&e>0?e:J.value}),Z=s(()=>Math.max(1,Math.ceil(X.value/J.value)));async function Q(){if(!z.value){B.value=null,V.value=!1;return}V.value=!0,H.value=null,K.value=null;try{await Promise.all([L.hydrate(),R.loadCompanies()]),B.value=await Ne.loadProductById(z.value),U.value=0,W.value=Z.value}catch(e){B.value=null,H.value=e instanceof Error?e.message:`محصول یافت نشد.`}finally{V.value=!1}}i(Q),e(z,Q);function Fe(e){if(!e.companyId||!e.catalogId)return null;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[U.value]||`—`,minMeterage:r,orderMultiplier:n,basePrice:e.basePrice,isActive:!0}}function Ie(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 Le(){if(!B.value)return;let e=Fe(B.value);if(!e){K.value=`اطلاعات شرکت/کاتالوگ محصول ناقص است.`;return}R.getCompany(e.companyId)||await R.loadCompanies(),G.value=!0,K.value=null;try{let t=Ie(Y.value,e.orderMultiplier,e.minMeterage),n=await Pe.addItem(e,B.value.catalogCode||B.value.code,t);n.success?(K.value=`به سفارش اضافه شد.`,await F.push(`/cart`)):K.value=n.message||`افزودن به سفارش ناموفق بود.`}finally{G.value=!1}}function Re(){B.value&&L.toggle(B.value.id)}function $(e){W.value=Math.max(Z.value,W.value+e)}function ze(){let e=window.location.href;navigator.share?navigator.share({title:B.value?.name,url:e}).catch(()=>void 0):(navigator.clipboard?.writeText(e),K.value=`لینک محصول کپی شد.`)}return(e,i)=>B.value?(m(),o(`div`,he,[f(`header`,ge,[f(`button`,{type:`button`,class:`icon-btn`,"aria-label":`بازگشت`,onClick:i[0]||=(...e)=>l(I)&&l(I)(...e)},[a(le,{size:20})]),f(`div`,_e,[f(`button`,{type:`button`,class:`icon-btn`,"aria-label":l(L).isFavorite(B.value.id)?`حذف از علاقهمندیها`:`افزودن به علاقهمندیها`,"aria-pressed":l(L).isFavorite(B.value.id),onClick:Re},[a(me,{size:20,filled:l(L).isFavorite(B.value.id),color:l(L).isFavorite(B.value.id)?`#0a353c`:void 0},null,8,[`filled`,`color`])],8,ve),f(`button`,{type:`button`,class:`icon-btn`,"aria-label":`اشتراکگذاری`,onClick:ze},[a(pe,{size:20})])])]),f(`div`,ye,[f(`div`,be,[f(`div`,{class:`gallery__main`,style:t(B.value.imageUrl?{backgroundImage:`url(${B.value.imageUrl})`,backgroundSize:`cover`,backgroundPosition:`center`}:{background:B.value.colors[U.value]||`#6b7280`})},[f(`span`,v,h(l(_)(U.value+1))+`/`+h(l(_)(Math.max(B.value.colors.length,1))),1)],4),f(`div`,y,[(m(!0),o(n,null,c(B.value.colors,(e,n)=>(m(),o(`button`,{key:n,type:`button`,class:g([`thumb`,{"thumb--active":U.value===n}]),style:t({background:e}),onClick:e=>U.value=n},null,14,b))),128))])]),f(`div`,x,[f(`div`,S,[f(`h1`,null,h(B.value.name),1),B.value.isNew?(m(),o(`span`,C,`جدید`)):d(``,!0)]),f(`p`,w,`کد محصول: `+h(B.value.code),1),f(`div`,T,[f(`div`,E,[i[6]||=f(`span`,{class:`spec-cell__label`},`عرض`,-1),f(`strong`,null,h(l(_)(B.value.widthCm))+` سانتی متر`,1)]),f(`div`,D,[i[7]||=f(`span`,{class:`spec-cell__label`},`جنس`,-1),f(`strong`,null,h(B.value.composition||`—`),1)]),f(`div`,O,[i[8]||=f(`span`,{class:`spec-cell__label`},`وزن`,-1),f(`strong`,null,h(B.value.weightGrams?`${l(_)(B.value.weightGrams)} گرم`:`—`),1)]),f(`div`,k,[i[9]||=f(`span`,{class:`spec-cell__label`},`نوع بافت`,-1),f(`strong`,null,h(B.value.weaveType||`—`),1)])]),f(`button`,{type:`button`,class:`specs-more`,onClick:i[1]||=e=>q.value=!q.value},h(q.value?`بستن مشخصات`:`مشاهده همه مشخصات`),1),q.value?(m(),o(`div`,A,[f(`p`,null,`فصل: `+h(B.value.season),1),f(`p`,null,`دسته: `+h(B.value.categoryId),1),B.value.basePrice?(m(),o(`p`,j,`قیمت پایه: `+h(l(_)(B.value.basePrice))+` تومان`,1)):d(``,!0)])):d(``,!0),f(`section`,null,[f(`h2`,M,[i[10]||=r(` رنگ بندی `,-1),f(`span`,null,`(`+h(l(_)(B.value.colors.length))+` رنگ موجود)`,1)]),f(`div`,N,[(m(!0),o(n,null,c(B.value.colors,(e,n)=>(m(),o(`button`,{key:n,type:`button`,class:g([`color-dot`,{"color-dot--active":U.value===n}]),style:t({background:e}),onClick:e=>U.value=n},null,14,xe))),128))])]),f(`section`,null,[i[11]||=f(`h2`,{class:`section-label`},`دسته بندی`,-1),f(`div`,Se,[(m(!0),o(n,null,c(B.value.tags,e=>(m(),o(`span`,{key:e,class:`tag`},h(e),1))),128)),B.value.tags.length?d(``,!0):(m(),o(`span`,Ce,h(B.value.categoryId),1))])]),f(`section`,null,[i[12]||=f(`h2`,{class:`section-label`},`متراژ هر ساقه (طاقه)`,-1),f(`div`,we,h(l(_)(B.value.rollMeters))+` متر`,1)]),f(`section`,null,[i[13]||=f(`h2`,{class:`section-label`},`تعداد طاقه`,-1),f(`div`,Te,[f(`button`,{type:`button`,class:`step-btn`,onClick:i[2]||=e=>$(-1)},`−`),f(`strong`,null,h(l(_)(W.value)),1),f(`button`,{type:`button`,class:`step-btn`,onClick:i[3]||=e=>$(1)},`+`)]),f(`p`,Ee,`جمع متراژ سفارش: `+h(l(_)(Y.value))+` متر`,1)]),K.value?(m(),o(`p`,P,h(K.value),1)):d(``,!0)])]),f(`footer`,De,[f(`button`,{type:`button`,class:`btn-secondary`,onClick:i[4]||=e=>l(F).push({path:`/catalog-request`,query:{productId:B.value.id}})},[a(se,{size:18}),i[14]||=r(` درخواست کالیته `,-1)]),f(`div`,Oe,[f(`button`,{type:`button`,class:`btn-primary`,disabled:G.value,onClick:Le},[a(ae,{size:18,color:`#ffffff`}),r(` `+h(G.value?`در حال افزودن...`:`افزودن به سفارش`),1)],8,ke),f(`p`,Ae,`حداقل سفارش: `+h(l(re)(X.value)),1)])])])):V.value?(m(),o(`div`,je,[a(ue,{variant:`detail`})])):(m(),o(`div`,Me,[f(`p`,null,h(H.value||`محصول یافت نشد.`),1),f(`button`,{type:`button`,onClick:i[5]||=e=>l(F).push(`/products`)},`بازگشت به لیست`)]))}}),[[`__scopeId`,`data-v-9d82ace3`]]);export{F as default}; |