Files
nademitex_user/dist/assets/CustomerDetailView-BrsmxEdR.js
T

1 line
17 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import{At as e,D as t,F as n,G as r,K as i,M as a,Nt as o,Pt as s,U as c,_ as l,c as u,d,f,g as p,i as m,k as h,l as g,m as _,nt as v,o as y,t as b,u as x,ut as S,v as C}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{l as w,n as T,s as E,u as D}from"./BasicIcon-ba1FsUKx.js";import{o as O}from"./format-C72AoJ2H.js";import{t as k}from"./IconCart-f4izyxj_.js";import{C as A,a as j,c as M,i as N,u as P,w as F}from"./index-CON313Q2.js";import{i as I,t as ee}from"./constants-ptWoEwwP.js";import{t as te}from"./IconClipboardEmpty-D1_4Fy0M.js";import{t as L}from"./PageHeader-juIsDT9M.js";import{t as ne}from"./PageSkeleton-DYdjm4l9.js";import{t as re}from"./crm-CgnSby61.js";import{t as R}from"./PersianDateInput-Dh05So9z.js";import{t as z}from"./IconEditPen-Dwk_zEXe.js";import{t as B}from"./TimeInput-BplLSUlw.js";import{t as V}from"./CustomerCreateOverlay-CShFVCz6.js";var H={class:`meeting-report-form`},U={key:1,class:`form-error`},W={class:`customer-card`},G={dir:`ltr`},K={class:`type-grid`},ie=[`onClick`],q={class:`two-cols two-cols--date`},J={class:`field`},ae={class:`field`},Y={class:`reminder-box`},oe={class:`reminder-box__head`},X=[`aria-pressed`],Z={class:`field`},se={class:`two-cols two-cols--date`},ce={class:`field`},le=[`disabled`],Q=b(C({__name:`MeetingReportForm`,props:{customerId:{}},emits:[`success`],setup(t,{emit:r}){let u=t,p=r,_=re(),y=v(null),b=v(!0),S=v(!1),C=v(null),w=v(`in_person`),T=v(``),D=v(``),O=v(``),k=v(``),A=v(!0),M=v(``),P=v(``),F=v(``),I=v(``),ee=[{id:`in_person`,label:`ملاقات حضوری`,icon:`clipboard`},{id:`call`,label:`تماس تلفنی`,icon:`phone`},{id:`message`,label:`پیام`,icon:`mail`},{id:`note`,label:`یادداشت`,icon:`pen`}];async function L(){if(!u.customerId){b.value=!1,C.value=`مشتری مشخص نشده است.`,y.value=null;return}b.value=!0,C.value=null;try{let e=await _.loadCustomerDetail(u.customerId);y.value=e.customer}catch(e){y.value=null,C.value=e instanceof Error?e.message:`بارگذاری مشتری ناموفق بود.`}finally{b.value=!1}}h(L),c(()=>u.customerId,L);async function V(){if(!u.customerId||!O.value.trim()||!T.value.trim()){C.value=`موضوع و تاریخ الزامی است.`;return}S.value=!0,C.value=null;try{await _.submitMeeting({customerId:u.customerId,type:w.value,title:O.value.trim(),subject:O.value.trim(),content:k.value.trim()||void 0,description:k.value.trim()||void 0,date:T.value.trim(),time:D.value.trim()||void 0,createReminder:A.value,reminderTitle:A.value?M.value.trim()||O.value.trim():void 0,reminderDate:A.value?P.value.trim()||T.value.trim():void 0,reminderTime:A.value?F.value.trim()||D.value.trim()||`10:00`:void 0,reminderNote:A.value&&I.value.trim()||void 0}),p(`success`)}catch(e){C.value=e instanceof Error?e.message:`ثبت گزارش ناموفق بود.`}finally{S.value=!1}}return(t,r)=>(a(),f(`div`,H,[b.value?(a(),x(ne,{key:0,variant:`form`})):C.value?(a(),f(`p`,U,s(C.value),1)):d(``,!0),y.value?(a(),f(m,{key:2},[g(`section`,W,[g(`div`,{class:`avatar`,style:o({background:y.value.avatarColor})},s(y.value.avatarLetter),5),g(`div`,null,[g(`strong`,null,s(y.value.name),1),g(`p`,null,s(y.value.contactName),1),g(`p`,G,s(y.value.phone),1)])]),g(`section`,null,[r[9]||=g(`h3`,null,`نوع تعامل`,-1),g(`div`,K,[(a(),f(m,null,n(ee,t=>g(`button`,{key:t.id,type:`button`,class:e([`type-btn`,{"type-btn--active":w.value===t.id}]),onClick:e=>w.value=t.id},[t.icon===`clipboard`?(a(),x(te,{key:0,size:22})):t.icon===`phone`?(a(),x(j,{key:1,size:22})):t.icon===`mail`?(a(),x(N,{key:2,size:22})):(a(),x(z,{key:3,size:22})),g(`span`,null,s(t.label),1)],10,ie)),64))])]),g(`section`,null,[r[10]||=g(`h3`,null,`تاریخ و زمان`,-1),g(`div`,q,[l(R,{modelValue:T.value,"onUpdate:modelValue":r[0]||=e=>T.value=e,label:`تاریخ`,class:`meeting-date`},null,8,[`modelValue`]),l(B,{modelValue:D.value,"onUpdate:modelValue":r[1]||=e=>D.value=e,label:`ساعت`,placeholder:`مثلاً ۱۰:۳۰`,class:`meeting-time`},null,8,[`modelValue`])])]),g(`label`,J,[r[11]||=g(`span`,null,`موضوع گزارش`,-1),i(g(`input`,{"onUpdate:modelValue":r[2]||=e=>O.value=e,type:`text`},null,512),[[E,O.value]])]),g(`label`,ae,[r[12]||=g(`span`,null,`محتوای گزارش`,-1),i(g(`textarea`,{"onUpdate:modelValue":r[3]||=e=>k.value=e,rows:`5`,maxlength:`1000`},null,512),[[E,k.value]]),g(`em`,null,s(k.value.length.toLocaleString(`fa-IR`))+`/۱۰۰۰`,1)]),r[17]||=g(`section`,null,[g(`h3`,null,`تصاویر و فایل‌ها`),g(`div`,{class:`files`},[g(`div`,{class:`file-thumb`}),g(`div`,{class:`file-thumb`}),g(`button`,{type:`button`,class:`file-add`,"aria-label":`افزودن فایل`},`+`)])],-1),g(`section`,Y,[g(`div`,oe,[r[14]||=g(`h3`,null,`یادآور`,-1),g(`button`,{type:`button`,class:e([`toggle`,{"toggle--on":A.value}]),"aria-pressed":A.value,onClick:r[4]||=e=>A.value=!A.value},[...r[13]||=[g(`span`,null,null,-1)]],10,X)]),A.value?(a(),f(m,{key:0},[g(`label`,Z,[r[15]||=g(`span`,null,`عنوان یادآور`,-1),i(g(`input`,{"onUpdate:modelValue":r[5]||=e=>M.value=e,type:`text`},null,512),[[E,M.value]])]),g(`div`,se,[l(R,{modelValue:P.value,"onUpdate:modelValue":r[6]||=e=>P.value=e,label:`تاریخ یادآور`,class:`meeting-date`},null,8,[`modelValue`]),l(B,{modelValue:F.value,"onUpdate:modelValue":r[7]||=e=>F.value=e,label:`ساعت یادآور`,placeholder:`مثلاً ۱۰:۳۰`,class:`meeting-time`},null,8,[`modelValue`])]),g(`label`,ce,[r[16]||=g(`span`,null,`یادداشت یادآور (اختیاری)`,-1),i(g(`input`,{"onUpdate:modelValue":r[8]||=e=>I.value=e,type:`text`},null,512),[[E,I.value]])])],64)):d(``,!0)]),g(`button`,{type:`button`,class:`submit`,disabled:S.value,onClick:V},s(S.value?`در حال ثبت...`:`ثبت گزارش و یادآور`),9,le)],64)):d(``,!0)]))}}),[[`__scopeId`,`data-v-5d6dd8b7`]]),ue={class:`meeting-report-sheet`},de=b(C({__name:`MeetingReportOverlay`,props:{open:{type:Boolean},customerId:{}},emits:[`close`,`success`],setup(e,{emit:n}){let i=e,o=n;function s(){o(`close`)}function u(){o(`success`)}function p(e){e.key===`Escape`&&i.open&&s()}return c(()=>i.open,e=>{document.body.style.overflow=e?`hidden`:``,e?window.addEventListener(`keydown`,p):window.removeEventListener(`keydown`,p)},{immediate:!0}),t(()=>{document.body.style.overflow=``,window.removeEventListener(`keydown`,p)}),(t,n)=>(a(),x(y,{to:`body`},[l(T,{name:`meeting-report-sheet`},{default:r(()=>[e.open?(a(),f(`div`,{key:0,class:`meeting-report-overlay`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`meeting-report-title`,onClick:D(s,[`self`])},[g(`div`,ue,[n[1]||=g(`div`,{class:`meeting-report-sheet__handle`,"aria-hidden":`true`},null,-1),g(`header`,{class:`meeting-report-sheet__head`},[n[0]||=g(`h2`,{id:`meeting-report-title`},`ثبت گزارش ملاقات`,-1),g(`button`,{type:`button`,class:`meeting-report-sheet__close`,"aria-label":`بستن`,onClick:s},` × `)]),e.customerId?(a(),x(Q,{key:e.customerId,"customer-id":e.customerId,onSuccess:u},null,8,[`customer-id`])):d(``,!0)])])):d(``,!0)]),_:1})]))}}),[[`__scopeId`,`data-v-be25c066`]]),fe={key:0,class:`page customer-page`},pe={class:`desktop-page__head desktop-only customer-desk-head`},me={class:`desktop-page__title`},he={class:`desktop-page__subtitle`,dir:`ltr`},ge={class:`page__scroll page__scroll--with-nav customer-scroll`},_e={key:0,class:`profile-card`},ve={class:`profile-card__info`},ye={class:`profile-card__name-row`},be={class:`profile-card__phone`,dir:`ltr`},xe={key:1,class:`profile-banner`},Se={class:`profile-banner__top`},Ce={dir:`ltr`},we={class:`profile-banner__stats`},Te={class:`tabs`,role:`tablist`},Ee=[`aria-selected`,`onClick`],De={class:`tab__text`},Oe={class:`purchase-card`},ke={class:`purchase-stats`},Ae={class:`purchase-stats__item`},je={class:`purchase-stats__value`},Me={class:`purchase-stats__item`},Ne={class:`purchase-stats__value`},Pe={class:`purchase-stats__item`},Fe={class:`purchase-stats__value`},Ie={class:`panel-card`},Le={class:`agent-row__avatar`},Re={class:`agent-row__info`},ze={class:`orders-block`},Be={class:`orders-block__head`},Ve=[`onClick`,`onKeydown`],He={class:`order-row__title`},Ue={class:`order-row__amount`},We={key:0,class:`empty-inline`},Ge={key:3,class:`panel-card panel-card--list`},Ke=[`onClick`,`onKeydown`],qe={class:`order-row__title`},Je={class:`order-row__amount`},Ye={key:0,class:`empty-inline`},Xe={key:4,class:`panel-card panel-card--reports`},Ze={class:`meeting-filters`},Qe=[`onClick`],$e={class:`meeting-row__body`},et={class:`meeting-row__date`},tt={key:0,class:`empty-inline`},nt={key:0,class:`cta-bar`},rt={key:1,class:`page empty`},it={key:2,class:`page empty`},at=b(C({__name:`CustomerDetailView`,setup(t){let i=A(),y=F(),b=re(),C=P(),T=u(()=>String(i.query.id??``)),E=u(()=>String(i.query.tab??`info`)),D=u(()=>i.query.meetingReport===`1`),R=u(()=>i.query.edit===`1`),B=v(null),H=v([]),U=v([]),W=v(`all`),G=v(!0),K=v(null),ie=[{id:`info`,label:`اطلاعات`},{id:`orders`,label:`سفارش‌ها`},{id:`reports`,label:`گزارش‌ها و پیگیری‌ها`}];async function q(){if(!T.value){B.value=null,G.value=!1;return}G.value=!0,K.value=null;try{let e=await b.loadCustomerDetail(T.value);B.value=e.customer,H.value=e.orders,U.value=e.meetings}catch(e){B.value=null,K.value=e instanceof Error?e.message:`مشتری یافت نشد.`}finally{G.value=!1}}h(q),c(T,q);function J(e){y.replace({path:`/customer`,query:{id:T.value,tab:e}})}function ae(){y.push({path:`/customer`,query:{id:T.value,tab:`reports`,meetingReport:`1`}})}function Y(){y.replace({path:`/customer`,query:{id:T.value,tab:`reports`}})}async function oe(){Y(),await q()}function X(){y.push({path:`/customer`,query:{id:T.value,tab:E.value,edit:`1`}})}function Z(){y.replace({path:`/customer`,query:{id:T.value,tab:E.value}})}async function se(){Z(),await q()}let ce=u(()=>{if(!B.value)return null;let e=B.value;if(e.firstName&&e.lastName)return{firstName:e.firstName,lastName:e.lastName,phone:e.phone,businessName:e.businessName??``};let t=e.contactName.trim().split(/\s+/),n=t[0]??``;return{firstName:n,lastName:t.slice(1).join(` `)||n,phone:e.phone,businessName:e.name===e.contactName?``:e.name}});function le(e){return e===`in_person`?`ملاقات حضوری`:e===`call`?`تماس`:e===`message`?`پیام`:`یادداشت`}let Q=u(()=>B.value?.agentName||C.fullName||`واسطه`),ue=u(()=>B.value?.agentCode||C.user?.agentCode||`—`),at=u(()=>Q.value.charAt(0)),ot=[{id:`all`,label:`همه`},{id:`in_person`,label:`ملاقات حضوری`},{id:`call`,label:`تماس`},{id:`message`,label:`پیام`},{id:`note`,label:`یادداشت`}],st=u(()=>W.value===`all`?U.value:U.value.filter(e=>e.type===W.value));function ct(e){return e===`in_person`?`meeting-row__icon--green`:e===`call`?`meeting-row__icon--blue`:`meeting-row__icon--purple`}function $(e){e&&y.push({path:`/order`,query:{id:e}})}function lt(e){let t=e.statusLabel;return ee[t]||e.statusLabel}function ut(e){let t=I[e.statusLabel];return t===`success`?`success`:t===`warning`||t===`danger`?`warning`:e.statusTone||`info`}let dt=u(()=>H.value.slice(0,3));function ft(e){return e===`active`?`فعال`:e===`inactive`?`غیرفعال`:`جدید`}function pt(e){return e===`active`?`status-badge--active`:e===`inactive`?`status-badge--inactive`:`status-badge--new`}return(t,i)=>(a(),f(m,null,[B.value?(a(),f(`div`,fe,[l(L,{class:`mobile-only`,title:E.value===`reports`?`پروفایل مشتری`:`جزئیات مشتری`,"show-back":``,centered:``,onBack:i[0]||=e=>S(y).push(`/customers`)},_({_:2},[E.value===`info`?{name:`trailing`,fn:r(()=>[g(`button`,{type:`button`,class:`edit-btn edit-btn--compact`,"aria-label":`ویرایش`,onClick:X},[l(z,{size:18}),i[4]||=g(`span`,{class:`edit-btn__label`},`ویرایش`,-1)])]),key:`0`}:void 0]),1032,[`title`]),g(`header`,pe,[g(`div`,null,[g(`h1`,me,s(B.value.name),1),g(`p`,he,s(B.value.phone),1)]),E.value===`info`?(a(),f(`button`,{key:0,type:`button`,class:`edit-btn edit-btn--desk`,onClick:X},` ویرایش `)):d(``,!0)]),g(`div`,ge,[E.value===`reports`?(a(),f(`section`,xe,[g(`div`,Se,[g(`div`,{class:`profile-card__avatar profile-card__avatar--lg`,style:o({background:B.value.avatarColor})},s(B.value.avatarLetter),5),g(`div`,null,[g(`h2`,null,s(B.value.name),1),g(`p`,null,s(B.value.contactName),1),g(`p`,Ce,s(B.value.phone),1)]),i[5]||=g(`span`,{class:`status-badge status-badge--active status-badge--on-dark`},`فعال`,-1)]),g(`div`,we,[g(`div`,null,[i[6]||=g(`span`,null,`سطح مشتری`,-1),g(`strong`,null,s(B.value.levelLabel),1)]),g(`div`,null,[i[7]||=g(`span`,null,`تاریخ اولین خرید`,-1),g(`strong`,null,s(B.value.firstPurchaseDate),1)]),g(`div`,null,[i[8]||=g(`span`,null,`تعداد سفارش`,-1),g(`strong`,null,s(S(O)(B.value.orderCount))+` سفارش`,1)])])])):(a(),f(`section`,_e,[g(`div`,{class:`profile-card__avatar`,style:o({background:B.value.avatarColor})},s(B.value.avatarLetter),5),g(`div`,ve,[g(`div`,ye,[g(`h2`,null,s(B.value.name),1),g(`span`,{class:e([`status-badge`,pt(B.value.status)])},s(ft(B.value.status)),3)]),g(`p`,be,s(B.value.phone),1)])])),g(`div`,Te,[(a(),f(m,null,n(ie,t=>g(`button`,{key:t.id,type:`button`,role:`tab`,class:e([`tab`,{"tab--active":E.value===t.id}]),"aria-selected":E.value===t.id,onClick:e=>J(t.id)},[g(`span`,De,s(t.label),1)],10,Ee)),64))]),E.value===`info`?(a(),f(m,{key:2},[g(`section`,Oe,[i[16]||=g(`h3`,{class:`section-title`},`اطلاعات خرید`,-1),g(`div`,ke,[g(`div`,Ae,[i[9]||=g(`span`,{class:`purchase-stats__label`},`تعداد سفارش`,-1),g(`strong`,je,s(S(O)(B.value.orderCount)),1)]),i[14]||=g(`span`,{class:`purchase-stats__divider`,"aria-hidden":`true`},null,-1),g(`div`,Me,[i[10]||=g(`span`,{class:`purchase-stats__label`},`مجموع خرید`,-1),g(`strong`,Ne,s(S(O)(B.value.totalPurchaseToman)),1),i[11]||=g(`em`,{class:`purchase-stats__unit`},`تومان`,-1)]),i[15]||=g(`span`,{class:`purchase-stats__divider`,"aria-hidden":`true`},null,-1),g(`div`,Pe,[i[12]||=g(`span`,{class:`purchase-stats__label`},`میانگین هر سفارش`,-1),g(`strong`,Fe,s(S(O)(B.value.averageOrderToman)),1),i[13]||=g(`em`,{class:`purchase-stats__unit`},`تومان`,-1)])])]),g(`section`,Ie,[g(`button`,{type:`button`,class:`agent-row`,onClick:i[1]||=e=>S(y).push(`/profile`)},[g(`div`,Le,s(at.value),1),g(`div`,Re,[g(`strong`,null,s(Q.value),1),g(`p`,null,`کد واسطه: `+s(ue.value),1)]),l(M,{size:18,class:`agent-row__chevron`,"aria-hidden":`true`})]),g(`div`,ze,[g(`div`,Be,[i[17]||=g(`h3`,{class:`section-title`},`آخرین سفارش‌ها`,-1),g(`button`,{type:`button`,class:`link-btn`,onClick:i[2]||=e=>J(`orders`)},`مشاهده همه`)]),(a(!0),f(m,null,n(dt.value,t=>(a(),f(`article`,{key:t.id,class:`order-row`,role:`button`,tabindex:`0`,onClick:e=>$(t.id),onKeydown:w(e=>$(t.id),[`enter`])},[g(`div`,He,[g(`strong`,null,s(t.title),1),l(M,{size:14,class:`order-row__chevron`,"aria-hidden":`true`})]),g(`span`,Ue,s(S(O)(t.amountToman))+` تومان`,1),g(`span`,{class:e([`status-pill`,`status-pill--${ut(t)}`])},s(lt(t)),3)],40,Ve))),128)),dt.value.length?d(``,!0):(a(),f(`p`,We,`سفارشی ثبت نشده است.`))])])],64)):E.value===`orders`?(a(),f(`section`,Ge,[(a(!0),f(m,null,n(H.value,t=>(a(),f(`article`,{key:t.id,class:`order-row`,role:`button`,tabindex:`0`,onClick:e=>$(t.id),onKeydown:w(e=>$(t.id),[`enter`])},[g(`div`,qe,[g(`strong`,null,s(t.title),1),l(M,{size:14,class:`order-row__chevron`,"aria-hidden":`true`})]),g(`span`,Je,s(S(O)(t.amountToman))+` تومان`,1),g(`span`,{class:e([`status-pill`,`status-pill--${ut(t)}`])},s(lt(t)),3)],40,Ke))),128)),H.value.length?d(``,!0):(a(),f(`p`,Ye,`سفارشی ثبت نشده است.`))])):(a(),f(`section`,Xe,[i[18]||=g(`h3`,{class:`section-title`},`تعاملات و پیگیری‌ها`,-1),g(`button`,{type:`button`,class:`dashed-btn`,onClick:ae},` + ثبت گزارش ملاقات جدید `),g(`div`,Ze,[(a(),f(m,null,n(ot,t=>g(`button`,{key:t.id,type:`button`,class:e([`meeting-filter`,{"meeting-filter--active":W.value===t.id}]),onClick:e=>W.value=t.id},s(t.label),11,Qe)),64))]),(a(!0),f(m,null,n(st.value,t=>(a(),f(`article`,{key:t.id,class:`meeting-row`},[g(`div`,{class:e([`meeting-row__icon`,ct(t.type)])},[t.type===`in_person`?(a(),x(te,{key:0,size:16})):t.type===`call`?(a(),x(j,{key:1,size:16})):t.type===`message`?(a(),x(N,{key:2,size:16})):(a(),x(z,{key:3,size:16}))],2),g(`div`,$e,[g(`strong`,null,s(le(t.type)),1),g(`p`,null,s(t.description||t.title),1)]),g(`span`,et,s(t.date),1)]))),128)),st.value.length?d(``,!0):(a(),f(`p`,tt,` گزارشی برای این فیلتر ثبت نشده است. `))]))]),E.value===`info`?(a(),f(`footer`,nt,[g(`button`,{type:`button`,class:`cta`,onClick:i[3]||=e=>S(y).push(`/categories`)},[l(k,{size:20,color:`#fff`}),i[19]||=p(` سفارش جدید برای این مشتری `,-1)])])):d(``,!0)])):G.value?(a(),f(`div`,rt,[l(ne,{variant:`detail`})])):(a(),f(`div`,it,[g(`p`,null,s(K.value||`مشتری یافت نشد.`),1)])),l(de,{open:D.value,"customer-id":T.value,onClose:Y,onSuccess:oe},null,8,[`open`,`customer-id`]),l(V,{open:R.value,"customer-id":T.value,initial:ce.value,onClose:Z,onSuccess:se},null,8,[`open`,`customer-id`,`initial`])],64))}}),[[`__scopeId`,`data-v-938375e3`]]);export{at as default};