Files
machartaa_admin_dist/dist/assets/index-747d1aaa.js
T
2026-08-20 11:30:22 +03:30

2 lines
14 KiB
JavaScript

import{_ as vt}from"./BasicModal.vue_vue_type_style_index_0_lang-12600cfe.js";import{_ as _t}from"./BasicInput.vue_vue_type_style_index_0_lang-1dcca595.js";import{u as W,_ as ft}from"./useBaseTable-09dec183.js";import{_ as ht}from"./button.vue_vue_type_style_index_0_lang-485aa400.js";import{I as D}from"./Icon-b61699b8.js";import{t as gt}from"./useDataTime-c34f53fe.js";import{v as wt}from"./viewersColumns-2b2088e2.js";import{_ as xt,G as P,d as bt,g as _,E as yt,Q as J,o as I,c as C,b as i,w as p,e as X,a as s,j as x,t as q,H as G,k as V,D as g,I as Q}from"./index-5a216054.js";import{g as kt,a as Mt}from"./itemViews-1d89b22f.js";import{g as B}from"./convert-2ad76038.js";import{g as Y}from"./index-4e7d1e3d.js";import{M as It}from"./index-21b3e11b.js";import{S as K}from"./index-efc9438a.js";import{T as E}from"./isSymbol-67342ebb.js";import{U as Z}from"./index-1dde6b67.js";import"./usePrice-bc935b83.js";import"./index-f7d24d7c.js";import"./SearchOutlined-4a9dd4f9.js";import"./omit-0e04d816.js";import"./vnode-4ae36afb.js";import"./FormItemContext-c093a4c8.js";import"./index-35a2fbcb.js";import"./_plugin-vue_export-helper-bf156267.js";import"./isPlainObject-3c9a77e7.js";import"./index-70ec4858.js";import"./updateLocale-67e6a89b.js";import"./index-bc659f42.js";import"./shallowequal-9390c690.js";import"./useState-aaca7c53.js";import"./useMemo-f3fe2319.js";import"./lodash-724580df.js";import"./BaseSwitch.vue_vue_type_script_setup_true_lang-5d13f90f.js";import"./index-7e28a3d1.js";import"./Badge-f954f9ce.js";import"./isNumeric-3f69e2aa.js";import"./index-16772af6.js";import"./index-fe5d35f1.js";import"./styleChecker-559f6f42.js";import"./index-8a5836b4.js";import"./index-99d6fd3f.js";import"./DialogWrap-104be95a.js";import"./pickAttrs-ca601ed4.js";import"./css-aae66f86.js";import"./index-14d22686.js";import"./toArray-6764992d.js";import"./isMobile-e2e89480.js";import"./index-89aa8d2e.js";import"./index-d9ae5dff.js";import"./_flatRest-65586b5d.js";import"./Col-a3540e0e.js";import"./index-8c21a425.js";import"./useRefs-88e72f09.js";const Ct=[{title:"ردیف",dataIndex:"id",key:"id",filterable:!1,width:70,align:"center",customRender:l=>l.record.index+1},{title:"عنوان",dataIndex:"title",key:"title"},{title:"زیرعنوان",dataIndex:"sub_title",key:"sub_title"},{title:"زمان",dataIndex:"time",key:"time",customRender:l=>{const m=l.record.time||{minutes:0,seconds:0},r=String(m.minutes??0).padStart(2,"0"),v=String(m.seconds??0).padStart(2,"0");return`${r}:${v}`}},{title:"صوت",dataIndex:"src",key:"src",customRender:l=>l.record.src?"دارد":"-"},{title:"ترتیب",dataIndex:"sort_order",key:"sort_order",align:"center"},{title:"نمایش",dataIndex:"show",key:"show",align:"center",customRender:l=>l.record.show===!1?"مخفی":"نمایش"},{title:"زمان ایجاد",dataIndex:"created_at",key:"created_at",customRender:l=>gt(l.record.created_at)},{title:"عملیات",dataIndex:"action",key:"action",slot:"action",filterable:!1,align:"center"}],et="music_macharta_audio";async function Tt(l){const{data:m,error:r}=await P.from("music_macharta_audios").insert([l]).select();if(r)throw r;return m}async function Ut(l,m){const{data:r,error:v}=await P.from("music_macharta_audios").update({...m,updated_at:new Date().toISOString()}).eq("id",l).select();if(v)throw v;return r}async function At(l,m){const{data:r,error:v}=await P.from("music_macharta_audios").update({show:m,updated_at:new Date().toISOString()}).eq("id",l).select();if(v)throw v;return r}async function Rt(l){const{error:m}=await P.from("music_macharta_audios").delete().eq("id",l);if(m)throw m}function St(l){return Mt(l,et)}function tt(l,m){return kt(l,m,et)}async function Dt(l){const{TableEngineRequest:m}=await xt(()=>import("./buildSupabaseQuery-4a0e50c6.js"),["assets/buildSupabaseQuery-4a0e50c6.js","assets/index-5a216054.js","assets/index-a54d32f7.css","assets/supabaseTableQuery-8ab5665d.js"]),r={...l};!r.sort&&!r.order&&(r.sort={key:"sort_order",order:"desc"});const v=await m(r,"music_macharta_audios");try{if(Array.isArray(v==null?void 0:v.rows)){const b=r.page||1,U=r.limit||20,A=(b-1)*U,T=v.rows.map((c,$)=>({...c,title:c.title??"",sub_title:c.sub_title??"",cover:c.cover??null,src:c.src??null,time:c.time??{minutes:0,seconds:0},show:c.show??!0,sort_order:c.sort_order??0,index:A+$}));return{...v,rows:T}}}catch(b){console.error("[getMusicMachartaAudiosTable]",b)}return v}const $t={class:"h-full"},Lt={class:"gap-2 flex justify-center"},Vt=s("span",null,"بازدیدها",-1),Bt=s("span",null,"حذف",-1),Et=s("span",null,"ویرایش",-1),Pt={class:"space-y-4 relative"},Ot={key:0,class:"absolute inset-0 bg-white/60 z-10 flex items-center justify-center"},qt=s("div",{class:"mb-1 text-sm text-gray-600"},"عنوان *",-1),Ft=s("div",{class:"mb-1 text-sm text-gray-600"},"زیرعنوان",-1),Nt=s("div",{class:"mb-1 text-sm text-gray-600"},"ترتیب نمایش",-1),zt={class:"flex gap-4"},Ht={class:"flex-1"},jt=s("div",{class:"mb-1 text-sm text-gray-600"},"آپلود تصویر کاور",-1),Wt={key:0},Jt=s("div",null,"آپلود کاور",-1),Xt={class:"flex-1"},Gt=s("div",{class:"mb-1 text-sm text-gray-600"},"آپلود صوت *",-1),Qt={key:0},Yt=s("div",null,"آپلود صوت",-1),Kt=s("div",{class:"mb-1 text-sm text-gray-600"},"مدت زمان (خودکار پس از آپلود)",-1),Zt={class:"flex gap-4"},te={class:"flex justify-end"},ee={key:0,class:"space-y-4"},ae={class:"grid grid-cols-2 gap-4"},se={class:"bg-blue-50 p-4 rounded-lg"},oe=s("div",{class:"text-sm text-gray-600 mb-1"},"تعداد بازدید",-1),ie={class:"text-2xl font-bold text-blue-600"},le={class:"bg-purple-50 p-4 rounded-lg"},ne=s("div",{class:"text-sm text-gray-600 mb-1"},"تعداد بازدیدکننده",-1),re={class:"text-2xl font-bold text-purple-600"},ue=s("div",{class:"text-sm font-semibold text-gray-700 mb-2"},"لیست بازدیدکننده‌ها",-1),ce={key:0},de={key:1,class:"text-center py-8 text-gray-500"},me={key:1,class:"flex justify-center items-center py-8"},da=bt({__name:"index",setup(l){const[m,r]=W(),v=_({columns:Ct,api:Dt,defaultPageLimit:20}),b=_(!1),U=_(!1),A=_(null),T=_(!1),c=_(null),$=_(!1),O=_(null),[at,F]=W(),N=_({columns:wt,api:t=>tt(t,O.value),defaultPageLimit:20}),R=_([]),S=_([]),k=_(0),z=_(0);_(0);const o=_({title:"",sub_title:"",cover:null,src:null,time:{minutes:0,seconds:0},show:!0,sort_order:0});function st(){R.value=[],S.value=[],U.value=!1,A.value=null,o.value={title:"",sub_title:"",cover:null,src:null,time:{minutes:0,seconds:0},show:!0,sort_order:0},b.value=!0}function H(){b.value=!1}function ot(t){U.value=!0,A.value=t.id,o.value={title:t.title||"",sub_title:t.sub_title||"",cover:t.cover||null,src:t.src||null,time:t.time||{minutes:0,seconds:0},show:t.show!==!1,sort_order:t.sort_order??0},S.value=t.cover?[{uid:`${t.id}-cover`,name:"cover",status:"done",url:B(t.cover)}]:[],R.value=t.src?[{uid:`${t.id}-audio`,name:"audio",status:"done",url:B(t.src)}]:[],b.value=!0}function it(t){It.confirm({title:"حذف صوت",content:`آیا از حذف «${t.title}» مطمئن هستید؟`,okText:"حذف",cancelText:"انصراف",onOk:async()=>{await Rt(t.id),g.success("حذف شد"),r()}})}async function lt(t){await At(t.id,t.show===!1),g.success(t.show===!1?"نمایش داده شد":"مخفی شد"),r()}function nt(t){return t.type.startsWith("audio/")?t.size/1024/1024>=61?(g.error("حجم فایل باید کمتر از 60MB باشد"),!1):!0:(g.error("فقط فایل‌های صوتی مجاز است"),!1)}function rt(t){const e=new Audio,d=URL.createObjectURL(t);e.addEventListener("loadedmetadata",()=>{const f=e.duration;f&&!isNaN(f)&&isFinite(f)&&(o.value.time.minutes=Math.floor(f/60),o.value.time.seconds=Math.floor(f%60)),URL.revokeObjectURL(d)}),e.src=d}async function ut(t){const{file:e,onSuccess:d,onError:f,onProgress:h}=t;rt(e);const M=new FormData;M.append("file",e),k.value++,await new Promise((a,y)=>{const n=new XMLHttpRequest;n.open("POST",`${Q}/upload/machartaa-audio`),n.setRequestHeader("Authorization",`Bearer ${Y()||localStorage.getItem("tamin_token")||""}`),n.upload.onprogress=u=>{if(u.lengthComputable){const w=Math.round(u.loaded/u.total*100);z.value=w,h==null||h({percent:w})}},n.onload=()=>{if(n.status>=200&&n.status<300){const u=JSON.parse(n.responseText||"{}"),w=u.full_src||u.url||u.src||u.path||"",L=w.startsWith("http")?w.replace(/^https?:\/\/[^/]+/,""):w;o.value.src=L,R.value=[{uid:`${Date.now()}`,name:e.name,status:"done",url:B(L)}],d==null||d(u,n),g.success("صوت آپلود شد"),a()}else f==null||f(new Error("خطا در آپلود"),n),y()},n.onerror=()=>y(),n.onloadend=()=>{k.value=Math.max(0,k.value-1),z.value=0},n.send(M)})}function ct(t){return t.type.startsWith("image/")?!0:(g.error("فقط فایل تصویری مجاز است"),!1)}async function dt(t){const{file:e,onSuccess:d,onError:f,onProgress:h}=t,M=new FormData;M.append("file",e),k.value++,await new Promise((a,y)=>{const n=new XMLHttpRequest;n.open("POST",`${Q}/upload/machartaa-img`),n.setRequestHeader("Authorization",`Bearer ${Y()||localStorage.getItem("tamin_token")||""}`),n.upload.onprogress=u=>{u.lengthComputable&&(h==null||h({percent:Math.round(u.loaded/u.total*100)}))},n.onload=()=>{if(n.status>=200&&n.status<300){const u=JSON.parse(n.responseText||"{}"),w=u.full_src||u.url||u.src||u.path||"",L=w.startsWith("http")?w.replace(/^https?:\/\/[^/]+/,""):w;o.value.cover=L,S.value=[{uid:`${Date.now()}`,name:e.name,status:"done",url:B(L)}],d==null||d(u,n),a()}else y()},n.onerror=()=>y(),n.onloadend=()=>{k.value=Math.max(0,k.value-1)},n.send(M)})}async function mt(){var e,d;if(!((e=o.value.title)!=null&&e.trim())){g.warning("عنوان الزامی است");return}if(!o.value.src){g.warning("فایل صوتی الزامی است");return}const t={title:o.value.title.trim(),sub_title:((d=o.value.sub_title)==null?void 0:d.trim())||"",cover:o.value.cover,src:o.value.src,time:o.value.time,show:o.value.show,sort_order:Number(o.value.sort_order)||0};U.value&&A.value?(await Ut(A.value,t),g.success("ویرایش شد")):(await Tt(t),g.success("افزوده شد")),H(),r()}async function pt(t){O.value=t.id,T.value=!0,$.value=!0,c.value=null;try{c.value=await St(t.id),N.value.api=e=>tt(e,t.id)}catch(e){console.error("Error loading views:",e),g.error("خطا در بارگذاری اطلاعات بازدیدها: "+(e.message||"خطای ناشناخته"))}finally{$.value=!1}}yt([T,c],async([t,e])=>{if(t&&e&&e.total_views>0){await J(),await J();try{await F()}catch{setTimeout(async()=>{try{await F()}catch(d){console.warn("Could not reload viewers table:",d)}},200)}}},{immediate:!1});function j(){T.value=!1,c.value=null,O.value=null}return(t,e)=>{const d=ht,f=ft,h=_t,M=vt;return I(),C("div",$t,[i(f,G(v.value,{ref:"table",onRegister:x(m)}),{extraHeader:p(()=>[i(d,{type:"primary",onClick:st},{default:p(()=>[X("افزودن صوت")]),_:1})]),action:p(({record:a})=>[s("div",Lt,[i(x(E),{class:"cursor-pointer"},{title:p(()=>[Vt]),default:p(()=>[i(D,{icon:"vuesax-linear:monitor",color:"#8B5CF6",onClick:y=>pt(a)},null,8,["onClick"])]),_:2},1024),i(x(E),{class:"cursor-pointer"},{title:p(()=>[s("span",null,q((a==null?void 0:a.show)===!1?"نمایش دادن":"مخفی کردن"),1)]),default:p(()=>[i(D,{icon:(a==null?void 0:a.show)===!1?"vuesax-linear:eye":"vuesax-linear:eye-slash",color:(a==null?void 0:a.show)===!1?"#10B981":"#F59E0B",onClick:y=>lt(a)},null,8,["icon","color","onClick"])]),_:2},1024),i(x(E),{class:"cursor-pointer"},{title:p(()=>[Bt]),default:p(()=>[i(D,{icon:"vuesax-linear:trash",color:"#DC2626",onClick:y=>it(a)},null,8,["onClick"])]),_:2},1024),i(x(E),{class:"cursor-pointer"},{title:p(()=>[Et]),default:p(()=>[i(D,{icon:"vuesax-linear:edit",color:"#1D4ED8",onClick:y=>ot(a)},null,8,["onClick"])]),_:2},1024)])]),_:1},16,["onRegister"]),i(M,{visible:b.value,"onUpdate:visible":e[7]||(e[7]=a=>b.value=a),title:U.value?"ویرایش صوت":"افزودن صوت",onOk:mt,onCancel:H,width:"80%",confirmLoading:k.value>0},{default:p(()=>[s("div",Pt,[k.value>0?(I(),C("div",Ot,[i(x(K),{size:"large"})])):V("",!0),s("div",null,[qt,i(h,{value:o.value.title,"onUpdate:value":e[0]||(e[0]=a=>o.value.title=a),placeholder:"عنوان"},null,8,["value"])]),s("div",null,[Ft,i(h,{value:o.value.sub_title,"onUpdate:value":e[1]||(e[1]=a=>o.value.sub_title=a),placeholder:"زیرعنوان"},null,8,["value"])]),s("div",null,[Nt,i(h,{value:o.value.sort_order,"onUpdate:value":e[2]||(e[2]=a=>o.value.sort_order=a),type:"number",placeholder:"0"},null,8,["value"])]),s("div",zt,[s("div",Ht,[jt,i(x(Z),{"file-list":S.value,"onUpdate:fileList":e[3]||(e[3]=a=>S.value=a),"before-upload":ct,"custom-request":dt,accept:"image/*","max-count":1,"list-type":"picture-card"},{default:p(()=>[S.value.length<1?(I(),C("div",Wt,[i(D,{icon:"vuesax-linear:image",class:"text-2xl mb-2"}),Jt])):V("",!0)]),_:1},8,["file-list"])]),s("div",Xt,[Gt,i(x(Z),{"file-list":R.value,"onUpdate:fileList":e[4]||(e[4]=a=>R.value=a),"before-upload":nt,"custom-request":ut,accept:"audio/*","max-count":1,"list-type":"picture-card"},{default:p(()=>[R.value.length<1?(I(),C("div",Qt,[i(D,{icon:"vuesax-linear:music",class:"text-2xl mb-2"}),Yt])):V("",!0)]),_:1},8,["file-list"])])]),s("div",null,[Kt,s("div",Zt,[i(h,{value:o.value.time.minutes,"onUpdate:value":e[5]||(e[5]=a=>o.value.time.minutes=a),type:"number",placeholder:"دقیقه",disabled:!0},null,8,["value"]),i(h,{value:o.value.time.seconds,"onUpdate:value":e[6]||(e[6]=a=>o.value.time.seconds=a),type:"number",placeholder:"ثانیه",disabled:!0},null,8,["value"])])])])]),_:1},8,["visible","title","confirmLoading"]),i(M,{visible:T.value,"onUpdate:visible":e[8]||(e[8]=a=>T.value=a),title:"اطلاعات بازدیدها",onCancel:j,width:"800px",customFooter:!0,okText:""},{footer:p(()=>[s("div",te,[i(d,{onClick:j},{default:p(()=>[X("بستن")]),_:1})])]),default:p(()=>[c.value?(I(),C("div",ee,[s("div",ae,[s("div",se,[oe,s("div",ie,q(c.value.total_views),1)]),s("div",le,[ne,s("div",re,q(c.value.unique_viewers),1)])]),s("div",null,[ue,c.value&&c.value.total_views>0?(I(),C("div",ce,[i(f,G(N.value,{onRegister:x(at)}),null,16,["onRegister"])])):(I(),C("div",de," هنوز بازدیدی ثبت نشده است "))])])):$.value?(I(),C("div",me,[i(x(K),{size:"large"})])):V("",!0)]),_:1},8,["visible"])])}}});export{da as default};