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

1 line
14 KiB
JavaScript

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