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