2 lines
11 KiB
JavaScript
2 lines
11 KiB
JavaScript
import{_ as Q}from"./BasicModal.vue_vue_type_style_index_0_lang-4d1ea47f.js";import{_ as Y}from"./BasicInput.vue_vue_type_style_index_0_lang-67d273ea.js";import{_ as Z,u as tt}from"./useBaseTable-d1301015.js";import{_ as et}from"./button.vue_vue_type_style_index_0_lang-6ea65175.js";import{I as $}from"./Icon-2e314594.js";import{t as at}from"./useDataTime-111e8cc7.js";import{_ as st,H as A,d as ot,g as x,o as C,c as D,b as u,w as _,e as it,a as i,j as I,t as lt,G as nt,k as L,D as b,I as q}from"./index-eebfe383.js";import{g as T}from"./convert-67c23be8.js";import{g as E}from"./index-e1f54e9b.js";import{M as rt}from"./index-431d5343.js";import{S as ut}from"./index-f7f60d5d.js";import{T as B}from"./shallowequal-2c046990.js";import{U as N}from"./index-222dc9ca.js";import"./usePrice-bc935b83.js";import"./index-2cb7a225.js";import"./FormItemContext-7e98c0c3.js";import"./vnode-796e6450.js";import"./isPlainObject-e67232f0.js";import"./_plugin-vue_export-helper-d79e14d1.js";import"./fa_IR-c04e2295.js";import"./toArray-6174fc09.js";import"./pickAttrs-ed2aa5c0.js";import"./useState-80f6f092.js";import"./lodash-669ae2a6.js";import"./index-3eb1599e.js";import"./styleChecker-63305807.js";import"./index-088b260f.js";import"./Col-cce4481f.js";import"./useRefs-15659993.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 d=l.record.time||{minutes:0,seconds:0},n=String(d.minutes??0).padStart(2,"0"),c=String(d.seconds??0).padStart(2,"0");return`${n}:${c}`}},{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=>at(l.record.created_at)},{title:"عملیات",dataIndex:"action",key:"action",slot:"action",filterable:!1,align:"center"}];async function dt(l){const{data:d,error:n}=await A.from("music_macharta_audios").insert([l]).select();if(n)throw n;return d}async function mt(l,d){const{data:n,error:c}=await A.from("music_macharta_audios").update({...d,updated_at:new Date().toISOString()}).eq("id",l).select();if(c)throw c;return n}async function pt(l,d){const{data:n,error:c}=await A.from("music_macharta_audios").update({show:d,updated_at:new Date().toISOString()}).eq("id",l).select();if(c)throw c;return n}async function vt(l){const{error:d}=await A.from("music_macharta_audios").delete().eq("id",l);if(d)throw d}async function ft(l){const{TableEngineRequest:d}=await st(()=>import("./buildSupabaseQuery-ca1b6752.js"),["assets/buildSupabaseQuery-ca1b6752.js","assets/index-eebfe383.js","assets/index-f59f1398.css","assets/supabaseTableQuery-95762ff3.js"]),n={...l};!n.sort&&!n.order&&(n.sort={key:"sort_order",order:"desc"});const c=await d(n,"music_macharta_audios");try{if(Array.isArray(c==null?void 0:c.rows)){const w=n.page||1,U=n.limit||20,S=(w-1)*U,y=c.rows.map((m,h)=>({...m,title:m.title??"",sub_title:m.sub_title??"",cover:m.cover??null,src:m.src??null,time:m.time??{minutes:0,seconds:0},show:m.show??!0,sort_order:m.sort_order??0,index:S+h}));return{...c,rows:y}}}catch(w){console.error("[getMusicMachartaAudiosTable]",w)}return c}const _t={class:"h-full"},ht={class:"gap-2 flex justify-center"},gt=i("span",null,"حذف",-1),xt=i("span",null,"ویرایش",-1),bt={class:"space-y-4 relative"},wt={key:0,class:"absolute inset-0 bg-white/60 z-10 flex items-center justify-center"},yt=i("div",{class:"mb-1 text-sm text-gray-600"},"عنوان *",-1),kt=i("div",{class:"mb-1 text-sm text-gray-600"},"زیرعنوان",-1),Mt=i("div",{class:"mb-1 text-sm text-gray-600"},"ترتیب نمایش",-1),It={class:"flex gap-4"},Ut={class:"flex-1"},St=i("div",{class:"mb-1 text-sm text-gray-600"},"آپلود تصویر کاور",-1),Rt={key:0},$t=i("div",null,"آپلود کاور",-1),Ct={class:"flex-1"},Dt=i("div",{class:"mb-1 text-sm text-gray-600"},"آپلود صوت *",-1),Tt={key:0},At=i("div",null,"آپلود صوت",-1),Lt=i("div",{class:"mb-1 text-sm text-gray-600"},"مدت زمان (خودکار پس از آپلود)",-1),Bt={class:"flex gap-4"},de=ot({__name:"index",setup(l){const[d,n]=tt(),c=x({columns:ct,api:ft,defaultPageLimit:20}),w=x(!1),U=x(!1),S=x(null),y=x([]),m=x([]),h=x(0),O=x(0);x(0);const s=x({title:"",sub_title:"",cover:null,src:null,time:{minutes:0,seconds:0},show:!0,sort_order:0});function F(){y.value=[],m.value=[],U.value=!1,S.value=null,s.value={title:"",sub_title:"",cover:null,src:null,time:{minutes:0,seconds:0},show:!0,sort_order:0},w.value=!0}function P(){w.value=!1}function z(t){U.value=!0,S.value=t.id,s.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},m.value=t.cover?[{uid:`${t.id}-cover`,name:"cover",status:"done",url:T(t.cover)}]:[],y.value=t.src?[{uid:`${t.id}-audio`,name:"audio",status:"done",url:T(t.src)}]:[],w.value=!0}function H(t){rt.confirm({title:"حذف صوت",content:`آیا از حذف «${t.title}» مطمئن هستید؟`,okText:"حذف",cancelText:"انصراف",onOk:async()=>{await vt(t.id),b.success("حذف شد"),n()}})}async function V(t){await pt(t.id,t.show===!1),b.success(t.show===!1?"نمایش داده شد":"مخفی شد"),n()}function W(t){return t.type.startsWith("audio/")?t.size/1024/1024>=61?(b.error("حجم فایل باید کمتر از 60MB باشد"),!1):!0:(b.error("فقط فایلهای صوتی مجاز است"),!1)}function j(t){const a=new Audio,p=URL.createObjectURL(t);a.addEventListener("loadedmetadata",()=>{const f=a.duration;f&&!isNaN(f)&&isFinite(f)&&(s.value.time.minutes=Math.floor(f/60),s.value.time.seconds=Math.floor(f%60)),URL.revokeObjectURL(p)}),a.src=p}async function J(t){const{file:a,onSuccess:p,onError:f,onProgress:v}=t;j(a);const M=new FormData;M.append("file",a),h.value++,await new Promise((e,k)=>{const o=new XMLHttpRequest;o.open("POST",`${q}/upload/machartaa-audio`),o.setRequestHeader("Authorization",`Bearer ${E()||localStorage.getItem("tamin_token")||""}`),o.upload.onprogress=r=>{if(r.lengthComputable){const g=Math.round(r.loaded/r.total*100);O.value=g,v==null||v({percent:g})}},o.onload=()=>{if(o.status>=200&&o.status<300){const r=JSON.parse(o.responseText||"{}"),g=r.full_src||r.url||r.src||r.path||"",R=g.startsWith("http")?g.replace(/^https?:\/\/[^/]+/,""):g;s.value.src=R,y.value=[{uid:`${Date.now()}`,name:a.name,status:"done",url:T(R)}],p==null||p(r,o),b.success("صوت آپلود شد"),e()}else f==null||f(new Error("خطا در آپلود"),o),k()},o.onerror=()=>k(),o.onloadend=()=>{h.value=Math.max(0,h.value-1),O.value=0},o.send(M)})}function X(t){return t.type.startsWith("image/")?!0:(b.error("فقط فایل تصویری مجاز است"),!1)}async function G(t){const{file:a,onSuccess:p,onError:f,onProgress:v}=t,M=new FormData;M.append("file",a),h.value++,await new Promise((e,k)=>{const o=new XMLHttpRequest;o.open("POST",`${q}/upload/machartaa-img`),o.setRequestHeader("Authorization",`Bearer ${E()||localStorage.getItem("tamin_token")||""}`),o.upload.onprogress=r=>{r.lengthComputable&&(v==null||v({percent:Math.round(r.loaded/r.total*100)}))},o.onload=()=>{if(o.status>=200&&o.status<300){const r=JSON.parse(o.responseText||"{}"),g=r.full_src||r.url||r.src||r.path||"",R=g.startsWith("http")?g.replace(/^https?:\/\/[^/]+/,""):g;s.value.cover=R,m.value=[{uid:`${Date.now()}`,name:a.name,status:"done",url:T(R)}],p==null||p(r,o),e()}else k()},o.onerror=()=>k(),o.onloadend=()=>{h.value=Math.max(0,h.value-1)},o.send(M)})}async function K(){var a,p;if(!((a=s.value.title)!=null&&a.trim())){b.warning("عنوان الزامی است");return}if(!s.value.src){b.warning("فایل صوتی الزامی است");return}const t={title:s.value.title.trim(),sub_title:((p=s.value.sub_title)==null?void 0:p.trim())||"",cover:s.value.cover,src:s.value.src,time:s.value.time,show:s.value.show,sort_order:Number(s.value.sort_order)||0};U.value&&S.value?(await mt(S.value,t),b.success("ویرایش شد")):(await dt(t),b.success("افزوده شد")),P(),n()}return(t,a)=>{const p=et,f=Z,v=Y,M=Q;return C(),D("div",_t,[u(f,nt(c.value,{ref:"table",onRegister:I(d)}),{extraHeader:_(()=>[u(p,{type:"primary",onClick:F},{default:_(()=>[it("افزودن صوت")]),_:1})]),action:_(({record:e})=>[i("div",ht,[u(I(B),{class:"cursor-pointer"},{title:_(()=>[i("span",null,lt((e==null?void 0:e.show)===!1?"نمایش دادن":"مخفی کردن"),1)]),default:_(()=>[u($,{icon:(e==null?void 0:e.show)===!1?"vuesax-linear:eye":"vuesax-linear:eye-slash",color:(e==null?void 0:e.show)===!1?"#10B981":"#F59E0B",onClick:k=>V(e)},null,8,["icon","color","onClick"])]),_:2},1024),u(I(B),{class:"cursor-pointer"},{title:_(()=>[gt]),default:_(()=>[u($,{icon:"vuesax-linear:trash",color:"#DC2626",onClick:k=>H(e)},null,8,["onClick"])]),_:2},1024),u(I(B),{class:"cursor-pointer"},{title:_(()=>[xt]),default:_(()=>[u($,{icon:"vuesax-linear:edit",color:"#1D4ED8",onClick:k=>z(e)},null,8,["onClick"])]),_:2},1024)])]),_:1},16,["onRegister"]),u(M,{visible:w.value,"onUpdate:visible":a[7]||(a[7]=e=>w.value=e),title:U.value?"ویرایش صوت":"افزودن صوت",onOk:K,onCancel:P,width:"80%",confirmLoading:h.value>0},{default:_(()=>[i("div",bt,[h.value>0?(C(),D("div",wt,[u(I(ut),{size:"large"})])):L("",!0),i("div",null,[yt,u(v,{value:s.value.title,"onUpdate:value":a[0]||(a[0]=e=>s.value.title=e),placeholder:"عنوان"},null,8,["value"])]),i("div",null,[kt,u(v,{value:s.value.sub_title,"onUpdate:value":a[1]||(a[1]=e=>s.value.sub_title=e),placeholder:"زیرعنوان"},null,8,["value"])]),i("div",null,[Mt,u(v,{value:s.value.sort_order,"onUpdate:value":a[2]||(a[2]=e=>s.value.sort_order=e),type:"number",placeholder:"0"},null,8,["value"])]),i("div",It,[i("div",Ut,[St,u(I(N),{"file-list":m.value,"onUpdate:fileList":a[3]||(a[3]=e=>m.value=e),"before-upload":X,"custom-request":G,accept:"image/*","max-count":1,"list-type":"picture-card"},{default:_(()=>[m.value.length<1?(C(),D("div",Rt,[u($,{icon:"vuesax-linear:image",class:"text-2xl mb-2"}),$t])):L("",!0)]),_:1},8,["file-list"])]),i("div",Ct,[Dt,u(I(N),{"file-list":y.value,"onUpdate:fileList":a[4]||(a[4]=e=>y.value=e),"before-upload":W,"custom-request":J,accept:"audio/*","max-count":1,"list-type":"picture-card"},{default:_(()=>[y.value.length<1?(C(),D("div",Tt,[u($,{icon:"vuesax-linear:music",class:"text-2xl mb-2"}),At])):L("",!0)]),_:1},8,["file-list"])])]),i("div",null,[Lt,i("div",Bt,[u(v,{value:s.value.time.minutes,"onUpdate:value":a[5]||(a[5]=e=>s.value.time.minutes=e),type:"number",placeholder:"دقیقه",disabled:!0},null,8,["value"]),u(v,{value:s.value.time.seconds,"onUpdate:value":a[6]||(a[6]=e=>s.value.time.seconds=e),type:"number",placeholder:"ثانیه",disabled:!0},null,8,["value"])])])])]),_:1},8,["visible","title","confirmLoading"])])}}});export{de as default};
|