Files
nademitex_admin/dist/assets/InternalMessagesView-BL4mP-qn.js
T
2026-09-30 09:53:30 +03:30

1 line
5.0 KiB
JavaScript

import{$ as e,At as t,E as n,H as r,M as i,U as a,Z as o,c as s,d as c,g as l,h as u,k as d,l as f,m as p,r as m,s as h,st as g,t as _}from"./_plugin-vue_export-helper-QrIvvHC8.js";import{a as v,f as y,t as b}from"./http-BjLkjdQu.js";import{F as x,H as S,o as C,x as w}from"./index-BzcByePp.js";import{t as T}from"./AdminPageSkeleton-oWhHYjl4.js";import{t as E}from"./BaseEmptyState-B7aEMvHg.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=_(l({__name:`InternalMessagesView`,setup(l){let _=x(),B=e([]),V=e(!0),H=e(!1),U=e(!1),W=e(null),G=v(),K=o({senderName:``,subject:``,preview:``,link:``}),q=h(()=>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 n(()=>{J()}),(e,n)=>(d(),c(`div`,D,[s(`div`,{class:`admin-page-header`},[n[6]||=s(`div`,null,[s(`h1`,{class:`admin-page-header__title`},`پیام‌های داخلی`),s(`p`,{class:`admin-page-header__sub`},` پیام برای تیم پشتیبانی در آیکن نامه بالای پنل نمایش داده می‌شود. با کلیک روی پیام، در صورت تعیین لینک به همان صفحه می‌روید. `)],-1),s(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:Y},`پیام جدید`)]),V.value?(d(),f(T,{key:0,variant:`table`})):B.value.length?(d(),c(`div`,O,[s(`table`,k,[n[7]||=s(`thead`,null,[s(`tr`,null,[s(`th`,null,`موضوع`),s(`th`,null,`فرستنده`),s(`th`,null,`خلاصه`),s(`th`,null,`لینک`),s(`th`,null,`زمان`),s(`th`,null,`خوانده‌شده`),s(`th`,{class:`actions`},`عملیات`)])],-1),s(`tbody`,null,[(d(!0),c(m,null,i(B.value,e=>(d(),c(`tr`,{key:e.id},[s(`td`,null,[s(`strong`,null,t(e.subject),1)]),s(`td`,null,t(e.senderName),1),s(`td`,A,t(e.preview),1),s(`td`,j,t(e.link||`—`),1),s(`td`,null,t(g(C)(e.sentAt)),1),s(`td`,null,t(e.isRead?`بله`:`خیر`),1),s(`td`,M,[s(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>X(e)},` ویرایش `,8,N),s(`button`,{type:`button`,class:`admin-btn admin-btn--ghost admin-btn--xs`,onClick:t=>Q(e)},` حذف `,8,P)])]))),128))])])])):(d(),f(E,{key:1,title:`پیامی ثبت نشده`,description:`اولین پیام داخلی را برای تیم ارسال کنید.`},{default:r(()=>[s(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:Y},` پیام جدید `)]),_:1})),u(S,{open:U.value,title:q.value,size:`md`,onClose:n[5]||=e=>U.value=!1},{footer:r(()=>[s(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:n[4]||=e=>U.value=!1},`انصراف`),s(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:H.value,onClick:Z},t(H.value?`در حال ذخیره…`:`ذخیره`),9,z)]),default:r(()=>[s(`label`,F,[n[8]||=p(` نام فرستنده `,-1),a(s(`input`,{"onUpdate:modelValue":n[0]||=e=>K.senderName=e,type:`text`,class:`admin-input`},null,512),[[y,K.senderName]])]),s(`label`,I,[n[9]||=p(` موضوع `,-1),a(s(`input`,{"onUpdate:modelValue":n[1]||=e=>K.subject=e,type:`text`,class:`admin-input`},null,512),[[y,K.subject]])]),s(`label`,L,[n[10]||=p(` متن پیام (خلاصه در لیست نامه) `,-1),a(s(`textarea`,{"onUpdate:modelValue":n[2]||=e=>K.preview=e,class:`admin-input`,rows:`4`},null,512),[[y,K.preview]])]),s(`label`,R,[n[11]||=p(` لینک (اختیاری) `,-1),a(s(`input`,{"onUpdate:modelValue":n[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};