Files
nademitex_user/dist/assets/CartView-DcIrdqu4.js
T

1 line
14 KiB
JavaScript

import{A as e,Ct as t,D as n,Dt as r,J as i,L as a,M as o,N as s,O as c,P as l,Q as u,R as d,X as f,_ as p,ht as m,it as h,j as g,n as _,t as v,tt as y,wt as b,z as x}from"./BasicIcon-Bnxm-DKk.js";import{a as S,o as C}from"./format-C72AoJ2H.js";import{A as w,D as T,O as ee,d as E,n as D,o as O,t as k,x as A}from"./index-DB4cQnln.js";import{t as te}from"./EmptyState-CsuH56HV.js";import{t as j}from"./IconChevronBack-DguSlPDK.js";import{t as M}from"./FormErrorBanner-BahrrGfv.js";import{t as N}from"./IconDiamond-CGMEs3wg.js";import{t as P}from"./CheckoutStepper-DOrSsyu1.js";import{t as F}from"./IconClipboardEmpty-dbxs07_C.js";import{t as I}from"./IconLayoutGrid-BfGINevf.js";function L(){let t=p(),n=w(),r=E(),a=m(!1),o=m(!1),s=m(``),c=e(()=>n.activeCart?.items??[]),l=e(()=>c.value.length===0),u=e(()=>n.companyNamesLabel||n.activeCart?.companyName||``),d=e(()=>n.companySummaries);async function f(e){let t=c.value.find(t=>t.id===e);await k({title:`حذف از سبد`,message:t?`آیا از حذف «${t.productName}» از سبد خرید مطمئن هستید؟`:`آیا از حذف این آیتم از سبد خرید مطمئن هستید؟`,confirmLabel:`حذف`,cancelLabel:`انصراف`,tone:`danger`})&&n.removeItem(e)}async function h(){if(!(!n.activeCart||c.value.length===0||o.value)){o.value=!0,s.value=``;try{if(await n.hydrate(),!n.activeCart?.items.length){s.value=`سبد خرید خالی است یا با سرور همگام نشد.`;return}let e=await r.submitOrder(n.activeCart);await n.hydrate(),t.replace(`/orders/${e.id}/success`)}catch(e){s.value=e instanceof Error?e.message:`ثبت سفارش ناموفق بود.`,await n.hydrate()}finally{o.value=!1}}}function g(){if(c.value.length!==0){if(n.isFull){a.value=!0;return}h()}}function _(){a.value=!1,h()}async function v(){await n.createNewCartForSameCompany(),a.value=!1,t.push(`/categories`)}return i(()=>{n.ensureActiveCartForCartPage()}),{cartStore:n,items:c,isEmpty:l,companyName:u,companySummaries:d,showFullDialog:a,submitting:o,submitError:s,removeItem:f,proceedToCheckout:g,proceedAnyway:_,createNewInvoice:v}}var R=x({__name:`IconTrash`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(t,n)=>(f(),o(v,{icon:`vuesax-linear:trash`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),z={class:`cart-mobile-page`},B={class:`cart-mobile-page__nav`},V={type:`button`,class:`nav-btn nav-btn--ghost`,"aria-hidden":`true`,tabindex:`-1`},H={key:0,class:`cart-mobile-page__body`},U={key:0,class:`cart-mobile-page__meta`},W={class:`cart-mobile-page__scroll`},G={class:`cart-mobile-table`},K={class:`col-product`},q={class:`col-meterage`},J={class:`col-delete`},Y=[`onClick`],X={class:`cart-mobile-page__footer`},Z={class:`cart-mobile-summary`},Q={class:`cart-mobile-summary__row`},ne={class:`cart-mobile-summary__cap`},re={key:1,class:`cart-mobile-summary__row`},ie={class:`cart-mobile-summary__row`},ae=_(x({__name:`MobileCartPage`,props:{items:{},companyName:{},companySummaries:{},totalMeterage:{},maxMeterage:{},remainingCapacity:{},isEmpty:{type:Boolean},submitting:{type:Boolean}},emits:[`back`,`remove`,`checkout`,`selectCompany`],setup(e,{emit:n}){let i=n;return(n,p)=>(f(),l(`div`,z,[g(`header`,B,[g(`button`,{type:`button`,class:`nav-btn`,"aria-label":`بازگشت`,onClick:p[0]||=e=>i(`back`)},[d(j,{size:20})]),p[3]||=g(`h1`,{class:`cart-mobile-page__title`},`سبد خرید`,-1),g(`button`,V,[d(j,{size:18,class:`nav-btn__flip`})])]),e.isEmpty?(f(),o(te,{key:1,variant:`cart`,message:`از دسته‌بندی یا کالیته محصول را انتخاب کنید`},{default:h(()=>[d(D,{onClick:p[2]||=e=>i(`selectCompany`)},{default:h(()=>[...p[10]||=[a(`مشاهده محصولات`,-1)]]),_:1})]),_:1})):(f(),l(`div`,H,[e.companyName?(f(),l(`p`,U,` تأمین‌کننده: `+r(e.companyName),1)):s(``,!0),g(`div`,W,[g(`div`,G,[p[4]||=g(`div`,{class:`cart-mobile-table__head`},[g(`span`,null,`محصول`),g(`span`,null,`متراژ (متر)`),g(`span`,null,`حذف`)],-1),(f(!0),l(c,null,u(e.items,e=>(f(),l(`div`,{key:e.id,class:`cart-mobile-table__row`},[g(`div`,K,[g(`strong`,null,r(e.productName),1),g(`span`,null,`کد: `+r(e.productCode),1)]),g(`div`,q,r(t(C)(e.meterage)),1),g(`div`,J,[g(`button`,{type:`button`,"aria-label":`حذف`,onClick:t=>i(`remove`,e.id)},[d(R,{size:20})],8,Y)])]))),128))])]),g(`div`,X,[g(`div`,Z,[g(`div`,Q,[p[5]||=g(`span`,null,`جمع متراژ کل`,-1),g(`strong`,null,r(t(S)(e.totalMeterage)),1)]),e.companySummaries?.length?(f(!0),l(c,{key:0},u(e.companySummaries,e=>(f(),l(`div`,{key:e.companyId,class:`cart-mobile-summary__row cart-mobile-summary__row--sub`},[g(`span`,null,r(e.companyName),1),g(`strong`,null,[a(r(t(S)(e.meterage))+` `,1),g(`span`,ne,`/ `+r(t(S)(e.maxMeterage)),1)])]))),128)):(f(),l(`div`,re,[p[6]||=g(`span`,null,`حداکثر مجاز`,-1),g(`strong`,null,r(t(S)(e.maxMeterage)),1)])),g(`div`,ie,[p[7]||=g(`span`,null,`باقی مانده`,-1),g(`strong`,null,r(t(S)(e.remainingCapacity)),1)])]),p[9]||=g(`p`,{class:`cart-mobile-page__hint`},` پس از ثبت سفارش، کارشناسان قیمت‌گذاری می‌کنند و فاکتور برای شما صادر می‌شود. `,-1),d(D,{block:``,loading:e.submitting,onClick:p[1]||=e=>i(`checkout`)},{default:h(()=>[...p[8]||=[a(`ثبت پیش‌سفارش`,-1)]]),_:1},8,[`loading`])])]))]))}}),[[`__scopeId`,`data-v-346cdc9a`]]),oe=x({__name:`IconLightbulb`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(t,n)=>(f(),o(v,{icon:`vuesax-linear:lamp-on`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),se={class:`desktop-page cart-desktop-page`},ce={class:`cart-desktop-page__head`},le={key:0,class:`cart-desktop-page__subtitle`},ue={class:`cart-desktop-page__layout`},de={class:`cart-desktop-page__main`},fe={key:0,class:`cart-empty-card`},pe={class:`cart-empty-card__visual`,"aria-hidden":`true`},me={class:`cart-empty-card__circle`},he={class:`cart-empty-card__actions`},ge={key:1,class:`cart-items-card`},_e={class:`cart-items-card__scroll`},ve={class:`cart-items-table`},ye={class:`cart-items-table__name`},be=[`onClick`],xe={class:`cart-desktop-page__sidebar`},Se={class:`cart-summary-card`},Ce={class:`cart-summary-card__title`},we={class:`cart-summary-card__title-icon`,"aria-hidden":`true`},Te={class:`cart-summary-card__rows`},Ee={class:`cart-summary-card__row`},De={class:`cart-summary-card__row-label`},Oe={class:`cart-summary-card__row`},ke={class:`cart-summary-card__row-label`},Ae={class:`cart-summary-card__row-label`},je={class:`cart-summary-card__cap`},Me={class:`cart-summary-card__row cart-summary-card__row--hint`},Ne={class:`cart-summary-card__row-label`},Pe=[`disabled`],$={class:`cart-guide-card`},Fe={class:`cart-guide-card__title`},Ie={class:`cart-guide-card__title-icon`,"aria-hidden":`true`},Le={class:`cart-guide-card__text`},Re={class:`cart-quick-nav`,"aria-label":`دسترسی سریع`},ze=[`onClick`],Be={class:`cart-quick-nav__body`},Ve={class:`cart-quick-nav__title`},He={class:`cart-quick-nav__desc`},Ue=_(x({__name:`DesktopCartPage`,props:{items:{},companyName:{},companySummaries:{},totalMeterage:{},maxMeterage:{},remainingCapacity:{},isEmpty:{type:Boolean},submitting:{type:Boolean}},emits:[`remove`,`checkout`,`selectCompany`,`back`],setup(e,{emit:n}){let i=n,m=p(),h=[{title:`کالیته‌ها`,desc:`مرور کالیته و طرح‌ها`,icon:I,tone:`blue`,action:()=>m.push(`/catalogs`)},{title:`دسته‌بندی`,desc:`مشاهده محصولات بر اساس کاربرد`,icon:N,tone:`green`,action:()=>m.push(`/categories`)},{title:`سفارش‌های من`,desc:`پیگیری وضعیت سفارش‌ها`,icon:T,tone:`blue`,action:()=>m.push(`/orders`)}];return(n,p)=>(f(),l(`div`,se,[d(P,{"current-step":1}),g(`header`,ce,[p[3]||=g(`h1`,{class:`cart-desktop-page__title`},`سبد خرید`,-1),e.companyName?(f(),l(`p`,le,` تأمین‌کننده: `+r(e.companyName),1)):s(``,!0)]),g(`div`,ue,[g(`section`,de,[e.isEmpty?(f(),l(`div`,fe,[g(`div`,pe,[p[4]||=g(`span`,{class:`cart-empty-card__spark cart-empty-card__spark--1`},`+`,-1),p[5]||=g(`span`,{class:`cart-empty-card__spark cart-empty-card__spark--2`},`·`,-1),g(`span`,me,[d(ee,{size:40})]),p[6]||=g(`span`,{class:`cart-empty-card__spark cart-empty-card__spark--3`},`·`,-1)]),p[9]||=g(`h2`,{class:`cart-empty-card__heading`},`سبد خرید شما خالی است`,-1),p[10]||=g(`p`,{class:`cart-empty-card__text`},` از دسته‌بندی یا کالیته محصول را انتخاب کنید، جزئیات را ببینید و به سبد اضافه کنید. `,-1),g(`div`,he,[g(`button`,{type:`button`,class:`cart-btn cart-btn--primary`,onClick:p[0]||=e=>i(`selectCompany`)},[d(N,{size:16}),p[7]||=a(` دسته‌بندی محصولات `,-1)]),g(`button`,{type:`button`,class:`cart-btn cart-btn--outline`,onClick:p[1]||=e=>t(m).push(`/catalogs`)},[d(I,{size:18}),p[8]||=a(` مشاهده کالیته‌ها `,-1)])])])):(f(),l(`div`,ge,[g(`div`,_e,[g(`table`,ve,[p[11]||=g(`thead`,null,[g(`tr`,null,[g(`th`,{scope:`col`},`محصول`),g(`th`,{scope:`col`},`کد`),g(`th`,{scope:`col`},`متراژ (متر)`),g(`th`,{scope:`col`},`حذف`)])],-1),g(`tbody`,null,[(f(!0),l(c,null,u(e.items,e=>(f(),l(`tr`,{key:e.id},[g(`td`,null,[g(`strong`,ye,r(e.productName),1)]),g(`td`,null,r(e.productCode),1),g(`td`,null,r(t(C)(e.meterage)),1),g(`td`,null,[g(`button`,{type:`button`,class:`cart-items-table__delete`,"aria-label":`حذف`,onClick:t=>i(`remove`,e.id)},[d(R,{size:18})],8,be)])]))),128))])])])]))]),g(`aside`,xe,[g(`div`,Se,[g(`h2`,Ce,[g(`span`,we,[d(F,{size:22})]),p[12]||=a(` خلاصه سفارش `,-1)]),g(`div`,Te,[g(`div`,Ee,[g(`span`,De,[d(I,{size:16}),p[13]||=a(` تعداد آیتم‌ها `,-1)]),g(`strong`,null,r(t(C)(e.items.length)),1)]),g(`div`,Oe,[g(`span`,ke,[d(N,{size:16}),p[14]||=a(` متراژ کل `,-1)]),g(`strong`,null,r(t(S)(e.totalMeterage)),1)]),(f(!0),l(c,null,u(e.companySummaries??[],e=>(f(),l(`div`,{key:e.companyId,class:`cart-summary-card__row cart-summary-card__row--sub`},[g(`span`,Ae,r(e.companyName),1),g(`strong`,null,[a(r(t(S)(e.meterage))+` `,1),g(`span`,je,`/ `+r(t(S)(e.maxMeterage)),1)])]))),128)),g(`div`,Me,[g(`span`,Ne,[d(T,{size:16}),p[15]||=a(` مبلغ فاکتور `,-1)]),p[16]||=g(`span`,{class:`cart-summary-card__hint-value`},` پس از قیمت‌گذاری مدیریت `,-1)])]),g(`button`,{type:`button`,class:`cart-summary-card__cta`,disabled:e.isEmpty||e.submitting,onClick:p[2]||=e=>i(`checkout`)},[d(O,{size:16}),a(` `+r(e.submitting?`در حال ثبت…`:`ثبت پیش‌سفارش`),1)],8,Pe),p[17]||=g(`p`,{class:`cart-summary-card__note`},` پس از ثبت سفارش، مدیریت قیمت‌گذاری می‌کند و فاکتور صادر می‌شود؛ سپس روش تسویه را انتخاب می‌کنید. `,-1)]),g(`div`,$,[g(`h3`,Fe,[g(`span`,Ie,[d(oe,{size:18})]),p[18]||=a(` راهنمای گام بعدی `,-1)]),g(`p`,Le,[p[19]||=a(` محصولات موردنظر را به سبد اضافه کنید، متراژ کل را بررسی کنید و «ثبت پیش‌سفارش» را بزنید. `,-1),e.isEmpty?s(``,!0):(f(),l(c,{key:0},[a(` سقف مجاز: `+r(t(S)(e.maxMeterage))+` — باقی‌مانده: `+r(t(S)(e.remainingCapacity))+`. `,1)],64)),p[20]||=a(` پس از قیمت‌گذاری، از صفحه سفارش روش تسویه را انتخاب می‌کنید. `,-1)])])])]),g(`nav`,Re,[(f(),l(c,null,u(h,e=>g(`button`,{key:e.title,type:`button`,class:`cart-quick-nav__item`,onClick:t=>e.action()},[g(`span`,{class:b([`cart-quick-nav__icon`,`cart-quick-nav__icon--${e.tone}`])},[(f(),o(y(e.icon),{size:20}))],2),g(`span`,Be,[g(`strong`,Ve,r(e.title),1),g(`span`,He,r(e.desc),1)]),d(O,{size:16,class:`cart-quick-nav__chevron`,"aria-hidden":`true`})],8,ze)),64))]),p[21]||=g(`p`,{class:`cart-desktop-page__footer`},`پارس بافت — سامانه سفارش‌گذاری پارچه`,-1)]))}}),[[`__scopeId`,`data-v-e944f7f3`]]),We={class:`cart-view`},Ge={class:`dialog card`},Ke={class:`dialog-actions`},qe=_(x({__name:`CartView`,setup(e){let r=p(),{cartStore:i,items:c,isEmpty:u,companyName:m,companySummaries:_,showFullDialog:v,submitting:y,submitError:b,removeItem:x,proceedToCheckout:S,proceedAnyway:C,createNewInvoice:w}=L();function T(){r.push(A)}return(e,p)=>(f(),l(`div`,We,[t(b)?(f(),o(M,{key:0,message:t(b),class:`cart-view__error`},null,8,[`message`])):s(``,!0),d(ae,{class:`mobile-only`,items:t(c),"company-name":t(m),"company-summaries":t(_),"total-meterage":t(i).totalMeterage,"max-meterage":t(i).maxMeterage,"remaining-capacity":t(i).remainingCapacity,"is-empty":t(u),submitting:t(y),onBack:p[0]||=e=>t(r).push(`/`),onRemove:t(x),onCheckout:t(S),onSelectCompany:p[1]||=e=>T()},null,8,[`items`,`company-name`,`company-summaries`,`total-meterage`,`max-meterage`,`remaining-capacity`,`is-empty`,`submitting`,`onRemove`,`onCheckout`]),d(Ue,{class:`desktop-only`,items:t(c),"company-name":t(m),"company-summaries":t(_),"total-meterage":t(i).totalMeterage,"max-meterage":t(i).maxMeterage,"remaining-capacity":t(i).remainingCapacity,"is-empty":t(u),submitting:t(y),onRemove:t(x),onCheckout:t(S),onSelectCompany:p[2]||=e=>T(),onBack:T},null,8,[`items`,`company-name`,`company-summaries`,`total-meterage`,`max-meterage`,`remaining-capacity`,`is-empty`,`submitting`,`onRemove`,`onCheckout`]),t(v)?(f(),l(`div`,{key:1,class:`dialog-overlay`,onClick:p[3]||=n(e=>v.value=!1,[`self`])},[g(`div`,Ge,[p[6]||=g(`h3`,null,`سقف متراژ تکمیل شد`,-1),p[7]||=g(`p`,{class:`text-sm`},` سقف متراژ مجاز این سفارش پر شده است. می‌توانید همین پیش‌سفارش را ثبت کنید یا سبد را خالی کرده و سفارش جدید بسازید. `,-1),g(`div`,Ke,[d(D,{variant:`outline`,loading:t(y),onClick:t(C)},{default:h(()=>[...p[4]||=[a(` ثبت همین فاکتور `,-1)]]),_:1},8,[`loading`,`onClick`]),d(D,{onClick:t(w)},{default:h(()=>[...p[5]||=[a(`فاکتور جدید`,-1)]]),_:1},8,[`onClick`])])])])):s(``,!0)]))}}),[[`__scopeId`,`data-v-2f81af33`]]);export{qe as default};