Files
nademitex_user/dist/assets/CartView-BFjbSmpZ.js
T
mohmdsdgandCopilot adb6ca47cd fix(auth): secure sessions and app routing
Validate sessions against the API, honor configurable base paths, and route unknown pages to 404. Keep development ports stable so user and admin apps cannot be confused.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-09-24 20:14:11 +03:30

1 line
14 KiB
JavaScript

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