Files
machartaa_admin_dist/dist/assets/index-7a82d4ce.js
T
2025-12-05 00:54:14 +03:30

2 lines
13 KiB
JavaScript

import{a3 as A,a4 as D,d as Z,r as y,i as tt,o as $,c as M,b as c,w as k,a as s,e as et,a2 as ot,L as C,K as st,N,a0 as f}from"./index-d2d57467.js";import{_ as at}from"./BasicMainCard-1f376738.js";import{M as it,_ as lt}from"./BasicModal.vue_vue_type_style_index_0_lang-6383d729.js";import{_ as rt}from"./BasicInput.vue_vue_type_style_index_0_lang-63c96304.js";import{_ as nt}from"./BaseTable.vue_vue_type_style_index_0_lang-1f6ecc5d.js";import{_ as ut}from"./button.vue_vue_type_style_index_0_lang-55d2b252.js";import{I as T}from"./Icon-8d3280fe.js";import{_ as j}from"./BasicSelect.vue_vue_type_style_index_0_lang-b193b7e1.js";import{u as ct}from"./useBaseTable-3aeb2499.js";import{t as dt}from"./useDataTime-0a2e32aa.js";import{getBooks as mt}from"./books-2a9fed20.js";import{S as vt}from"./index-95f4305d.js";import{T as P}from"./styleChecker-f8db9dd1.js";import{U as z}from"./index-7d52e501.js";import"./_plugin-vue_export-helper-d0931117.js";import"./index-fd255577.js";import"./useState-b367b6d6.js";import"./vnode-78cb12ff.js";import"./Col-e6f89ff6.js";import"./index-6a84bb1d.js";import"./usePrice-7afab779.js";import"./index-2621c75f.js";const pt=[{title:"ردیف",dataIndex:"id",key:"id",filterable:!1,width:70,align:"center",customRender:l=>l.record.index+1},{title:"عنوان",dataIndex:"title",key:"title"},{title:"زیرعنوان",dataIndex:"sub_title",key:"sub_title"},{title:"کتاب مرتبط",dataIndex:"book_id",key:"book_id",align:"center",customRender:l=>{const n=l.record.book_title,p=l.record.book_id;return n||(p?`کتاب #${p}`:"-")}},{title:"زمان",dataIndex:"time",key:"time",customRender:l=>{const n=l.record.time||{minutes:0,seconds:0},p=Number(n.minutes||0),h=Number(n.seconds||0),_=g=>String(g).padStart(2,"0");return`${_(p)}:${_(h)}`}},{title:"صوت",dataIndex:"src",key:"src",customRender:l=>l.record.src?"دارد":"-"},{title:"تاریخ ایجاد",dataIndex:"created_at",key:"created_at",customRender:l=>dt(l.record.created_at)},{title:"عملیات",dataIndex:"action",key:"action",slot:"action",filterable:!1,align:"center"}];async function _t(l){const{data:n,error:p}=await D.from("storys").insert([{title:l.title,sub_title:l.sub_title,cover:l.cover,src:l.src,time:l.time,book_id:l.book_id||null}]).select();if(p)throw p;return n}async function O(l,n){const{data:p,error:h}=await D.from("storys").update({title:n.title,sub_title:n.sub_title,cover:n.cover,src:n.src,time:n.time,book_id:n.book_id||null}).eq("id",l).select();if(h)throw h;return p}async function ft(l){const{error:n}=await D.from("storys").delete().eq("id",l);if(n)throw n}async function ht(l){const{TableEngineRequest:n}=await A(()=>import("./buildSupabaseQuery-68dfd2a3.js"),["assets/buildSupabaseQuery-68dfd2a3.js","assets/index-d2d57467.js","assets/index-7f144acc.css"]),{getBooks:p}=await A(()=>import("./books-2a9fed20.js"),["assets/books-2a9fed20.js","assets/index-d2d57467.js","assets/index-7f144acc.css"]),h={...l};!h.sort&&!h.order&&(h.order="-id");const _=await n(h,"storys");try{if(Array.isArray(_==null?void 0:_.rows)){let g=new Map;try{const d=await p();Array.isArray(d)&&d.forEach(w=>{w.id&&w.title&&g.set(w.id,w.title)})}catch(d){console.log("[getStorysTable] Error loading books:",d)}const E=h.page||1,B=h.limit||200,I=(E-1)*B,x=_.rows.map((d,w)=>({id:d.id,title:d.title??"",sub_title:d.sub_title??"",cover:d.cover??null,src:d.src??null,time:d.time??{minutes:0,seconds:0},book_id:d.book_id??null,book_title:d.book_id&&g.get(d.book_id)||null,created_at:d.created_at??"",index:I+w,...d}));return{..._,rows:x}}}catch(g){console.log("[getStorysTable] normalize error:",g)}return _}const bt={class:"flex justify-between items-center mb-4"},kt=s("h2",null,"قصه ها",-1),yt={class:"gap-2 flex justify-center"},gt=s("span",null,"حذف",-1),xt=s("span",null,"ویرایش",-1),wt=s("span",null,"مرتبط کردن کتاب",-1),Bt={class:"space-y-4 relative"},It={key:0,class:"absolute inset-0 bg-white/60 z-10 flex items-center justify-center"},Ct=s("div",{class:"mb-1 text-sm text-gray-600"},"عنوان",-1),Et=s("div",{class:"mb-1 text-sm text-gray-600"},"زیرعنوان",-1),Lt=s("div",{class:"mb-1 text-sm text-gray-600"},"کتاب مرتبط",-1),St={class:"flex gap-4"},Ut={class:"flex-1"},$t=s("div",{class:"mb-1 text-sm text-gray-600"},"زمان",-1),Tt={class:"space-y-2"},Mt=s("div",{class:"mb-1 text-xs text-gray-500"},"دقیقه",-1),Nt=s("div",{class:"mb-1 text-xs text-gray-500"},"ثانیه",-1),Pt={class:"flex-1 flex justify-center gap-4"},At=s("div",{class:"mb-1 text-sm text-gray-600"},"آپلود تصویر کاور",-1),Dt={key:0},Wt=s("div",null,"آپلود کاور",-1),Rt=s("div",{class:"mb-1 text-sm text-gray-600"},"آپلود صوت (src)",-1),jt={key:0},zt=s("div",null,"آپلود صوت",-1),Ot={class:"space-y-4"},Vt=s("div",{class:"mb-1 text-sm text-gray-600"},"کتاب مرتبط",-1),me=Z({__name:"index",setup(l){const[n,p]=ct(),h=y({columns:pt,api:ht,defaultPageLimit:20}),_=y(!1),g=y(!1),E=y(null),B=y([]),I=y([]),x=y(0),d=y([]),w=y(!1),L=y(null),u=y({title:"",sub_title:"",cover:null,src:null,time:{minutes:0,seconds:0},book_id:null}),S=y({book_id:null});function V(){B.value=[],I.value=[],g.value=!1,E.value=null,u.value={title:"",sub_title:"",cover:null,src:null,time:{minutes:0,seconds:0},book_id:null},_.value=!0}function W(){_.value=!1}function q(e){return e.type.startsWith("audio/")?e.size/1024/1024<30?!0:(f.error("حجم فایل باید کمتر از 30MB باشد"),!1):(f.error("فقط فایل‌های صوتی مجاز است"),!1)}async function F(e){const{file:t,onSuccess:r,onError:m}=e;try{x.value++;const a=new FormData;a.append("file",t);const b=await fetch("https://node.machartaa.ir/upload/machartaa-audio",{method:"POST",body:a,headers:{Authorization:`Bearer ${localStorage.getItem("token")||""}`}});if(!b.ok)throw new Error("خطا در آپلود فایل");const i=await b.json(),o=i.full_src||i.url||i.src||i.path||i.data&&(i.data.full_src||i.data.url||i.data.src||i.data.path)||"";let v=o;o.startsWith("http")&&(v=o.replace(/^https?:\/\/[^\/]+/,""));const U=v.startsWith("http")?v:`https://node.machartaa.ir${v}`;u.value.src=v,B.value=U?[{uid:`${Date.now()}`,name:"audio.mp3",status:"done",url:U,response:{path:v}}]:[],r(i),f.success("صوت با موفقیت آپلود شد!")}catch(a){console.error(a),m(a),f.error("خطا در آپلود صوت")}finally{x.value=Math.max(0,x.value-1)}}function J(e){return e.type.startsWith("image/")?e.size/1024/1024<5?!0:(f.error("حجم تصویر باید کمتر از 5MB باشد"),!1):(f.error("فقط فایل‌های تصویری مجاز است"),!1)}async function K(e){const{file:t,onSuccess:r,onError:m}=e;try{x.value++;const a=new FormData;a.append("file",t);const b=await fetch("https://node.machartaa.ir/upload/machartaa-img",{method:"POST",body:a,headers:{Authorization:`Bearer ${localStorage.getItem("token")||""}`}});if(!b.ok)throw new Error("خطا در آپلود تصویر");const i=await b.json(),o=i.full_src||i.url||i.src||i.path||i.data&&(i.data.full_src||i.data.url||i.data.src||i.data.path)||"";let v=o;o.startsWith("http")&&(v=o.replace(/^https?:\/\/[^\/]+/,""));const U=v.startsWith("http")?v:`https://node.machartaa.ir${v}`;u.value.cover=v,I.value=U?[{uid:`${Date.now()}`,name:"cover.jpg",status:"done",url:U,response:{path:v}}]:[],r(i),f.success("کاور با موفقیت آپلود شد!")}catch(a){console.error(a),m(a),f.error("خطا در آپلود کاور")}finally{x.value=Math.max(0,x.value-1)}}async function G(){var t,r,m,a,b,i;if(!((t=u.value.title)!=null&&t.trim()))return;if(x.value>0){f.warning("لطفاً تا پایان آپلود صبر کنید");return}const e={title:u.value.title.trim(),sub_title:((r=u.value.sub_title)==null?void 0:r.trim())||"",cover:((m=u.value.cover)==null?void 0:m.trim())||null,src:((a=u.value.src)==null?void 0:a.trim())||null,time:{minutes:Number((b=u.value.time)==null?void 0:b.minutes)||0,seconds:Number((i=u.value.time)==null?void 0:i.seconds)||0},book_id:u.value.book_id||null};try{g.value&&E.value?(await O(E.value,e),f.success("قصه با موفقیت ویرایش شد")):(await _t(e),f.success("قصه با موفقیت افزوده شد")),W(),await p()}catch(o){console.error("Error saving story:",o),f.error("خطا در ذخیره قصه: "+(o.message||"خطای ناشناخته"))}}function H(e){g.value=!0,E.value=e.id;let t=e.cover||null;t&&t.startsWith("http")&&(t=t.replace(/^https?:\/\/[^\/]+/,""));let r=e.src||null;r&&r.startsWith("http")&&(r=r.replace(/^https?:\/\/[^\/]+/,"")),u.value={title:e.title||"",sub_title:e.sub_title||"",cover:t,src:r,time:e.time&&typeof e.time=="object"?{minutes:Number(e.time.minutes)||0,seconds:Number(e.time.seconds)||0}:{minutes:0,seconds:0},book_id:e.book_id||null};const m=r?r.startsWith("http")?r:`https://node.machartaa.ir${r}`:null,a=t?t.startsWith("http")?t:`https://node.machartaa.ir${t}`:null;B.value=m?[{uid:"-1",name:"audio.mp3",status:"done",url:m,response:{path:r}}]:[],I.value=a?[{uid:"-2",name:"cover.jpg",status:"done",url:a,response:{path:t}}]:[],_.value=!0}function Q(e){L.value=e.id,S.value={book_id:e.book_id||null},w.value=!0}function R(){w.value=!1,L.value=null,S.value={book_id:null}}async function X(){if(L.value)try{const{supabase:e}=await A(()=>import("./index-d2d57467.js").then(i=>i.cV),["assets/index-d2d57467.js","assets/index-7f144acc.css"]),{data:t,error:r}=await e.from("storys").select("*").eq("id",L.value).single();if(r||!t){f.error("قصه یافت نشد");return}let m=t.cover||null;m&&m.startsWith("http")&&(m=m.replace(/^https?:\/\/[^\/]+/,""));let a=t.src||null;a&&a.startsWith("http")&&(a=a.replace(/^https?:\/\/[^\/]+/,""));const b={title:t.title||"",sub_title:t.sub_title||"",cover:m,src:a,time:t.time&&typeof t.time=="object"?{minutes:Number(t.time.minutes)||0,seconds:Number(t.time.seconds)||0}:{minutes:0,seconds:0},book_id:S.value.book_id||null};await O(L.value,b),f.success("کتاب با موفقیت مرتبط شد"),R(),await p()}catch(e){console.error("Error linking book:",e),f.error("خطا در مرتبط کردن کتاب: "+(e.message||"خطای ناشناخته"))}}tt(async()=>{try{const e=await mt();d.value=e||[]}catch(e){console.error("Error loading books:",e)}});function Y(e){it.confirm({title:"حذف قصه",content:`آیا مطمئن هستید که می‌خواهید قصه "${e.title}" را حذف کنید؟`,okText:"بله، حذف کن",cancelText:"انصراف",okType:"danger",centered:!0,onOk:async()=>{await ft(e.id),await p()}})}return(e,t)=>{const r=ut,m=nt,a=rt,b=lt,i=at;return $(),M("div",null,[c(i,null,{default:k(()=>[s("div",bt,[kt,c(r,{type:"primary",onClick:V},{default:k(()=>[et("افزودن قصه")]),_:1})]),c(m,ot(h.value,{ref:"table",onRegister:C(n)}),{action:k(({record:o})=>[s("div",yt,[c(C(P),{class:"cursor-pointer"},{title:k(()=>[gt]),default:k(()=>[c(T,{icon:"vuesax-linear:trash",color:"#DC2626",onClick:v=>Y(o)},null,8,["onClick"])]),_:2},1024),c(C(P),{class:"cursor-pointer"},{title:k(()=>[xt]),default:k(()=>[c(T,{icon:"vuesax-linear:edit",color:"#1D4ED8",onClick:v=>H(o)},null,8,["onClick"])]),_:2},1024),o!=null&&o.book_id?N("",!0):($(),st(C(P),{key:0,class:"cursor-pointer"},{title:k(()=>[wt]),default:k(()=>[c(T,{icon:"vuesax-linear:book",color:"#217346",onClick:v=>Q(o)},null,8,["onClick"])]),_:2},1024))])]),_:1},16,["onRegister"]),c(b,{visible:_.value,"onUpdate:visible":t[7]||(t[7]=o=>_.value=o),title:g.value?"ویرایش قصه":"افزودن قصه",onOk:G,onCancel:W,width:"80%",confirmLoading:x.value>0},{default:k(()=>[s("div",Bt,[x.value>0?($(),M("div",It,[c(C(vt),{size:"large"})])):N("",!0),s("div",null,[Ct,c(a,{value:u.value.title,"onUpdate:value":t[0]||(t[0]=o=>u.value.title=o),placeholder:"عنوان"},null,8,["value"])]),s("div",null,[Et,c(a,{value:u.value.sub_title,"onUpdate:value":t[1]||(t[1]=o=>u.value.sub_title=o),placeholder:"زیرعنوان"},null,8,["value"])]),s("div",null,[Lt,c(j,{value:u.value.book_id,"onUpdate:value":t[2]||(t[2]=o=>u.value.book_id=o),items:d.value,keyName:"id",valueName:"title",placeholder:"انتخاب کتاب",allowClear:!0},null,8,["value","items"])]),s("div",St,[s("div",Ut,[$t,s("div",Tt,[s("div",null,[Mt,c(a,{value:u.value.time.minutes,"onUpdate:value":t[3]||(t[3]=o=>u.value.time.minutes=o),type:"number",placeholder:"0"},null,8,["value"])]),s("div",null,[Nt,c(a,{value:u.value.time.seconds,"onUpdate:value":t[4]||(t[4]=o=>u.value.time.seconds=o),type:"number",placeholder:"0"},null,8,["value"])])])]),s("div",Pt,[s("div",null,[At,c(C(z),{"file-list":I.value,"onUpdate:fileList":t[5]||(t[5]=o=>I.value=o),"before-upload":J,"custom-request":K,accept:"image/*","max-count":1,"list-type":"picture-card"},{default:k(()=>[I.value.length<1?($(),M("div",Dt,[c(T,{icon:"vuesax-linear:image",class:"text-2xl mb-2"}),Wt])):N("",!0)]),_:1},8,["file-list"])]),s("div",null,[Rt,c(C(z),{"file-list":B.value,"onUpdate:fileList":t[6]||(t[6]=o=>B.value=o),"before-upload":q,"custom-request":F,accept:"audio/*","max-count":1,"list-type":"picture-card"},{default:k(()=>[B.value.length<1?($(),M("div",jt,[c(T,{icon:"vuesax-linear:music",class:"text-2xl mb-2"}),zt])):N("",!0)]),_:1},8,["file-list"])])])])])]),_:1},8,["visible","title","confirmLoading"]),c(b,{visible:w.value,"onUpdate:visible":t[9]||(t[9]=o=>w.value=o),title:"مرتبط کردن کتاب",onOk:X,onCancel:R,width:"500px"},{default:k(()=>[s("div",Ot,[s("div",null,[Vt,c(j,{value:S.value.book_id,"onUpdate:value":t[8]||(t[8]=o=>S.value.book_id=o),items:d.value,keyName:"id",valueName:"title",placeholder:"انتخاب کتاب",allowClear:!0},null,8,["value","items"])])])]),_:1},8,["visible"])]),_:1})])}}});export{me as default};