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