Files
machartaa_admin_dist/dist/assets/index-71dd1dcd.js
T
2025-11-02 13:55:16 +03:30

14 lines
8.2 KiB
JavaScript

import{_ as j}from"./BasicMainCard-35b7f869.js";import{_ as L}from"./BasicModal.vue_vue_type_style_index_0_lang-f2c0cf2d.js";import{_ as U}from"./BaseTable.vue_vue_type_style_index_0_lang-a43770ca.js";import{_ as A}from"./button.vue_vue_type_style_index_0_lang-aba41828.js";import{a3 as F,a4 as O,d as q,r as f,i as J,o as T,c as V,b as a,w as d,a as e,e as y,a2 as G,L as g,O as v,N as H,a0 as m}from"./index-d996aa52.js";import{t as I}from"./useDataTime-56b23a5e.js";import{I as h}from"./Icon-456bcc80.js";import{u as K}from"./useBaseTable-3aeb2499.js";import{M as Q}from"./index-269247b8.js";import{T as C}from"./index-4bc1704f.js";import"./_plugin-vue_export-helper-c27b6911.js";import"./index-a83085b3.js";import"./index-6779adc3.js";import"./raf-8e3c2c2f.js";import"./colors-65b46ff2.js";import"./index-5d181545.js";import"./styleChecker-e29a8f53.js";import"./useState-dd938bdb.js";import"./Col-e9f1db78.js";import"./index-b068e27a.js";import"./debounce-4a95850b.js";import"./index-c05390a2.js";import"./usePrefix-bca43e07.js";import"./index-ab1f28fc.js";import"./index-9b97b465.js";import"./SearchOutlined-38ab5a8a.js";import"./pickAttrs-572baef4.js";import"./CheckOutlined-11eb751c.js";import"./objectDestructuringEmpty-24e23e90.js";import"./eagerComputed-3f9be9ba.js";import"./index-b6e3add4.js";import"./EyeOutlined-22d4dcb9.js";async function W(s){const{TableEngineRequest:t}=await F(()=>import("./buildSupabaseQuery-5595cd82.js"),["assets/buildSupabaseQuery-5595cd82.js","assets/index-d996aa52.js","assets/index-6773a6bc.css"]),c={...s};!c.sort&&!c.order&&(c.order="-created_at");const u=await t(c,"videos");try{if(Array.isArray(u==null?void 0:u.rows)){const _=c.page||1,i=c.limit||20,b=(_-1)*i,k=u.rows.map((l,$)=>({id:l.id,title:l.title??"",description:l.description??"",video_url:l.video_url??"",thumbnail_url:l.thumbnail_url??"",duration:l.duration??0,file_size:l.file_size??0,source:l.source??"other",source_id:l.source_id??null,created_at:l.created_at??"",updated_at:l.updated_at??"",index:b+$}));return{...u,rows:k}}}catch(_){console.log("[getVideoTable] normalize error:",_)}return u}async function X(s){const{error:t}=await O.from("videos").delete().eq("id",s);if(t)throw t}const Y=[{title:"ردیف",dataIndex:"id",key:"id",filterable:!1,customRender:s=>s.record.index+1},{title:"پیش‌نمایش",dataIndex:"video_url",key:"video_url",customRender:s=>{const t=s.record.video_url;return t?`
<div class="flex items-center gap-2">
<video
class="w-16 h-12 object-cover rounded border"
controls
preload="metadata"
poster="${s.record.thumbnail_url||""}"
>
<source src="${t}" type="video/mp4">
مرورگر شما از ویدئو پشتیبانی نمی‌کند
</video>
</div>
`:"-"}},{title:"عنوان",dataIndex:"title",key:"title"},{title:"توضیحات",dataIndex:"description",key:"description",customRender:s=>{const t=s.record.description;return t?t.length>50?t.substring(0,50)+"...":t:"-"}},{title:"منبع",dataIndex:"source",key:"source",customRender:s=>{const t=s.record.source;return{challenge:"چالش",competition:"مسابقه",other:"سایر"}[t]||"نامشخص"}},{title:"مدت زمان",dataIndex:"duration",key:"duration",customRender:s=>{const t=s.record.duration;if(!t)return"-";const c=Math.floor(t/60),u=t%60;return`${c}:${u.toString().padStart(2,"0")}`}},{title:"حجم فایل",dataIndex:"file_size",key:"file_size",customRender:s=>{const t=s.record.file_size;return t?`${(t/(1024*1024)).toFixed(2)} MB`:"-"}},{title:"تاریخ آپلود",dataIndex:"created_at",key:"created_at",customRender:s=>I(s.record.created_at)},{title:"عملیات",dataIndex:"action",key:"action",slot:"action",filterable:!1,align:"center"}],Z={class:"flex justify-between items-center mb-4"},ee=e("h2",null,"ویدئوها",-1),te={class:"flex gap-2"},oe={class:"gap-2 flex justify-center"},se=e("span",null,"مشاهده کامل",-1),ne=e("span",null,"دانلود",-1),ie=e("span",null,"حذف",-1),re={key:0,class:"space-y-4"},ae={class:"text-center"},le=["poster"],ce=["src"],de={class:"space-y-3"},ue={class:"text-lg font-semibold mb-2"},_e={class:"text-gray-600"},me={class:"grid grid-cols-2 gap-4 text-sm"},pe=e("span",{class:"font-medium"},"منبع:",-1),fe={class:"ml-2"},ve=e("span",{class:"font-medium"},"مدت زمان:",-1),he={class:"ml-2"},xe=e("span",{class:"font-medium"},"حجم فایل:",-1),ye={class:"ml-2"},ge=e("span",{class:"font-medium"},"تاریخ آپلود:",-1),be={class:"ml-2"},ke={class:"flex gap-2 justify-center"},tt=q({__name:"index",setup(s){f([]),f(!1);const t=f(null),[c,u]=K(),_=f(!1),i=f(null),b=f({columns:Y,api:W,defaultPageLimit:20});async function k(){await u(),m.success("لیست ویدئوها بروزرسانی شد")}function l(o){i.value=o.record,_.value=!0}function $(){_.value=!1,i.value=null}function M(o){var x;const n=o.video_url||((x=o.record)==null?void 0:x.video_url);if(!n){m.error("لینک ویدئو موجود نیست");return}const r=document.createElement("a");r.href=n,r.download=`${o.title||"video"}.mp4`,r.target="_blank",document.body.appendChild(r),r.click(),document.body.removeChild(r),m.success("دانلود شروع شد")}function B(o){var r;const n=o.video_url||((r=o.record)==null?void 0:r.video_url);if(!n){m.error("لینک ویدئو موجود نیست");return}navigator.clipboard.writeText(n).then(()=>{m.success("لینک ویدئو کپی شد")}).catch(()=>{m.error("خطا در کپی کردن لینک")})}function R(o){return{challenge:"چالش",competition:"مسابقه",other:"سایر"}[o]||"نامشخص"}function z(o){if(!o)return"-";const n=Math.floor(o/60),r=o%60;return`${n}:${r.toString().padStart(2,"0")}`}function D(o){return o?`${(o/(1024*1024)).toFixed(2)} MB`:"-"}function S(o){return I(o)}function E(o){Q.confirm({title:"حذف ویدئو",content:`آیا مطمئن هستید که می‌خواهید ویدئو "${o.record.title||"بدون عنوان"}" را حذف کنید؟`,okText:"بله، حذف کن",cancelText:"انصراف",okType:"danger",centered:!0,onOk:async()=>{try{await X(o.record.id),m.success("ویدئو با موفقیت حذف شد"),await u()}catch(n){console.error("خطا در حذف ویدئو:",n),m.error("خطا در حذف ویدئو")}}})}return J(()=>{}),(o,n)=>{const r=A,x=U,N=L,P=j;return T(),V("div",null,[a(P,null,{default:d(()=>[e("div",Z,[ee,e("div",te,[a(r,{type:"default",onClick:k},{default:d(()=>[a(h,{icon:"vuesax-linear:refresh",class:"mr-1"}),y(" بروزرسانی ")]),_:1})])]),a(x,G(b.value,{ref_key:"table",ref:t,onRegister:g(c)}),{action:d(({record:p})=>[e("div",oe,[a(g(C),{class:"cursor-pointer"},{title:d(()=>[se]),default:d(()=>[a(h,{icon:"vuesax-linear:eye",color:"#1D4ED8",onClick:w=>l(p)},null,8,["onClick"])]),_:2},1024),a(g(C),{class:"cursor-pointer"},{title:d(()=>[ne]),default:d(()=>[a(h,{icon:"vuesax-linear:download",color:"#059669",onClick:w=>M(p)},null,8,["onClick"])]),_:2},1024),a(g(C),{class:"cursor-pointer"},{title:d(()=>[ie]),default:d(()=>[a(h,{icon:"vuesax-linear:trash",color:"#DC2626",onClick:w=>E(p)},null,8,["onClick"])]),_:2},1024)])]),_:1},16,["onRegister"]),a(N,{visible:_.value,"onUpdate:visible":n[2]||(n[2]=p=>_.value=p),title:"مشاهده ویدئو",onCancel:$,width:"80%",footer:null},{default:d(()=>[i.value?(T(),V("div",re,[e("div",ae,[e("video",{class:"w-full max-w-2xl mx-auto rounded-lg shadow-lg",controls:"",preload:"metadata",poster:i.value.thumbnail_url},[e("source",{src:i.value.video_url,type:"video/mp4"},null,8,ce),y(" مرورگر شما از ویدئو پشتیبانی نمی‌کند ")],8,le)]),e("div",de,[e("div",null,[e("h3",ue,v(i.value.title),1),e("p",_e,v(i.value.description),1)]),e("div",me,[e("div",null,[pe,e("span",fe,v(R(i.value.source)),1)]),e("div",null,[ve,e("span",he,v(z(i.value.duration)),1)]),e("div",null,[xe,e("span",ye,v(D(i.value.file_size)),1)]),e("div",null,[ge,e("span",be,v(S(i.value.created_at)),1)])]),e("div",ke,[a(r,{type:"primary",onClick:n[0]||(n[0]=p=>M(i.value))},{default:d(()=>[a(h,{icon:"vuesax-linear:download",class:"mr-1"}),y(" دانلود ویدئو ")]),_:1}),a(r,{type:"default",onClick:n[1]||(n[1]=p=>B(i.value))},{default:d(()=>[a(h,{icon:"vuesax-linear:link",class:"mr-1"}),y(" کپی لینک ")]),_:1})])])])):H("",!0)]),_:1},8,["visible"])]),_:1})])}}});export{tt as default};