1 line
7.7 KiB
JavaScript
1 line
7.7 KiB
JavaScript
import{$ as e,At as t,B as n,Dt as r,E as ee,H as i,M as a,U as o,Z as te,c as s,d as c,g as ne,h as l,k as u,l as re,m as d,r as f,s as p,st as m,t as h,u as g}from"./_plugin-vue_export-helper-QrIvvHC8.js";import{a as ie,f as _,m as ae,t as v}from"./http-BjLkjdQu.js";import{D as y,L as oe,R as se,S as ce,V as le,o as b,s as x,w as ue}from"./index-pv0Ktkd1.js";import{t as de}from"./AdminPageSkeleton-oWhHYjl4.js";import{t as S}from"./AdminSelect-DFH4VaRE.js";import{a as C,i as w}from"./adminLabels-Cz9ccm1Z.js";import{i as fe}from"./orderStatus-CeC05Cv4.js";var pe={class:`shipping-page`},me={class:`shipping-page__filters admin-card`},he={class:`shipping-page__search`},ge={class:`shipping-page__table admin-card desktop-only`},_e={class:`admin-table-wrap`},T={class:`admin-table`},E={dir:`ltr`},D=[`onClick`],O={key:1},k={class:`compact-only admin-card-list`},A={class:`admin-card-item__header`},j={class:`admin-card-item__title`},M={class:`admin-card-item__meta`},N={dir:`ltr`},P={key:0,class:`admin-card-item__actions`},F=[`onClick`],I={key:0,class:`admin-form__error`,role:`alert`},ve={class:`admin-form__field`},L={class:`admin-form__row`},ye={class:`admin-form__field`},be={class:`admin-form__field`},xe={class:`admin-form__row`},Se={class:`admin-form__field`},Ce={class:`admin-form__field`},we=[`disabled`],R=h(ne({__name:`ShippingView`,setup(ne){let h=se(),R=e([]),z=e([]),B=e(typeof h.query.order==`string`?h.query.order:``),V=e(`all`),H=e(!0),U=e(!1),W=e(``),G=e(!1),K=ie(),Te=[{value:`all`,label:`همه وضعیتها`},{value:`preparing`,label:`در حال آمادهسازی`},{value:`ready`,label:`آماده ارسال`},{value:`shipped`,label:`ارسال شده`},{value:`delivered`,label:`تحویل شده`}],Ee=[{value:`preparing`,label:`در حال آمادهسازی`},{value:`ready`,label:`آماده ارسال`},{value:`shipped`,label:`ارسال شده`},{value:`delivered`,label:`تحویل شده`}],q=()=>({orderId:``,carrier:``,trackingNumber:``,meterage:1e3,status:`preparing`}),J=te(q()),Y=p(()=>{let e=R.value;V.value!==`all`&&(e=e.filter(e=>e.status===V.value));let t=B.value.trim();return t&&(e=e.filter(e=>e.orderNumber.includes(t)||e.customerName.includes(t)||e.trackingNumber.includes(t)||e.carrier.includes(t))),e}),X=p(()=>J.orderId.trim()&&J.carrier.trim()),De=p(()=>{let e=new Set(R.value.map(e=>e.orderId));return z.value.filter(t=>!e.has(t.id)&&fe(t))}),Oe=p(()=>De.value.map(e=>({value:e.id,label:`${e.orderNumber} — ${e.customerName}`})));async function ke(){H.value=!0;try{let[e,t]=await Promise.all([y.list(),ue.list()]);R.value=e,z.value=t.map(e=>ce(e))}catch(e){K.error(e instanceof v?e.message:`بارگذاری ارسالها انجام نشد.`)}finally{H.value=!1}}ee(()=>{ke()}),n(()=>h.query.order,e=>{typeof e==`string`&&e.trim()&&(B.value=e.trim())});function Ae(){let e=z.value.find(e=>e.id===J.orderId);e&&(J.meterage=e.meterage)}function je(){Object.assign(J,q()),W.value=``,U.value=!0}function Z(){U.value=!1,W.value=``}async function Q(){if(!X.value){W.value=`سفارش و باربری الزامی هستند.`;return}G.value=!0;try{let e=await y.create({orderId:J.orderId,carrier:J.carrier.trim(),trackingNumber:J.trackingNumber.trim()||void 0,meterage:J.meterage,status:J.status});R.value.unshift(e),K.success(`بارنامه ثبت شد.`),Z()}catch(e){K.error(e instanceof v?e.message:`ثبت بارنامه انجام نشد.`)}finally{G.value=!1}}async function $(e){try{let t=await y.advanceStatus(e.id),n=R.value.findIndex(t=>t.id===e.id);n!==-1&&(R.value[n]=t),K.success(`وضعیت ارسال بهروزرسانی شد.`)}catch(e){K.error(e instanceof v?e.message:`بهروزرسانی وضعیت انجام نشد.`)}}return(e,n)=>(u(),c(`div`,pe,[s(`div`,{class:`admin-page-header`},[n[7]||=s(`div`,null,[s(`h1`,{class:`admin-page-header__title`},`ارسال و باربری`)],-1),s(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:je},` ثبت بارنامه `)]),s(`div`,me,[s(`div`,he,[l(oe,{name:`search`,size:18}),o(s(`input`,{"onUpdate:modelValue":n[0]||=e=>B.value=e,type:`search`,class:`shipping-page__search-input`,placeholder:`جستجو در سفارش، مشتری، باربری...`},null,512),[[_,B.value]])]),l(S,{modelValue:V.value,"onUpdate:modelValue":n[1]||=e=>V.value=e,class:`shipping-page__status-select`,"aria-label":`فیلتر وضعیت ارسال`,options:Te},null,8,[`modelValue`])]),H.value?(u(),re(de,{key:0,variant:`table`})):(u(),c(f,{key:1},[s(`div`,ge,[s(`div`,_e,[s(`table`,T,[n[8]||=s(`thead`,null,[s(`tr`,null,[s(`th`,null,`شماره سفارش`),s(`th`,null,`مشتری`),s(`th`,null,`باربری`),s(`th`,null,`شماره بارنامه`),s(`th`,null,`متراژ`),s(`th`,null,`وضعیت`),s(`th`,null,`تاریخ ارسال`),s(`th`,null,`تاریخ تحویل`),s(`th`,null,`عملیات`)])],-1),s(`tbody`,null,[(u(!0),c(f,null,a(Y.value,e=>(u(),c(`tr`,{key:e.id},[s(`td`,null,t(e.orderNumber),1),s(`td`,null,t(e.customerName),1),s(`td`,null,t(e.carrier),1),s(`td`,E,t(e.trackingNumber),1),s(`td`,null,t(m(x)(e.meterage)),1),s(`td`,null,[s(`span`,{class:r([`admin-badge`,m(w)[e.status]])},t(m(C)[e.status]),3)]),s(`td`,null,t(e.shippedAt?m(b)(e.shippedAt):`—`),1),s(`td`,null,t(e.deliveredAt?m(b)(e.deliveredAt):`—`),1),s(`td`,null,[e.status===`delivered`?(u(),c(`span`,O,`—`)):(u(),c(`button`,{key:0,type:`button`,class:`admin-btn admin-btn--outline admin-btn--xs`,onClick:t=>$(e)},` مرحله بعد `,8,D))])]))),128))])])])]),s(`div`,k,[(u(!0),c(f,null,a(Y.value,e=>(u(),c(`article`,{key:e.id,class:`admin-card-item`},[s(`div`,A,[s(`p`,j,t(e.orderNumber),1),s(`span`,{class:r([`admin-badge`,m(w)[e.status]])},t(m(C)[e.status]),3)]),s(`div`,M,[s(`span`,null,t(e.customerName),1),s(`span`,null,t(e.carrier),1),s(`span`,null,t(m(x)(e.meterage)),1),s(`span`,N,t(e.trackingNumber),1)]),e.status===`delivered`?g(``,!0):(u(),c(`div`,P,[s(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--xs`,onClick:t=>$(e)},` مرحله بعد `,8,F)]))]))),128))])],64)),l(le,{open:U.value,title:`ثبت بارنامه`,size:`lg`,onClose:Z},{footer:i(()=>[s(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:Z},`انصراف`),s(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!X.value||G.value,onClick:Q},` ثبت بارنامه `,8,we)]),default:i(()=>[s(`form`,{class:`admin-form`,onSubmit:ae(Q,[`prevent`])},[W.value?(u(),c(`p`,I,t(W.value),1)):g(``,!0),s(`div`,ve,[n[9]||=s(`label`,{id:`ship-order-label`},[d(`سفارش `),s(`span`,{class:`admin-form__required`},`*`)],-1),l(S,{modelValue:J.orderId,"onUpdate:modelValue":[n[2]||=e=>J.orderId=e,Ae],block:``,"aria-label":`انتخاب سفارش`,placeholder:`انتخاب سفارش`,options:Oe.value},null,8,[`modelValue`,`options`])]),s(`div`,L,[s(`div`,ye,[n[10]||=s(`label`,{for:`ship-carrier`},[d(`باربری `),s(`span`,{class:`admin-form__required`},`*`)],-1),o(s(`input`,{id:`ship-carrier`,"onUpdate:modelValue":n[3]||=e=>J.carrier=e,type:`text`,class:`admin-input`},null,512),[[_,J.carrier]])]),s(`div`,be,[n[11]||=s(`label`,{for:`ship-tracking`},`شماره بارنامه`,-1),o(s(`input`,{id:`ship-tracking`,"onUpdate:modelValue":n[4]||=e=>J.trackingNumber=e,type:`text`,class:`admin-input`,dir:`ltr`},null,512),[[_,J.trackingNumber]])])]),s(`div`,xe,[s(`div`,Se,[n[12]||=s(`label`,{for:`ship-meterage`},`متراژ`,-1),o(s(`input`,{id:`ship-meterage`,"onUpdate:modelValue":n[5]||=e=>J.meterage=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[_,J.meterage,void 0,{number:!0}]])]),s(`div`,Ce,[n[13]||=s(`label`,{id:`ship-status-label`},`وضعیت`,-1),l(S,{modelValue:J.status,"onUpdate:modelValue":n[6]||=e=>J.status=e,block:``,"aria-label":`وضعیت ارسال`,options:Ee},null,8,[`modelValue`])])])],32)]),_:1},8,[`open`])]))}}),[[`__scopeId`,`data-v-ded219cd`]]);export{R as default}; |