1 line
11 KiB
JavaScript
1 line
11 KiB
JavaScript
import{At as e,F as t,K as n,M as r,Nt as i,Pt as a,U as ee,_ as o,c as s,d as c,f as l,g as u,i as d,k as te,l as f,nt as p,t as ne,u as re,ut as m,v as h}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{l as ie,o as g}from"./BasicIcon-DPmc0iaK.js";import{o as _}from"./format-C72AoJ2H.js";import{t as v}from"./IconPlus-Dk2FJATn.js";import{C as ae,S as oe,s as y}from"./index-DYwnTikp.js";import{t as se}from"./IconChevronBack-BsHmfODG.js";import{t as b}from"./IconMoreVertical-DpXrbzlD.js";import{t as ce}from"./PageSkeleton-DYdjm4l9.js";import{i as le,t as ue}from"./crm-CgnSby61.js";import{t as de}from"./useGoBack-DnRfwA4b.js";import{t as fe}from"./PersianDateInput-BcTTynHd.js";import{t as pe}from"./TimeInput-D6PzFPdF.js";import{t as me}from"./AppSelect-CbWqXW3b.js";var he={class:`page reminders-page`},ge={class:`top mobile-only`},_e={class:`desktop-page__head desktop-only reminders-desk-head`},ve={class:`reminders-desk-head__actions`},ye={class:`page__scroll page__scroll--with-nav reminders-scroll`},be={class:`tabs`,role:`tablist`,"aria-label":`فیلتر یادآورها`},xe=[`aria-selected`,`onClick`],x={class:`tab__text`},S={key:0,class:`tab__badge`},C={key:1,class:`error-text`},w={key:2,class:`create-panel`},T={key:0,class:`create-error`},E={class:`create-row`},D={class:`create-actions`},O=[`disabled`],k={class:`summary`},A={class:`summary__top`},j={class:`summary__label`},M={class:`summary__calendar`,"aria-hidden":`true`},Se={class:`summary__count`},Ce={key:0,class:`empty-state`},we=[`onClick`],Te=[`onClick`],Ee={class:`reminder-card__header`},De={class:`reminder-card__time`},Oe={class:`reminder-card__title-row`},ke={class:`reminder-card__body`},Ae={class:`reminder-card__customer`},je={class:`reminder-card__customer-text`},Me={class:`reminder-card__name`},Ne={class:`reminder-card__contact`},Pe={key:0,class:`reminder-card__desc`},Fe={class:`completed-section`},Ie={class:`completed-bar__count`},Le={key:0,class:`completed-list`},N=[`onClick`],Re={class:`reminder-card__header`},ze={class:`reminder-card__time`},Be={class:`reminder-card__title-row`},Ve={class:`reminder-card__body`},He={class:`reminder-card__customer`},Ue={class:`reminder-card__customer-text`},We={class:`reminder-card__name`},Ge={class:`reminder-card__contact`},Ke={key:0,class:`reminder-card__desc`},qe={key:0,class:`completed-empty`},P=ne(h({__name:`RemindersView`,setup(ne){let h=oe(),P=ae(),{goBack:F}=de(`/`),I=ue(),L=s(()=>String(h.query.filter??`today`)),R=p([]),z=p([]),B=p(!0),V=p(null),H=p(!1),U=p(!1),W=p(0),G=p(!1),K=p({customerId:``,title:``,date:``,time:`10:00`,note:``}),Je=s(()=>z.value.map(e=>({value:e.id,label:e.name||e.contactName||e.id}))),Ye=[{id:`all`,label:`همه`},{id:`today`,label:`امروز`},{id:`week`,label:`هفته آینده`},{id:`past`,label:`گذشته`}],q=s(()=>R.value.filter(e=>!e.completed)),J=s(()=>{let e=new Date().toISOString().slice(0,10);return R.value.filter(t=>t.completed&&t.date===e)}),Xe=s(()=>q.value.length),Ze=s(()=>L.value===`today`?`پیگیریهای امروز`:L.value===`week`?`پیگیریهای هفته آینده`:L.value===`past`?`پیگیریهای گذشته`:`پیگیریهای باز`),Qe=s(()=>new Date().getDate().toLocaleString(`fa-IR`));async function Y(){try{let e=await le(`past`);W.value=e.length}catch{W.value=0}}async function X(){B.value=!0,V.value=null;try{R.value=await I.loadReminders(L.value)}catch(e){V.value=e instanceof Error?e.message:`بارگذاری یادآورها ناموفق بود.`,R.value=[]}finally{B.value=!1}}te(async()=>{await Promise.all([X(),Y()])}),ee(L,X);function $e(e){P.replace({path:`/reminders`,query:{filter:e}})}async function et(e){try{await I.markReminderComplete(e),await X(),await Y()}catch(e){V.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 $(){H.value=!0,G.value=!1,V.value=null;try{if(z.value=await I.loadCustomers(),!K.value.customerId&&z.value[0]&&(K.value.customerId=z.value[0].id),!K.value.date){let e=new Date;K.value.date=`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`}}catch(e){V.value=e instanceof Error?e.message:`بارگذاری مشتریان ناموفق بود.`}}async function tt(){if(!K.value.customerId||!K.value.title.trim()||!K.value.date||!K.value.time){V.value=`مشتری، عنوان، تاریخ و ساعت الزامی است.`;return}U.value=!0,V.value=null;try{await I.createReminder({customerId:K.value.customerId,title:K.value.title.trim(),date:K.value.date,time:K.value.time,note:K.value.note.trim()||void 0,description:K.value.note.trim()||void 0}),H.value=!1,K.value.title=``,K.value.note=``,await X(),await Y()}catch(e){V.value=e instanceof Error?e.message:`ثبت یادآور ناموفق بود.`}finally{U.value=!1}}function nt(){G.value=!G.value}return(ee,s)=>(r(),l(`div`,he,[f(`header`,ge,[f(`button`,{type:`button`,class:`icon-btn`,"aria-label":`بازگشت`,onClick:s[0]||=(...e)=>m(F)&&m(F)(...e)},[o(se,{size:20})]),s[9]||=f(`h1`,null,`یادآورها`,-1),f(`button`,{type:`button`,class:`icon-btn`,"aria-label":`اعلانها`,onClick:s[1]||=e=>m(P).push(`/profile/notifications`)},[o(y,{size:20})])]),f(`header`,_e,[s[11]||=f(`div`,null,[f(`h1`,{class:`desktop-page__title`},`یادآورها`),f(`p`,{class:`desktop-page__subtitle`},`پیگیری و مدیریت یادآورهای مشتریان`)],-1),f(`div`,ve,[f(`button`,{type:`button`,class:`desk-icon-btn`,"aria-label":`اعلانها`,onClick:s[2]||=e=>m(P).push(`/profile/notifications`)},[o(y,{size:20})]),f(`button`,{type:`button`,class:`desk-new-btn`,onClick:$},[o(v,{size:18,color:`#fff`}),s[10]||=u(` یادآور جدید `,-1)])])]),f(`div`,ye,[f(`div`,be,[(r(),l(d,null,t(Ye,t=>f(`button`,{key:t.id,type:`button`,role:`tab`,class:e([`tab`,{"tab--active":L.value===t.id}]),"aria-selected":L.value===t.id,onClick:e=>$e(t.id)},[f(`span`,x,[u(a(t.label)+` `,1),t.id===`past`&&W.value?(r(),l(`span`,S,a(W.value.toLocaleString(`fa-IR`)),1)):c(``,!0)])],10,xe)),64))]),B.value?(r(),re(ce,{key:0,variant:`list`})):V.value&&!H.value?(r(),l(`p`,C,a(V.value),1)):c(``,!0),H.value?(r(),l(`section`,w,[s[14]||=f(`h3`,null,`یادآور جدید`,-1),V.value?(r(),l(`p`,T,a(V.value),1)):c(``,!0),o(me,{modelValue:K.value.customerId,"onUpdate:modelValue":s[3]||=e=>K.value.customerId=e,label:`مشتری`,placeholder:`انتخاب مشتری`,"aria-label":`مشتری`,searchable:``,options:Je.value},null,8,[`modelValue`,`options`]),f(`label`,null,[s[12]||=u(` عنوان `,-1),n(f(`input`,{"onUpdate:modelValue":s[4]||=e=>K.value.title=e,type:`text`,placeholder:`مثلاً پیگیری نمونه`},null,512),[[g,K.value.title]])]),f(`div`,E,[o(fe,{modelValue:K.value.date,"onUpdate:modelValue":s[5]||=e=>K.value.date=e,label:`تاریخ`,class:`create-date`},null,8,[`modelValue`]),o(pe,{modelValue:K.value.time,"onUpdate:modelValue":s[6]||=e=>K.value.time=e,label:`ساعت`,placeholder:`مثلاً ۱۰:۳۰`},null,8,[`modelValue`])]),f(`label`,null,[s[13]||=u(` یادداشت `,-1),n(f(`textarea`,{"onUpdate:modelValue":s[7]||=e=>K.value.note=e,rows:`2`,placeholder:`اختیاری`},null,512),[[g,K.value.note]])]),f(`div`,D,[f(`button`,{type:`button`,class:`btn-cancel`,onClick:s[8]||=e=>H.value=!1},`انصراف`),f(`button`,{type:`button`,class:`btn-save`,disabled:U.value,onClick:tt},a(U.value?`در حال ثبت...`:`ثبت یادآور`),9,O)])])):!B.value&&!V.value?(r(),l(d,{key:3},[f(`section`,k,[f(`div`,A,[f(`span`,j,a(Ze.value),1),f(`div`,M,[s[15]||=f(`svg`,{viewBox:`0 0 24 24`,fill:`none`},[f(`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),f(`span`,null,a(Qe.value),1)])]),f(`div`,Se,[f(`strong`,null,a(m(_)(Xe.value)),1),s[16]||=f(`span`,null,`مورد`,-1)]),s[17]||=f(`p`,{class:`summary__sub`},`یادآورهای شما برای پیگیری مشتریان`,-1)]),q.value.length?c(``,!0):(r(),l(`div`,Ce,`یادآوری برای این بازه ثبت نشده است.`)),(r(!0),l(d,null,t(q.value,t=>(r(),l(`div`,{key:t.id,class:`reminder-row`},[f(`button`,{type:`button`,class:`reminder-row__check`,"aria-label":`تکمیل یادآور`,onClick:ie(e=>et(t.id),[`stop`])},null,8,we),f(`article`,{class:`reminder-card`,onClick:e=>m(P).push({path:`/reminder`,query:{id:t.id}})},[f(`div`,Ee,[f(`span`,De,a(t.time),1),f(`div`,Oe,[f(`strong`,null,a(t.title),1),o(b,{size:18,class:`reminder-card__menu`})])]),f(`div`,ke,[f(`span`,{class:e([`tag`,Q(t.interactionType)])},a(Z(t.interactionType)),3),f(`div`,Ae,[f(`div`,je,[f(`p`,Me,a(t.customerName),1),f(`p`,Ne,a(t.contactName),1)]),f(`div`,{class:`reminder-card__avatar`,style:i({background:t.avatarColor})},a(t.avatarLetter),5)])]),t.description?(r(),l(`p`,Pe,a(t.description),1)):c(``,!0)],8,Te)]))),128)),f(`section`,Fe,[f(`button`,{type:`button`,class:`completed-bar`,onClick:nt},[(r(),l(`svg`,{class:e([`completed-bar__chevron`,{"is-open":G.value}]),viewBox:`0 0 12 12`,"aria-hidden":`true`},[...s[18]||=[f(`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)),s[19]||=f(`span`,{class:`completed-bar__label`},`یادآورهای تکمیل شده امروز`,-1),f(`span`,Ie,a(m(_)(J.value.length)),1)]),G.value?(r(),l(`div`,Le,[(r(!0),l(d,null,t(J.value,t=>(r(),l(`div`,{key:t.id,class:`reminder-row reminder-row--done`},[s[20]||=f(`span`,{class:`reminder-row__check reminder-row__check--done`,"aria-hidden":`true`},null,-1),f(`article`,{class:`reminder-card reminder-card--done`,onClick:e=>m(P).push({path:`/reminder`,query:{id:t.id}})},[f(`div`,Re,[f(`span`,ze,a(t.time),1),f(`div`,Be,[f(`strong`,null,a(t.title),1),o(b,{size:18,class:`reminder-card__menu`})])]),f(`div`,Ve,[f(`span`,{class:e([`tag`,Q(t.interactionType)])},a(Z(t.interactionType)),3),f(`div`,He,[f(`div`,Ue,[f(`p`,We,a(t.customerName),1),f(`p`,Ge,a(t.contactName),1)]),f(`div`,{class:`reminder-card__avatar`,style:i({background:t.avatarColor})},a(t.avatarLetter),5)])]),t.description?(r(),l(`p`,Ke,a(t.description),1)):c(``,!0)],8,N)]))),128)),J.value.length?c(``,!0):(r(),l(`p`,qe,`یادآور تکمیلشدهای برای امروز نیست.`))])):c(``,!0)])],64)):c(``,!0),f(`button`,{type:`button`,class:`new-btn mobile-only`,onClick:$},[o(v,{size:20,color:`#fff`}),s[21]||=u(` یادآور جدید `,-1)])])]))}}),[[`__scopeId`,`data-v-a6c01aa1`]]);export{P as default}; |