Files
machartaa_admin_dist/dist/assets/index-13e7d329.js
T
2026-09-16 13:19:24 +03:30

2 lines
14 KiB
JavaScript

import{_ as ve}from"./BasicModal.vue_vue_type_style_index_0_lang-00ba9225.js";import{_ as _e}from"./BasicInput.vue_vue_type_style_index_0_lang-a177b9a9.js";import{u as H,_ as fe}from"./useBaseTable-ec30a97d.js";import{_ as he}from"./button.vue_vue_type_style_index_0_lang-ad893796.js";import{I as D}from"./Icon-84f282a9.js";import{t as ge}from"./useDataTime-2f85c275.js";import{g as we,a as xe,v as ye}from"./itemViews-c7b9d45b.js";import{_ as be,H as ke,I as ee,J as Me,d as Ae,i as v,y as Ie,U as W,o as A,c as I,e as o,w as m,f as J,b as s,l as x,t as O,K as X,n as V,G as h,L as G}from"./index-01aa5506.js";import{g as B}from"./convert-2ad76038.js";import{g as K}from"./index-d0debae4.js";import{M as Ce}from"./index-276e15c5.js";import{S as Y}from"./index-3370fde6.js";import{T as P}from"./isSymbol-89eeb898.js";import{U as Q}from"./index-17cced78.js";import"./usePrice-bc935b83.js";import"./index-0db924de.js";import"./SearchOutlined-dadd531e.js";import"./omit-8a7495a3.js";import"./vnode-386fab8b.js";import"./FormItemContext-45e1fa89.js";import"./index-97e46aab.js";import"./_plugin-vue_export-helper-2f0b925e.js";import"./isPlainObject-838e96ea.js";import"./index-54bdc419.js";import"./updateLocale-4d53ac7e.js";import"./shallowequal-a983431a.js";import"./useState-074ca9f0.js";import"./useMemo-83211a3c.js";import"./lodash-0f373afd.js";import"./BaseSwitch.vue_vue_type_script_setup_true_lang-b0105976.js";import"./index-64f7c585.js";import"./Badge-f9f962a5.js";import"./isNumeric-3f69e2aa.js";import"./index-40e1be26.js";import"./index-750d03f7.js";import"./styleChecker-4d07c514.js";import"./index-01db740f.js";import"./index-fb8c26e7.js";import"./DialogWrap-784b5f45.js";import"./pickAttrs-841f485e.js";import"./css-aae66f86.js";import"./index-b91244f4.js";import"./toArray-e14b288d.js";import"./isMobile-e2e89480.js";import"./index-e013b18a.js";import"./supabaseTableQuery-499044f3.js";import"./index-d4e2041c.js";import"./_flatRest-b81e40db.js";import"./Col-42eabc6c.js";import"./index-7e2b6983.js";import"./useRefs-a26b26b0.js";const Ue=[{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 p=l.record.time||{minutes:0,seconds:0},r=String(p.minutes??0).padStart(2,"0"),g=String(p.seconds??0).padStart(2,"0");return`${r}:${g}`}},{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=>ge(l.record.created_at)},{title:"عملیات",dataIndex:"action",key:"action",slot:"action",filterable:!1,align:"center"}],te="music_macharta_audio";async function Te(l){const p=await ke("music_macharta_audios",l);return Array.isArray(p)?p:[p]}async function Re(l,p){const r=await ee("music_macharta_audios",l,{...p,updated_at:new Date().toISOString()});return Array.isArray(r)?r:[r]}async function Se(l,p){const r=await ee("music_macharta_audios",l,{show:p,updated_at:new Date().toISOString()});return Array.isArray(r)?r:[r]}async function De(l){await Me("music_macharta_audios",l)}function $e(l){return xe(l,te)}function Z(l,p){return we(l,p,te)}async function Le(l){const{TableEngineRequest:p}=await be(()=>import("./buildSupabaseQuery-fd069c65.js"),["assets/buildSupabaseQuery-fd069c65.js","assets/index-01aa5506.js","assets/index-a1df3bc4.css"]),r={...l};!r.sort&&!r.order&&(r.sort={key:"sort_order",order:"desc"});const g=await p(r,"music_macharta_audios");try{if(Array.isArray(g==null?void 0:g.rows)){const y=r.page||1,U=r.limit||20,T=(y-1)*U,C=g.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:T+$}));return{...g,rows:C}}}catch(y){console.error("[getMusicMachartaAudiosTable]",y)}return g}const Ve={class:"h-full"},Be={class:"gap-2 flex justify-center"},Pe=s("span",null,"بازدیدها",-1),Ee=s("span",null,"حذف",-1),Oe=s("span",null,"ویرایش",-1),Fe={class:"space-y-4 relative"},Ne={key:0,class:"absolute inset-0 bg-white/60 z-10 flex items-center justify-center"},qe=s("div",{class:"mb-1 text-sm text-gray-600"},"عنوان *",-1),ze=s("div",{class:"mb-1 text-sm text-gray-600"},"زیرعنوان",-1),je=s("div",{class:"mb-1 text-sm text-gray-600"},"ترتیب نمایش",-1),He={class:"flex gap-4"},We={class:"flex-1"},Je=s("div",{class:"mb-1 text-sm text-gray-600"},"آپلود تصویر کاور",-1),Xe={key:0},Ge=s("div",null,"آپلود کاور",-1),Ke={class:"flex-1"},Ye=s("div",{class:"mb-1 text-sm text-gray-600"},"آپلود صوت *",-1),Qe={key:0},Ze=s("div",null,"آپلود صوت",-1),et=s("div",{class:"mb-1 text-sm text-gray-600"},"مدت زمان (خودکار پس از آپلود)",-1),tt={class:"flex gap-4"},at={class:"flex justify-end"},st={key:0,class:"space-y-4"},it={class:"grid grid-cols-2 gap-4"},ot={class:"bg-blue-50 p-4 rounded-lg"},lt=s("div",{class:"text-sm text-gray-600 mb-1"},"تعداد بازدید",-1),nt={class:"text-2xl font-bold text-blue-600"},rt={class:"bg-purple-50 p-4 rounded-lg"},ut=s("div",{class:"text-sm text-gray-600 mb-1"},"تعداد بازدیدکننده",-1),ct={class:"text-2xl font-bold text-purple-600"},dt=s("div",{class:"text-sm font-semibold text-gray-700 mb-2"},"لیست بازدیدکننده‌ها",-1),mt={key:0},pt={key:1,class:"text-center py-8 text-gray-500"},vt={key:1,class:"flex justify-center items-center py-8"},ma=Ae({__name:"index",setup(l){const[p,r]=H(),g=v({columns:Ue,api:Le,defaultPageLimit:20}),y=v(!1),U=v(!1),T=v(null),C=v(!1),c=v(null),$=v(!1),E=v(null),[ae,F]=H(),N=v({columns:ye,api:e=>Z(e,E.value),defaultPageLimit:20}),R=v([]),S=v([]),k=v(0),q=v(0);v(0);const i=v({title:"",sub_title:"",cover:null,src:null,time:{minutes:0,seconds:0},show:!0,sort_order:0});function se(){R.value=[],S.value=[],U.value=!1,T.value=null,i.value={title:"",sub_title:"",cover:null,src:null,time:{minutes:0,seconds:0},show:!0,sort_order:0},y.value=!0}function z(){y.value=!1}function ie(e){U.value=!0,T.value=e.id,i.value={title:e.title||"",sub_title:e.sub_title||"",cover:e.cover||null,src:e.src||null,time:e.time||{minutes:0,seconds:0},show:e.show!==!1,sort_order:e.sort_order??0},S.value=e.cover?[{uid:`${e.id}-cover`,name:"cover",status:"done",url:B(e.cover)}]:[],R.value=e.src?[{uid:`${e.id}-audio`,name:"audio",status:"done",url:B(e.src)}]:[],y.value=!0}function oe(e){Ce.confirm({title:"حذف صوت",content:`آیا از حذف «${e.title}» مطمئن هستید؟`,okText:"حذف",cancelText:"انصراف",onOk:async()=>{await De(e.id),h.success("حذف شد"),r()}})}async function le(e){await Se(e.id,e.show===!1),h.success(e.show===!1?"نمایش داده شد":"مخفی شد"),r()}function ne(e){return e.type.startsWith("audio/")?e.size/1024/1024>=61?(h.error("حجم فایل باید کمتر از 60MB باشد"),!1):!0:(h.error("فقط فایل‌های صوتی مجاز است"),!1)}function re(e){const t=new Audio,d=URL.createObjectURL(e);t.addEventListener("loadedmetadata",()=>{const _=t.duration;_&&!isNaN(_)&&isFinite(_)&&(i.value.time.minutes=Math.floor(_/60),i.value.time.seconds=Math.floor(_%60)),URL.revokeObjectURL(d)}),t.src=d}async function ue(e){const{file:t,onSuccess:d,onError:_,onProgress:f}=e;re(t);const M=new FormData;M.append("file",t),k.value++,await new Promise((a,b)=>{const n=new XMLHttpRequest;n.open("POST",`${G}/upload/machartaa-audio`),n.setRequestHeader("Authorization",`Bearer ${K()||localStorage.getItem("tamin_token")||""}`),n.upload.onprogress=u=>{if(u.lengthComputable){const w=Math.round(u.loaded/u.total*100);q.value=w,f==null||f({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;i.value.src=L,R.value=[{uid:`${Date.now()}`,name:t.name,status:"done",url:B(L)}],d==null||d(u,n),h.success("صوت آپلود شد"),a()}else _==null||_(new Error("خطا در آپلود"),n),b()},n.onerror=()=>b(),n.onloadend=()=>{k.value=Math.max(0,k.value-1),q.value=0},n.send(M)})}function ce(e){return e.type.startsWith("image/")?!0:(h.error("فقط فایل تصویری مجاز است"),!1)}async function de(e){const{file:t,onSuccess:d,onError:_,onProgress:f}=e,M=new FormData;M.append("file",t),k.value++,await new Promise((a,b)=>{const n=new XMLHttpRequest;n.open("POST",`${G}/upload/machartaa-img`),n.setRequestHeader("Authorization",`Bearer ${K()||localStorage.getItem("tamin_token")||""}`),n.upload.onprogress=u=>{u.lengthComputable&&(f==null||f({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;i.value.cover=L,S.value=[{uid:`${Date.now()}`,name:t.name,status:"done",url:B(L)}],d==null||d(u,n),a()}else b()},n.onerror=()=>b(),n.onloadend=()=>{k.value=Math.max(0,k.value-1)},n.send(M)})}async function me(){var t,d;if(!((t=i.value.title)!=null&&t.trim())){h.warning("عنوان الزامی است");return}if(!i.value.src){h.warning("فایل صوتی الزامی است");return}const e={title:i.value.title.trim(),sub_title:((d=i.value.sub_title)==null?void 0:d.trim())||"",cover:i.value.cover,src:i.value.src,time:i.value.time,show:i.value.show,sort_order:Number(i.value.sort_order)||0};U.value&&T.value?(await Re(T.value,e),h.success("ویرایش شد")):(await Te(e),h.success("افزوده شد")),z(),r()}async function pe(e){E.value=e.id,C.value=!0,$.value=!0,c.value=null;try{c.value=await $e(e.id),N.value.api=t=>Z(t,e.id)}catch(t){console.error("Error loading views:",t),h.error("خطا در بارگذاری اطلاعات بازدیدها: "+(t.message||"خطای ناشناخته"))}finally{$.value=!1}}Ie([C,c],async([e,t])=>{if(e&&t&&t.total_views>0){await W(),await W();try{await F()}catch{setTimeout(async()=>{try{await F()}catch(d){console.warn("Could not reload viewers table:",d)}},200)}}},{immediate:!1});function j(){C.value=!1,c.value=null,E.value=null}return(e,t)=>{const d=he,_=fe,f=_e,M=ve;return A(),I("div",Ve,[o(_,X(g.value,{ref:"table",onRegister:x(p)}),{extraHeader:m(()=>[o(d,{type:"primary",onClick:se},{default:m(()=>[J("افزودن صوت")]),_:1})]),action:m(({record:a})=>[s("div",Be,[o(x(P),{class:"cursor-pointer"},{title:m(()=>[Pe]),default:m(()=>[o(D,{icon:"vuesax-linear:monitor",color:"#8B5CF6",onClick:b=>pe(a)},null,8,["onClick"])]),_:2},1024),o(x(P),{class:"cursor-pointer"},{title:m(()=>[s("span",null,O((a==null?void 0:a.show)===!1?"نمایش دادن":"مخفی کردن"),1)]),default:m(()=>[o(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:b=>le(a)},null,8,["icon","color","onClick"])]),_:2},1024),o(x(P),{class:"cursor-pointer"},{title:m(()=>[Ee]),default:m(()=>[o(D,{icon:"vuesax-linear:trash",color:"#DC2626",onClick:b=>oe(a)},null,8,["onClick"])]),_:2},1024),o(x(P),{class:"cursor-pointer"},{title:m(()=>[Oe]),default:m(()=>[o(D,{icon:"vuesax-linear:edit",color:"#1D4ED8",onClick:b=>ie(a)},null,8,["onClick"])]),_:2},1024)])]),_:1},16,["onRegister"]),o(M,{visible:y.value,"onUpdate:visible":t[7]||(t[7]=a=>y.value=a),title:U.value?"ویرایش صوت":"افزودن صوت",onOk:me,onCancel:z,width:"80%",confirmLoading:k.value>0},{default:m(()=>[s("div",Fe,[k.value>0?(A(),I("div",Ne,[o(x(Y),{size:"large"})])):V("",!0),s("div",null,[qe,o(f,{value:i.value.title,"onUpdate:value":t[0]||(t[0]=a=>i.value.title=a),placeholder:"عنوان"},null,8,["value"])]),s("div",null,[ze,o(f,{value:i.value.sub_title,"onUpdate:value":t[1]||(t[1]=a=>i.value.sub_title=a),placeholder:"زیرعنوان"},null,8,["value"])]),s("div",null,[je,o(f,{value:i.value.sort_order,"onUpdate:value":t[2]||(t[2]=a=>i.value.sort_order=a),type:"number",placeholder:"0"},null,8,["value"])]),s("div",He,[s("div",We,[Je,o(x(Q),{"file-list":S.value,"onUpdate:fileList":t[3]||(t[3]=a=>S.value=a),"before-upload":ce,"custom-request":de,accept:"image/jpeg,image/png,image/webp,image/gif,image/heic,image/heif,.jpg,.jpeg,.png,.webp,.gif,.heic,.heif","max-count":1,"list-type":"picture-card"},{default:m(()=>[S.value.length<1?(A(),I("div",Xe,[o(D,{icon:"vuesax-linear:image",class:"text-2xl mb-2"}),Ge])):V("",!0)]),_:1},8,["file-list"])]),s("div",Ke,[Ye,o(x(Q),{"file-list":R.value,"onUpdate:fileList":t[4]||(t[4]=a=>R.value=a),"before-upload":ne,"custom-request":ue,accept:"audio/*","max-count":1,"list-type":"picture-card"},{default:m(()=>[R.value.length<1?(A(),I("div",Qe,[o(D,{icon:"vuesax-linear:music",class:"text-2xl mb-2"}),Ze])):V("",!0)]),_:1},8,["file-list"])])]),s("div",null,[et,s("div",tt,[o(f,{value:i.value.time.minutes,"onUpdate:value":t[5]||(t[5]=a=>i.value.time.minutes=a),type:"number",placeholder:"دقیقه",disabled:!0},null,8,["value"]),o(f,{value:i.value.time.seconds,"onUpdate:value":t[6]||(t[6]=a=>i.value.time.seconds=a),type:"number",placeholder:"ثانیه",disabled:!0},null,8,["value"])])])])]),_:1},8,["visible","title","confirmLoading"]),o(M,{visible:C.value,"onUpdate:visible":t[8]||(t[8]=a=>C.value=a),title:"اطلاعات بازدیدها",onCancel:j,width:"800px",customFooter:!0,okText:""},{footer:m(()=>[s("div",at,[o(d,{onClick:j},{default:m(()=>[J("بستن")]),_:1})])]),default:m(()=>[c.value?(A(),I("div",st,[s("div",it,[s("div",ot,[lt,s("div",nt,O(c.value.total_views),1)]),s("div",rt,[ut,s("div",ct,O(c.value.unique_viewers),1)])]),s("div",null,[dt,c.value&&c.value.total_views>0?(A(),I("div",mt,[o(_,X(N.value,{onRegister:x(ae)}),null,16,["onRegister"])])):(A(),I("div",pt," هنوز بازدیدی ثبت نشده است "))])])):$.value?(A(),I("div",vt,[o(x(Y),{size:"large"})])):V("",!0)]),_:1},8,["visible"])])}}});export{ma as default};