Files

2 lines
13 KiB
JavaScript

import{A as ue}from"./AppPullRefresh-CsuQ3Y8x.js";import{d as J,e as a,f as i,g as e,x as d,I as E,n as P,t as n,W as L,q as g,h as k,j as C,_ as Q,c as te,p as ce,v as de,O as q,aV as _e,J as T,y as ve,am as me,k as b,G as pe,Z as fe,w as he,o as ye,$ as be,b as ge,T as ke,D as Se,U as Ee,F as B,r as W,K as Ce,M as we,i as H}from"./index-BFOyCNFT.js";import{P as De}from"./PageBar-Cz1N2fdD.js";import{S as $e}from"./SearchInput-C_6TS52w.js";import{O as $,a as Le,o as z,b as Ae,c as X,d as Ne,e as j}from"./orderStatus-DQMd9b1t.js";import{p as se,j as ae,a as Ie}from"./filters-sld47Iy-.js";import{D as ee}from"./index-BgbR-bph.js";import"./KeyCode-C6xc2Qke.js";import"./classCallCheck-BVPDkxOa.js";import"./raf-nDFcuFT6.js";const Oe={class:"oc__main"},xe={class:"oc__head"},Te={class:"oc__id"},Pe={key:0,class:"oc__status oc__status--rev"},Re={class:"oc__figures"},Ue={class:"oc__figure"},Ve={class:"oc__figure"},ze={key:0,class:"oc__figure"},Fe={class:"oc__foot"},Ge={class:"oc__date"},Me={class:"oc__more"},Be=J({__name:"OrderCard",props:{value:{}},emits:["view"],setup(f,{emit:_}){const r=f,w=_,A=C(()=>$[r.value.status]??r.value.status),v=C(()=>Le[r.value.status]),y=C(()=>{const p=Number(r.value.flatRialCharge);return Number.isFinite(p)&&p>0?p:0});return(p,u)=>{var S,o,m,N;return a(),i("article",{class:"oc",onClick:u[0]||(u[0]=D=>w("view",f.value))},[e("span",{class:"oc__mark",style:P({background:(S=v.value)==null?void 0:S.background,color:(o=v.value)==null?void 0:o.font}),"aria-hidden":"true"},[d(E,{icon:"vuesax-linear:receipt-text",size:"16"})],4),e("div",Oe,[e("div",xe,[e("h3",Te,n(f.value.orderNumber),1),f.value.revisionStatus==="AWAITING_CUSTOMER"?(a(),i("span",Pe," منتظر تأیید ویرایش ")):(a(),i("span",{key:1,class:"oc__status",style:P({background:(m=v.value)==null?void 0:m.background,color:(N=v.value)==null?void 0:N.font})},n(A.value),5))]),e("div",Re,[e("span",Ue,[L(n(f.value.items.length)+" ",1),u[1]||(u[1]=e("i",null,"آیتم",-1))]),e("span",Ve,[L(n(parseFloat(f.value.totalGoldWeightGrams).toFixed(2))+" ",1),u[2]||(u[2]=e("i",null,"گرم",-1))]),y.value>0?(a(),i("span",ze,[L(n(g(se)(y.value))+" ",1),u[3]||(u[3]=e("i",null,"ریال اجرت",-1))])):k("",!0)]),e("div",Fe,[e("span",Ge,n(g(ae)(f.value.createdAt)),1),e("span",Me,[u[4]||(u[4]=L(" جزئیات ",-1)),d(E,{icon:"vuesax-linear:arrow-left-2",size:"14"})])])])])}}}),We=Q(Be,[["__scopeId","data-v-a37d1f3f"]]);function je(f){var r,w;const _=f.productVariant;if(_)return{productTitle:_.product.title,variantTitle:_.title,imageUrl:((r=_.image)==null?void 0:r.url)??((w=_.product.images[0])==null?void 0:w.url)}}const qe={class:"oi"},Ke=["aria-label"],Je=["alt"],Qe={key:1,class:"oi__art","aria-hidden":"true"},Ye={class:"oi__artEmpty"},Ze={class:"oi__main"},He={class:"oi__head"},Xe={class:"oi__title"},et={key:0,class:"oi__variant"},tt={class:"oi__chips"},st={class:"oi__chip"},at={class:"oi__chip"},lt={class:"oi__chip"},it={key:0,class:"oi__chip oi__chip--accent"},ot=["src","alt"],nt=J({__name:"OrderItemCard",props:{value:{}},setup(f){const _=f,r=C(()=>je(_.value)),w=C(()=>{const o=Number(_.value.flatRialCharge);return Number.isFinite(o)&&o>0?o:0}),A=C(()=>{const o=parseFloat(String(_.value.computedWeightGrams));return Number.isFinite(o)?o.toFixed(2):String(_.value.computedWeightGrams)}),v=C(()=>{const o=parseFloat(String(_.value.wagePercentSnapshot));return Number.isFinite(o)?o%1===0?String(o):o.toFixed(2):String(_.value.wagePercentSnapshot)}),y=b(!1);let p=!1;function u(){var o;(o=r.value)!=null&&o.imageUrl&&(y.value=!0,document.documentElement.style.overflow!=="hidden"&&(document.body.style.overflow="hidden",p=!0))}function S(){y.value=!1,p&&(document.body.style.overflow=""),p=!1}return te(S),(o,m)=>{var D,I,F,R;const N=ce("lazy");return a(),i("article",qe,[(D=r.value)!=null&&D.imageUrl?(a(),i("button",{key:0,type:"button",class:"oi__art oi__art--preview","aria-label":`پیش‌نمایش ${r.value.productTitle??"تصویر"}`,onClick:u},[de(e("img",{alt:((I=r.value)==null?void 0:I.productTitle)??""},null,8,Je),[[N,r.value.imageUrl]])],8,Ke)):(a(),i("div",Qe,[e("div",Ye,[d(E,{icon:"vuesax-linear:diamonds",size:"22"})])])),e("div",Ze,[e("div",He,[e("h4",Xe,n(((F=r.value)==null?void 0:F.productTitle)??"محصول"),1),(R=r.value)!=null&&R.variantTitle?(a(),i("span",et,n(r.value.variantTitle),1)):k("",!0)]),e("div",tt,[e("span",st,[e("b",null,n(f.value.quantity),1),m[0]||(m[0]=L(" عدد ",-1))]),e("span",at,[e("b",null,n(A.value),1),m[1]||(m[1]=L(" گرم ",-1))]),e("span",lt,[e("b",null,n(v.value),1),m[2]||(m[2]=L(" ٪ اجرت ",-1))]),w.value>0?(a(),i("span",it,[e("b",null,n(g(se)(w.value)),1),m[3]||(m[3]=L(" ریال ",-1))])):k("",!0)])]),(a(),q(_e,{to:"body"},[d(me,{name:"oi-preview"},{default:T(()=>{var G;return[y.value&&((G=r.value)!=null&&G.imageUrl)?(a(),i("div",{key:0,class:"oi__preview",role:"dialog","aria-modal":"true","aria-label":"پیش‌نمایش تصویر",onClick:ve(S,["self"])},[e("button",{type:"button",class:"oi__previewClose","aria-label":"بستن",onClick:S},[d(E,{icon:"vuesax-linear:add",size:"20"})]),e("img",{class:"oi__previewImg",src:r.value.imageUrl,alt:r.value.productTitle??"",draggable:"false"},null,8,ot)])):k("",!0)]}),_:1})]))])}}}),rt=Q(nt,[["__scopeId","data-v-f788cd63"]]),ut={class:"ord"},ct={class:"ord__barExtra"},dt={class:"ord__chips no-scrollbar"},_t=["onClick"],vt={key:0,class:"ord__list"},mt={key:1,class:"ord__empty"},pt={key:2,class:"ord__empty"},ft={key:3,class:"ord__more"},ht={class:"detail"},yt={class:"detail__bar"},bt={class:"detail__scroll"},gt={class:"detail__block"},kt={class:"detail__headline"},St={class:"detail__idBlock"},Et={class:"detail__number"},Ct={class:"detail__specs"},wt={class:"detail__spec"},Dt={class:"detail__spec"},$t={class:"detail__spec"},Lt={class:"detail__block"},At={class:"detail__items"},Nt={class:"tlSheet"},It={class:"tlSheet__banner"},Ot={key:0,class:"tlSheet__rail"},xt={class:"tlSheet__axis","aria-hidden":"true"},Tt={class:"tlSheet__main"},Pt={class:"tlSheet__row"},Rt={class:"tlSheet__copy"},Ut={class:"tlSheet__status"},Vt={class:"tlSheet__blurb"},zt=["datetime"],Ft={key:1,class:"tlSheet__when is-wait"},Gt={key:1,class:"tlSheet__empty"},Mt=J({__name:"OrdersView",setup(f){const _=pe(),r=fe(),w=[{title:"همه",key:"ALL"},{title:$.SUSPENDED,key:"SUSPENDED"},{title:$.PLACED,key:"PLACED"},{title:$.ADMIN_APPROVED,key:"ADMIN_APPROVED"},{title:$.SOURCING,key:"SOURCING"},{title:$.PREPARING,key:"PREPARING"},{title:$.DELIVERED_TO_AGENT,key:"DELIVERED_TO_AGENT"},{title:$.DELIVERED_TO_CUSTOMER,key:"DELIVERED_TO_CUSTOMER"},{title:$.CANCELLED,key:"CANCELLED"}],A=b("ALL"),v=b([]),y=b(1),p=b(!0),u=b(!1),S=b(!1),o=b(!1),m=b(void 0),N=b(null);let D=null,I=0;function F(l){m.value=l}async function R(){if(!_.isLoggedIn){v.value=[],p.value=!1;return}if(u.value||!p.value)return;const l=I;u.value=!0,o.value=!1;try{const t=await Se.getMyOrders({page:y.value,status:A.value,q:m.value});if(l!==I)return;const O=t.result??[];v.value=y.value===1?O:[...v.value,...O],O.length<(t.limit??20)?p.value=!1:y.value+=1}catch(t){if(l!==I)return;o.value=!0,p.value=!1,console.log(t)}finally{l===I&&(u.value=!1)}}function G(){v.value=[],y.value=1,p.value=!0,o.value=!1}async function U(){I+=1,u.value=!1,G(),await R()}const c=Ee({model:!1,item:null}),V=b(!1),Y=C(()=>c.item?X(c.item.status):""),M=C(()=>c.item?z(c.item.status):z("PLACED"));function le(l){if(l.state==="pending")return;const t=z(l.status);return{color:t.font,borderColor:t.font}}function ie(l){return{background:z(l).font}}const K=C(()=>{const l=c.item;if(!l)return[];const t=new Map;for(const h of l.statusEvents??[])t.has(h.toStatus)||t.set(h.toStatus,h.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"},...j.map(h=>({status:h,at:null,state:"pending"}))];if(l.status==="CANCELLED")return[...j.filter(x=>t.has(x)).map(x=>({status:x,at:t.get(x)??null,state:"done"})),{status:"CANCELLED",at:t.get("CANCELLED")??l.createdAt,state:"current"}];const O=j.indexOf(l.status),s=O>=0?O:0;return j.map((h,x)=>({status:h,at:t.get(h)??(x===s?l.createdAt:null),state:x<s?"done":x===s?"current":"pending"}))});function oe(l){c.item=l,c.model=!0,V.value=!1}function ne(){V.value=!1,c.model=!1}async function re(){try{r.invalidate(Ce.orders),await U()}finally{S.value=!1}}he([A,m],()=>{U()}),ye(async()=>{await U(),await be(),typeof IntersectionObserver<"u"&&(D=new IntersectionObserver(l=>{l.some(t=>t.isIntersecting)&&R()}),N.value&&D.observe(N.value))});let Z=!1;return ge(()=>{Z&&U(),Z=!0}),te(()=>D==null?void 0:D.disconnect()),(l,t)=>{const O=we("container");return a(),i("div",ut,[d(De,{title:"سفارشات","back-to":"home"},{below:T(()=>[e("div",ct,[d($e,{onSearch:F,"place-holder":"جستجوی شماره سفارش"}),e("div",dt,[(a(),i(B,null,W(w,s=>e("button",{key:s.key,type:"button",class:H(["ord__chip",{"is-on":A.value===s.key}]),onClick:h=>A.value=s.key},n(s.title),11,_t)),64))])])]),_:1}),d(ke,{spinning:u.value&&!v.value.length,tip:"درحال دریافت اطلاعات"},{default:T(()=>[d(ue,{modelValue:S.value,"onUpdate:modelValue":t[0]||(t[0]=s=>S.value=s),onRefresh:re},{default:T(()=>[d(O,{class:"ord__body"},{default:T(()=>[v.value.length?(a(),i("div",vt,[(a(!0),i(B,null,W(v.value,s=>(a(),q(We,{key:s.id,value:s,onView:oe},null,8,["value"]))),128))])):!u.value&&!o.value?(a(),i("section",mt,[d(E,{icon:"vuesax-linear:box",size:"26"}),t[4]||(t[4]=e("p",null,"سفارشی با این مشخصات پیدا نشد.",-1))])):k("",!0),o.value?(a(),i("section",pt,[d(E,{icon:"vuesax-linear:danger",size:"26"}),t[5]||(t[5]=e("p",null,"دریافت سفارش‌ها با خطا روبه‌رو شد.",-1)),e("button",{type:"button",class:"ord__retry",onClick:U},"تلاش دوباره")])):k("",!0),u.value&&v.value.length?(a(),i("div",ft,"در حال دریافت…")):k("",!0),e("div",{ref_key:"sentinel",ref:N,class:"ord__sentinel"},null,512)]),_:1})]),_:1},8,["modelValue"])]),_:1},8,["spinning"]),c.item?(a(),q(g(ee),{key:0,visible:c.model,"onUpdate:visible":t[2]||(t[2]=s=>c.model=s),placement:"bottom",closable:!1,height:"100vh",class:"rtl",bodyStyle:{padding:0,position:"relative"}},{default:T(()=>[e("div",ht,[e("header",yt,[e("button",{type:"button",class:"detail__close","aria-label":"بستن",onClick:ne},[d(E,{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=>V.value=!0)},[d(E,{icon:"vuesax-linear:clock-1",size:"18"})])]),e("div",bt,[e("section",gt,[e("div",kt,[e("div",St,[t[7]||(t[7]=e("div",{class:"detail__eyebrow"},"شماره سفارش",-1)),e("div",Et,n(c.item.orderNumber),1)]),e("span",{class:"detail__status",style:P({background:M.value.background,color:M.value.font})},n(Y.value),5)]),e("dl",Ct,[e("div",wt,[t[8]||(t[8]=e("dt",null,"تعداد کالاها",-1)),e("dd",null,n(c.item.items.length)+" آیتم",1)]),e("div",Dt,[t[9]||(t[9]=e("dt",null,"وزن سفارش",-1)),e("dd",null,n(parseFloat(c.item.totalGoldWeightGrams).toFixed(2))+" گرم",1)]),e("div",$t,[t[10]||(t[10]=e("dt",null,"تاریخ سفارش",-1)),e("dd",null,n(g(ae)(c.item.createdAt)),1)])])]),e("section",Lt,[t[11]||(t[11]=e("h3",{class:"detail__blockTitle"},"آیتم‌های سفارش",-1)),e("div",At,[(a(!0),i(B,null,W(c.item.items,s=>(a(),q(rt,{key:s.id,value:s},null,8,["value"]))),128))])])])])]),_:1},8,["visible"])):k("",!0),d(g(ee),{visible:V.value,"onUpdate:visible":t[3]||(t[3]=s=>V.value=s),placement:"bottom",closable:!1,zIndex:1100,height:"70%",class:"rtl",bodyStyle:{padding:0}},{default:T(()=>[e("div",Nt,[t[14]||(t[14]=e("span",{class:"tlSheet__grip","aria-hidden":"true"},null,-1)),e("header",It,[t[12]||(t[12]=e("span",{class:"tlSheet__chip"},"وضعیت",-1)),t[13]||(t[13]=e("span",{class:"tlSheet__dash","aria-hidden":"true"},null,-1)),c.item?(a(),i("span",{key:0,class:"tlSheet__badge",style:P({background:M.value.background,color:M.value.font})},[d(E,{icon:"vuesax-linear:tick-circle",size:"14"}),L(" "+n(Y.value),1)],4)):k("",!0)]),K.value.length?(a(),i("ol",Ot,[(a(!0),i(B,null,W(K.value,(s,h)=>(a(),i("li",{key:s.status,class:H(["tlSheet__node",[`is-${s.state}`]])},[e("div",xt,[s.state==="current"?(a(),i("span",{key:0,class:"tlSheet__halo",style:P({color:g(z)(s.status).font})},null,4)):k("",!0),e("span",{class:"tlSheet__marker",style:P(le(s))},[d(E,{icon:g(Ae)(s.status),size:"16"},null,8,["icon"])],4),h<K.value.length-1?(a(),i("span",{key:1,class:"tlSheet__stem",style:P(s.state==="pending"?void 0:ie(s.status))},null,4)):k("",!0)]),e("div",Tt,[e("div",Pt,[e("div",Rt,[e("div",Ut,n(g(X)(s.status)),1),e("p",Vt,n(g(Ne)(s.status)),1)]),s.at?(a(),i("time",{key:0,class:"tlSheet__when",datetime:s.at},n(g(Ie)(s.at)),9,zt)):(a(),i("span",Ft,"در انتظار"))])])],2))),128))])):(a(),i("p",Gt,"مسیری برای این سفارش ثبت نشده است."))])]),_:1},8,["visible"])])}}}),Xt=Q(Mt,[["__scopeId","data-v-9aa5253f"]]);export{Xt as default};