Files
machartaa_admin_dist/dist/assets/index-519f83cd.js
T
2026-06-30 11:30:31 +03:30

2 lines
11 KiB
JavaScript

import{d as U,o as g,c as y,a as e,t as r,J,g as v,h as N,b as s,j as k,w as n,e as c,k as L,G as F,D as P,F as z,i as G}from"./index-3136f82f.js";import{_ as V,u as j}from"./useBaseTable-76d7f07d.js";import{_ as H,B as O}from"./button.vue_vue_type_style_index_0_lang-9e790906.js";import{g as q}from"./member-28294eae.js";import{s as Q,a as W,g as X,b as Y}from"./pushNotification-c525a4ba.js";import{c as Z}from"./smsUserColumns-c08fe7f1.js";import{M as ee}from"./index-74066b73.js";import{I as K}from"./index-d53e2890.js";import{_ as te}from"./BasicModal.vue_vue_type_style_index_0_lang-21dc5108.js";import{I as se}from"./Icon-da96086d.js";import{t as A}from"./useDataTime-a308c7ac.js";import{D as ae,_ as le}from"./index-a51e1b32.js";import{S as oe}from"./index-732915ec.js";import{T as ne}from"./shallowequal-18cd9d2d.js";import{_ as re,T as ie}from"./index-bdb897ea.js";import"./fa_IR-7ef01f07.js";import"./toArray-86b1c6d3.js";import"./vnode-76a3da37.js";import"./FormItemContext-6cd43783.js";import"./pickAttrs-b6fb3a2a.js";import"./useState-cbfc3923.js";import"./_plugin-vue_export-helper-d984416f.js";import"./lodash-c712c23b.js";import"./index-ddec8b32.js";import"./styleChecker-0439e77f.js";import"./isPlainObject-bc4a6351.js";import"./useRefs-bc01ea09.js";import"./_flatRest-9b18ad3b.js";const ce={class:"py-2 pr-3 w-full h-full relative"},de={class:"text-black font-bold"},ue={class:"mt-5 overflow-y-auto p-2 h-[96%]"},_e=U({__name:"BasicShowContext",props:{title:{}},setup(a){const p=a;return(b,w)=>(g(),y("div",ce,[e("div",de,r(p.title),1),e("div",ue,[J(b.$slots,"default")])]))}}),me={class:"space-y-4"},pe={class:"grid grid-cols-1 xl:grid-cols-3 gap-4"},ve={class:"xl:col-span-2 space-y-4"},fe=e("div",{class:"mb-1 text-sm text-gray-600"},"عنوان نوتیفیکیشن *",-1),ge=e("div",{class:"mb-1 text-sm text-gray-600"},"متن نوتیفیکیشن *",-1),be=e("div",{class:"mb-1 text-sm text-gray-600"},"لینک (اختیاری)",-1),he={class:"flex flex-wrap gap-2"},ye={class:"bg-gray-50 rounded-lg p-4 border border-gray-200 space-y-2 text-sm"},xe=e("div",{class:"font-semibold text-gray-700 mb-2"},"راهنما",-1),$e=e("p",{class:"text-gray-600 leading-6 m-0"}," فقط کاربرانی که اعلان را در اپ فعال کرده‌اند، نوتیف دریافت می‌کنند. ",-1),ke=e("p",{class:"text-gray-600 leading-6 m-0"}," برای ارسال محدود، کاربران را از جدول پایین انتخاب کنید. ",-1),we={key:0,class:"pt-2 border-t border-gray-200"},Se=e("div",{class:"font-medium mb-1"},"آخرین ارسال:",-1),Te={key:0},Pe={key:1},Re={class:"border-t border-gray-200 pt-4"},Be=e("div",{class:"mb-2 text-sm text-gray-600"}," کاربران را جستجو کنید و برای ارسال محدود، آن‌ها را انتخاب کنید. ",-1),Ce=U({__name:"PushSendPanel",emits:["sent"],setup(a,{emit:p}){const{TextArea:b}=K,[w]=j(),l=v({title:"ماچارتا",body:"",url:"/"}),d=v(!1),t=v([]),u=v(null),x=N(()=>({selectedRowKeys:t.value,onChange:i=>{t.value=i.map(String)},preserveSelectedRowKeys:!0})),T=v({columns:Z,api:async i=>{const o={...i};return!o.sort&&!o.order&&(o.order="-created_at"),q(o)},defaultPageLimit:20,height:"45vh"}),B=N(()=>{var i,o;return!!((i=l.value.title)!=null&&i.trim()&&((o=l.value.body)!=null&&o.trim()))});function C(){var i,o;return(i=l.value.title)!=null&&i.trim()?(o=l.value.body)!=null&&o.trim()?!0:(P.error("لطفاً متن نوتیفیکیشن را وارد کنید"),!1):(P.error("لطفاً عنوان نوتیفیکیشن را وارد کنید"),!1)}async function I(i){if(!C())return;if(i==="selected"&&!t.value.length){P.warning("حداقل یک کاربر انتخاب کنید");return}const o=i==="selected"?`آیا از ارسال نوتیفیکیشن به ${t.value.length} کاربر انتخاب‌شده مطمئن هستید؟`:"آیا از ارسال نوتیفیکیشن به همه کاربران مطمئن هستید؟";ee.confirm({title:"تأیید ارسال نوتیفیکیشن",content:o,okText:"بله، ارسال کن",cancelText:"انصراف",centered:!0,onOk:async()=>{var _,S,f;d.value=!0;try{const m={title:l.value.title.trim(),body:l.value.body.trim(),url:((_=l.value.url)==null?void 0:_.trim())||"/"},h=i==="selected"?await Q(m.title,m.body,t.value,m.url):await W(m.title,m.body,m.url);u.value=h;const M=h.subscribed!=null?` — ${h.subscribed} نفر اشتراک push دارند`:"";P.success(`نوتیفیکیشن ارسال شد (${h.sent} موفق، ${h.failed} ناموفق${M})`),p("sent"),i==="all"&&(l.value.body="")}catch(m){P.error(((f=(S=m==null?void 0:m.response)==null?void 0:S.data)==null?void 0:f.error)||m.message||"خطا در ارسال نوتیفیکیشن")}finally{d.value=!1}}})}function $(){return I("all")}function D(){return I("selected")}return(i,o)=>{const _=H,S=V;return g(),y("div",me,[e("div",pe,[e("div",ve,[e("div",null,[fe,s(k(K),{value:l.value.title,"onUpdate:value":o[0]||(o[0]=f=>l.value.title=f),placeholder:"مثلاً: اطلاعیه مهم"},null,8,["value"])]),e("div",null,[ge,s(k(b),{value:l.value.body,"onUpdate:value":o[1]||(o[1]=f=>l.value.body=f),placeholder:"متن دلخواه برای کاربران",rows:4,maxlength:500,"show-count":""},null,8,["value"])]),e("div",null,[be,s(k(K),{value:l.value.url,"onUpdate:value":o[2]||(o[2]=f=>l.value.url=f),placeholder:"/shop یا /matches"},null,8,["value"])]),e("div",he,[s(_,{type:"primary",loading:d.value,disabled:!B.value,onClick:$},{default:n(()=>[c(" ارسال به همه کاربران ")]),_:1},8,["loading","disabled"]),s(_,{type:"primary",ghost:"",loading:d.value,disabled:!B.value||!t.value.length,onClick:D},{default:n(()=>[c(" ارسال به انتخاب‌شده‌ها ("+r(t.value.length)+") ",1)]),_:1},8,["loading","disabled"])])]),e("div",ye,[xe,$e,ke,u.value?(g(),y("div",we,[Se,e("div",null,[c("موفق: "),e("strong",null,r(u.value.sent),1)]),e("div",null,[c("ناموفق: "),e("strong",null,r(u.value.failed),1)]),u.value.targeted!=null?(g(),y("div",Te,[c(" انتخاب‌شده: "),e("strong",null,r(u.value.targeted),1)])):L("",!0),u.value.subscribed!=null?(g(),y("div",Pe,[c(" دارای اشتراک push: "),e("strong",null,r(u.value.subscribed),1)])):L("",!0)])):L("",!0)])]),e("div",Re,[Be,s(S,F(T.value,{"row-selection":x.value,onRegister:k(w)}),null,16,["row-selection","onRegister"])])])}}}),E={custom:"همه کاربران",custom_selected:"کاربران انتخاب‌شده",story:"قصه جدید",book:"کتاب صوتی",product:"محصول جدید",match:"مسابقه جدید"},Ie=[{title:"ردیف",dataIndex:"id",key:"row_index",filterable:!1,customRender:a=>a.index+1},{title:"شناسه",dataIndex:"id",key:"id",filterable:!1},{title:"عنوان",dataIndex:"title",key:"title",filterable:!1,customRender:a=>{const p=a.record.title||"";return p.length>40?`${p.slice(0,40)}...`:p}},{title:"نوع ارسال",dataIndex:"type",key:"type",filterable:!1,customRender:a=>E[a.record.type]||a.record.type},{title:"موفق",dataIndex:"sent_count",key:"sent_count",filterable:!1,customRender:a=>a.record.sent_count??0},{title:"ناموفق",dataIndex:"failed_count",key:"failed_count",filterable:!1,customRender:a=>a.record.failed_count??0},{title:"تاریخ",dataIndex:"created_at",key:"created_at",filterable:!1,customRender:a=>a.record.created_at?A(a.record.created_at):"-"},{title:"عملیات",dataIndex:"action",key:"action",slot:"action",filterable:!1,align:"center"}];function De(a){return E[a]||a}const Le={class:"gap-2 flex justify-center"},Ne=e("span",null,"جزئیات ارسال",-1),Ue={class:"whitespace-pre-wrap text-sm"},Ke={class:"grid grid-cols-1 sm:grid-cols-3 gap-3 mb-4"},Me={class:"rounded-lg border border-green-200 bg-green-50 p-4 text-center"},Fe={class:"text-2xl font-bold text-green-600"},Ve=e("div",{class:"text-sm text-gray-600 mt-1"},"ارسال موفق",-1),je={class:"rounded-lg border border-red-200 bg-red-50 p-4 text-center"},Ae={class:"text-2xl font-bold text-red-600"},Ee=e("div",{class:"text-sm text-gray-600 mt-1"},"ارسال ناموفق",-1),Je={class:"rounded-lg border border-gray-200 bg-gray-50 p-4 text-center"},ze={class:"text-2xl font-bold text-gray-700"},Ge=e("div",{class:"text-sm text-gray-600 mt-1"},"مجموع تلاش‌ها",-1),He={key:0,class:"text-sm text-gray-600"},Oe={class:"text-green-600"},qe={class:"text-green-600"},Qe={class:"text-red-600"},We={key:1,class:"text-sm text-gray-500"},Xe=U({__name:"PushHistoryPanel",setup(a,{expose:p}){const[b,w]=j(),l=v(!1),d=v(!1),t=v(null),u=v({columns:Ie,api:X,defaultPageLimit:20,height:"55vh"}),x=N(()=>t.value?(t.value.sent_count||0)+(t.value.failed_count||0):0),R=N(()=>!x.value||!t.value?0:Math.round(t.value.sent_count/x.value*100));function T($){return $?A($):"-"}async function B($){l.value=!0,d.value=!0,t.value=null;try{t.value=await Y($.id)}finally{d.value=!1}}function C(){l.value=!1,t.value=null}function I(){w()}return p({reload:I}),($,D)=>{const i=V,o=O,_=ae,S=le,f=oe,m=te;return g(),y("div",null,[s(i,F(u.value,{onRegister:k(b)}),{action:n(({record:h})=>[e("div",Le,[s(k(ne),{class:"cursor-pointer"},{title:n(()=>[Ne]),default:n(()=>[s(se,{icon:"vuesax-linear:eye",color:"#1D4ED8",onClick:M=>B(h)},null,8,["onClick"])]),_:2},1024)])]),_:1},16,["onRegister"]),s(m,{visible:l.value,"onUpdate:visible":D[0]||(D[0]=h=>l.value=h),title:"جزئیات نوتیفیکیشن ارسالی","custom-footer":"",width:"720px",onClose:C},{footer:n(()=>[s(o,{onClick:C},{default:n(()=>[c("بستن")]),_:1})]),default:n(()=>[s(f,{spinning:d.value},{default:n(()=>[t.value?(g(),y(z,{key:0},[s(S,{bordered:"",column:2,size:"small",class:"mb-4"},{default:n(()=>[s(_,{label:"شناسه"},{default:n(()=>[c("#"+r(t.value.id),1)]),_:1}),s(_,{label:"نوع ارسال"},{default:n(()=>[c(r(k(De)(t.value.type)),1)]),_:1}),s(_,{label:"تاریخ ارسال"},{default:n(()=>[c(r(T(t.value.created_at)),1)]),_:1}),s(_,{label:"ارسال‌کننده"},{default:n(()=>[c(r(t.value.admin_name||"-"),1)]),_:1}),s(_,{label:"عنوان",span:2},{default:n(()=>[c(r(t.value.title),1)]),_:1}),s(_,{label:"متن",span:2},{default:n(()=>[e("div",Ue,r(t.value.body),1)]),_:1}),s(_,{label:"لینک",span:2},{default:n(()=>[c(r(t.value.url||"/"),1)]),_:1})]),_:1}),e("div",Ke,[e("div",Me,[e("div",Fe,r(t.value.sent_count),1),Ve]),e("div",je,[e("div",Ae,r(t.value.failed_count),1),Ee]),e("div",Je,[e("div",ze,r(x.value),1),Ge])]),x.value>0?(g(),y("div",He,[c(" نرخ موفقیت: "),e("strong",Oe,r(R.value)+"%",1),c(" — "),e("span",qe,r(t.value.sent_count)+" موفق",1),c(" / "),e("span",Qe,r(t.value.failed_count)+" ناموفق",1)])):(g(),y("div",We," هیچ اشتراک push فعالی برای ارسال یافت نشد. "))],64)):L("",!0)]),_:1},8,["spinning"])]),_:1},8,["visible"])])}}}),Ye=e("div",{class:"flex justify-between items-center mb-4"},[e("h2",null,"نوتیفیکیشن Push")],-1),Pt=U({__name:"index",setup(a){const p=v("send"),b=v(null);function w(){var d;(d=b.value)==null||d.reload()}function l(d){var t;d==="history"&&((t=b.value)==null||t.reload())}return(d,t)=>{const u=re,x=ie,R=_e;return g(),G(R,null,{default:n(()=>[Ye,s(x,{activeKey:p.value,"onUpdate:activeKey":t[0]||(t[0]=T=>p.value=T),onChange:l},{default:n(()=>[s(u,{key:"send",tab:"ارسال نوتیفیکیشن"},{default:n(()=>[s(Ce,{onSent:w})]),_:1}),s(u,{key:"history",tab:"سوابق ارسالی"},{default:n(()=>[s(Xe,{ref_key:"historyPanelRef",ref:b},null,512)]),_:1})]),_:1},8,["activeKey"])]),_:1})}}});export{Pt as default};