Files
nademitex_user/dist/assets/CartView-B-Qlz3-U.js
T
2026-09-30 09:54:04 +03:30

1 line
16 KiB
JavaScript

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