1 line
5.0 KiB
JavaScript
1 line
5.0 KiB
JavaScript
import{A as e,D as t,N as n,Q as r,U as i,W as a,c as o,ct as s,d as c,et as l,g as u,h as d,jt as f,l as p,m,r as h,s as g,t as _}from"./_plugin-vue_export-helper-vx-p5QAT.js";import{a as v,d as y,t as b}from"./http-CTjL79ty.js";import{P as x,V as S,o as C,x as w}from"./index-BWgYBNME.js";import{t as T}from"./AdminPageSkeleton-DacAHji8.js";import{t as E}from"./BaseEmptyState-88fQ29rO.js";var D={class:`internal-messages-page`},O={key:2,class:`admin-card`},k={class:`admin-table`},A={class:`preview-cell`},j={dir:`ltr`,class:`link-cell`},M={class:`actions`},N=[`onClick`],P=[`onClick`],F={class:`field`},I={class:`field`},L={class:`field`},R={class:`field`},z=[`disabled`],B=_(u({__name:`InternalMessagesView`,setup(u){let _=x(),B=l([]),V=l(!0),H=l(!1),U=l(!1),W=l(null),G=v(),K=r({senderName:``,subject:``,preview:``,link:``}),q=g(()=>W.value?`ویرایش پیام داخلی`:`پیام داخلی جدید`);async function J(){V.value=!0;try{B.value=await w.list()}catch(e){G.error(e instanceof b?e.message:`بارگذاری پیامها ناموفق بود.`)}finally{V.value=!1}}function Y(){W.value=null,Object.assign(K,{senderName:_.fullName||`پشتیبانی`,subject:``,preview:``,link:``}),U.value=!0}function X(e){W.value=e.id,Object.assign(K,{senderName:e.senderName,subject:e.subject,preview:e.preview,link:e.link||``}),U.value=!0}async function Z(){if(!K.senderName.trim()||!K.subject.trim()||!K.preview.trim()){G.error(`فرستنده، موضوع و متن پیام الزامی است.`);return}H.value=!0;let e={senderName:K.senderName.trim(),subject:K.subject.trim(),preview:K.preview.trim(),link:K.link.trim()||null};try{W.value?(await w.update(W.value,e),G.success(`پیام بهروزرسانی شد.`)):(await w.create(e),G.success(`پیام برای همه اپراتورها ارسال شد.`)),U.value=!1,await J()}catch(e){G.error(e instanceof b?e.message:`ذخیره پیام ناموفق بود.`)}finally{H.value=!1}}async function Q(e){if(window.confirm(`پیام «${e.subject}» حذف شود؟`))try{await w.remove(e.id),G.success(`پیام حذف شد.`),await J()}catch(e){G.error(e instanceof b?e.message:`حذف پیام ناموفق بود.`)}}return t(()=>{J()}),(t,r)=>(e(),c(`div`,D,[o(`div`,{class:`admin-page-header`},[r[6]||=o(`div`,null,[o(`h1`,{class:`admin-page-header__title`},`پیامهای داخلی`),o(`p`,{class:`admin-page-header__sub`},` پیام برای تیم پشتیبانی در آیکن نامه بالای پنل نمایش داده میشود. با کلیک روی پیام، در صورت تعیین لینک به همان صفحه میروید. `)],-1),o(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:Y},`پیام جدید`)]),V.value?(e(),p(T,{key:0,variant:`table`})):B.value.length?(e(),c(`div`,O,[o(`table`,k,[r[7]||=o(`thead`,null,[o(`tr`,null,[o(`th`,null,`موضوع`),o(`th`,null,`فرستنده`),o(`th`,null,`خلاصه`),o(`th`,null,`لینک`),o(`th`,null,`زمان`),o(`th`,null,`خواندهشده`),o(`th`,{class:`actions`},`عملیات`)])],-1),o(`tbody`,null,[(e(!0),c(h,null,n(B.value,t=>(e(),c(`tr`,{key:t.id},[o(`td`,null,[o(`strong`,null,f(t.subject),1)]),o(`td`,null,f(t.senderName),1),o(`td`,A,f(t.preview),1),o(`td`,j,f(t.link||`—`),1),o(`td`,null,f(s(C)(t.sentAt)),1),o(`td`,null,f(t.isRead?`بله`:`خیر`),1),o(`td`,M,[o(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:e=>X(t)},` ویرایش `,8,N),o(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:e=>Q(t)},` حذف `,8,P)])]))),128))])])])):(e(),p(E,{key:1,title:`پیامی ثبت نشده`,description:`اولین پیام داخلی را برای تیم ارسال کنید.`},{default:i(()=>[o(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:Y},` پیام جدید `)]),_:1})),d(S,{open:U.value,title:q.value,size:`md`,onClose:r[5]||=e=>U.value=!1},{footer:i(()=>[o(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:r[4]||=e=>U.value=!1},`انصراف`),o(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:H.value,onClick:Z},f(H.value?`در حال ذخیره…`:`ذخیره`),9,z)]),default:i(()=>[o(`label`,F,[r[8]||=m(` نام فرستنده `,-1),a(o(`input`,{"onUpdate:modelValue":r[0]||=e=>K.senderName=e,type:`text`,class:`admin-input`},null,512),[[y,K.senderName]])]),o(`label`,I,[r[9]||=m(` موضوع `,-1),a(o(`input`,{"onUpdate:modelValue":r[1]||=e=>K.subject=e,type:`text`,class:`admin-input`},null,512),[[y,K.subject]])]),o(`label`,L,[r[10]||=m(` متن پیام (خلاصه در لیست نامه) `,-1),a(o(`textarea`,{"onUpdate:modelValue":r[2]||=e=>K.preview=e,class:`admin-input`,rows:`4`},null,512),[[y,K.preview]])]),o(`label`,R,[r[11]||=m(` لینک (اختیاری) `,-1),a(o(`input`,{"onUpdate:modelValue":r[3]||=e=>K.link=e,type:`text`,class:`admin-input`,dir:`ltr`,placeholder:`/orders یا /settings`},null,512),[[y,K.link]])])]),_:1},8,[`open`,`title`])]))}}),[[`__scopeId`,`data-v-413b6ea4`]]);export{B as default}; |