2 lines
7.4 KiB
JavaScript
2 lines
7.4 KiB
JavaScript
import{d as G,G as $,o as z,f as i,x as l,J as h,k as u,D as g,e as r,T as F,i as w,q as c,n as _,g as s,I as E,F as L,r as j,j as W,M as Y,N as q,t as A,h as P,_ as J}from"./index-BFOyCNFT.js";import{A as H}from"./AppPullRefresh-CsuQ3Y8x.js";import{P as K}from"./PageBar-Cz1N2fdD.js";import{u as Q}from"./useReveal-CE0IBSnz.js";import{u as X}from"./notificationsStore-CycZP1fZ.js";import{o as Z,b as ee}from"./orderStatus-DQMd9b1t.js";import{a as te}from"./filters-sld47Iy-.js";const oe={SUSPENDED:"سفارش معلق شد",PLACED:"سفارش ثبت شد",ADMIN_APPROVED:"سفارش تأیید شد",SOURCING:"تأمین کالا شروع شد",PREPARING:"آمادهسازی سفارش",DELIVERED_TO_AGENT:"تحویل به نماینده",DELIVERED_TO_CUSTOMER:"سفارش تحویل شد",CANCELLED:"سفارش لغو شد"},ae={SUSPENDED:"بهدلیل سقف اعتبار، سفارش شما موقتاً متوقف شده است. با پشتیبانی هماهنگ کنید.",PLACED:"سفارش شما دریافت شد و در صف بررسی قرار گرفت.",ADMIN_APPROVED:"سفارش شما تأیید شد و وارد مراحل بعدی میشود.",SOURCING:"کالای سفارش شما در حال تأمین است.",PREPARING:"سفارش شما در حال آمادهسازی برای ارسال است.",DELIVERED_TO_AGENT:"سفارش به نماینده فروش تحویل داده شد.",DELIVERED_TO_CUSTOMER:"سفارش به شما تحویل داده شد. از خریدتان سپاسگزاریم.",CANCELLED:"این سفارش لغو شده است. اگر پرسشی دارید با پشتیبانی در تماس باشید."};function se(p){return oe[p]??"بهروزرسانی سفارش"}function ne(p){return ae[p]??"وضعیت سفارش شما تغییر کرده است."}const ie={class:"notif"},re={class:"notif__emptyIcon","aria-hidden":"true"},le={class:"notif__emptyIcon","aria-hidden":"true"},ce={class:"notif__emptyIcon","aria-hidden":"true"},de={class:"notif__list"},ue=["data-kind","onClick"],_e={class:"notif__main"},fe={class:"notif__top"},pe={class:"notif__title"},me=["datetime"],ve={class:"notif__body"},ye={key:0,class:"notif__meta"},ge={key:0,class:"notif__dot","aria-label":"خواندهنشده"},Ee=G({__name:"NotificationsView",setup(p){const V=q(),D=$(),N=X(),{revealed:x,revealDelay:f,reveal:S}=Q("notifications"),m=u(!1),v=u(!1),R=u(!1),d=u([]),k=u([]),I=u(null),T={font:"var(--c-wine, #7A1F2B)",background:"var(--c-wineWash, #7A1F2B14)"},y=W(()=>{const a=I.value??0,t=[];for(const e of d.value)t.push({key:`m-${e.id}`,kind:"message",title:e.title,body:e.body,meta:"پیام پشتیبانی",createdAt:e.createdAt,unread:!e.isRead,icon:"vuesax-linear:message-text",color:T,targetId:e.id});for(const e of k.value){if(e.revisionStatus==="AWAITING_CUSTOMER"&&e.pendingRevision){const o=e.pendingRevision.createdAt,n=e.pendingRevision.customerDecision==="REJECTED";t.push({key:`r-${e.pendingRevision.id}`,kind:"status",title:n?"ویرایش ردشده — در انتظار پشتیبانی":"ویرایش سفارش منتظر تأیید شماست",body:n?"رد شما ثبت شد. تا تصمیم پشتیبانی، پیشنهاد ویرایش باز میماند.":"ادمین این سفارش را ویرایش کرده است. میتوانید تأیید یا رد کنید.",meta:`سفارش ${e.orderNumber}`,createdAt:o,unread:!n&&Date.parse(o)>a,icon:"vuesax-linear:edit-2",color:T,targetId:e.id,orderNumber:e.orderNumber})}for(const o of e.statusEvents??[]){const n=o.toStatus;t.push({key:`s-${o.id}`,kind:"status",title:se(n),body:ne(n),meta:`سفارش ${e.orderNumber}`,createdAt:o.createdAt,unread:Date.parse(o.createdAt)>a,icon:ee(n),color:Z(n),targetId:e.id,orderNumber:e.orderNumber})}}return t.sort((e,o)=>Date.parse(o.createdAt)-Date.parse(e.createdAt)),t});async function b(){if(!D.isLoggedIn){d.value=[],k.value=[],v.value=!1;return}if(I.value===null){const a=N.seenAt();I.value=a?Date.parse(a):Date.now()}m.value=!0,v.value=!1;try{const[a,t]=await Promise.all([g.getMyNotifications(),g.getMyOrders({page:1,limit:30})]);d.value=a,k.value=t.result??[]}catch(a){console.log(a),v.value=!0}finally{m.value=!1}}async function C(){if(D.isLoggedIn){try{await g.markAllNotificationsRead()}catch(a){console.log(a)}N.markSeenNow(),N.adminUnread=0,d.value=d.value.map(a=>({...a,isRead:!0,readAt:a.readAt??new Date().toISOString()}))}}async function O(){await b(),await C(),S()}async function M(){await O(),R.value=!1}function U(){V.push({name:"login",query:{redirect:"/notifications"}})}function B(a){if(a.kind!=="message"||!a.unread)return;g.markNotificationRead(a.targetId).catch(e=>console.log(e));const t=d.value.find(e=>e.id===a.targetId);t&&(t.isRead=!0,t.readAt=new Date().toISOString())}return z(async()=>{await b(),await C(),S()}),(a,t)=>{const e=Y("container");return r(),i("div",ie,[l(K,{title:"پیامها","back-to":"home"}),l(H,{modelValue:R.value,"onUpdate:modelValue":t[0]||(t[0]=o=>R.value=o),onRefresh:M},{default:h(()=>[l(F,{spinning:m.value&&!y.value.length,tip:"در حال دریافت پیامها"},{default:h(()=>[l(e,{class:w(["notif__body",{"is-revealed":c(x)}])},{default:h(()=>[c(D).isLoggedIn?v.value&&!y.value.length?(r(),i("section",{key:1,class:"notif__empty reveal",style:_(c(f)(0))},[s("div",le,[l(E,{icon:"vuesax-linear:danger",size:"28"})]),t[3]||(t[3]=s("h2",{class:"notif__emptyTitle"},"دریافت پیامها ممکن نشد",-1)),t[4]||(t[4]=s("p",{class:"notif__emptyText"},"اتصال را بررسی کنید و دوباره تلاش کنید.",-1)),s("button",{type:"button",class:"notif__cta notif__cta--ghost",onClick:O},"تلاش دوباره")],4)):!m.value&&!y.value.length?(r(),i("section",{key:2,class:"notif__empty reveal",style:_(c(f)(0))},[s("div",ce,[l(E,{icon:"vuesax-linear:notification-bing",size:"28"})]),t[5]||(t[5]=s("h2",{class:"notif__emptyTitle"},"فعلاً پیامی نیست",-1)),t[6]||(t[6]=s("p",{class:"notif__emptyText"}," وقتی پیامی از پشتیبانی یا بهروزرسانی جدیدی برسد، اینجا نمایش داده میشود. ",-1))],4)):(r(),i(L,{key:3},[s("p",{class:"notif__hint reveal",style:_(c(f)(0))}," جدیدترین پیامها ",4),s("ul",de,[(r(!0),i(L,null,j(y.value,(o,n)=>(r(),i("li",{key:o.key,class:w(["notif__item reveal",{"is-unread":o.unread}]),"data-kind":o.kind,style:_(c(f)(Math.min(n+1,8))),onClick:Ae=>B(o)},[s("span",{class:"notif__icon",style:_({color:o.color.font,background:o.color.background}),"aria-hidden":"true"},[l(E,{icon:o.icon,size:"18"},null,8,["icon"])],4),s("div",_e,[s("div",fe,[s("h3",pe,A(o.title),1),s("time",{class:"notif__when",dir:"ltr",datetime:o.createdAt},A(c(te)(o.createdAt)),9,me)]),s("p",ve,A(o.body),1),o.meta?(r(),i("span",ye,A(o.meta),1)):P("",!0)]),o.unread?(r(),i("span",ge)):P("",!0)],14,ue))),128))])],64)):(r(),i("section",{key:0,class:"notif__empty reveal",style:_(c(f)(0))},[s("div",re,[l(E,{icon:"vuesax-linear:notification",size:"28"})]),t[1]||(t[1]=s("h2",{class:"notif__emptyTitle"},"پیامهای شما اینجاست",-1)),t[2]||(t[2]=s("p",{class:"notif__emptyText"}," پس از ورود، پیامهای پشتیبانی و بهروزرسانیهای حساب را اینجا میبینید. ",-1)),s("button",{type:"button",class:"notif__cta",onClick:U},"ورود به حساب")],4))]),_:1},8,["class"])]),_:1},8,["spinning"])]),_:1},8,["modelValue"])])}}}),Te=J(Ee,[["__scopeId","data-v-feb27aa4"]]);export{Te as default};
|