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
2.1 KiB
JavaScript
1 line
2.1 KiB
JavaScript
import{vt as e,w as t}from"./_plugin-vue_export-helper-Bo3WtfwJ.js";import{n,o as r}from"./http-CeONvUNq.js";var i=`ft_catalog_requests`,a={new:`submitted`,approved:`reviewing`,ready_to_ship:`preparing`,delivered:`delivered`,returned:`delivered`,cancelled:`submitted`};function o(){try{let e=localStorage.getItem(i);if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)?t:[]}catch{return[]}}function s(e){localStorage.setItem(i,JSON.stringify(e))}var c={submitted:`ثبتشده`,reviewing:`در حال بررسی`,preparing:`آمادهسازی`,shipped:`ارسالشده`,delivered:`تحویلشده`,new:`درخواست جدید`,approved:`تأیید شده`,ready_to_ship:`آماده ارسال`,returned:`بازگردانده شده`,cancelled:`لغو شده`};function l(e){return{id:e.id,createdAt:e.createdAt,updatedAt:e.updatedAt,status:a[e.status]??e.status,serverStatus:e.status,note:e.note,items:e.items.map(e=>({productId:e.productId,productName:e.productName,productCode:e.productCode,quantity:e.quantity}))}}var u=r(`catalogRequests`,()=>{let r=e(o()),i=e(!0),a=t(()=>[...r.value].sort((e,t)=>t.createdAt.localeCompare(e.createdAt)));function u(e){return c[e]??e}async function d(){if(!i.value){r.value=o();return}try{let e=await n(`/catalog-requests`);r.value=e.map(l),s(r.value)}catch{i.value=!1,r.value=o()}}async function f(e){let t=e.items.filter(e=>e.productId&&e.quantity>0).map(e=>({...e,quantity:Math.max(1,Math.floor(e.quantity))}));if(!t.length)return{success:!1,message:`حداقل یک قلم با تعداد معتبر لازم است.`};if(i.value)try{let i=l(await n(`/catalog-requests`,{method:`POST`,body:{note:e.note?.trim()||void 0,items:t.map(e=>({productId:e.productId,quantity:e.quantity}))}}));return r.value=[i,...r.value.filter(e=>e.id!==i.id)],s(r.value),{success:!0,request:i}}catch{i.value=!1}let a={id:`cr-${Date.now()}`,createdAt:new Date().toISOString(),status:`submitted`,note:e.note?.trim()||void 0,items:t};return r.value=[a,...r.value],s(r.value),{success:!0,request:a}}function p(e){return r.value.find(t=>t.id===e)??null}return{requests:r,sorted:a,statusLabel:u,create:f,getById:p,hydrate:d}});export{u as t}; |