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

1 line
14 KiB
JavaScript

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