The "سفارش مشتریان" / "مشتریان من" entries are shown from session.isSalesExpert, which was fetched from /expert/whoami only once, at sign-in. A slow or failed request (silently swallowed) left the flag false until the next login, so an expert saw a customer-only menu. The dashboard now asks again on mount and on every re-activation, and keeps the current value when the request fails. Rebuilds user-app and user-app-v2 dist. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2 lines
5.0 KiB
JavaScript
2 lines
5.0 KiB
JavaScript
import{A}from"./AppPullRefresh-B5nVhmJH.js";import{d as R,o as U,a as $,c as r,q as a,C as f,P as j,m as S,h as l,y as M,b as d,e,F as O,r as T,g,I as N,t as n,E as q,S as L,_ as G}from"./index-CW3p0GOu.js";import{P as H}from"./PageBar-DMRK3EvR.js";import{S as J}from"./SearchInput-DmB8cV3J.js";import{j as K}from"./filters-Bbf6IXBq.js";import{D as Q}from"./index-BE0Svpni.js";import"./KeyCode-XNgVk4n7.js";import"./classCallCheck-D2PNRTXv.js";import"./raf-nDFcuFT6.js";const W={class:"cho"},X={class:"cho__barExtra"},Y={class:"cho__list"},Z=["onClick"],ee={class:"cho__top"},se={class:"cho__left"},te={class:"cho__num"},oe={class:"cho__meta"},ne={class:"cho__strong"},le={class:"cho__right"},ae={class:"cho__meta"},ie={class:"cho__strong"},re={class:"cho__bottom"},de={class:"cho__customer"},ce={key:0,class:"cho__more"},ue={key:1,class:"cho__empty"},_e={key:2,class:"cho__empty"},ve={key:0,class:"cho__detail"},he={class:"cho__detailTitle"},fe={class:"cho__rows"},me={class:"cho__row"},pe={class:"cho__row"},ye={dir:"ltr"},ge={class:"cho__row"},we={dir:"ltr"},be={class:"cho__row"},ke={class:"cho__row"},xe=R({__name:"ChildOrdersView",setup(Ce){const c=l([]),u=l(!1),w=l(!1),m=l(!1),b=l(null),k=l(1),p=l(!0),y=l(!1),i=l(null);function I(t){const s=Number(t??0);return Number.isFinite(s)?s.toFixed(3):"0.000"}async function x(){if(!(u.value||!p.value)){u.value=!0,m.value=!1;try{const t=await M.getExpertChildOrders(k.value,b.value),s=t.rows??[];c.value=[...c.value,...s],s.length<(t.limit??20)?p.value=!1:k.value+=1}catch{m.value=!0,p.value=!1}finally{u.value=!1}}}function P(){c.value=[],k.value=1,p.value=!0,m.value=!1}async function C(){P(),await x()}async function B(t){b.value=t!=null&&t.trim()?t.trim():null,await C()}async function D(){try{await C()}finally{w.value=!1}}function E(t){i.value=t,y.value=!0}const V=l(null);let _=null;return U(async()=>{await x(),typeof IntersectionObserver<"u"&&(_=new IntersectionObserver(t=>{t.some(s=>s.isIntersecting)&&x()}),V.value&&_.observe(V.value))}),$(()=>_==null?void 0:_.disconnect()),(t,s)=>{const F=q("container");return d(),r("div",W,[a(H,{title:"سفارشات مشتریان","back-to":"userPage::hasSubRoute"},{below:f(()=>[e("div",X,[a(J,{onSearch:B,"place-holder":"جستجو"})])]),_:1}),a(j,{spinning:u.value&&!c.value.length,tip:"درحال دریافت اطلاعات"},{default:f(()=>[a(A,{modelValue:w.value,"onUpdate:modelValue":s[0]||(s[0]=o=>w.value=o),onRefresh:D},{default:f(()=>[a(F,{class:"cho__body"},{default:f(()=>[c.value.length?(d(),r(O,{key:0},[e("div",Y,[(d(!0),r(O,null,T(c.value,o=>{var v,h;return d(),r("article",{key:o.id,class:"cho__card",onClick:z=>E(o)},[e("div",ee,[e("div",se,[e("div",te,[s[3]||(s[3]=e("span",{class:"cho__muted"},"سفارش :",-1)),L(" "+n(o.orderNumber),1)]),e("div",oe,[e("span",ne,n(((v=o.items)==null?void 0:v.length)??0),1),s[4]||(s[4]=e("span",{class:"cho__unit"},"آیتم",-1))])]),e("div",le,[s[6]||(s[6]=e("span",{class:"cho__status"},"تحویل مسئول فروش",-1)),e("div",ae,[e("span",ie,n(I(o.w)),1),s[5]||(s[5]=e("span",{class:"cho__unit"},"گرم",-1))])])]),s[7]||(s[7]=e("div",{class:"cho__divider"},null,-1)),e("div",re,[e("div",de," نام مشتری : "+n(((h=o.customer)==null?void 0:h.name)??"—"),1),a(N,{icon:"vuesax-linear:arrow-left-1",size:"20"})])],8,Z)}),128))]),u.value?(d(),r("div",ce,"در حال دریافت…")):g("",!0)],64)):u.value?g("",!0):(d(),r("section",ue,[a(N,{icon:"vuesax-linear:box",size:"26"}),e("p",null,n(b.value?"سفارشی با این مشخصات پیدا نشد.":"هنوز سفارشی ثبت نشده است."),1)])),m.value?(d(),r("section",_e,[a(N,{icon:"vuesax-linear:danger",size:"26"}),s[8]||(s[8]=e("p",null,"دریافت اطلاعات با خطا روبهرو شد.",-1)),e("button",{type:"button",class:"cho__retry",onClick:C},"تلاش دوباره")])):g("",!0),e("div",{ref_key:"sentinel",ref:V,class:"cho__sentinel"},null,512)]),_:1})]),_:1},8,["modelValue"])]),_:1},8,["spinning"]),a(S(Q),{open:y.value,"onUpdate:open":s[2]||(s[2]=o=>y.value=o),placement:"bottom",height:"auto",closable:!1,"body-style":{padding:"0"}},{default:f(()=>{var o,v,h;return[i.value?(d(),r("div",ve,[e("h2",he,n(i.value.orderNumber),1),e("dl",fe,[e("div",me,[s[9]||(s[9]=e("dt",null,"نام مشتری",-1)),e("dd",null,n(((o=i.value.customer)==null?void 0:o.name)??"—"),1)]),e("div",pe,[s[10]||(s[10]=e("dt",null,"شماره تماس",-1)),e("dd",ye,n(((v=i.value.customer)==null?void 0:v.mobile)??"—"),1)]),e("div",ge,[s[11]||(s[11]=e("dt",null,"وزن کل",-1)),e("dd",we,n(I(i.value.w))+" گرم",1)]),e("div",be,[s[12]||(s[12]=e("dt",null,"تعداد آیتمها",-1)),e("dd",null,n(((h=i.value.items)==null?void 0:h.length)??0),1)]),e("div",ke,[s[13]||(s[13]=e("dt",null,"تاریخ ثبت",-1)),e("dd",null,n(S(K)(i.value.createdAt)),1)]),s[14]||(s[14]=e("div",{class:"cho__row"},[e("dt",null,"وضعیت"),e("dd",null,"تحویل مسئول فروش")],-1))]),e("button",{type:"button",class:"cho__close",onClick:s[1]||(s[1]=z=>y.value=!1)},"بستن")])):g("",!0)]}),_:1},8,["open"])])}}}),Fe=G(xe,[["__scopeId","data-v-3717ce44"]]);export{Fe as default};
|