1 line
17 KiB
JavaScript
1 line
17 KiB
JavaScript
import{$ as e,A as t,E as n,F as r,G as i,I as a,L as o,M as s,O as c,X as l,Y as u,_ as d,bt as f,ft as p,g as m,j as h,k as g,n as _,q as v,t as y,tt as b,wt as x,xt as S}from"./BasicIcon-CjTTsi6o.js";import{i as C,n as w,o as T,u as E}from"./format-BHJptHdF.js";import{t as D}from"./catalog-Dd554brK.js";import{S as O,c as k,h as A,i as j,n as M,o as N}from"./index-BQQA5ZX-.js";import{t as P}from"./EmptyState-BpC5eqVE.js";import{r as F,t as I}from"./constants-DXXK14Zz.js";import{t as L}from"./IconChevronBack-B10eZjCQ.js";import{n as R,t as z}from"./IconFamBaftLogo-DC-RbvIL.js";import{t as B}from"./IconCheckCircleOutline-DMQwnwv8.js";import{t as V}from"./IconFilter-lDKrtGms.js";import{t as H}from"./IconMoreVertical-CoEoZgQs.js";var U=[`awaiting_review`,`awaiting_check_review`],W=[`submitted`,`pricing`,`check_in_progress`,`awaiting_cash_confirmation`,`preparing`,`ready_to_ship`,`needs_correction`,`awaiting_settlement_fix`,`cash_in_progress`,`awaiting_cash_payment`,`cash_payment_submitted`,`check_needs_fix`,`awaiting_settlement`,`cash_invoice_issued`],G=[`shipped`],K=[`delivered`,`final_approved`,`checks_approved`,`cash_confirmed`],q=[`cancelled`,`rejected`,`expired`,`check_rejected`],ee=[...U,...W,...G];function te(e,t){switch(t){case`review`:return U.includes(e);case`in_progress`:return W.includes(e);case`shipped`:return G.includes(e);case`delivered`:return K.includes(e);case`cancelled`:return q.includes(e);default:return!0}}function ne(e,t){return t===`active`?ee.includes(e):t===`done`?K.includes(e):t!==`cancelled`||q.includes(e)}var J=5,Y=5;function X(){let t=d(),n=m(),r=A(),a=k(),o=D(),s=p(1),l=p(1),u=p(``);i(async()=>{await Promise.all([r.hydrate(),o.loadCompanies()])}),e(()=>n.query.submitted,e=>{let r=Number(e);if(!Number.isFinite(r)||r<1){u.value=``;return}u.value=r===1?`پیشسفارش با موفقیت ثبت شد.`:`${E(String(r))} پیشسفارش (برای شرکتهای مختلف) ثبت شد.`;let{submitted:i,...a}=n.query;t.replace({query:a})},{immediate:!0});let f=c({get:()=>t.currentRoute.value.query.tab??`all`,set:e=>t.replace({query:{...t.currentRoute.value.query,tab:e}})}),h=c({get:()=>t.currentRoute.value.query.filter??`all`,set:e=>t.replace({query:{...t.currentRoute.value.query,filter:e===`all`?void 0:e}})}),g=c(()=>t.currentRoute.value.query.q??``),_=c(()=>a.user?r.userOrders(a.user.id):[]),v=c(()=>({total:_.value.length,review:_.value.filter(e=>U.includes(e.status)).length,inProgress:_.value.filter(e=>W.includes(e.status)).length,done:_.value.filter(e=>K.includes(e.status)).length}));function y(e,t){if(!t.trim())return!0;let n=t.trim().toLowerCase();return e.orderNumber.toLowerCase().includes(n)||e.companyName.toLowerCase().includes(n)}let b=c(()=>_.value.filter(e=>y(e,g.value)).filter(e=>ne(e.status,f.value))),x=c(()=>_.value.filter(e=>y(e,g.value)).filter(e=>te(e.status,h.value))),S=c(()=>{let e=(s.value-1)*J;return x.value.slice(e,e+J)}),C=c(()=>Math.max(1,Math.ceil(x.value.length/J))),w=c(()=>x.value.length===0?{start:0,end:0}:{start:(s.value-1)*J+1,end:Math.min(s.value*J,x.value.length)}),T=c(()=>{let e=C.value,t=s.value;if(e<=7)return Array.from({length:e},(e,t)=>t+1);let n=[1];t>3&&n.push(`ellipsis`);let r=Math.max(2,t-1),i=Math.min(e-1,t+1);for(let e=r;e<=i;e+=1)n.push(e);return t<e-2&&n.push(`ellipsis`),e>1&&n.push(e),n}),O=c(()=>Math.max(1,Math.ceil(b.value.length/Y))),j=c(()=>{let e=(l.value-1)*Y;return b.value.slice(e,e+Y)}),M=c(()=>b.value.length===0?{start:0,end:0}:{start:(l.value-1)*Y+1,end:Math.min(l.value*Y,b.value.length)}),N=c(()=>{let e=O.value,t=l.value;if(e<=5)return Array.from({length:e},(e,t)=>t+1);let n=[1];t>3&&n.push(`ellipsis`);let r=Math.max(2,t-1),i=Math.min(e-1,t+1);for(let e=r;e<=i;e+=1)n.push(e);return t<e-2&&n.push(`ellipsis`),e>1&&n.push(e),n});e([x,h,g],()=>{s.value=1}),e([b,f,g],()=>{l.value=1});function P(e){return o.getCompany(e.companyId)?.slug??`par`}function F(e){return K.includes(e.status)?`success`:P(e)===`fam-baft`?`fam-baft`:`par`}function I(e){t.push(`/orders/${e}`)}function L(e){e<1||e>C.value||(s.value=e)}function R(e){e<1||e>O.value||(l.value=e)}function z(e){h.value=h.value===e&&e!==`all`?`all`:e}function B(e){h.value=e}return{tab:f,desktopFilter:h,searchQuery:g,stats:v,filteredOrdersMobile:b,filteredOrdersDesktop:x,paginatedOrders:S,paginatedOrdersMobile:j,totalPages:C,mobileTotalPages:O,paginationRange:w,mobilePaginationRange:M,visiblePages:T,mobileVisiblePages:N,currentPage:s,mobilePage:l,companySlug:P,iconVariant:F,submitSuccessMessage:u,goToOrder:I,setPage:L,setMobilePage:R,setDesktopFilter:z,viewStatFilter:B}}var Z=[`aria-selected`,`onClick`],re=_(o({__name:`FilterTabs`,props:{modelValue:{},tabs:{},equal:{type:Boolean}},emits:[`update:modelValue`],setup(e){return(t,r)=>(v(),s(`div`,{class:S([`filter-tabs`,{"filter-tabs--equal":e.equal}]),role:`tablist`},[(v(!0),s(n,null,u(e.tabs,n=>(v(),s(`button`,{key:n.id,type:`button`,role:`tab`,class:S([`filter-tab`,{active:e.modelValue===n.id}]),"aria-selected":e.modelValue===n.id,onClick:e=>t.$emit(`update:modelValue`,n.id)},x(n.label),11,Z))),128))],2))}}),[[`__scopeId`,`data-v-4cd20e9b`]]),ie=_(o({__name:`BaseBadge`,props:{variant:{}},setup(e){return(t,n)=>(v(),s(`span`,{class:S([`badge`,`badge-${e.variant??`neutral`}`])},[l(t.$slots,`default`,{},void 0,!0)],2))}}),[[`__scopeId`,`data-v-5e1be8f4`]]),Q=o({__name:`StatusBadge`,props:{status:{}},setup(e){let n=e,i=c(()=>I[n.status]??n.status),a=c(()=>F[n.status]??`neutral`);return(e,n)=>(v(),t(ie,{variant:a.value},{default:b(()=>[r(x(i.value),1)]),_:1},8,[`variant`]))}}),ae={class:`page orders-mobile-page`},oe={class:`orders-mobile-page__nav`},se={class:`page__scroll page__scroll--with-nav orders-mobile-page__scroll`},ce={key:0,class:`orders-mobile-page__list`},le=[`onClick`],ue={class:`order-card__content`},de={class:`order-card__number`},fe={class:`order-card__company`},pe={key:0,class:`order-card__amount`},me={key:2,class:`orders-mobile-pagination`},he={class:`orders-mobile-pagination__summary`},ge={class:`orders-mobile-pagination__controls`},_e=[`disabled`],ve={key:0,class:`orders-mobile-pagination__ellipsis`},ye=[`onClick`],be=[`disabled`],xe=_(o({__name:`MobileOrdersPage`,props:{tab:{},tabs:{},orders:{},totalCount:{},currentPage:{},totalPages:{},paginationRange:{},visiblePages:{},companySlug:{type:Function},iconVariant:{type:Function}},emits:[`update:tab`,`select`,`back`,`set-page`],setup(e,{emit:i}){let o=i;return(i,c)=>(v(),s(`div`,ae,[g(`header`,oe,[g(`button`,{type:`button`,class:`nav-btn`,"aria-label":`بازگشت`,onClick:c[0]||=e=>o(`back`)},[a(L,{size:20})]),c[5]||=g(`h1`,{class:`orders-mobile-page__title`},`سفارشها`,-1),a(j,{variant:`inline`})]),a(re,{"model-value":e.tab,tabs:e.tabs,equal:``,class:`orders-mobile-page__tabs`,"onUpdate:modelValue":c[1]||=e=>o(`update:tab`,e)},null,8,[`model-value`,`tabs`]),g(`div`,se,[e.orders.length>0?(v(),s(`div`,ce,[(v(!0),s(n,null,u(e.orders,n=>(v(),s(`button`,{key:n.id,type:`button`,class:`order-card`,onClick:e=>o(`select`,n.id)},[g(`div`,ue,[c[6]||=g(`span`,{class:`order-card__label`},`سفارش شماره`,-1),g(`strong`,de,x(n.orderNumber),1),g(`p`,fe,x(n.companyName),1),n.finalAmount?(v(),s(`p`,pe,x(f(w)(n.finalAmount)),1)):h(``,!0),a(Q,{status:n.status,class:`order-card__badge`},null,8,[`status`])]),g(`span`,{class:S([`order-card__icon`,`order-card__icon--${e.iconVariant(n)}`])},[e.companySlug(n)===`fam-baft`?(v(),t(z,{key:0,size:36})):(v(),t(R,{key:1,size:36}))],2)],8,le))),128))])):(v(),t(P,{key:1,variant:`orders`,message:`هنوز سفارشی ثبت نکردهاید`},{default:b(()=>[a(M,{onClick:c[2]||=e=>o(`back`)},{default:b(()=>[...c[7]||=[r(`ثبت سفارش جدید`,-1)]]),_:1})]),_:1})),e.totalCount>0?(v(),s(`div`,me,[g(`p`,he,x(f(E)(String(e.paginationRange.start)))+`– `+x(f(E)(String(e.paginationRange.end)))+` از `+x(f(T)(e.totalCount)),1),g(`div`,ge,[g(`button`,{type:`button`,class:`orders-mobile-pagination__arrow`,disabled:e.currentPage<=1,"aria-label":`صفحه قبل`,onClick:c[3]||=t=>o(`set-page`,e.currentPage-1)},[a(N,{size:16,class:`orders-mobile-pagination__arrow--prev`})],8,_e),(v(!0),s(n,null,u(e.visiblePages,(t,r)=>(v(),s(n,{key:`${t}-${r}`},[t===`ellipsis`?(v(),s(`span`,ve,`…`)):(v(),s(`button`,{key:1,type:`button`,class:S([`orders-mobile-pagination__page`,{"orders-mobile-pagination__page--active":t===e.currentPage}]),onClick:e=>o(`set-page`,t)},x(f(E)(String(t))),11,ye))],64))),128)),g(`button`,{type:`button`,class:`orders-mobile-pagination__arrow`,disabled:e.currentPage>=e.totalPages,"aria-label":`صفحه بعد`,onClick:c[4]||=t=>o(`set-page`,e.currentPage+1)},[a(N,{size:16,class:`orders-mobile-pagination__arrow--next`})],8,be)])])):h(``,!0)])]))}}),[[`__scopeId`,`data-v-de30513b`]]),Se=o({__name:`IconHourglass`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(n,r)=>(v(),t(y,{icon:`vuesax-linear:timer-1`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),Ce=o({__name:`IconProgressClock`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(n,r)=>(v(),t(y,{icon:`vuesax-linear:clock`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),we={class:`desktop-page orders-desktop-page`},Te={class:`orders-stats desktop-grid-4`},Ee={class:`orders-stat-card`},De={class:`orders-stat-card__head`},Oe={class:`orders-stat-card__icon orders-stat-card__icon--total`,"aria-hidden":`true`},ke={class:`orders-stat-card__value`},Ae={class:`orders-stat-card`},je={class:`orders-stat-card__head`},Me={class:`orders-stat-card__icon orders-stat-card__icon--review`,"aria-hidden":`true`},Ne={class:`orders-stat-card__value`},Pe={class:`orders-stat-card`},Fe={class:`orders-stat-card__head`},Ie={class:`orders-stat-card__icon orders-stat-card__icon--active`,"aria-hidden":`true`},Le={class:`orders-stat-card__value`},Re={class:`orders-stat-card`},ze={class:`orders-stat-card__head`},Be={class:`orders-stat-card__icon orders-stat-card__icon--done`,"aria-hidden":`true`},Ve={class:`orders-stat-card__value`},He={class:`desktop-toolbar`},Ue={class:`desktop-toolbar__actions`},We={type:`button`,class:`orders-toolbar__filter-btn`},Ge={class:`orders-toolbar__pills`,role:`tablist`,"aria-label":`فیلتر وضعیت`},Ke=[`aria-selected`,`onClick`],qe={key:0,class:`desktop-table-wrap`},Je={class:`desktop-table-scroll`},Ye={class:`desktop-table orders-table`},Xe={class:`orders-table__number`},Ze={class:`orders-table__amount`},Qe={class:`orders-table__date`},$e={class:`orders-table__actions`},et=[`onClick`],tt={type:`button`,class:`orders-table__menu`,"aria-label":`گزینههای بیشتر`},$={class:`orders-pagination`},nt={class:`orders-pagination__summary`},rt={class:`orders-pagination__controls`},it=[`disabled`],at={key:0,class:`orders-pagination__ellipsis`},ot=[`onClick`],st=[`disabled`],ct=o({__name:`DesktopOrdersPage`,props:{stats:{},desktopFilter:{},desktopFilterTabs:{},filteredOrders:{},paginatedOrders:{},paginationRange:{},visiblePages:{},currentPage:{},totalPages:{}},emits:[`viewStatFilter`,`setDesktopFilter`,`select`,`setPage`,`newOrder`],setup(e,{emit:i}){let o=i;return(i,c)=>(v(),s(`div`,we,[c[14]||=g(`header`,{class:`desktop-page__head`},[g(`h1`,{class:`desktop-page__title`},`سفارشها`),g(`p`,{class:`desktop-page__subtitle`},`مدیریت و پیگیری سفارشهای ثبت شده`)],-1),g(`div`,Te,[g(`article`,Ee,[g(`div`,De,[c[7]||=g(`span`,{class:`orders-stat-card__label orders-stat-card__label--total`},`همه سفارشها`,-1),g(`span`,Oe,[a(O,{size:20})])]),g(`strong`,ke,x(f(T)(e.stats.total)),1),g(`button`,{type:`button`,class:`orders-stat-card__link`,onClick:c[0]||=e=>o(`viewStatFilter`,`all`)},` مشاهده همه `)]),g(`article`,Ae,[g(`div`,je,[c[8]||=g(`span`,{class:`orders-stat-card__label orders-stat-card__label--review`},`در انتظار بررسی`,-1),g(`span`,Me,[a(Se,{size:20})])]),g(`strong`,Ne,x(f(T)(e.stats.review)),1),g(`button`,{type:`button`,class:`orders-stat-card__link`,onClick:c[1]||=e=>o(`viewStatFilter`,`review`)},` مشاهده همه `)]),g(`article`,Pe,[g(`div`,Fe,[c[9]||=g(`span`,{class:`orders-stat-card__label orders-stat-card__label--active`},`در حال انجام`,-1),g(`span`,Ie,[a(Ce,{size:20})])]),g(`strong`,Le,x(f(T)(e.stats.inProgress)),1),g(`button`,{type:`button`,class:`orders-stat-card__link`,onClick:c[2]||=e=>o(`viewStatFilter`,`in_progress`)},` مشاهده همه `)]),g(`article`,Re,[g(`div`,ze,[c[10]||=g(`span`,{class:`orders-stat-card__label orders-stat-card__label--done`},`تکمیل شده`,-1),g(`span`,Be,[a(B,{size:20})])]),g(`strong`,Ve,x(f(T)(e.stats.done)),1),g(`button`,{type:`button`,class:`orders-stat-card__link`,onClick:c[3]||=e=>o(`viewStatFilter`,`delivered`)},` مشاهده همه `)])]),g(`div`,He,[g(`div`,Ue,[g(`button`,We,[a(V,{size:18}),c[11]||=r(` فیلترها `,-1)])]),g(`div`,Ge,[(v(!0),s(n,null,u(e.desktopFilterTabs,t=>(v(),s(`button`,{key:t.id,type:`button`,role:`tab`,class:S([`orders-filter-pill`,{"orders-filter-pill--active":e.desktopFilter===t.id}]),"aria-selected":e.desktopFilter===t.id,onClick:e=>o(`setDesktopFilter`,t.id)},x(t.label),11,Ke))),128))])]),e.filteredOrders.length>0?(v(),s(`div`,qe,[g(`div`,Je,[g(`table`,Ye,[c[12]||=g(`thead`,null,[g(`tr`,null,[g(`th`,{scope:`col`},`شماره سفارش`),g(`th`,{scope:`col`},`شرکت`),g(`th`,{scope:`col`},`مبلغ فاکتور (تومان)`),g(`th`,{scope:`col`},`وضعیت`),g(`th`,{scope:`col`},`تاریخ ثبت`),g(`th`,{scope:`col`},`عملیات`)])],-1),g(`tbody`,null,[(v(!0),s(n,null,u(e.paginatedOrders,e=>(v(),s(`tr`,{key:e.id},[g(`td`,Xe,x(e.orderNumber),1),g(`td`,null,x(e.companyName),1),g(`td`,Ze,x(e.finalAmount?f(T)(e.finalAmount):`—`),1),g(`td`,null,[a(Q,{status:e.status},null,8,[`status`])]),g(`td`,Qe,x(f(C)(e.createdAt)),1),g(`td`,null,[g(`div`,$e,[g(`button`,{type:`button`,class:`orders-table__action`,onClick:t=>o(`select`,e.id)},` مشاهده `,8,et),g(`button`,tt,[a(H,{size:18})])])])]))),128))])])]),g(`div`,$,[g(`span`,nt,` نمایش `+x(f(T)(e.paginationRange.start))+` تا `+x(f(T)(e.paginationRange.end))+` از `+x(f(T)(e.filteredOrders.length))+` سفارش `,1),g(`div`,rt,[g(`button`,{type:`button`,class:`orders-pagination__arrow`,disabled:e.currentPage<=1,"aria-label":`صفحه قبل`,onClick:c[4]||=t=>o(`setPage`,e.currentPage-1)},[a(N,{size:16,class:`orders-pagination__arrow-icon--prev`})],8,it),(v(!0),s(n,null,u(e.visiblePages,(t,r)=>(v(),s(n,{key:`${t}-${r}`},[t===`ellipsis`?(v(),s(`span`,at,`…`)):(v(),s(`button`,{key:1,type:`button`,class:S([`orders-pagination__page`,{"orders-pagination__page--active":t===e.currentPage}]),onClick:e=>o(`setPage`,t)},x(f(T)(t)),11,ot))],64))),128)),g(`button`,{type:`button`,class:`orders-pagination__arrow`,disabled:e.currentPage>=e.totalPages,"aria-label":`صفحه بعد`,onClick:c[5]||=t=>o(`setPage`,e.currentPage+1)},[a(N,{size:16,class:`orders-pagination__arrow-icon--next`})],8,st)])])])):(v(),t(P,{key:1,variant:`orders`,message:`هنوز سفارشی ثبت نکردهاید`},{default:b(()=>[a(M,{onClick:c[6]||=e=>o(`newOrder`)},{default:b(()=>[...c[13]||=[r(`ثبت سفارش جدید`,-1)]]),_:1})]),_:1}))]))}}),lt={class:`orders-view`},ut={key:0,class:`orders-view__success`,role:`status`},dt=_(o({__name:`OrdersView`,setup(e){let t=d(),{tab:n,desktopFilter:r,stats:i,filteredOrdersMobile:o,filteredOrdersDesktop:c,paginatedOrders:l,paginatedOrdersMobile:u,totalPages:p,mobileTotalPages:m,paginationRange:g,mobilePaginationRange:_,visiblePages:y,mobileVisiblePages:b,currentPage:S,mobilePage:C,companySlug:w,iconVariant:T,submitSuccessMessage:E,goToOrder:D,setPage:O,setMobilePage:k,setDesktopFilter:A,viewStatFilter:j}=X(),M=[{id:`all`,label:`همه`},{id:`active`,label:`در جریان`},{id:`done`,label:`تکمیل شده`},{id:`cancelled`,label:`لغو شده`}],N=[{id:`review`,label:`در انتظار بررسی`},{id:`in_progress`,label:`در حال انجام`},{id:`shipped`,label:`ارسال شده`},{id:`delivered`,label:`تحویل شده`},{id:`cancelled`,label:`لغو شده`}];return(e,d)=>(v(),s(`div`,lt,[f(E)?(v(),s(`p`,ut,x(f(E)),1)):h(``,!0),a(xe,{class:`mobile-only`,tab:f(n),tabs:M,orders:f(u),"total-count":f(o).length,"current-page":f(C),"total-pages":f(m),"pagination-range":f(_),"visible-pages":f(b),"company-slug":f(w),"icon-variant":f(T),"onUpdate:tab":d[0]||=e=>n.value=e,onSelect:f(D),onBack:d[1]||=e=>f(t).push(`/`),onSetPage:f(k)},null,8,[`tab`,`orders`,`total-count`,`current-page`,`total-pages`,`pagination-range`,`visible-pages`,`company-slug`,`icon-variant`,`onSelect`,`onSetPage`]),a(ct,{class:`desktop-only`,stats:f(i),"desktop-filter":f(r),"desktop-filter-tabs":N,"filtered-orders":f(c),"paginated-orders":f(l),"pagination-range":f(g),"visible-pages":f(y),"current-page":f(S),"total-pages":f(p),onViewStatFilter:f(j),onSetDesktopFilter:f(A),onSelect:f(D),onSetPage:f(O),onNewOrder:d[2]||=e=>f(t).push(`/companies`)},null,8,[`stats`,`desktop-filter`,`filtered-orders`,`paginated-orders`,`pagination-range`,`visible-pages`,`current-page`,`total-pages`,`onViewStatFilter`,`onSetDesktopFilter`,`onSelect`,`onSetPage`])]))}}),[[`__scopeId`,`data-v-6dc7c1a5`]]);export{dt as default}; |