2 lines
11 KiB
JavaScript
2 lines
11 KiB
JavaScript
import{_ as ee}from"./BasicMainCard-02aee5ac.js";import{_ as te}from"./BasicModal.vue_vue_type_style_index_0_lang-ca4aa0a6.js";import{_ as ae}from"./BasicInput.vue_vue_type_style_index_0_lang-7718018f.js";import{_ as oe,u as ie}from"./useBaseTable-8eb27015.js";import{_ as ne}from"./button.vue_vue_type_style_index_0_lang-b7b1a519.js";import{I as A}from"./Icon-82f6c95b.js";import{t as le}from"./useDataTime-785ab201.js";import{_ as se,G as j,d as re,g as x,o as B,c as $,b as l,w as c,a as n,e as E,H as ue,j as f,t as me,k as L,y as ce,D as v,I as de}from"./index-b279599b.js";import{g as P}from"./convert-2ad76038.js";import{n as H}from"./textUtils-c37780ad.js";import{g as N}from"./index-f0a024ec.js";import{M as pe}from"./index-9c450bf9.js";import{S as _e}from"./index-86478c3f.js";import{C as he}from"./index-076900a0.js";import{I as ve}from"./index-e626bdbb.js";import{T as z}from"./isSymbol-4b8c1f3e.js";import{U as fe}from"./index-98405404.js";import"./Grid-ba9af77d.js";import"./index-5e6ef189.js";import"./_plugin-vue_export-helper-f38a7ea6.js";import"./shallowequal-59da3a36.js";import"./index-5f5b359c.js";import"./vnode-cc30a5f9.js";import"./index-cce68701.js";import"./useState-588c2312.js";import"./useRefs-72c4a0da.js";import"./_flatRest-cb9a1464.js";import"./isMobile-e2e89480.js";import"./omit-4c59a877.js";import"./index-60598d32.js";import"./Col-c7dcaed0.js";import"./styleChecker-e8fc6c1f.js";import"./isPlainObject-093495b2.js";import"./usePrice-bc935b83.js";import"./updateLocale-1fd95539.js";import"./index-9879659d.js";import"./index-bc659f42.js";import"./useMemo-39d0bfae.js";import"./FormItemContext-a76fbf7e.js";import"./lodash-98c01373.js";import"./BaseSwitch.vue_vue_type_script_setup_true_lang-62e181b5.js";import"./index-7dd4f08a.js";import"./Badge-2dd91e64.js";import"./isNumeric-3f69e2aa.js";import"./index-cb1dea06.js";import"./index-6707c586.js";import"./toArray-b7e6b8ed.js";import"./SearchOutlined-3414d521.js";import"./pickAttrs-7db0f563.js";import"./index-2f258009.js";import"./DialogWrap-a7021269.js";import"./index-624f47cc.js";import"./css-aae66f86.js";import"./index-1fd3daba.js";import"./index-de855912.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=>le(s.record.created_at)},{title:"عملیات",dataIndex:"action",key:"action",slot:"action",filterable:!1,align:"center"}];async function ge(s){const{data:_,error:m}=await j.from("announcements").insert([s]).select();if(m)throw m;return _}async function F(s,_){const{data:m,error:h}=await j.from("announcements").update({..._,updated_at:new Date().toISOString()}).eq("id",s).select();if(h)throw h;return m}async function be(s){const{error:_}=await j.from("announcements").delete().eq("id",s);if(_)throw _}async function we(s){const{TableEngineRequest:_}=await se(()=>import("./buildSupabaseQuery-7cbfb50c.js"),["assets/buildSupabaseQuery-7cbfb50c.js","assets/index-b279599b.js","assets/index-a54d32f7.css","assets/supabaseTableQuery-8ab5665d.js"]),m={...s};!m.sort&&!m.order&&(m.order="-id");const h=await _(m,"announcements");try{if(Array.isArray(h==null?void 0:h.rows)){const y=m.page||1,R=m.limit||20,k=(y-1)*R,T=h.rows.map((d,b)=>({...d,title:d.title??"",description:d.description??"",video_title:d.video_title??"",thumbnail:d.thumbnail??null,aparat_embed_code:d.aparat_embed_code??"",show_on_home:d.show_on_home!==!1,index:k+b}));return{...h,rows:T}}}catch(y){console.error("[getAnnouncementsTable]",y)}return h}const xe={class:"flex justify-between items-center mb-4"},ye=n("h2",null,"اطلاعرسانی ویدیویی",-1),ke=["src"],Ie={key:1},Te={class:"gap-2 flex justify-center"},Ce=n("span",null,"حذف",-1),Ue=n("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=n("div",{class:"mb-1 text-sm text-gray-600"},"عنوان *",-1),Me=n("div",{class:"mb-1 text-sm text-gray-600"},"عنوان ویدیو",-1),Ae=n("div",{class:"mb-1 text-sm text-gray-600"},"توضیحات *",-1),Re=n("div",{class:"mb-1 text-sm text-gray-600"},"کد embed آپارات *",-1),Se=n("div",{class:"mb-1 text-sm text-gray-600"},"تامنیل",-1),Le={key:0},Pe=n("div",null,"آپلود تامنیل",-1),ze={key:0,class:"mt-1"},je={class:"h-2 rounded bg-gray-200 overflow-hidden"},qt=re({__name:"index",setup(s){const{TextArea:_}=ve,m={authorization:`Bearer ${N()||localStorage.getItem("tamin_token")||""}`},[h,y]=ie(),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),d=x(null),b=x([]),C=x(0),I=x(0),o=x({title:"",description:"",video_title:"",thumbnail:null,aparat_embed_code:"",show_on_home:!0});function W(){b.value=[],T.value=!1,d.value=null,o.value={title:"",description:"",video_title:"",thumbnail:null,aparat_embed_code:"",show_on_home:!0},k.value=!0}function O(){k.value=!1}function J(i){return i.type.startsWith("image/")?i.size/1024/1024<5?!0:(v.error("حجم تصویر باید کمتر از 5MB باشد"),!1):(v.error("فقط فایلهای تصویری مجاز است"),!1)}async function G(i){const{file:e,onSuccess:p,onError:r,onProgress:g}=i,D=new FormData;D.append("file",e);const S=`${de}/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,g==null||g({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 q=P(M);o.value.thumbnail=M,b.value=q?[{uid:`${Date.now()}`,name:"thumbnail.jpg",status:"done",url:q,response:{path:M}}]:[],p==null||p(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(i){T.value=!0,d.value=i.id;let e=i.thumbnail||null;e&&e.startsWith("http")&&(e=e.replace(/^https?:\/\/[^\/]+/,"")),o.value={title:i.title||"",description:i.description||"",video_title:i.video_title||"",thumbnail:e,aparat_embed_code:i.aparat_embed_code||"",show_on_home:i.show_on_home!==!1};const p=e?P(e):null;b.value=p?[{uid:"-1",name:"thumbnail.jpg",status:"done",url:p,response:{path:e}}]:[],k.value=!0}function K(i){pe.confirm({title:"حذف اطلاعرسانی",content:`آیا از حذف «${i.title}» مطمئن هستید؟`,okText:"حذف",cancelText:"انصراف",onOk:async()=>{await be(i.id),v.success("حذف شد"),y()}})}async function Q(i){const e=i.show_on_home===!1;await F(i.id,{show_on_home:e}),v.success(e?"در صفحه اصلی نمایش داده میشود":"از صفحه اصلی حذف شد"),y()}async function Y(){var e,p,r,g;if(!((e=o.value.title)!=null&&e.trim())){v.warning("عنوان الزامی است");return}if(!H(o.value.description)){v.warning("توضیحات الزامی است");return}if(!((p=o.value.aparat_embed_code)!=null&&p.trim())){v.warning("کد embed آپارات الزامی است");return}if(C.value>0){v.warning("لطفاً تا پایان آپلود صبر کنید");return}const i={title:o.value.title.trim(),description:H(o.value.description),video_title:((r=o.value.video_title)==null?void 0:r.trim())||"",thumbnail:((g=o.value.thumbnail)==null?void 0:g.trim())||null,aparat_embed_code:o.value.aparat_embed_code.trim(),show_on_home:o.value.show_on_home!==!1};T.value&&d.value?(await F(d.value,i),v.success("ویرایش شد")):(await ge(i),v.success("افزوده شد")),O(),y()}return(i,e)=>{const p=ne,r=oe,g=ae,D=te,S=ee;return B(),$("div",null,[l(S,null,{default:c(()=>[n("div",xe,[ye,l(p,{type:"primary",onClick:W},{default:c(()=>[E("افزودن اطلاعرسانی")]),_:1})]),l(r,ue(R.value,{ref:"table",onRegister:f(h)}),{thumbnail:c(({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:c(({record:t})=>[n("div",Te,[l(f(z),{class:"cursor-pointer"},{title:c(()=>[n("span",null,me((t==null?void 0:t.show_on_home)===!1?"نمایش در صفحه اصلی":"حذف از صفحه اصلی"),1)]),default:c(()=>[l(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),l(f(z),{class:"cursor-pointer"},{title:c(()=>[Ce]),default:c(()=>[l(A,{icon:"vuesax-linear:trash",color:"#DC2626",onClick:U=>K(t)},null,8,["onClick"])]),_:2},1024),l(f(z),{class:"cursor-pointer"},{title:c(()=>[Ue]),default:c(()=>[l(A,{icon:"vuesax-linear:edit",color:"#1D4ED8",onClick:U=>X(t)},null,8,["onClick"])]),_:2},1024)])]),_:1},16,["onRegister"]),l(D,{visible:k.value,"onUpdate:visible":e[6]||(e[6]=t=>k.value=t),title:T.value?"ویرایش اطلاعرسانی":"افزودن اطلاعرسانی",onOk:Y,onCancel:O,width:"80%",confirmLoading:C.value>0},{default:c(()=>[n("div",Be,[C.value>0?(B(),$("div",$e,[l(f(_e),{size:"large"})])):L("",!0),n("div",null,[De,l(g,{value:o.value.title,"onUpdate:value":e[0]||(e[0]=t=>o.value.title=t),placeholder:"عنوان اطلاعرسانی"},null,8,["value"])]),n("div",null,[Me,l(g,{value:o.value.video_title,"onUpdate:value":e[1]||(e[1]=t=>o.value.video_title=t),placeholder:"عنوان ویدیو"},null,8,["value"])]),n("div",null,[Ae,l(f(_),{value:o.value.description,"onUpdate:value":e[2]||(e[2]=t=>o.value.description=t),placeholder:"متن توضیحات",rows:5},null,8,["value"])]),n("div",null,[Re,l(f(_),{value:o.value.aparat_embed_code,"onUpdate:value":e[3]||(e[3]=t=>o.value.aparat_embed_code=t),placeholder:"کد embed از آپارات",rows:4},null,8,["value"])]),n("div",null,[l(f(he),{checked:o.value.show_on_home,"onUpdate:checked":e[4]||(e[4]=t=>o.value.show_on_home=t)},{default:c(()=>[E("نمایش در صفحه اصلی")]),_:1},8,["checked"])]),n("div",null,[Se,l(f(fe),{"file-list":b.value,"onUpdate:fileList":e[5]||(e[5]=t=>b.value=t),"before-upload":J,"custom-request":G,headers:m,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:c(()=>[b.value.length<1?(B(),$("div",Le,[l(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,[n("div",je,[n("div",{class:"h-2 bg-blue-500 transition-all",style:ce({width:`${I.value}%`})},null,4)])])):L("",!0)])])]),_:1},8,["visible","title","confirmLoading"])]),_:1})])}}});export{qt as default};
|