2 lines
11 KiB
JavaScript
2 lines
11 KiB
JavaScript
import{_ as ee}from"./BasicMainCard-20121373.js";import{_ as te}from"./BasicModal.vue_vue_type_style_index_0_lang-21dc5108.js";import{_ as ae}from"./BasicInput.vue_vue_type_style_index_0_lang-e6c4a2ca.js";import{_ as ne,u as oe}from"./useBaseTable-76d7f07d.js";import{_ as le}from"./button.vue_vue_type_style_index_0_lang-9e790906.js";import{I as A}from"./Icon-da96086d.js";import{t as ie}from"./useDataTime-a308c7ac.js";import{_ as se,H as O,d as re,g as x,o as B,c as $,b as i,w as d,a as l,e as E,G as ue,j as f,t as ce,k as L,y as de,D as v,I as me}from"./index-3136f82f.js";import{g as P}from"./convert-67c23be8.js";import{n as H}from"./textUtils-c37780ad.js";import{g as N}from"./index-1e08b352.js";import{M as _e}from"./index-74066b73.js";import{S as pe}from"./index-732915ec.js";import{C as he}from"./index-ddec8b32.js";import{I as ve}from"./index-d53e2890.js";import{T as z}from"./shallowequal-18cd9d2d.js";import{U as fe}from"./index-a13c1c7f.js";import"./index-ef7fb5f8.js";import"./index-bdb897ea.js";import"./_plugin-vue_export-helper-d984416f.js";import"./styleChecker-0439e77f.js";import"./vnode-76a3da37.js";import"./useState-cbfc3923.js";import"./useRefs-bc01ea09.js";import"./_flatRest-9b18ad3b.js";import"./index-37f402a1.js";import"./Col-4417123f.js";import"./isPlainObject-bc4a6351.js";import"./usePrice-bc935b83.js";import"./fa_IR-7ef01f07.js";import"./toArray-86b1c6d3.js";import"./FormItemContext-6cd43783.js";import"./pickAttrs-b6fb3a2a.js";import"./lodash-c712c23b.js";import"./index-524abc65.js";const V=[{title:"ردیف",dataIndex:"id",key:"id",filterable:!1,width:70,align:"center",customRender:s=>s.record.index+1},{title:"عنوان",dataIndex:"title",key:"title"},{title:"عنوان ویدیو",dataIndex:"video_title",key:"video_title",customRender:s=>s.record.video_title||"-"},{title:"نمایش در صفحه اصلی",dataIndex:"show_on_home",key:"show_on_home",align:"center",width:140,customRender:s=>s.record.show_on_home?"بله":"خیر"},{title:"زمان ایجاد",dataIndex:"created_at",key:"created_at",customRender:s=>ie(s.record.created_at)},{title:"عملیات",dataIndex:"action",key:"action",slot:"action",filterable:!1,align:"center"}];async function be(s){const{data:p,error:c}=await O.from("announcements").insert([s]).select();if(c)throw c;return p}async function F(s,p){const{data:c,error:h}=await O.from("announcements").update({...p,updated_at:new Date().toISOString()}).eq("id",s).select();if(h)throw h;return c}async function ge(s){const{error:p}=await O.from("announcements").delete().eq("id",s);if(p)throw p}async function we(s){const{TableEngineRequest:p}=await se(()=>import("./buildSupabaseQuery-1e81c96a.js"),["assets/buildSupabaseQuery-1e81c96a.js","assets/index-3136f82f.js","assets/index-a04641f0.css","assets/supabaseTableQuery-95762ff3.js"]),c={...s};!c.sort&&!c.order&&(c.order="-id");const h=await p(c,"announcements");try{if(Array.isArray(h==null?void 0:h.rows)){const y=c.page||1,R=c.limit||20,k=(y-1)*R,T=h.rows.map((m,g)=>({...m,title:m.title??"",description:m.description??"",video_title:m.video_title??"",thumbnail:m.thumbnail??null,aparat_embed_code:m.aparat_embed_code??"",show_on_home:m.show_on_home!==!1,index:k+g}));return{...h,rows:T}}}catch(y){console.error("[getAnnouncementsTable]",y)}return h}const xe={class:"flex justify-between items-center mb-4"},ye=l("h2",null,"اطلاعرسانی ویدیویی",-1),ke=["src"],Ie={key:1},Te={class:"gap-2 flex justify-center"},Ce=l("span",null,"حذف",-1),Ue=l("span",null,"ویرایش",-1),Be={class:"space-y-4 relative"},$e={key:0,class:"absolute inset-0 bg-white/60 z-10 flex items-center justify-center"},De=l("div",{class:"mb-1 text-sm text-gray-600"},"عنوان *",-1),Me=l("div",{class:"mb-1 text-sm text-gray-600"},"عنوان ویدیو",-1),Ae=l("div",{class:"mb-1 text-sm text-gray-600"},"توضیحات *",-1),Re=l("div",{class:"mb-1 text-sm text-gray-600"},"کد embed آپارات *",-1),Se=l("div",{class:"mb-1 text-sm text-gray-600"},"تامنیل",-1),Le={key:0},Pe=l("div",null,"آپلود تامنیل",-1),ze={key:0,class:"mt-1"},Oe={class:"h-2 rounded bg-gray-200 overflow-hidden"},wt=re({__name:"index",setup(s){const{TextArea:p}=ve,c={authorization:`Bearer ${N()||localStorage.getItem("tamin_token")||""}`},[h,y]=oe(),R=x({columns:[...V.slice(0,2),{title:"تامنیل",dataIndex:"thumbnail",key:"thumbnail",slot:"thumbnail",align:"center",width:100,filterable:!1},...V.slice(2)],api:we,defaultPageLimit:20}),k=x(!1),T=x(!1),m=x(null),g=x([]),C=x(0),I=x(0),n=x({title:"",description:"",video_title:"",thumbnail:null,aparat_embed_code:"",show_on_home:!0});function W(){g.value=[],T.value=!1,m.value=null,n.value={title:"",description:"",video_title:"",thumbnail:null,aparat_embed_code:"",show_on_home:!0},k.value=!0}function q(){k.value=!1}function J(o){return o.type.startsWith("image/")?o.size/1024/1024<5?!0:(v.error("حجم تصویر باید کمتر از 5MB باشد"),!1):(v.error("فقط فایلهای تصویری مجاز است"),!1)}async function G(o){const{file:e,onSuccess:_,onError:r,onProgress:b}=o,D=new FormData;D.append("file",e);const S=`${me}/upload/machartaa-img`;I.value=0,C.value++,await new Promise((t,U)=>{const u=new XMLHttpRequest;u.open("POST",S);const Z=N()||localStorage.getItem("tamin_token")||"";u.setRequestHeader("Authorization",`Bearer ${Z}`),u.upload.onprogress=a=>{if(a.lengthComputable){const w=Math.round(a.loaded/a.total*100);I.value=w,b==null||b({percent:w})}},u.onload=()=>{if(I.value=100,u.status>=200&&u.status<300)try{const a=JSON.parse(u.responseText||"{}"),w=a.full_src||a.url||a.src||a.path||a.data&&(a.data.full_src||a.data.url||a.data.src||a.data.path)||"";let M=w;w!=null&&w.startsWith("http")&&(M=w.replace(/^https?:\/\/[^\/]+/,""));const j=P(M);n.value.thumbnail=M,g.value=j?[{uid:`${Date.now()}`,name:"thumbnail.jpg",status:"done",url:j,response:{path:M}}]:[],_==null||_(a,u),v.success("تامنیل با موفقیت آپلود شد!"),t()}catch(a){r==null||r(a,u),U(a)}else{const a=new Error("خطا در آپلود تصویر");r==null||r(a,u),U(a)}},u.onerror=()=>{const a=new Error("خطا در آپلود تامنیل");r==null||r(a,u),U(a)},u.onloadend=()=>{C.value=Math.max(0,C.value-1),I.value=0},u.send(D)})}function X(o){T.value=!0,m.value=o.id;let e=o.thumbnail||null;e&&e.startsWith("http")&&(e=e.replace(/^https?:\/\/[^\/]+/,"")),n.value={title:o.title||"",description:o.description||"",video_title:o.video_title||"",thumbnail:e,aparat_embed_code:o.aparat_embed_code||"",show_on_home:o.show_on_home!==!1};const _=e?P(e):null;g.value=_?[{uid:"-1",name:"thumbnail.jpg",status:"done",url:_,response:{path:e}}]:[],k.value=!0}function K(o){_e.confirm({title:"حذف اطلاعرسانی",content:`آیا از حذف «${o.title}» مطمئن هستید؟`,okText:"حذف",cancelText:"انصراف",onOk:async()=>{await ge(o.id),v.success("حذف شد"),y()}})}async function Q(o){const e=o.show_on_home===!1;await F(o.id,{show_on_home:e}),v.success(e?"در صفحه اصلی نمایش داده میشود":"از صفحه اصلی حذف شد"),y()}async function Y(){var e,_,r,b;if(!((e=n.value.title)!=null&&e.trim())){v.warning("عنوان الزامی است");return}if(!H(n.value.description)){v.warning("توضیحات الزامی است");return}if(!((_=n.value.aparat_embed_code)!=null&&_.trim())){v.warning("کد embed آپارات الزامی است");return}if(C.value>0){v.warning("لطفاً تا پایان آپلود صبر کنید");return}const o={title:n.value.title.trim(),description:H(n.value.description),video_title:((r=n.value.video_title)==null?void 0:r.trim())||"",thumbnail:((b=n.value.thumbnail)==null?void 0:b.trim())||null,aparat_embed_code:n.value.aparat_embed_code.trim(),show_on_home:n.value.show_on_home!==!1};T.value&&m.value?(await F(m.value,o),v.success("ویرایش شد")):(await be(o),v.success("افزوده شد")),q(),y()}return(o,e)=>{const _=le,r=ne,b=ae,D=te,S=ee;return B(),$("div",null,[i(S,null,{default:d(()=>[l("div",xe,[ye,i(_,{type:"primary",onClick:W},{default:d(()=>[E("افزودن اطلاعرسانی")]),_:1})]),i(r,ue(R.value,{ref:"table",onRegister:f(h)}),{thumbnail:d(({record:t})=>[t.thumbnail?(B(),$("img",{key:0,src:f(P)(t.thumbnail),alt:"",class:"w-16 h-10 object-cover rounded"},null,8,ke)):(B(),$("span",Ie,"-"))]),action:d(({record:t})=>[l("div",Te,[i(f(z),{class:"cursor-pointer"},{title:d(()=>[l("span",null,ce((t==null?void 0:t.show_on_home)===!1?"نمایش در صفحه اصلی":"حذف از صفحه اصلی"),1)]),default:d(()=>[i(A,{icon:(t==null?void 0:t.show_on_home)===!1?"vuesax-linear:eye":"vuesax-linear:eye-slash",color:(t==null?void 0:t.show_on_home)===!1?"#10B981":"#F59E0B",onClick:U=>Q(t)},null,8,["icon","color","onClick"])]),_:2},1024),i(f(z),{class:"cursor-pointer"},{title:d(()=>[Ce]),default:d(()=>[i(A,{icon:"vuesax-linear:trash",color:"#DC2626",onClick:U=>K(t)},null,8,["onClick"])]),_:2},1024),i(f(z),{class:"cursor-pointer"},{title:d(()=>[Ue]),default:d(()=>[i(A,{icon:"vuesax-linear:edit",color:"#1D4ED8",onClick:U=>X(t)},null,8,["onClick"])]),_:2},1024)])]),_:1},16,["onRegister"]),i(D,{visible:k.value,"onUpdate:visible":e[6]||(e[6]=t=>k.value=t),title:T.value?"ویرایش اطلاعرسانی":"افزودن اطلاعرسانی",onOk:Y,onCancel:q,width:"80%",confirmLoading:C.value>0},{default:d(()=>[l("div",Be,[C.value>0?(B(),$("div",$e,[i(f(pe),{size:"large"})])):L("",!0),l("div",null,[De,i(b,{value:n.value.title,"onUpdate:value":e[0]||(e[0]=t=>n.value.title=t),placeholder:"عنوان اطلاعرسانی"},null,8,["value"])]),l("div",null,[Me,i(b,{value:n.value.video_title,"onUpdate:value":e[1]||(e[1]=t=>n.value.video_title=t),placeholder:"عنوان ویدیو"},null,8,["value"])]),l("div",null,[Ae,i(f(p),{value:n.value.description,"onUpdate:value":e[2]||(e[2]=t=>n.value.description=t),placeholder:"متن توضیحات",rows:5},null,8,["value"])]),l("div",null,[Re,i(f(p),{value:n.value.aparat_embed_code,"onUpdate:value":e[3]||(e[3]=t=>n.value.aparat_embed_code=t),placeholder:"کد embed از آپارات",rows:4},null,8,["value"])]),l("div",null,[i(f(he),{checked:n.value.show_on_home,"onUpdate:checked":e[4]||(e[4]=t=>n.value.show_on_home=t)},{default:d(()=>[E("نمایش در صفحه اصلی")]),_:1},8,["checked"])]),l("div",null,[Se,i(f(fe),{"file-list":g.value,"onUpdate:fileList":e[5]||(e[5]=t=>g.value=t),"before-upload":J,"custom-request":G,headers:c,accept:"image/*","max-count":1,"list-type":"picture-card"},{default:d(()=>[g.value.length<1?(B(),$("div",Le,[i(A,{icon:"vuesax-linear:image",class:"text-2xl mb-2"}),Pe])):L("",!0)]),_:1},8,["file-list"]),I.value>0&&I.value<100?(B(),$("div",ze,[l("div",Oe,[l("div",{class:"h-2 bg-blue-500 transition-all",style:de({width:`${I.value}%`})},null,4)])])):L("",!0)])])]),_:1},8,["visible","title","confirmLoading"])]),_:1})])}}});export{wt as default};
|