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.
1 line
4.1 KiB
JavaScript
1 line
4.1 KiB
JavaScript
import{A as e,Ct as t,Et as n,M as r,N as i,O as a,P as o,R as s,St as c,Tt as l,Y as u,Z as d,_ as f,g as p,j as m,mt as h,n as g,q as _,rt as v,tt as y,z as b}from"./BasicIcon-C6boaehV.js";import{o as x}from"./format-BHJptHdF.js";import{o as ee,x as S,y as C}from"./index-DzzUgmYT.js";import{t as w}from"./IconFilter-D9NdLZ7w.js";import{t as T}from"./PageSkeleton-uO-jhbNm.js";import{t as E}from"./crm-CtglbPsN.js";import{t as D}from"./PageHeader-BFnKSFNh.js";import{t as O}from"./SearchField-Dx2PcshV.js";var k={class:`page customers-page`},A={class:`page__scroll page__scroll--with-nav customers-scroll`},j={class:`toolbar`},M={class:`summary-card`},N={class:`summary-card__icon`,"aria-hidden":`true`},P={class:`summary-card__cols`},F={class:`tabs`,role:`tablist`},I=[`aria-selected`,`onClick`],L={class:`tab__text`},te={key:1},R=[`onClick`],z={class:`customer-card__body`},B={class:`customer-card__top`},V=g(b({__name:`CustomersView`,setup(g){let b=p(),V=f(),H=E(),U=h(String(b.query.q??``)),W=e(()=>String(b.query.status??`all`)),G=h([]),K=h(!0),q=h(null),J=e(()=>G.value),Y=e(()=>G.value.filter(e=>e.status===`active`).length),X=e(()=>G.value.reduce((e,t)=>e+t.totalPurchaseToman,0)),Z=[{id:`all`,label:`همه`},{id:`active`,label:`فعال`},{id:`inactive`,label:`غیرفعال`},{id:`new`,label:`جدید`}];async function Q(){K.value=!0,q.value=null;try{G.value=await H.loadCustomers({q:U.value||void 0,status:W.value===`all`?void 0:W.value})}catch(e){q.value=e instanceof Error?e.message:`بارگذاری مشتریان ناموفق بود.`,G.value=[]}finally{K.value=!1}}_(Q),y([W,U],Q);function $(e){V.replace({path:`/customers`,query:{...e===`all`?{}:{status:e},...U.value?{q:U.value}:{}}})}function ne(e){U.value=e,V.replace({path:`/customers`,query:{...W.value===`all`?{}:{status:W.value},...e?{q:e}:{}}})}function re(e){return e===`active`?`فعال`:e===`inactive`?`غیرفعال`:`جدید`}function ie(){V.push(`/customers/new`)}function ae(){let e=[`all`,`active`,`inactive`,`new`],t=e.indexOf(W.value);$(e[(t<0?0:t+1)%e.length]??`all`)}return(e,f)=>(u(),o(`div`,k,[s(D,{title:`مشتریان من`,"show-back":``,centered:``,onBack:f[0]||=e=>c(V).back()},{trailing:v(()=>[m(`button`,{type:`button`,class:`nav-add-btn`,"aria-label":`ثبت مشتری`,onClick:ie},[s(C,{size:22})])]),_:1}),m(`div`,A,[m(`div`,j,[s(O,{"model-value":U.value,placeholder:`جستجو بر اساس نام یا موبایل...`,"onUpdate:modelValue":ne},null,8,[`model-value`]),m(`button`,{type:`button`,class:`filter-btn`,"aria-label":`فیلتر وضعیت`,onClick:ae},[s(w,{size:18})])]),m(`section`,M,[m(`div`,N,[s(S,{size:22,color:`#fff`})]),m(`div`,P,[m(`div`,null,[f[1]||=m(`span`,null,`تعداد مشتری فعال`,-1),m(`strong`,null,n(c(x)(Y.value)),1)]),f[4]||=m(`span`,{class:`summary-card__divider`,"aria-hidden":`true`},null,-1),m(`div`,null,[f[2]||=m(`span`,null,`مجموع خرید (ریال)`,-1),m(`strong`,null,n(c(x)(X.value)),1),f[3]||=m(`em`,null,`تومان`,-1)])])]),m(`div`,F,[(u(),o(a,null,d(Z,e=>m(`button`,{key:e.id,type:`button`,role:`tab`,class:t([`tab`,{"tab--active":W.value===e.id}]),"aria-selected":W.value===e.id,onClick:t=>$(e.id)},[m(`span`,L,n(e.label),1)],10,I)),64))]),K.value?(u(),r(T,{key:0,variant:`list`})):q.value?(u(),o(`p`,te,n(q.value),1)):i(``,!0),(u(!0),o(a,null,d(J.value,e=>(u(),o(`button`,{key:e.id,type:`button`,class:`customer-card`,onClick:t=>c(V).push({path:`/customer`,query:{id:e.id}})},[m(`div`,{class:`customer-card__avatar`,style:l({background:e.avatarColor})},n(e.avatarLetter),5),m(`div`,z,[m(`div`,B,[m(`strong`,null,n(e.name),1)]),m(`p`,null,n(e.phone),1),m(`p`,null,`مجموع خرید: `+n(c(x)(e.totalPurchaseToman))+` تومان`,1)]),m(`span`,{class:t([`status`,{"status--ok":e.status===`active`,"status--off":e.status===`inactive`,"status--new":e.status===`new`}])},n(re(e.status)),3),s(ee,{size:18,class:`chevron`})],8,R))),128)),f[5]||=m(`section`,{class:`promo`},[m(`div`,null,[m(`strong`,null,`افزایش مشتریان = افزایش سطح شما`),m(`p`,null,`با جذب مشتریان بیشتر به سطح VIP برسید`)])],-1)])]))}}),[[`__scopeId`,`data-v-823e3f40`]]);export{V as default}; |