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