Files
nademitex_user/dist/assets/CartView-D55wd2i5.js
T
2026-09-13 15:36:48 +03:30

1 line
14 KiB
JavaScript

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