Files
nademitex_user/dist/assets/CustomerDetailView-kex7gVf_.js
T
safavimohadeseh78 bbb3a15d1c Polish customer app UI and streamline CRM overlays.
Replace standalone customer create and meeting report pages with overlays, add TimeInput, remove opaque input backgrounds app-wide, improve desktop layouts/skeletons, and refresh shopping, customer, and reminder screens.
2026-09-15 21:41:48 +03:30

1 line
7.7 KiB
JavaScript

import{A as e,Ct as t,E as n,Et as r,F as ee,L as te,M as i,N as a,O as o,P as s,R as c,St as l,Tt as u,Y as d,Z as f,_ as p,g as ne,j as m,mt as h,n as re,q as ie,rt as ae,tt as oe,z as g}from"./BasicIcon-C6boaehV.js";import{o as _}from"./format-BHJptHdF.js";import{C as se,c as ce,o as v}from"./index-DzzUgmYT.js";import{r as le,t as ue}from"./constants-DXXK14Zz.js";import{t as de}from"./IconPhone-C0bnM4fV.js";import{t as fe}from"./IconEditPen-DLV3_yq2.js";import{t as pe}from"./IconClipboardEmpty-5Av_Gh0W.js";import{t as me}from"./PageSkeleton-uO-jhbNm.js";import{t as he}from"./crm-CtglbPsN.js";import{t as ge}from"./PageHeader-BFnKSFNh.js";import{t as _e}from"./IconMail-wulYTzHn.js";var ve={key:0,class:`page customer-page`},y={class:`page__scroll page__scroll--with-nav customer-scroll`},b={key:0,class:`profile-row`},x={class:`name-row`},S={dir:`ltr`},C={key:1,class:`profile-banner`},w={class:`profile-banner__top`},T={dir:`ltr`},E={class:`profile-banner__stats`},D={class:`tabs`},O=[`onClick`],k={class:`stats`},A={class:`stats__grid`},j={class:`agent-card__avatar`},M={class:`section-head`},N=[`onClick`,`onKeydown`],P={key:0,class:`empty-inline`},F=[`onClick`,`onKeydown`],ye={key:0,class:`empty-inline`},be={class:`meeting-filters`},xe=[`onClick`],Se={class:`meeting-row__body`},Ce={key:0,class:`empty-inline`},we={key:0,class:`cta-bar`},Te={key:1,class:`page empty`},Ee={key:2,class:`page empty`},I=re(g({__name:`CustomerDetailView`,setup(re){let g=ne(),I=p(),De=he(),L=ce(),R=e(()=>String(g.query.id??``)),z=e(()=>String(g.query.tab??`info`)),B=h(null),V=h([]),H=h([]),U=h(`all`),W=h(!0),G=h(null),Oe=[{id:`info`,label:`اطلاعات`},{id:`orders`,label:`سفارش‌ها`},{id:`reports`,label:`گزارش‌ها و پیگیری‌ها`}];async function K(){if(!R.value){B.value=null,W.value=!1;return}W.value=!0,G.value=null;try{let e=await De.loadCustomerDetail(R.value);B.value=e.customer,V.value=e.orders,H.value=e.meetings}catch(e){B.value=null,G.value=e instanceof Error?e.message:`مشتری یافت نشد.`}finally{W.value=!1}}ie(K),oe(R,K);function q(e){I.replace({path:`/customer`,query:{id:R.value,tab:e}})}function J(e){return e===`in_person`?`ملاقات حضوری`:e===`call`?`تماس`:e===`message`?`پیام`:`یادداشت`}let Y=e(()=>B.value?.agentName||L.fullName||`واسطه`),ke=e(()=>B.value?.agentCode||L.user?.agentCode||`—`),Ae=e(()=>Y.value.charAt(0)),je=[{id:`all`,label:`همه`},{id:`in_person`,label:`ملاقات حضوری`},{id:`call`,label:`تماس`},{id:`message`,label:`پیام`},{id:`note`,label:`یادداشت`}],X=e(()=>U.value===`all`?H.value:H.value.filter(e=>e.type===U.value));function Me(e){return e===`in_person`?`meeting-row__icon--green`:e===`call`?`meeting-row__icon--blue`:`meeting-row__icon--purple`}function Z(e){e&&I.push({path:`/order`,query:{id:e}})}function Q(e){let t=e.statusLabel;return ue[t]||e.statusLabel}function $(e){let t=le[e.statusLabel];return t===`success`?`success`:t===`warning`||t===`danger`?`warning`:e.statusTone||`info`}return(e,p)=>B.value?(d(),s(`div`,ve,[c(ge,{title:z.value===`reports`?`پروفایل مشتری`:`جزئیات مشتری`,"show-back":``,centered:``,onBack:p[1]||=e=>l(I).push(`/customers`)},ee({_:2},[z.value===`info`?{name:`trailing`,fn:ae(()=>[m(`button`,{type:`button`,class:`edit-btn`,onClick:p[0]||=e=>l(I).back()},`ویرایش`)]),key:`0`}:void 0]),1032,[`title`]),m(`div`,y,[z.value===`reports`?(d(),s(`section`,C,[m(`div`,w,[m(`div`,{class:`avatar avatar--lg`,style:u({background:B.value.avatarColor})},r(B.value.avatarLetter),5),m(`div`,null,[m(`h2`,null,r(B.value.name),1),m(`p`,null,r(B.value.contactName),1),m(`p`,T,r(B.value.phone),1)]),p[7]||=m(`span`,{class:`badge badge--light`},`مشتری فعال`,-1)]),m(`div`,E,[m(`div`,null,[p[8]||=m(`span`,null,`سطح مشتری`,-1),m(`strong`,null,r(B.value.levelLabel),1)]),m(`div`,null,[p[9]||=m(`span`,null,`تاریخ اولین خرید`,-1),m(`strong`,null,r(B.value.firstPurchaseDate),1)]),m(`div`,null,[p[10]||=m(`span`,null,`تعداد سفارش`,-1),m(`strong`,null,r(l(_)(B.value.orderCount))+` سفارش`,1)])])])):(d(),s(`section`,b,[m(`div`,{class:`avatar`,style:u({background:B.value.avatarColor})},r(B.value.avatarLetter),5),m(`div`,null,[m(`div`,x,[m(`h2`,null,r(B.value.name),1),p[6]||=m(`span`,{class:`badge`},`فعال`,-1)]),m(`p`,S,r(B.value.phone),1)])])),m(`div`,D,[(d(),s(o,null,f(Oe,e=>m(`button`,{key:e.id,type:`button`,class:t([`tab`,{"tab--active":z.value===e.id}]),onClick:t=>q(e.id)},r(e.label),11,O)),64))]),z.value===`info`?(d(),s(o,{key:2},[m(`section`,k,[p[16]||=m(`h3`,null,`اطلاعات خرید`,-1),m(`div`,A,[m(`div`,null,[p[11]||=m(`span`,null,`تعداد سفارش`,-1),m(`strong`,null,r(l(_)(B.value.orderCount)),1)]),m(`div`,null,[p[12]||=m(`span`,null,`مجموع خرید`,-1),m(`strong`,null,r(l(_)(B.value.totalPurchaseToman)),1),p[13]||=m(`em`,null,`تومان`,-1)]),m(`div`,null,[p[14]||=m(`span`,null,`میانگین هر سفارش`,-1),m(`strong`,null,r(l(_)(B.value.averageOrderToman)),1),p[15]||=m(`em`,null,`تومان`,-1)])])]),m(`button`,{type:`button`,class:`agent-card`,onClick:p[2]||=e=>l(I).push(`/profile`)},[m(`div`,j,r(Ae.value),1),m(`div`,null,[m(`strong`,null,r(Y.value),1),m(`p`,null,`کد واسطه: `+r(ke.value),1)]),c(v,{size:18})]),m(`section`,null,[m(`div`,M,[p[17]||=m(`h3`,null,`آخرین سفارش‌ها`,-1),m(`button`,{type:`button`,class:`link`,onClick:p[3]||=e=>q(`orders`)},`مشاهده همه`)]),(d(!0),s(o,null,f(V.value,e=>(d(),s(`article`,{key:e.id,class:`order-row`,role:`button`,tabindex:`0`,onClick:t=>Z(e.id),onKeydown:n(t=>Z(e.id),[`enter`])},[m(`div`,null,[m(`strong`,null,r(e.title),1),m(`p`,null,r(l(_)(e.amountToman))+` تومان`,1)]),m(`span`,{class:t([`tone`,`tone--${$(e)}`])},r(Q(e)),3),c(v,{size:16,class:`order-row__chevron`})],40,N))),128)),V.value.length?a(``,!0):(d(),s(`p`,P,`سفارشی ثبت نشده است.`))])],64)):z.value===`orders`?(d(),s(o,{key:3},[(d(!0),s(o,null,f(V.value,e=>(d(),s(`article`,{key:e.id,class:`order-row`,role:`button`,tabindex:`0`,onClick:t=>Z(e.id),onKeydown:n(t=>Z(e.id),[`enter`])},[m(`div`,null,[m(`strong`,null,r(e.title),1),m(`p`,null,r(e.date)+` — `+r(l(_)(e.amountToman))+` تومان`,1)]),m(`span`,{class:t([`tone`,`tone--${$(e)}`])},r(Q(e)),3),c(v,{size:16,class:`order-row__chevron`})],40,F))),128)),V.value.length?a(``,!0):(d(),s(`p`,ye,`سفارشی ثبت نشده است.`))],64)):(d(),s(o,{key:4},[p[18]||=m(`h3`,{class:`block-title`},`تعاملات و پیگیری‌ها`,-1),m(`button`,{type:`button`,class:`dashed-btn`,onClick:p[4]||=e=>l(I).push({path:`/meeting-report`,query:{customerId:B.value.id}})},` + ثبت گزارش ملاقات جدید `),m(`div`,be,[(d(),s(o,null,f(je,e=>m(`button`,{key:e.id,type:`button`,class:t([`meeting-filter`,{"meeting-filter--active":U.value===e.id}]),onClick:t=>U.value=e.id},r(e.label),11,xe)),64))]),(d(!0),s(o,null,f(X.value,e=>(d(),s(`article`,{key:e.id,class:`meeting-row`},[m(`div`,{class:t([`meeting-row__icon`,Me(e.type)])},[e.type===`in_person`?(d(),i(pe,{key:0,size:16})):e.type===`call`?(d(),i(de,{key:1,size:16})):e.type===`message`?(d(),i(_e,{key:2,size:16})):(d(),i(fe,{key:3,size:16}))],2),m(`div`,Se,[m(`strong`,null,r(J(e.type)),1),m(`p`,null,r(e.description||e.title),1)]),m(`span`,null,r(e.date),1)]))),128)),X.value.length?a(``,!0):(d(),s(`p`,Ce,` گزارشی برای این فیلتر ثبت نشده است. `))],64))]),z.value===`info`?(d(),s(`footer`,we,[m(`button`,{type:`button`,class:`cta`,onClick:p[5]||=e=>l(I).push(`/categories`)},[c(se,{size:20,color:`#fff`}),p[19]||=te(` سفارش جدید برای این مشتری `,-1)])])):a(``,!0)])):W.value?(d(),s(`div`,Te,[c(me,{variant:`detail`})])):(d(),s(`div`,Ee,[m(`p`,null,r(G.value||`مشتری یافت نشد.`),1)]))}}),[[`__scopeId`,`data-v-4afb1b74`]]);export{I as default};