Files
machartaa_admin_dist/dist/assets/index-6ae7b072.js
T
2026-10-14 16:25:33 +03:30

2 lines
15 KiB
JavaScript

import{_ as we}from"./BasicModal.vue_vue_type_style_index_0_lang-c75cb8ba.js";import{_ as ye,u as xe}from"./useBaseTable-dfbf3762.js";import{_ as ke}from"./BasicMainCard-104c14b2.js";import{_ as Te}from"./BasicInput.vue_vue_type_style_index_0_lang-eec084de.js";import{_ as Ie}from"./button.vue_vue_type_style_index_0_lang-5dd5fad9.js";import{I as A}from"./Icon-0c593d03.js";import{t as Ue}from"./useDataTime-9987a66e.js";import{_ as Re,I as ne,J as ie,K as Ce,O as oe,d as Be,i as f,x as Ae,o as x,c as k,e as s,w as d,b as n,f as N,L as Se,l as h,t as Le,n as S,C as Y,H as _,M as Me}from"./index-a94f140f.js";import{g as L}from"./convert-2ad76038.js";import{n as Q}from"./textUtils-c37780ad.js";import{g as Z}from"./index-396f8cde.js";import{M as Ee}from"./index-cadfe89f.js";import{S as $e}from"./index-a08f6658.js";import{C as je}from"./index-02db9106.js";import{I as De}from"./index-9bf19e54.js";import{T as F}from"./isSymbol-0faad147.js";import{U as ee}from"./index-b2be5cd6.js";import"./updateLocale-63da7352.js";import"./index-da3c4531.js";import"./_plugin-vue_export-helper-3751a4c9.js";import"./shallowequal-311bf7d9.js";import"./vnode-d8d89b8b.js";import"./useState-75e49d81.js";import"./useMemo-e6667500.js";import"./FormItemContext-d446a85f.js";import"./omit-09913e6a.js";import"./lodash-b667f7ec.js";import"./BaseSwitch.vue_vue_type_script_setup_true_lang-988f9693.js";import"./index-94f097c0.js";import"./Badge-64556311.js";import"./isNumeric-3f69e2aa.js";import"./index-a10a5cee.js";import"./index-d139af20.js";import"./index-1e5db048.js";import"./toArray-3323d384.js";import"./SearchOutlined-2c05f948.js";import"./pickAttrs-d12003ac.js";import"./index-fa5a0887.js";import"./isMobile-e2e89480.js";import"./index-f9445381.js";import"./Grid-33e7139e.js";import"./index-e5d8b47c.js";import"./useRefs-14e054ef.js";import"./_flatRest-38d88d03.js";import"./index-53e81bb5.js";import"./Col-098f825e.js";import"./styleChecker-cbf8a3c6.js";import"./isPlainObject-fa7524bd.js";import"./usePrice-bc935b83.js";import"./DialogWrap-1f925fe5.js";import"./index-6838bdc5.js";import"./css-aae66f86.js";import"./index-12b232e8.js";import"./index-00238e03.js";const te=[{title:"ردیف",dataIndex:"id",key:"id",filterable:!1,width:70,align:"center",customRender:o=>o.record.index+1},{title:"عنوان",dataIndex:"title",key:"title"},{title:"عنوان ویدیو",dataIndex:"video_title",key:"video_title",customRender:o=>o.record.video_title||"-"},{title:"اسلایدر خانه",dataIndex:"show_on_home",key:"show_on_home",align:"center",width:120,customRender:o=>o.record.show_on_home?"بله":"خیر"},{title:"زمان ایجاد",dataIndex:"created_at",key:"created_at",customRender:o=>Ue(o.record.created_at)},{title:"عملیات",dataIndex:"action",key:"action",slot:"action",filterable:!1,align:"center"}];async function Oe(o){const m=await ne("announcements",o);return Array.isArray(m)?m:[m]}async function ae(o,m){const u=await ie("announcements",o,{...m,updated_at:new Date().toISOString()});return Array.isArray(u)?u:[u]}async function ze(o){await Ce("announcements",o)}async function Ge(o){const{TableEngineRequest:m}=await Re(()=>import("./buildSupabaseQuery-7024d485.js"),["assets/buildSupabaseQuery-7024d485.js","assets/index-a94f140f.js","assets/index-ceed3b68.css"]),u={...o};!u.sort&&!u.order&&(u.order="-id");const c=await m(u,"announcements");try{if(Array.isArray(c==null?void 0:c.rows)){const w=u.page||1,O=u.limit||20,z=(w-1)*O,G=c.rows.map((v,H)=>({...v,title:v.title??"",description:v.description??"",video_title:v.video_title??"",thumbnail:v.thumbnail??null,banner:v.banner??null,aparat_embed_code:v.aparat_embed_code??"",show_on_home:v.show_on_home!==!1,index:z+H}));return{...c,rows:G}}}catch(w){console.error("[getAnnouncementsTable]",w)}return c}const le="home_greeting_subtitle",V="امروز هم یه ماجراجویی تازه داریم!";async function He(o,m){var c,w;const u=await oe("configs",{filters:[{field:"key",op:"eq",value:o}],limit:1,page:1});if((w=(c=u.rows)==null?void 0:c[0])!=null&&w.id){await ie("configs",u.rows[0].id,{value:m});return}await ne("configs",{key:o,value:m})}async function Pe(){var u,c;const o=await oe("configs",{filters:[{field:"key",op:"eq",value:le}],limit:1,page:1});return String(((c=(u=o.rows)==null?void 0:u[0])==null?void 0:c.value)??"").trim()||V}async function qe(o){const m=o.trim()||V;return await He(le,m),m}const Ne={class:"flex flex-wrap items-start justify-between gap-3 mb-3"},Fe=n("div",null,[n("h2",{class:"m-0 text-base font-bold"},"متن خوش‌آمد صفحه خانه"),n("p",{class:"m-0 mt-1 text-sm text-gray-500"}," این متن کوچک زیر نام کاربر در سربرگ اپ نمایش داده می‌شود. ")],-1),Ve=n("div",{class:"mb-1 text-sm text-gray-600"},"متن زیر عنوان خوش‌آمد",-1),Je={class:"flex flex-wrap justify-between items-start gap-3 mb-4"},Ke=n("div",null,[n("h2",{class:"m-0"},"اطلاع‌رسانی ویدیویی"),n("p",{class:"m-0 mt-1 text-sm text-gray-500"}," ویدیوهای اطلاع‌رسانی. برای نمایش در اسلایدشو خانه، «بنر اطلاع‌رسانی» آپلود کنید. ")],-1),We=["src"],Xe={key:1},Ye=["src"],Qe={key:1},Ze={class:"gap-2 flex justify-center"},et=n("span",null,"حذف",-1),tt=n("span",null,"ویرایش",-1),at={class:"space-y-4 relative"},nt={key:0,class:"absolute inset-0 bg-white/60 z-10 flex items-center justify-center"},it=n("div",{class:"mb-1 text-sm text-gray-600"},"عنوان *",-1),ot={class:"rounded-xl border-2 border-dashed border-emerald-400 bg-emerald-50 p-4 space-y-3"},lt=n("div",null,[n("div",{class:"text-sm font-bold text-emerald-800"},"بنر اطلاع‌رسانی"),n("p",{class:"m-0 mt-1 text-xs text-gray-600 leading-5"}," تصویر عریض برای اسلایدشو خانه (کنار اسلایدر جدا). با کلیک، کاربر به همین اطلاع‌رسانی می‌رود. ")],-1),st={key:0},rt=n("div",null,"آپلود بنر",-1),ut={key:0,class:"mt-1"},ct={class:"h-2 rounded bg-gray-200 overflow-hidden"},mt=n("div",{class:"mb-1 text-sm text-gray-600"},"عنوان ویدیو",-1),dt=n("div",{class:"mb-1 text-sm text-gray-600"},"توضیحات *",-1),pt=n("div",{class:"mb-1 text-sm text-gray-600"},"کد embed آپارات *",-1),_t=n("div",{class:"mb-1 text-sm text-gray-600"},"تامنیل لیست",-1),vt={key:0},ft=n("div",null,"آپلود تامنیل",-1),ht={key:0,class:"mt-1"},gt={class:"h-2 rounded bg-gray-200 overflow-hidden"},ba=Be({__name:"index",setup(o){const{TextArea:m}=De,u={authorization:`Bearer ${Z()||localStorage.getItem("tamin_token")||""}`},c=f(V),w=f(!1);async function O(){try{c.value=await Pe()}catch(t){_.error((t==null?void 0:t.message)||"خطا در بارگذاری متن خوش‌آمد")}}async function z(){w.value=!0;try{c.value=await qe(c.value),_.success("متن خوش‌آمد ذخیره شد")}catch(t){_.error((t==null?void 0:t.message)||"خطا در ذخیره متن خوش‌آمد")}finally{w.value=!1}}Ae(()=>{O()});const[G,v]=xe(),H=f({columns:[...te.slice(0,2),{title:"بنر اطلاع‌رسانی",dataIndex:"banner",key:"banner",slot:"banner",align:"center",width:130,filterable:!1},{title:"تامنیل",dataIndex:"thumbnail",key:"thumbnail",slot:"thumbnail",align:"center",width:100,filterable:!1},...te.slice(2)],api:Ge,defaultPageLimit:20}),C=f(!1),M=f(!1),E=f(null),I=f([]),U=f([]),R=f(0),$=f(0),j=f(0),i=f({title:"",description:"",video_title:"",thumbnail:null,banner:null,aparat_embed_code:"",show_on_home:!0});function se(){I.value=[],U.value=[],M.value=!1,E.value=null,i.value={title:"",description:"",video_title:"",thumbnail:null,banner:null,aparat_embed_code:"",show_on_home:!0},C.value=!0}function J(){C.value=!1}function K(t){return t.type.startsWith("image/")?t.size/1024/1024<5?!0:(_.error("حجم تصویر باید کمتر از 5MB باشد"),!1):(_.error("فقط فایل‌های تصویری مجاز است"),!1)}function P(t){return t?t.startsWith("http")?t.replace(/^https?:\/\/[^\/]+/,""):t:null}async function W(t,e,r,g){const{file:y,onSuccess:T,onError:b,onProgress:a}=t,B=new FormData;B.append("file",y);const fe=`${Me}/upload/machartaa-img`;r(0),R.value++,await new Promise((he,q)=>{const p=new XMLHttpRequest;p.open("POST",fe);const ge=Z()||localStorage.getItem("tamin_token")||"";p.setRequestHeader("Authorization",`Bearer ${ge}`),p.upload.onprogress=l=>{if(l.lengthComputable){const D=Math.round(l.loaded/l.total*100);r(D),a==null||a({percent:D})}},p.onload=()=>{if(r(100),p.status>=200&&p.status<300)try{const l=JSON.parse(p.responseText||"{}"),D=l.full_src||l.url||l.src||l.path||l.data&&(l.data.full_src||l.data.url||l.data.src||l.data.path)||"",X=P(D)||"",be=L(X);e(X,be),T==null||T(l,p),_.success(g),he()}catch(l){b==null||b(l,p),q(l)}else{const l=new Error("خطا در آپلود تصویر");b==null||b(l,p),q(l)}},p.onerror=()=>{const l=new Error("خطا در آپلود تصویر");b==null||b(l,p),q(l)},p.onloadend=()=>{R.value=Math.max(0,R.value-1),r(0)},p.send(B)})}async function re(t){await W(t,(e,r)=>{i.value.thumbnail=e,I.value=r?[{uid:`${Date.now()}`,name:"thumbnail.jpg",status:"done",url:r,response:{path:e}}]:[]},e=>{$.value=e},"تامنیل با موفقیت آپلود شد!")}async function ue(t){await W(t,(e,r)=>{i.value.banner=e,U.value=r?[{uid:`${Date.now()}`,name:"banner.jpg",status:"done",url:r,response:{path:e}}]:[]},e=>{j.value=e},"بنر اطلاع‌رسانی با موفقیت آپلود شد!")}function ce(){i.value.banner=null,U.value=[]}function me(){i.value.thumbnail=null,I.value=[]}function de(t){M.value=!0,E.value=t.id;const e=P(t.thumbnail||null),r=P(t.banner||null);i.value={title:t.title||"",description:t.description||"",video_title:t.video_title||"",thumbnail:e,banner:r,aparat_embed_code:t.aparat_embed_code||"",show_on_home:t.show_on_home!==!1};const g=e?L(e):null,y=r?L(r):null;I.value=g?[{uid:"-1",name:"thumbnail.jpg",status:"done",url:g,response:{path:e}}]:[],U.value=y?[{uid:"-banner",name:"banner.jpg",status:"done",url:y,response:{path:r}}]:[],C.value=!0}async function pe(t){const e=t.show_on_home===!1;await ae(t.id,{show_on_home:e}),_.success(e?"در اسلایدر خانه نمایش داده می‌شود":"از اسلایدر خانه حذف شد"),v()}function _e(t){Ee.confirm({title:"حذف اطلاع‌رسانی",content:`آیا از حذف «${t.title}» مطمئن هستید؟`,okText:"حذف",cancelText:"انصراف",onOk:async()=>{await ze(t.id),_.success("حذف شد"),v()}})}async function ve(){var e,r,g,y,T;if(!((e=i.value.title)!=null&&e.trim())){_.warning("عنوان الزامی است");return}if(!Q(i.value.description)){_.warning("توضیحات الزامی است");return}if(!((r=i.value.aparat_embed_code)!=null&&r.trim())){_.warning("کد embed آپارات الزامی است");return}if(R.value>0){_.warning("لطفاً تا پایان آپلود صبر کنید");return}const t={title:i.value.title.trim(),description:Q(i.value.description),video_title:((g=i.value.video_title)==null?void 0:g.trim())||"",thumbnail:((y=i.value.thumbnail)==null?void 0:y.trim())||null,banner:((T=i.value.banner)==null?void 0:T.trim())||null,aparat_embed_code:i.value.aparat_embed_code.trim(),show_on_home:i.value.show_on_home!==!1};M.value&&E.value?(await ae(E.value,t),_.success("ویرایش شد")):(await Oe(t),_.success("افزوده شد")),J(),v()}return(t,e)=>{const r=Ie,g=Te,y=ke,T=ye,b=we;return x(),k("div",null,[s(y,{class:"mb-4"},{default:d(()=>[n("div",Ne,[Fe,s(r,{type:"primary",loading:w.value,onClick:z},{default:d(()=>[N(" ذخیره متن ")]),_:1},8,["loading"])]),n("div",null,[Ve,s(g,{value:c.value,"onUpdate:value":e[0]||(e[0]=a=>c.value=a),placeholder:"مثلاً: امروز هم یه ماجراجویی تازه داریم!"},null,8,["value"])])]),_:1}),s(y,null,{default:d(()=>[n("div",Je,[Ke,s(r,{type:"primary",onClick:se},{default:d(()=>[N("افزودن اطلاع‌رسانی")]),_:1})]),s(T,Se(H.value,{ref:"table",onRegister:h(G)}),{banner:d(({record:a})=>[a.banner?(x(),k("img",{key:0,src:h(L)(a.banner),alt:"",class:"w-20 h-10 object-cover rounded"},null,8,We)):(x(),k("span",Xe,"-"))]),thumbnail:d(({record:a})=>[a.thumbnail?(x(),k("img",{key:0,src:h(L)(a.thumbnail),alt:"",class:"w-16 h-10 object-cover rounded"},null,8,Ye)):(x(),k("span",Qe,"-"))]),action:d(({record:a})=>[n("div",Ze,[s(h(F),{class:"cursor-pointer"},{title:d(()=>[n("span",null,Le((a==null?void 0:a.show_on_home)===!1?"نمایش در اسلایدر خانه":"حذف از اسلایدر خانه"),1)]),default:d(()=>[s(A,{icon:(a==null?void 0:a.show_on_home)===!1?"vuesax-linear:eye":"vuesax-linear:eye-slash",color:(a==null?void 0:a.show_on_home)===!1?"#10B981":"#F59E0B",onClick:B=>pe(a)},null,8,["icon","color","onClick"])]),_:2},1024),s(h(F),{class:"cursor-pointer"},{title:d(()=>[et]),default:d(()=>[s(A,{icon:"vuesax-linear:trash",color:"#DC2626",onClick:B=>_e(a)},null,8,["onClick"])]),_:2},1024),s(h(F),{class:"cursor-pointer"},{title:d(()=>[tt]),default:d(()=>[s(A,{icon:"vuesax-linear:edit",color:"#1D4ED8",onClick:B=>de(a)},null,8,["onClick"])]),_:2},1024)])]),_:1},16,["onRegister"]),s(b,{visible:C.value,"onUpdate:visible":e[8]||(e[8]=a=>C.value=a),title:M.value?"ویرایش اطلاع‌رسانی":"افزودن اطلاع‌رسانی",onOk:ve,onCancel:J,width:"80%",confirmLoading:R.value>0},{default:d(()=>[n("div",at,[R.value>0?(x(),k("div",nt,[s(h($e),{size:"large"})])):S("",!0),n("div",null,[it,s(g,{value:i.value.title,"onUpdate:value":e[1]||(e[1]=a=>i.value.title=a),placeholder:"عنوان اطلاع‌رسانی"},null,8,["value"])]),n("div",ot,[lt,s(h(je),{checked:i.value.show_on_home,"onUpdate:checked":e[2]||(e[2]=a=>i.value.show_on_home=a)},{default:d(()=>[N("نمایش در اسلایدر صفحه اصلی")]),_:1},8,["checked"]),s(h(ee),{"file-list":U.value,"onUpdate:fileList":e[3]||(e[3]=a=>U.value=a),"before-upload":K,"custom-request":ue,headers:u,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",onRemove:ce},{default:d(()=>[U.value.length<1?(x(),k("div",st,[s(A,{icon:"vuesax-linear:image",class:"text-2xl mb-2"}),rt])):S("",!0)]),_:1},8,["file-list"]),j.value>0&&j.value<100?(x(),k("div",ut,[n("div",ct,[n("div",{class:"h-2 bg-emerald-500 transition-all",style:Y({width:`${j.value}%`})},null,4)])])):S("",!0)]),n("div",null,[mt,s(g,{value:i.value.video_title,"onUpdate:value":e[4]||(e[4]=a=>i.value.video_title=a),placeholder:"عنوان ویدیو"},null,8,["value"])]),n("div",null,[dt,s(h(m),{value:i.value.description,"onUpdate:value":e[5]||(e[5]=a=>i.value.description=a),placeholder:"متن توضیحات",rows:5},null,8,["value"])]),n("div",null,[pt,s(h(m),{value:i.value.aparat_embed_code,"onUpdate:value":e[6]||(e[6]=a=>i.value.aparat_embed_code=a),placeholder:"کد embed از آپارات",rows:4},null,8,["value"])]),n("div",null,[_t,s(h(ee),{"file-list":I.value,"onUpdate:fileList":e[7]||(e[7]=a=>I.value=a),"before-upload":K,"custom-request":re,headers:u,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",onRemove:me},{default:d(()=>[I.value.length<1?(x(),k("div",vt,[s(A,{icon:"vuesax-linear:image",class:"text-2xl mb-2"}),ft])):S("",!0)]),_:1},8,["file-list"]),$.value>0&&$.value<100?(x(),k("div",ht,[n("div",gt,[n("div",{class:"h-2 bg-blue-500 transition-all",style:Y({width:`${$.value}%`})},null,4)])])):S("",!0)])])]),_:1},8,["visible","title","confirmLoading"])]),_:1})])}}});export{ba as default};