2 lines
7.4 KiB
JavaScript
2 lines
7.4 KiB
JavaScript
import{_ as N}from"./BasicMainCard-1f376738.js";import{M as V,_ as W}from"./BasicModal.vue_vue_type_style_index_0_lang-6383d729.js";import{_ as q}from"./BasicInput.vue_vue_type_style_index_0_lang-63c96304.js";import{_ as O}from"./BaseTable.vue_vue_type_style_index_0_lang-1f6ecc5d.js";import{_ as F}from"./button.vue_vue_type_style_index_0_lang-55d2b252.js";import{I as T}from"./Icon-8d3280fe.js";import{u as J}from"./useBaseTable-3aeb2499.js";import{t as G}from"./useDataTime-0a2e32aa.js";import{a3 as H,a4 as U,d as K,r as y,o as C,c as E,b as r,w as _,a as n,e as Q,a2 as X,L as w,N as L,a0 as f}from"./index-d2d57467.js";import{S as Y}from"./index-95f4305d.js";import{I as Z}from"./index-6a84bb1d.js";import{T as M}from"./styleChecker-f8db9dd1.js";import{U as ee}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"./usePrice-7afab779.js";import"./index-2621c75f.js";const te=[{title:"ردیف",dataIndex:"id",key:"id",filterable:!1,width:70,align:"center",customRender:a=>a.record.index+1},{title:"عنوان",dataIndex:"title",key:"title"},{title:"توضیحات",dataIndex:"description",key:"description"},{title:"تصویر",dataIndex:"src_img",key:"src_img",customRender:a=>a.record.src_img||"-"},{title:"تاریخ ایجاد",dataIndex:"created_at",key:"created_at",customRender:a=>G(a.record.created_at)},{title:"عملیات",dataIndex:"action",key:"action",slot:"action",filterable:!1,align:"center"}];async function ae(a){const{data:u,error:s}=await U.from("images_book").insert([a]).select();if(s)throw s;return u}async function oe(a,u){const{data:s,error:l}=await U.from("images_book").update(u).eq("id",a).select();if(l)throw l;return s}async function se(a){const{error:u}=await U.from("images_book").delete().eq("id",a);if(u)throw u}async function ie(a){const{TableEngineRequest:u}=await H(()=>import("./buildSupabaseQuery-68dfd2a3.js"),["assets/buildSupabaseQuery-68dfd2a3.js","assets/index-d2d57467.js","assets/index-7f144acc.css"]),s={...a};!s.sort&&!s.order&&(s.order="-id");const l=await u(s,"images_book");try{if(Array.isArray(l==null?void 0:l.rows)){const I=s.page||1,h=s.limit||200,x=(I-1)*h,b=l.rows.map((i,g)=>({id:i.id,title:i.title??null,description:i.description??null,src_img:i.src_img??null,created_at:i.created_at??"",index:x+g,...i}));return{...l,rows:b}}}catch(I){console.log("[getImagesBookTable] normalize error:",I)}return l}const re={class:"flex justify-between items-center mb-4"},ne=n("h2",null,"تصاویر کتاب",-1),le={class:"gap-2 flex justify-center"},ce=n("span",null,"حذف",-1),ue=n("span",null,"ویرایش",-1),de={class:"space-y-4 relative"},me={key:0,class:"absolute inset-0 bg-white/60 z-10 flex items-center justify-center"},pe=n("div",{class:"mb-1 text-sm text-gray-600"},"عنوان",-1),fe=n("div",{class:"mb-1 text-sm text-gray-600"},"توضیحات",-1),_e=n("div",{class:"mb-1 text-sm text-gray-600"},"آپلود تصویر",-1),ge={key:0},ve=n("div",null,"آپلود تصویر",-1),je=K({__name:"index",setup(a){const{TextArea:u}=Z,[s,l]=J(),I=y({columns:te,api:ie,defaultPageLimit:20}),h=y(!1),x=y(!1),b=y(null),i=y([]),g=y(0),d=y({title:null,description:null,src_img:null});function P(){i.value=[],x.value=!1,b.value=null,d.value={title:null,description:null,src_img:null},h.value=!0}function $(){h.value=!1}function z(t){return t.type.startsWith("image/")?t.size/1024/1024<5?!0:(f.error("حجم تصویر باید کمتر از 5MB باشد"),!1):(f.error("فقط فایلهای تصویری مجاز است"),!1)}async function R(t){const{file:e,onSuccess:m,onError:k}=t;try{g.value++;const p=new FormData;p.append("file",e);const B=await fetch("https://node.machartaa.ir/upload/machartaa-img",{method:"POST",body:p,headers:{Authorization:`Bearer ${localStorage.getItem("token")||""}`}});if(!B.ok)throw new Error("خطا در آپلود تصویر");const c=await B.json(),o=c.full_src||c.url||c.src||c.path||c.data&&(c.data.full_src||c.data.url||c.data.src||c.data.path)||"";let v=o;o.startsWith("http")&&(v=o.replace(/^https?:\/\/[^\/]+/,""));const D=v.startsWith("http")?v:`https://node.machartaa.ir${v}`;d.value.src_img=v,i.value=D?[{uid:`${Date.now()}`,name:"image.jpg",status:"done",url:D,response:{path:v}}]:[],m(c),f.success("تصویر با موفقیت آپلود شد!")}catch(p){console.error(p),k(p),f.error("خطا در آپلود تصویر")}finally{g.value=Math.max(0,g.value-1)}}async function S(){var e,m,k;if(g.value>0){f.warning("لطفاً تا پایان آپلود صبر کنید");return}const t={title:((e=d.value.title)==null?void 0:e.trim())||null,description:((m=d.value.description)==null?void 0:m.trim())||null,src_img:((k=d.value.src_img)==null?void 0:k.trim())||null};try{x.value&&b.value?(await oe(b.value,t),f.success("تصویر با موفقیت ویرایش شد")):(await ae(t),f.success("تصویر با موفقیت افزوده شد")),$(),await l()}catch(p){console.error("Error saving image:",p),f.error("خطا در ذخیره تصویر: "+(p.message||"خطای ناشناخته"))}}function j(t){x.value=!0,b.value=t.id;let e=t.src_img||null;e&&e.startsWith("http")&&(e=e.replace(/^https?:\/\/[^\/]+/,"")),d.value={title:t.title||null,description:t.description||null,src_img:e};const m=e?e.startsWith("http")?e:`https://node.machartaa.ir${e}`:null;i.value=m?[{uid:"-1",name:"image.jpg",status:"done",url:m,response:{path:e}}]:[],h.value=!0}function A(t){V.confirm({title:"حذف تصویر",content:"آیا مطمئن هستید که میخواهید این تصویر را حذف کنید؟",okText:"بله، حذف کن",cancelText:"انصراف",okType:"danger",centered:!0,onOk:async()=>{try{await se(t.id),f.success("تصویر با موفقیت حذف شد"),await l()}catch(e){console.error("Error deleting image:",e),f.error("خطا در حذف تصویر: "+(e.message||"خطای ناشناخته"))}}})}return(t,e)=>{const m=F,k=O,p=q,B=W,c=N;return C(),E("div",null,[r(c,null,{default:_(()=>[n("div",re,[ne,r(m,{type:"primary",onClick:P},{default:_(()=>[Q("افزودن تصویر")]),_:1})]),r(k,X(I.value,{ref:"table",onRegister:w(s)}),{action:_(({record:o})=>[n("div",le,[r(w(M),{class:"cursor-pointer"},{title:_(()=>[ce]),default:_(()=>[r(T,{icon:"vuesax-linear:trash",color:"#DC2626",onClick:v=>A(o)},null,8,["onClick"])]),_:2},1024),r(w(M),{class:"cursor-pointer"},{title:_(()=>[ue]),default:_(()=>[r(T,{icon:"vuesax-linear:edit",color:"#1D4ED8",onClick:v=>j(o)},null,8,["onClick"])]),_:2},1024)])]),_:1},16,["onRegister"]),r(B,{visible:h.value,"onUpdate:visible":e[3]||(e[3]=o=>h.value=o),title:x.value?"ویرایش تصویر":"افزودن تصویر",onOk:S,onCancel:$,width:"80%",confirmLoading:g.value>0},{default:_(()=>[n("div",de,[g.value>0?(C(),E("div",me,[r(w(Y),{size:"large"})])):L("",!0),n("div",null,[pe,r(p,{value:d.value.title,"onUpdate:value":e[0]||(e[0]=o=>d.value.title=o),placeholder:"عنوان"},null,8,["value"])]),n("div",null,[fe,r(w(u),{value:d.value.description,"onUpdate:value":e[1]||(e[1]=o=>d.value.description=o),placeholder:"توضیحات",rows:4},null,8,["value"])]),n("div",null,[_e,r(w(ee),{"file-list":i.value,"onUpdate:fileList":e[2]||(e[2]=o=>i.value=o),"before-upload":z,"custom-request":R,accept:"image/*","max-count":1,"list-type":"picture-card"},{default:_(()=>[i.value.length<1?(C(),E("div",ge,[r(T,{icon:"vuesax-linear:image",class:"text-2xl mb-2"}),ve])):L("",!0)]),_:1},8,["file-list"])])])]),_:1},8,["visible","title","confirmLoading"])]),_:1})])}}});export{je as default};
|