2 lines
11 KiB
JavaScript
2 lines
11 KiB
JavaScript
import{_ as ee}from"./BasicMainCard-12ef539d.js";import{_ as te}from"./BasicModal.vue_vue_type_style_index_0_lang-d1e6a59e.js";import{_ as ae}from"./BasicInput.vue_vue_type_style_index_0_lang-35ed6fd8.js";import{_ as oe,u as ne}from"./useBaseTable-f680a0e2.js";import{_ as le}from"./button.vue_vue_type_style_index_0_lang-e0dea8bb.js";import{I as A}from"./Icon-199a922a.js";import{t as ie}from"./useDataTime-bbfc6d86.js";import{_ as se,H as O,d as re,g as x,o as B,c as $,b as i,w as m,a as l,e as E,G as ue,j as f,t as ce,k as L,y as me,D as v,I as de}from"./index-caf247db.js";import{g as P}from"./convert-67c23be8.js";import{n as H}from"./textUtils-c37780ad.js";import{g as N}from"./index-1bcf9f68.js";import{M as _e}from"./index-688f073d.js";import{S as pe}from"./index-70e9e671.js";import{C as he}from"./index-7a128151.js";import{I as ve}from"./index-01e8bf20.js";import{T as z}from"./shallowequal-1ad8252c.js";import{U as fe}from"./index-c1eb3aaf.js";import"./index-de58d7f5.js";import"./index-19e6126e.js";import"./_plugin-vue_export-helper-438caba9.js";import"./styleChecker-477bfa11.js";import"./vnode-20d5d74c.js";import"./useState-74071817.js";import"./useRefs-22b2473f.js";import"./_flatRest-a161204e.js";import"./index-f1bbae53.js";import"./Col-361122c0.js";import"./isPlainObject-16f1bdfa.js";import"./usePrice-bc935b83.js";import"./fa_IR-3fc10d80.js";import"./toArray-ad006c19.js";import"./FormItemContext-d53141ed.js";import"./pickAttrs-d5fdda1c.js";import"./lodash-f5ffd720.js";import"./css-bff3ffda.js";import"./DialogWrap-7b83b14e.js";import"./index-ec2e4f99.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-3f921c3d.js"),["assets/buildSupabaseQuery-3f921c3d.js","assets/index-caf247db.js","assets/index-210d4b6a.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((d,g)=>({...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+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"},yt=re({__name:"index",setup(s){const{TextArea:p}=ve,c={authorization:`Bearer ${N()||localStorage.getItem("tamin_token")||""}`},[h,y]=ne(),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),g=x([]),C=x(0),I=x(0),o=x({title:"",description:"",video_title:"",thumbnail:null,aparat_embed_code:"",show_on_home:!0});function W(){g.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 q(){k.value=!1}function J(n){return n.type.startsWith("image/")?n.size/1024/1024<5?!0:(v.error("حجم تصویر باید کمتر از 5MB باشد"),!1):(v.error("فقط فایلهای تصویری مجاز است"),!1)}async function G(n){const{file:e,onSuccess:_,onError:r,onProgress:b}=n,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,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);o.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(n){T.value=!0,d.value=n.id;let e=n.thumbnail||null;e&&e.startsWith("http")&&(e=e.replace(/^https?:\/\/[^\/]+/,"")),o.value={title:n.title||"",description:n.description||"",video_title:n.video_title||"",thumbnail:e,aparat_embed_code:n.aparat_embed_code||"",show_on_home:n.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(n){_e.confirm({title:"حذف اطلاعرسانی",content:`آیا از حذف «${n.title}» مطمئن هستید؟`,okText:"حذف",cancelText:"انصراف",onOk:async()=>{await ge(n.id),v.success("حذف شد"),y()}})}async function Q(n){const e=n.show_on_home===!1;await F(n.id,{show_on_home:e}),v.success(e?"در صفحه اصلی نمایش داده میشود":"از صفحه اصلی حذف شد"),y()}async function Y(){var e,_,r,b;if(!((e=o.value.title)!=null&&e.trim())){v.warning("عنوان الزامی است");return}if(!H(o.value.description)){v.warning("توضیحات الزامی است");return}if(!((_=o.value.aparat_embed_code)!=null&&_.trim())){v.warning("کد embed آپارات الزامی است");return}if(C.value>0){v.warning("لطفاً تا پایان آپلود صبر کنید");return}const n={title:o.value.title.trim(),description:H(o.value.description),video_title:((r=o.value.video_title)==null?void 0:r.trim())||"",thumbnail:((b=o.value.thumbnail)==null?void 0:b.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,n),v.success("ویرایش شد")):(await be(n),v.success("افزوده شد")),q(),y()}return(n,e)=>{const _=le,r=oe,b=ae,D=te,S=ee;return B(),$("div",null,[i(S,null,{default:m(()=>[l("div",xe,[ye,i(_,{type:"primary",onClick:W},{default:m(()=>[E("افزودن اطلاعرسانی")]),_:1})]),i(r,ue(R.value,{ref:"table",onRegister:f(h)}),{thumbnail:m(({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:m(({record:t})=>[l("div",Te,[i(f(z),{class:"cursor-pointer"},{title:m(()=>[l("span",null,ce((t==null?void 0:t.show_on_home)===!1?"نمایش در صفحه اصلی":"حذف از صفحه اصلی"),1)]),default:m(()=>[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:m(()=>[Ce]),default:m(()=>[i(A,{icon:"vuesax-linear:trash",color:"#DC2626",onClick:U=>K(t)},null,8,["onClick"])]),_:2},1024),i(f(z),{class:"cursor-pointer"},{title:m(()=>[Ue]),default:m(()=>[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:m(()=>[l("div",Be,[C.value>0?(B(),$("div",$e,[i(f(pe),{size:"large"})])):L("",!0),l("div",null,[De,i(b,{value:o.value.title,"onUpdate:value":e[0]||(e[0]=t=>o.value.title=t),placeholder:"عنوان اطلاعرسانی"},null,8,["value"])]),l("div",null,[Me,i(b,{value:o.value.video_title,"onUpdate:value":e[1]||(e[1]=t=>o.value.video_title=t),placeholder:"عنوان ویدیو"},null,8,["value"])]),l("div",null,[Ae,i(f(p),{value:o.value.description,"onUpdate:value":e[2]||(e[2]=t=>o.value.description=t),placeholder:"متن توضیحات",rows:5},null,8,["value"])]),l("div",null,[Re,i(f(p),{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"])]),l("div",null,[i(f(he),{checked:o.value.show_on_home,"onUpdate:checked":e[4]||(e[4]=t=>o.value.show_on_home=t)},{default:m(()=>[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:m(()=>[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:me({width:`${I.value}%`})},null,4)])])):L("",!0)])])]),_:1},8,["visible","title","confirmLoading"])]),_:1})])}}});export{yt as default};
|