- Rial wage and gram-debt arithmetic matched to the reference; order corrections keep debt in sync - Document confirm/un-confirm is a compare-and-swap (no double-applied cache under concurrency) - Settlement document and expert inputs validated (400 instead of 500) - Expert: edit / activate-deactivate own customers, adjust raw weights only - Made-to-order flow in the app, PreOrder.quantity migration - Order grids: customer column, sort keys; panel select search; pre-order quantity save - Rebuilt release artifacts Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2 lines
14 KiB
JavaScript
2 lines
14 KiB
JavaScript
import{A as ue}from"./AppPullRefresh-B0f-tYJA.js";import{d as K,b as a,c as i,e,p as _,I as b,n as O,t as r,R as I,m as h,i as T,_ as q,W as Z,a as ee,l as ce,w as de,g as D,j as z,aR as _e,C as L,aS as ve,a0 as Ee,h as f,S as fe,U as me,o as pe,z as he,A as De,N as be,v as Se,O as ye,F,r as B,K as ge,E as ke,f as J}from"./index-6E0fX61D.js";import{P as Ce}from"./PageBar-HEcoSwjE.js";import{S as Ae}from"./SearchInput-DosQYiNS.js";import{j as te,p as Re,a as Le}from"./filters-CmtC5ctw.js";import{D as X}from"./index-BRKIhLwl.js";import"./KeyCode-CJkaCAgc.js";import"./classCallCheck-BINKwNli.js";import"./raf-nDFcuFT6.js";const y={SUSPENDED:"معلق",PLACED:"ثبت سفارش",ADMIN_APPROVED:"تایید مدیر",SOURCING:"در حال تامین",PREPARING:"آمادهسازی",DELIVERED_TO_AGENT:"تحویل نماینده",DELIVERED_TO_CUSTOMER:"تحویل مشتری",CANCELLED:"لغو شده"},Oe={SUSPENDED:"سفارش بهدلیل سقف اعتبار معلق شد",PLACED:"سفارش ثبت و دریافت شد",ADMIN_APPROVED:"سفارش توسط مدیر تایید شد",SOURCING:"کالا در حال تامین است",PREPARING:"سفارش در حال آمادهسازی است",DELIVERED_TO_AGENT:"تحویل به نماینده فروش انجام شد",DELIVERED_TO_CUSTOMER:"سفارش به مشتری تحویل شد",CANCELLED:"سفارش لغو شده است"},Ie={SUSPENDED:"vuesax-linear:bag-timer",PLACED:"vuesax-linear:bag-tick",ADMIN_APPROVED:"vuesax-linear:verify",SOURCING:"vuesax-linear:box-search",PREPARING:"vuesax-linear:box-1",DELIVERED_TO_AGENT:"vuesax-linear:truck-time",DELIVERED_TO_CUSTOMER:"vuesax-linear:location-tick",CANCELLED:"vuesax-linear:bag-cross"},M=["PLACED","ADMIN_APPROVED","SOURCING","PREPARING","DELIVERED_TO_AGENT","DELIVERED_TO_CUSTOMER"],Ne={SUSPENDED:{font:"#A16207",background:"#A162071F"},PLACED:{font:"#3B82F6",background:"#3B82F61F"},ADMIN_APPROVED:{font:"#6366F1",background:"#6366F11F"},SOURCING:{font:"#EAB308",background:"#EAB3081F"},PREPARING:{font:"#F97316",background:"#F973161F"},DELIVERED_TO_AGENT:{font:"#06B6D4",background:"#06B6D41F"},DELIVERED_TO_CUSTOMER:{font:"#22C55E",background:"#22C55E1F"},CANCELLED:{font:"#DC2626",background:"#DC26261F"}},Pe={font:"#64748B",background:"#64748B1F"},Te="vuesax-linear:receipt-text";function P(n){return Ne[n]??Pe}function j(n){return y[n]??n}function xe(n){return Oe[n]??""}function Ue(n){return Ie[n]??Te}const we={class:"oc__main"},Ve={class:"oc__head"},$e={class:"oc__id"},Ge={class:"oc__figures"},Fe={class:"oc__figure"},Be={class:"oc__figure"},Me={class:"oc__foot"},ze={class:"oc__date"},We={class:"oc__more"},je=K({__name:"OrderCard",props:{value:{}},emits:["view"],setup(n,{emit:m}){const c=n,p=m,S=T(()=>j(c.value.status)),o=T(()=>P(c.value.status));return(A,d)=>(a(),i("article",{class:"oc",onClick:d[0]||(d[0]=E=>p("view",n.value))},[e("span",{class:"oc__mark",style:O({background:o.value.background,color:o.value.font}),"aria-hidden":"true"},[_(b,{icon:"vuesax-linear:receipt-text",size:"16"})],4),e("div",we,[e("div",Ve,[e("p",$e,r(n.value.orderNumber),1),e("span",{class:"oc__status",style:O({background:o.value.background,color:o.value.font})},r(S.value),5)]),e("div",Ge,[e("span",Fe,[I(r(n.value.items.length)+" ",1),d[1]||(d[1]=e("i",null,"آیتم",-1))]),e("span",Be,[I(r(parseFloat(n.value.totalGoldWeightGrams).toFixed(2))+" ",1),d[2]||(d[2]=e("i",null,"گرم",-1))])]),e("div",Me,[e("span",ze,r(h(te)(n.value.createdAt)),1),e("span",We,[d[3]||(d[3]=I(" جزئیات ",-1)),_(b,{icon:"vuesax-linear:arrow-left-1",size:"14"})])])])]))}}),Ke=q(je,[["__scopeId","data-v-1be00ceb"]]);function qe(n){var c;const m=n.productVariant;if(m)return{productTitle:m.product.title,variantTitle:m.title,imageUrl:(c=m.product.images[0])==null?void 0:c.url}}const Qe={class:"oi"},Ye=["alt"],He={key:1,class:"oi__art oi__art--empty","aria-hidden":"true"},Je={class:"oi__main"},Xe={class:"oi__head"},Ze={class:"oi__title"},et={key:0,class:"oi__variant"},tt={class:"oi__figures"},st={class:"oi__figure"},at={class:"oi__figure"},lt={class:"oi__figure"},ot=["src","alt"],it=K({__name:"OrderItemCard",props:{value:{}},setup(n){const m=n,c=T(()=>qe(m.value)),p=f(!1);return Z(p,S=>{document.body.style.overflow=S?"hidden":""}),ee(()=>{p.value&&(document.body.style.overflow="")}),(S,o)=>{var d,E,N,g;const A=ce("lazy");return a(),i("article",Qe,[(d=c.value)!=null&&d.imageUrl?(a(),i("button",{key:0,type:"button",class:"oi__art","aria-label":"بزرگنمایی تصویر",onClick:o[0]||(o[0]=R=>p.value=!0)},[de(e("img",{alt:((E=c.value)==null?void 0:E.productTitle)??""},null,8,Ye),[[A,c.value.imageUrl]])])):(a(),i("div",He,[_(b,{icon:"vuesax-linear:diamonds",size:"18"})])),e("div",Je,[e("div",Xe,[e("h4",Ze,r(((N=c.value)==null?void 0:N.productTitle)??"—"),1),(g=c.value)!=null&&g.variantTitle?(a(),i("span",et,r(c.value.variantTitle),1)):D("",!0)]),e("div",tt,[e("span",st,[I(r(n.value.quantity)+" ",1),o[3]||(o[3]=e("i",null,"عدد",-1))]),e("span",at,[I(r(n.value.computedWeightGrams)+" ",1),o[4]||(o[4]=e("i",null,"گرم",-1))]),e("span",lt,[I(r(n.value.wagePercentSnapshot)+" ",1),o[5]||(o[5]=e("i",null,"٪ اجرت",-1))])])]),(a(),z(_e,{to:"body"},[_(Ee,{name:"oi-preview"},{default:L(()=>{var R;return[p.value&&((R=c.value)!=null&&R.imageUrl)?(a(),i("div",{key:0,class:"oi__preview",role:"dialog","aria-modal":"true","aria-label":"پیشنمایش تصویر",onClick:o[2]||(o[2]=ve(x=>p.value=!1,["self"]))},[e("button",{type:"button",class:"oi__previewClose","aria-label":"بستن",onClick:o[1]||(o[1]=x=>p.value=!1)},[_(b,{icon:"vuesax-linear:close-circle",size:"22"})]),e("img",{class:"oi__previewImg",src:c.value.imageUrl,alt:c.value.productTitle??""},null,8,ot)])):D("",!0)]}),_:1})]))])}}}),nt=q(it,[["__scopeId","data-v-4bd526d9"]]),rt={class:"ord"},ut={class:"ord__barExtra"},ct={class:"ord__chips no-scrollbar"},dt=["onClick"],_t={key:0,class:"ord__list"},vt={key:1,class:"ord__empty"},Et={key:2,class:"ord__empty"},ft={key:3,class:"ord__more"},mt={class:"detail"},pt={class:"detail__bar"},ht={class:"detail__scroll"},Dt={class:"detail__block"},bt={class:"detail__headline"},St={class:"detail__idBlock"},yt={class:"detail__number"},gt={class:"detail__specs"},kt={class:"detail__spec"},Ct={class:"detail__spec"},At={key:0,class:"detail__spec"},Rt={class:"detail__spec"},Lt={class:"detail__block"},Ot={class:"detail__items"},It={class:"tlSheet"},Nt={class:"tlSheet__banner"},Pt={key:0,class:"tlSheet__rail"},Tt={class:"tlSheet__axis","aria-hidden":"true"},xt={class:"tlSheet__main"},Ut={class:"tlSheet__row"},wt={class:"tlSheet__copy"},Vt={class:"tlSheet__status"},$t={class:"tlSheet__blurb"},Gt=["datetime"],Ft={key:1,class:"tlSheet__when is-wait"},Bt={key:1,class:"tlSheet__empty"},Mt=K({__name:"OrdersView",setup(n){const m=fe(),c=me(),p=[{title:"همه",key:"ALL"},{title:y.SUSPENDED,key:"SUSPENDED"},{title:y.PLACED,key:"PLACED"},{title:y.ADMIN_APPROVED,key:"ADMIN_APPROVED"},{title:y.SOURCING,key:"SOURCING"},{title:y.PREPARING,key:"PREPARING"},{title:y.DELIVERED_TO_AGENT,key:"DELIVERED_TO_AGENT"},{title:y.DELIVERED_TO_CUSTOMER,key:"DELIVERED_TO_CUSTOMER"},{title:y.CANCELLED,key:"CANCELLED"}],S=f("ALL"),o=f([]),A=f(1),d=f(!0),E=f(!1),N=f(!1),g=f(!1),R=f(void 0),x=f(null);let U=null,w=0;function se(l){R.value=l}async function Q(){if(!m.isLoggedIn){o.value=[],d.value=!1;return}if(E.value||!d.value)return;const l=w;E.value=!0,g.value=!1;try{const t=await Se.getMyOrders({page:A.value,status:S.value,q:R.value});if(l!==w)return;const k=t.result??[];o.value=A.value===1?k:[...o.value,...k],k.length<(t.limit??20)?d.value=!1:A.value+=1}catch(t){if(l!==w)return;g.value=!0,d.value=!1,console.log(t)}finally{l===w&&(E.value=!1)}}function ae(){o.value=[],A.value=1,d.value=!0,g.value=!1}async function V(){w+=1,E.value=!1,ae(),await Q()}const u=ye({model:!1,item:null}),$=f(!1),Y=T(()=>u.item?j(u.item.status):""),G=T(()=>u.item?P(u.item.status):P("PLACED"));function le(l){if(l.state==="pending")return;const t=P(l.status);return{color:t.font,borderColor:t.font}}function oe(l){return{background:P(l).font}}const W=T(()=>{const l=u.item;if(!l)return[];const t=new Map;for(const v of l.statusEvents??[])t.has(v.toStatus)||t.set(v.toStatus,v.createdAt);if(t.has(l.status)||t.set(l.status,l.createdAt),l.status==="SUSPENDED")return[{status:"SUSPENDED",at:t.get("SUSPENDED")??l.createdAt,state:"current"},...M.map(v=>({status:v,at:null,state:"pending"}))];if(l.status==="CANCELLED")return[...M.filter(C=>t.has(C)).map(C=>({status:C,at:t.get(C)??null,state:"done"})),{status:"CANCELLED",at:t.get("CANCELLED")??l.createdAt,state:"current"}];const k=M.indexOf(l.status),s=k>=0?k:0;return M.map((v,C)=>({status:v,at:t.get(v)??(C===s?l.createdAt:null),state:C<s?"done":C===s?"current":"pending"}))});function ie(l){u.item=l,u.model=!0,$.value=!1}function ne(){$.value=!1,u.model=!1}async function re(){try{c.invalidate(ge.orders),await V()}finally{N.value=!1}}Z([S,R],()=>{V()}),pe(async()=>{await V(),await he(),typeof IntersectionObserver<"u"&&(U=new IntersectionObserver(l=>{l.some(t=>t.isIntersecting)&&Q()}),x.value&&U.observe(x.value))});let H=!1;return De(()=>{H&&V(),H=!0}),ee(()=>U==null?void 0:U.disconnect()),(l,t)=>{const k=ke("container");return a(),i("div",rt,[_(Ce,{title:"سفارشات",back:!1},{below:L(()=>[e("div",ut,[_(Ae,{onSearch:se,"place-holder":"جستجوی شماره سفارش"}),e("div",ct,[(a(),i(F,null,B(p,s=>e("button",{key:s.key,type:"button",class:J(["ord__chip",{"is-on":S.value===s.key}]),onClick:v=>S.value=s.key},r(s.title),11,dt)),64))])])]),_:1}),_(be,{spinning:E.value&&!o.value.length,tip:"درحال دریافت اطلاعات"},{default:L(()=>[_(ue,{modelValue:N.value,"onUpdate:modelValue":t[0]||(t[0]=s=>N.value=s),onRefresh:re},{default:L(()=>[_(k,{class:"ord__body"},{default:L(()=>[o.value.length?(a(),i("div",_t,[(a(!0),i(F,null,B(o.value,s=>(a(),z(Ke,{key:s.id,value:s,onView:ie},null,8,["value"]))),128))])):!E.value&&!g.value?(a(),i("section",vt,[_(b,{icon:"vuesax-linear:box",size:"26"}),t[4]||(t[4]=e("p",null,"سفارشی با این مشخصات پیدا نشد.",-1))])):D("",!0),g.value?(a(),i("section",Et,[_(b,{icon:"vuesax-linear:danger",size:"26"}),t[5]||(t[5]=e("p",null,"دریافت سفارشها با خطا روبهرو شد.",-1)),e("button",{type:"button",class:"ord__retry",onClick:V},"تلاش دوباره")])):D("",!0),E.value&&o.value.length?(a(),i("div",ft,"در حال دریافت…")):D("",!0),e("div",{ref_key:"sentinel",ref:x,class:"ord__sentinel"},null,512)]),_:1})]),_:1},8,["modelValue"])]),_:1},8,["spinning"]),u.item?(a(),z(h(X),{key:0,visible:u.model,"onUpdate:visible":t[2]||(t[2]=s=>u.model=s),placement:"bottom",closable:!1,height:"100vh",class:"rtl",bodyStyle:{padding:0,position:"relative"}},{default:L(()=>[e("div",mt,[e("header",pt,[e("button",{type:"button",class:"detail__close","aria-label":"بستن",onClick:ne},[_(b,{icon:"vuesax-linear:arrow-right-1",size:"20"})]),t[6]||(t[6]=e("h2",{class:"detail__title"},"جزئیات سفارش",-1)),e("button",{type:"button",class:"detail__trail","aria-label":"تاریخچه وضعیت",onClick:t[1]||(t[1]=s=>$.value=!0)},[_(b,{icon:"vuesax-linear:clock-1",size:"18"})])]),e("div",ht,[e("section",Dt,[e("div",bt,[e("div",St,[t[7]||(t[7]=e("div",{class:"detail__eyebrow"},"شماره سفارش",-1)),e("div",yt,r(u.item.orderNumber),1)]),e("span",{class:"detail__status",style:O({background:G.value.background,color:G.value.font})},r(Y.value),5)]),e("dl",gt,[e("div",kt,[t[8]||(t[8]=e("dt",null,"تعداد کالاها",-1)),e("dd",null,r(u.item.items.length)+" آیتم",1)]),e("div",Ct,[t[9]||(t[9]=e("dt",null,"وزن سفارش",-1)),e("dd",null,r(parseFloat(u.item.totalGoldWeightGrams).toFixed(2))+" گرم",1)]),parseFloat(u.item.flatRialCharge)>0?(a(),i("div",At,[t[10]||(t[10]=e("dt",null,"اجرت ریالی",-1)),e("dd",null,r(h(Re)(Math.round(parseFloat(u.item.flatRialCharge))))+" ریال",1)])):D("",!0),e("div",Rt,[t[11]||(t[11]=e("dt",null,"تاریخ سفارش",-1)),e("dd",null,r(h(te)(u.item.createdAt)),1)])])]),e("section",Lt,[t[12]||(t[12]=e("h3",{class:"detail__blockTitle"},"آیتمهای سفارش",-1)),e("div",Ot,[(a(!0),i(F,null,B(u.item.items,s=>(a(),z(nt,{key:s.id,value:s},null,8,["value"]))),128))])])])])]),_:1},8,["visible"])):D("",!0),_(h(X),{visible:$.value,"onUpdate:visible":t[3]||(t[3]=s=>$.value=s),placement:"bottom",closable:!1,zIndex:1100,height:"70%",class:"rtl island-sheet",bodyStyle:{padding:0}},{default:L(()=>[e("div",It,[e("header",Nt,[t[13]||(t[13]=e("span",{class:"tlSheet__chip"},"وضعیت",-1)),t[14]||(t[14]=e("span",{class:"tlSheet__dash","aria-hidden":"true"},null,-1)),u.item?(a(),i("span",{key:0,class:"tlSheet__badge",style:O({background:G.value.background,color:G.value.font})},[_(b,{icon:"vuesax-linear:tick-circle",size:"14"}),I(" "+r(Y.value),1)],4)):D("",!0)]),W.value.length?(a(),i("ol",Pt,[(a(!0),i(F,null,B(W.value,(s,v)=>(a(),i("li",{key:s.status,class:J(["tlSheet__node",[`is-${s.state}`]])},[e("div",Tt,[s.state==="current"?(a(),i("span",{key:0,class:"tlSheet__halo",style:O({color:h(P)(s.status).font})},null,4)):D("",!0),e("span",{class:"tlSheet__marker",style:O(le(s))},[_(b,{icon:h(Ue)(s.status),size:"16"},null,8,["icon"])],4),v<W.value.length-1?(a(),i("span",{key:1,class:"tlSheet__stem",style:O(s.state==="pending"?void 0:oe(s.status))},null,4)):D("",!0)]),e("div",xt,[e("div",Ut,[e("div",wt,[e("div",Vt,r(h(j)(s.status)),1),e("p",$t,r(h(xe)(s.status)),1)]),s.at?(a(),i("time",{key:0,class:"tlSheet__when",datetime:s.at},r(h(Le)(s.at)),9,Gt)):(a(),i("span",Ft,"در انتظار"))])])],2))),128))])):(a(),i("p",Bt,"مسیری برای این سفارش ثبت نشده است."))])]),_:1},8,["visible"])])}}}),Xt=q(Mt,[["__scopeId","data-v-f7d18beb"]]);export{Xt as default};
|