Files
nademitex_user/dist/assets/RemindersView-7lF3bXsi.js
T

1 line
11 KiB
JavaScript

import{A as e,Ct as t,D as ee,Dt as n,Et as r,J as i,L as a,M as te,N as o,O as s,P as c,Q as l,R as u,X as d,_ as ne,at as f,g as re,ht as p,j as m,n as ie,nt as ae,w as h,wt as g,z as _}from"./BasicIcon-Bnxm-DKk.js";import{t as oe}from"./dist-CeuESLw-.js";import{o as v}from"./format-C72AoJ2H.js";import{s as y,w as b}from"./index-DB4cQnln.js";import{t as se}from"./IconChevronBack-DguSlPDK.js";import{t as x}from"./IconMoreVertical-C07CFI4h.js";import{t as ce}from"./PageSkeleton-CpZ7eT1v.js";import{i as le,t as ue}from"./crm-CZ7XH3z9.js";import{t as de}from"./useGoBack-Ds4z3swU.js";import{t as fe}from"./PersianDateInput-BiSVL1bi.js";var pe={class:`page reminders-page`},me={class:`top mobile-only`},he={class:`desktop-page__head desktop-only reminders-desk-head`},ge={class:`reminders-desk-head__actions`},_e={class:`page__scroll page__scroll--with-nav reminders-scroll`},ve={class:`tabs`,role:`tablist`,"aria-label":`فیلتر یادآورها`},ye=[`aria-selected`,`onClick`],be={class:`tab__text`},xe={key:0,class:`tab__badge`},Se={key:1,class:`error-text`},Ce={key:2,class:`create-panel`},S={key:0,class:`create-error`},C=[`aria-expanded`],w={key:0,class:`field-select__menu`,role:`listbox`},T=[`aria-selected`,`onClick`],E={class:`create-row`},D={class:`create-actions`},O=[`disabled`],k={class:`summary`},A={class:`summary__top`},we={class:`summary__label`},Te={class:`summary__calendar`,"aria-hidden":`true`},Ee={class:`summary__count`},De={key:0,class:`empty-state`},Oe=[`onClick`],ke=[`onClick`],Ae={class:`reminder-card__header`},je={class:`reminder-card__time`},Me={class:`reminder-card__title-row`},Ne={class:`reminder-card__body`},Pe={class:`reminder-card__customer`},Fe={class:`reminder-card__customer-text`},Ie={class:`reminder-card__name`},Le={class:`reminder-card__contact`},Re={key:0,class:`reminder-card__desc`},ze={class:`completed-section`},Be={class:`completed-bar__count`},Ve={key:0,class:`completed-list`},He=[`onClick`],Ue={class:`reminder-card__header`},We={class:`reminder-card__time`},Ge={class:`reminder-card__title-row`},Ke={class:`reminder-card__body`},j={class:`reminder-card__customer`},qe={class:`reminder-card__customer-text`},Je={class:`reminder-card__name`},Ye={class:`reminder-card__contact`},Xe={key:0,class:`reminder-card__desc`},Ze={key:0,class:`completed-empty`},M=ie(_({__name:`RemindersView`,setup(ie){let _=re(),M=ne(),{goBack:N}=de(`/`),P=ue(),F=e(()=>String(_.query.filter??`today`)),I=p([]),L=p([]),R=p(!0),z=p(null),B=p(!1),V=p(!1),H=p(0),U=p(!1),W=p({customerId:``,title:``,date:``,time:`10:00`,note:``}),G=p(!1),K=p(null),Qe=e(()=>{if(!W.value.customerId)return`انتخاب مشتری`;let e=L.value.find(e=>e.id===W.value.customerId);return e?.name||e?.contactName||`انتخاب مشتری`});oe(K,()=>{G.value=!1});function $e(e){W.value.customerId=e,G.value=!1}let et=[{id:`all`,label:`همه`},{id:`today`,label:`امروز`},{id:`week`,label:`هفته آینده`},{id:`past`,label:`گذشته`}],q=e(()=>I.value.filter(e=>!e.completed)),J=e(()=>{let e=new Date().toISOString().slice(0,10);return I.value.filter(t=>t.completed&&t.date===e)}),tt=e(()=>q.value.length),nt=e(()=>F.value===`today`?`پیگیری‌های امروز`:F.value===`week`?`پیگیری‌های هفته آینده`:F.value===`past`?`پیگیری‌های گذشته`:`پیگیری‌های باز`),rt=e(()=>new Date().getDate().toLocaleString(`fa-IR`));async function Y(){try{let e=await le(`past`);H.value=e.length}catch{H.value=0}}async function X(){R.value=!0,z.value=null;try{I.value=await P.loadReminders(F.value)}catch(e){z.value=e instanceof Error?e.message:`بارگذاری یادآورها ناموفق بود.`,I.value=[]}finally{R.value=!1}}i(async()=>{await Promise.all([X(),Y()])}),ae(F,X);function it(e){M.replace({path:`/reminders`,query:{filter:e}})}async function at(e){try{await P.markReminderComplete(e),await X(),await Y()}catch(e){z.value=e instanceof Error?e.message:`تکمیل یادآور ناموفق بود.`}}function Z(e){return e===`in_person`?`ملاقات حضوری`:e===`call`?`تماس تلفنی`:e===`message`?`پیام`:`یادداشت`}function Q(e){return e===`in_person`?`tag--green`:e===`call`?`tag--blue`:`tag--purple`}async function $(){B.value=!0,U.value=!1,G.value=!1,z.value=null;try{if(L.value=await P.loadCustomers(),!W.value.customerId&&L.value[0]&&(W.value.customerId=L.value[0].id),!W.value.date){let e=new Date;W.value.date=`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`}}catch(e){z.value=e instanceof Error?e.message:`بارگذاری مشتریان ناموفق بود.`}}async function ot(){if(!W.value.customerId||!W.value.title.trim()||!W.value.date||!W.value.time){z.value=`مشتری، عنوان، تاریخ و ساعت الزامی است.`;return}V.value=!0,z.value=null;try{await P.createReminder({customerId:W.value.customerId,title:W.value.title.trim(),date:W.value.date,time:W.value.time,note:W.value.note.trim()||void 0,description:W.value.note.trim()||void 0}),B.value=!1,W.value.title=``,W.value.note=``,await X(),await Y()}catch(e){z.value=e instanceof Error?e.message:`ثبت یادآور ناموفق بود.`}finally{V.value=!1}}function st(){U.value=!U.value}return(e,i)=>(d(),c(`div`,pe,[m(`header`,me,[m(`button`,{type:`button`,class:`icon-btn`,"aria-label":`بازگشت`,onClick:i[0]||=(...e)=>t(N)&&t(N)(...e)},[u(se,{size:20})]),i[9]||=m(`h1`,null,`یادآورها`,-1),m(`button`,{type:`button`,class:`icon-btn`,"aria-label":`اعلان‌ها`,onClick:i[1]||=e=>t(M).push(`/profile/notifications`)},[u(y,{size:20})])]),m(`header`,he,[i[11]||=m(`div`,null,[m(`h1`,{class:`desktop-page__title`},`یادآورها`),m(`p`,{class:`desktop-page__subtitle`},`پیگیری و مدیریت یادآورهای مشتریان`)],-1),m(`div`,ge,[m(`button`,{type:`button`,class:`desk-icon-btn`,"aria-label":`اعلان‌ها`,onClick:i[2]||=e=>t(M).push(`/profile/notifications`)},[u(y,{size:20})]),m(`button`,{type:`button`,class:`desk-new-btn`,onClick:$},[u(b,{size:18,color:`#fff`}),i[10]||=a(` یادآور جدید `,-1)])])]),m(`div`,_e,[m(`div`,ve,[(d(),c(s,null,l(et,e=>m(`button`,{key:e.id,type:`button`,role:`tab`,class:g([`tab`,{"tab--active":F.value===e.id}]),"aria-selected":F.value===e.id,onClick:t=>it(e.id)},[m(`span`,be,[a(n(e.label)+` `,1),e.id===`past`&&H.value?(d(),c(`span`,xe,n(H.value.toLocaleString(`fa-IR`)),1)):o(``,!0)])],10,ye)),64))]),R.value?(d(),te(ce,{key:0,variant:`list`})):z.value&&!B.value?(d(),c(`p`,Se,n(z.value),1)):o(``,!0),B.value?(d(),c(`section`,Ce,[i[17]||=m(`h3`,null,`یادآور جدید`,-1),z.value?(d(),c(`p`,S,n(z.value),1)):o(``,!0),m(`label`,null,[i[13]||=a(` مشتری `,-1),m(`div`,{ref_key:`customerRoot`,ref:K,class:`field-select`},[m(`button`,{type:`button`,class:g([`field-select__trigger`,{"is-open":G.value}]),"aria-haspopup":`listbox`,"aria-expanded":G.value,onClick:i[3]||=e=>G.value=!G.value},[m(`span`,{class:g({"is-placeholder":!W.value.customerId})},n(Qe.value),3),i[12]||=m(`svg`,{class:`field-select__chevron`,viewBox:`0 0 12 12`,"aria-hidden":`true`},[m(`path`,{d:`M2.5 4.5 6 8l3.5-3.5`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.4`,"stroke-linecap":`round`})],-1)],10,C),G.value?(d(),c(`ul`,w,[(d(!0),c(s,null,l(L.value,e=>(d(),c(`li`,{key:e.id},[m(`button`,{type:`button`,role:`option`,class:g([`field-select__option`,{"is-active":W.value.customerId===e.id}]),"aria-selected":W.value.customerId===e.id,onClick:t=>$e(e.id)},n(e.name||e.contactName),11,T)]))),128))])):o(``,!0)],512)]),m(`label`,null,[i[14]||=a(` عنوان `,-1),f(m(`input`,{"onUpdate:modelValue":i[4]||=e=>W.value.title=e,type:`text`,placeholder:`مثلاً پیگیری نمونه`},null,512),[[h,W.value.title]])]),m(`div`,E,[u(fe,{modelValue:W.value.date,"onUpdate:modelValue":i[5]||=e=>W.value.date=e,label:`تاریخ`,class:`create-date`},null,8,[`modelValue`]),m(`label`,null,[i[15]||=a(` ساعت `,-1),f(m(`input`,{"onUpdate:modelValue":i[6]||=e=>W.value.time=e,type:`time`},null,512),[[h,W.value.time]])])]),m(`label`,null,[i[16]||=a(` یادداشت `,-1),f(m(`textarea`,{"onUpdate:modelValue":i[7]||=e=>W.value.note=e,rows:`2`,placeholder:`اختیاری`},null,512),[[h,W.value.note]])]),m(`div`,D,[m(`button`,{type:`button`,class:`btn-cancel`,onClick:i[8]||=e=>B.value=!1},`انصراف`),m(`button`,{type:`button`,class:`btn-save`,disabled:V.value,onClick:ot},n(V.value?`در حال ثبت...`:`ثبت یادآور`),9,O)])])):!R.value&&!z.value?(d(),c(s,{key:3},[m(`section`,k,[m(`div`,A,[m(`span`,we,n(nt.value),1),m(`div`,Te,[i[18]||=m(`svg`,{viewBox:`0 0 24 24`,fill:`none`},[m(`path`,{d:`M8 2.5V5.5M16 2.5V5.5M4.5 9.5H19.5M19 8.5V17.5C19 20 17.5 21.5 14.5 21.5H9.5C6.5 21.5 5 20 5 17.5V8.5C5 6 6.5 4.5 9.5 4.5H14.5C17.5 4.5 19 6 19 8.5Z`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`})],-1),m(`span`,null,n(rt.value),1)])]),m(`div`,Ee,[m(`strong`,null,n(t(v)(tt.value)),1),i[19]||=m(`span`,null,`مورد`,-1)]),i[20]||=m(`p`,{class:`summary__sub`},`یادآورهای شما برای پیگیری مشتریان`,-1)]),q.value.length?o(``,!0):(d(),c(`div`,De,`یادآوری برای این بازه ثبت نشده است.`)),(d(!0),c(s,null,l(q.value,e=>(d(),c(`div`,{key:e.id,class:`reminder-row`},[m(`button`,{type:`button`,class:`reminder-row__check`,"aria-label":`تکمیل یادآور`,onClick:ee(t=>at(e.id),[`stop`])},null,8,Oe),m(`article`,{class:`reminder-card`,onClick:ee=>t(M).push({path:`/reminder`,query:{id:e.id}})},[m(`div`,Ae,[m(`span`,je,n(e.time),1),m(`div`,Me,[m(`strong`,null,n(e.title),1),u(x,{size:18,class:`reminder-card__menu`})])]),m(`div`,Ne,[m(`span`,{class:g([`tag`,Q(e.interactionType)])},n(Z(e.interactionType)),3),m(`div`,Pe,[m(`div`,Fe,[m(`p`,Ie,n(e.customerName),1),m(`p`,Le,n(e.contactName),1)]),m(`div`,{class:`reminder-card__avatar`,style:r({background:e.avatarColor})},n(e.avatarLetter),5)])]),e.description?(d(),c(`p`,Re,n(e.description),1)):o(``,!0)],8,ke)]))),128)),m(`section`,ze,[m(`button`,{type:`button`,class:`completed-bar`,onClick:st},[(d(),c(`svg`,{class:g([`completed-bar__chevron`,{"is-open":U.value}]),viewBox:`0 0 12 12`,"aria-hidden":`true`},[...i[21]||=[m(`path`,{d:`M2.5 4.5 6 8l3.5-3.5`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.4`,"stroke-linecap":`round`},null,-1)]],2)),i[22]||=m(`span`,{class:`completed-bar__label`},`یادآورهای تکمیل شده امروز`,-1),m(`span`,Be,n(t(v)(J.value.length)),1)]),U.value?(d(),c(`div`,Ve,[(d(!0),c(s,null,l(J.value,e=>(d(),c(`div`,{key:e.id,class:`reminder-row reminder-row--done`},[i[23]||=m(`span`,{class:`reminder-row__check reminder-row__check--done`,"aria-hidden":`true`},null,-1),m(`article`,{class:`reminder-card reminder-card--done`,onClick:ee=>t(M).push({path:`/reminder`,query:{id:e.id}})},[m(`div`,Ue,[m(`span`,We,n(e.time),1),m(`div`,Ge,[m(`strong`,null,n(e.title),1),u(x,{size:18,class:`reminder-card__menu`})])]),m(`div`,Ke,[m(`span`,{class:g([`tag`,Q(e.interactionType)])},n(Z(e.interactionType)),3),m(`div`,j,[m(`div`,qe,[m(`p`,Je,n(e.customerName),1),m(`p`,Ye,n(e.contactName),1)]),m(`div`,{class:`reminder-card__avatar`,style:r({background:e.avatarColor})},n(e.avatarLetter),5)])]),e.description?(d(),c(`p`,Xe,n(e.description),1)):o(``,!0)],8,He)]))),128)),J.value.length?o(``,!0):(d(),c(`p`,Ze,`یادآور تکمیل‌شده‌ای برای امروز نیست.`))])):o(``,!0)])],64)):o(``,!0),m(`button`,{type:`button`,class:`new-btn mobile-only`,onClick:$},[u(b,{size:20,color:`#fff`}),i[24]||=a(` یادآور جدید `,-1)])])]))}}),[[`__scopeId`,`data-v-5b2cf3dd`]]);export{M as default};