- Add Tahesab/Zarrin accounting sync module with admin panel UI - Add SMS relay driver as default provider, refactor SMS into driver pattern - Update customer services, orders, products, and catalog queries - Rebuild user-app and user-app-v2 dist assets - Add Prisma migration for accounting tables - Update docker-compose and env examples - Update parity docs (DECISIONS, ISSUES, PROGRESS) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2 lines
8.6 KiB
JavaScript
2 lines
8.6 KiB
JavaScript
import{d as U,f as i,c,b as e,p as u,I as L,n as V,t as o,N as O,m as g,h as R,_ as G,s as M,g as h,o as j,l as Q,w as X,e as w,O as Y,z as f,J as Z,j as N,K as ee,F as S,r as A,B as te,i as B}from"./index-Dp9sxvBv.js";import{P as se}from"./PageBar-El-laHqK.js";import{S as ae}from"./SearchInput-OrOd8Tqr.js";import{j as W}from"./filters-CUgGgSea.js";import{D as oe}from"./index-UuozCFb-.js";import{P as le,L as P}from"./index-B0RgkHMm.js";import"./KeyCode-DAs3W-5E.js";import"./classCallCheck-BTVV3tFI.js";import"./raf-nDFcuFT6.js";const E={SUSPENDED:"معلق",PLACED:"ثبت سفارش",ADMIN_APPROVED:"تایید مدیر سیستم",SOURCING:"درحال تامین",PREPARING:"درحال آماده سازی",DELIVERED_TO_AGENT:"تحویل مسئول فروش",DELIVERED_TO_CUSTOMER:"تحویل مشتری",CANCELLED:"لغو شده"},q={PLACED:{font:"#3B82F6",background:"#3B82F61F"},SOURCING:{font:"#EAB308",background:"#EAB3081F"},PREPARING:{font:"#F97316",background:"#F973161F"},DELIVERED_TO_AGENT:{font:"#06B6D4",background:"#06B6D41F"},DELIVERED_TO_CUSTOMER:{font:"#22C55E",background:"#22C55E1F"}},ie=["ثبت سفارش","آماده سازی","تحویل مشتری","لغو شده"];function ne(l){switch(l){case"PLACED":case"ADMIN_APPROVED":case"SUSPENDED":return 0;case"SOURCING":case"PREPARING":return 1;case"DELIVERED_TO_AGENT":case"DELIVERED_TO_CUSTOMER":return 2;case"CANCELLED":return 3;default:return 0}}const re={class:"oc__main"},de={class:"oc__head"},ue={class:"oc__id"},ce={class:"oc__figures"},_e={class:"oc__figure"},ve={class:"oc__figure"},me={class:"oc__foot"},pe={class:"oc__date"},Ee={class:"oc__more"},fe=U({__name:"OrderCard",props:{value:{}},emits:["view"],setup(l,{emit:_}){const v=l,a=_,m=R(()=>E[v.value.status]??v.value.status),n=R(()=>q[v.value.status]);return(C,r)=>{var D,b,k,s;return i(),c("article",{class:"oc",onClick:r[0]||(r[0]=x=>a("view",l.value))},[e("span",{class:"oc__mark",style:V({background:(D=n.value)==null?void 0:D.background,color:(b=n.value)==null?void 0:b.font}),"aria-hidden":"true"},[u(L,{icon:"vuesax-linear:receipt-text",size:"16"})],4),e("div",re,[e("div",de,[e("h3",ue,o(l.value.orderNumber),1),e("span",{class:"oc__status",style:V({background:(k=n.value)==null?void 0:k.background,color:(s=n.value)==null?void 0:s.font})},o(m.value),5)]),e("div",ce,[e("span",_e,[O(o(l.value.items.length)+" ",1),r[1]||(r[1]=e("i",null,"آیتم",-1))]),e("span",ve,[O(o(parseFloat(l.value.totalGoldWeightGrams).toFixed(2))+" ",1),r[2]||(r[2]=e("i",null,"گرم",-1))])]),e("div",me,[e("span",pe,o(g(W)(l.value.createdAt)),1),e("span",Ee,[r[3]||(r[3]=O(" جزئیات ",-1)),u(L,{icon:"vuesax-linear:arrow-left-2",size:"14"})])])])])}}}),De=G(fe,[["__scopeId","data-v-ef740bbe"]]),$=h(null);async function ke(){var v;if($.value)return $.value;const l=await M.listProducts(),_=new Map;for(const a of l)for(const m of a.variants)_.set(m.id,{productTitle:a.title,variantTitle:m.title,imageUrl:(v=a.images[0])==null?void 0:v.url});return $.value=_,_}function ge(){return{lookup:async _=>(await ke()).get(_)}}const be={class:"oi"},he={class:"oi__art"},ye=["alt"],Re={key:1,class:"oi__artEmpty","aria-hidden":"true"},Oe={class:"oi__main"},Ce={class:"oi__head"},Le={class:"oi__title"},Se={key:0,class:"oi__variant"},Ae={class:"oi__figures"},Ie={class:"oi__figure"},Te={class:"oi__figure"},Ne={class:"oi__figure"},Pe=U({__name:"OrderItemCard",props:{value:{}},setup(l){const _=l,{lookup:v}=ge(),a=h();return j(async()=>{a.value=await v(_.value.productVariantId)}),(m,n)=>{var r,D,b,k;const C=Q("lazy");return i(),c("article",be,[e("div",he,[(r=a.value)!=null&&r.imageUrl?X((i(),c("img",{key:0,alt:((D=a.value)==null?void 0:D.productTitle)??""},null,8,ye)),[[C,a.value.imageUrl]]):(i(),c("div",Re,[u(L,{icon:"vuesax-linear:diamonds",size:"18"})]))]),e("div",Oe,[e("div",Ce,[e("h4",Le,o(((b=a.value)==null?void 0:b.productTitle)??"—"),1),(k=a.value)!=null&&k.variantTitle?(i(),c("span",Se,o(a.value.variantTitle),1)):w("",!0)]),e("div",Ae,[e("span",Ie,[O(o(l.value.quantity)+" ",1),n[0]||(n[0]=e("i",null,"عدد",-1))]),e("span",Te,[O(o(l.value.computedWeightGrams)+" ",1),n[1]||(n[1]=e("i",null,"گرم",-1))]),e("span",Ne,[O(o(l.value.wagePercentSnapshot)+" ",1),n[2]||(n[2]=e("i",null,"٪ اجرت",-1))])])])])}}}),$e=G(Pe,[["__scopeId","data-v-dfbe6e64"]]),Ve={class:"ord"},we={class:"ord__barExtra"},Ue={class:"ord__chips no-scrollbar"},Ge=["onClick"],xe={key:0,class:"ord__list"},Fe={key:1,class:"ord__empty"},ze={class:"detail"},Be={class:"detail__bar"},Me={class:"detail__scroll"},je={class:"detail__block"},We={class:"detail__steps"},qe={class:"detail__stepDot"},Je={class:"detail__stepTitle"},Ke={class:"detail__block"},He={class:"detail__headline"},Qe={class:"detail__number"},Xe={class:"detail__specs"},Ye={class:"detail__spec"},Ze={class:"detail__spec"},et={class:"detail__spec"},tt={class:"detail__block"},st={class:"detail__items"},at=U({__name:"OrdersView",setup(l){const _=Y(),v=[{title:"همه",key:"ALL"},{title:E.SUSPENDED,key:"SUSPENDED"},{title:E.PLACED,key:"PLACED"},{title:E.ADMIN_APPROVED,key:"ADMIN_APPROVED"},{title:E.SOURCING,key:"SOURCING"},{title:E.PREPARING,key:"PREPARING"},{title:E.DELIVERED_TO_AGENT,key:"DELIVERED_TO_AGENT"},{title:E.DELIVERED_TO_CUSTOMER,key:"DELIVERED_TO_CUSTOMER"},{title:E.CANCELLED,key:"CANCELLED"}],a=h("ALL"),m=h(!1),n=h(!1),C=h([]),r=h(void 0),D=R(()=>{let p=C.value;return a.value!=="ALL"&&(p=p.filter(t=>t.status===a.value)),r.value&&(p=p.filter(t=>t.orderNumber.includes(r.value))),p});function b(p){r.value=p}async function k(){if(_.isLoggedIn){m.value=!0;try{C.value=await M.getMyOrders()}finally{m.value=!1}}}const s=ee({model:!1,item:null}),x=R(()=>s.item?E[s.item.status]??s.item.status:""),F=R(()=>s.item?q[s.item.status]:void 0),z=R(()=>s.item?ne(s.item.status):0);function J(p){s.item=p,s.model=!0}async function K(){await k(),n.value=!1}return j(k),(p,t)=>{const H=te("container");return i(),c("div",Ve,[u(se,{title:"سفارشات","back-to":"home"},{below:f(()=>[e("div",we,[u(ae,{onSearch:b,"place-holder":"جستجوی شماره سفارش"}),e("div",Ue,[(i(),c(S,null,A(v,d=>e("button",{key:d.key,type:"button",class:B(["ord__chip",{"is-on":a.value===d.key}]),onClick:I=>a.value=d.key},o(d.title),11,Ge)),64))])])]),_:1}),u(Z,{spinning:m.value,tip:"درحال دریافت اطلاعات"},{default:f(()=>[u(g(le),{modelValue:n.value,"onUpdate:modelValue":t[0]||(t[0]=d=>n.value=d),onRefresh:K},{pulling:f(()=>[u(g(P),{size:"18"})]),loosing:f(()=>[u(g(P),{size:"18"})]),loading:f(()=>[u(g(P),{size:"18"})]),success:f(()=>[...t[3]||(t[3]=[e("span",null,null,-1)])]),default:f(()=>[u(H,{class:"ord__body"},{default:f(()=>[D.value.length?(i(),c("div",xe,[(i(!0),c(S,null,A(D.value,d=>(i(),N(De,{key:d.id,value:d,onView:J},null,8,["value"]))),128))])):m.value?w("",!0):(i(),c("section",Fe,[u(L,{icon:"vuesax-linear:box",size:"26"}),t[4]||(t[4]=e("p",null,"سفارشی با این مشخصات پیدا نشد.",-1))]))]),_:1})]),_:1},8,["modelValue"])]),_:1},8,["spinning"]),s.item?(i(),N(g(oe),{key:0,visible:s.model,"onUpdate:visible":t[2]||(t[2]=d=>s.model=d),placement:"bottom",closable:!1,height:"100vh",class:"rtl",bodyStyle:{padding:0,position:"relative"}},{default:f(()=>{var d,I;return[e("div",ze,[e("header",Be,[e("button",{type:"button",class:"detail__close","aria-label":"بستن",onClick:t[1]||(t[1]=y=>s.model=!1)},[u(L,{icon:"vuesax-linear:arrow-right-1",size:"20"})]),t[5]||(t[5]=e("h2",{class:"detail__title"},"جزئیات سفارش",-1)),t[6]||(t[6]=e("span",{class:"detail__spacer","aria-hidden":"true"},null,-1))]),e("div",Me,[e("section",je,[e("div",We,[(i(!0),c(S,null,A(g(ie),(y,T)=>(i(),c("div",{key:y,class:B(["detail__step",{"is-done":T<=z.value,"is-active":T===z.value}])},[e("span",qe,o(T+1),1),e("span",Je,o(y),1)],2))),128))])]),e("section",Ke,[e("div",He,[e("div",null,[t[7]||(t[7]=e("div",{class:"detail__eyebrow"},"شماره سفارش",-1)),e("div",Qe,o(s.item.orderNumber),1)]),e("span",{class:"detail__status",style:V({background:(d=F.value)==null?void 0:d.background,color:(I=F.value)==null?void 0:I.font})},o(x.value),5)]),e("dl",Xe,[e("div",Ye,[t[8]||(t[8]=e("dt",null,"تعداد کالاها",-1)),e("dd",null,o(s.item.items.length)+" آیتم",1)]),e("div",Ze,[t[9]||(t[9]=e("dt",null,"وزن سفارش",-1)),e("dd",null,o(parseFloat(s.item.totalGoldWeightGrams).toFixed(2))+" گرم",1)]),e("div",et,[t[10]||(t[10]=e("dt",null,"تاریخ سفارش",-1)),e("dd",null,o(g(W)(s.item.createdAt)),1)])])]),e("section",tt,[t[11]||(t[11]=e("h3",{class:"detail__blockTitle"},"آیتمهای سفارش",-1)),e("div",st,[(i(!0),c(S,null,A(s.item.items,y=>(i(),N($e,{key:y.id,value:y},null,8,["value"]))),128))])])])])]}),_:1},8,["visible"])):w("",!0)])}}}),vt=G(at,[["__scopeId","data-v-660b7444"]]);export{vt as default};
|