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

2 lines
6.7 KiB
JavaScript

import{_ as S}from"./BasicMainCard-1f376738.js";import{M as W,_ as z}from"./BasicModal.vue_vue_type_style_index_0_lang-6383d729.js";import{_ as V}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 A}from"./button.vue_vue_type_style_index_0_lang-55d2b252.js";import{I as k}from"./Icon-8d3280fe.js";import{u as F}from"./useBaseTable-3aeb2499.js";import{t as q}from"./useDataTime-0a2e32aa.js";import{getBooksTable as J,updateBook as G,addBook as H,deleteBook as K}from"./books-2a9fed20.js";import{T as U}from"./styleChecker-f8db9dd1.js";import{S as Q}from"./index-95f4305d.js";import{U as X}from"./index-7d52e501.js";import{d as Y,r as p,o as w,c as B,b as o,w as u,a as l,e as Z,a2 as tt,L as g,N as M,a0 as n}from"./index-d2d57467.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 et=[{title:"ردیف",dataIndex:"id",key:"id",filterable:!1,width:70,align:"center",customRender:d=>d.record.index+1},{title:"عنوان",dataIndex:"title",key:"title"},{title:"زیرعنوان",dataIndex:"sub_title",key:"sub_title"},{title:"تعداد قصه ها",dataIndex:"total_storys",key:"total_storys",align:"center",width:120,customRender:d=>d.record.total_storys??0},{title:"تصویر کاور",dataIndex:"cover",key:"cover",customRender:d=>d.record.cover||"-"},{title:"تاریخ ایجاد",dataIndex:"created_at",key:"created_at",customRender:d=>q(d.record.created_at)},{title:"عملیات",dataIndex:"action",key:"action",slot:"action",filterable:!1,align:"center"}],at={class:"flex justify-between items-center mb-4"},ot=l("h2",null,"کتاب ها",-1),lt={class:"gap-2 flex justify-center"},st=l("span",null,"حذف",-1),rt=l("span",null,"ویرایش",-1),it={class:"space-y-4 relative"},nt={key:0,class:"absolute inset-0 bg-white/60 z-10 flex items-center justify-center"},ct=l("div",{class:"mb-1 text-sm text-gray-600"},"عنوان *",-1),ut=l("div",{class:"mb-1 text-sm text-gray-600"},"زیرعنوان",-1),dt=l("div",{class:"mb-1 text-sm text-gray-600"},"آپلود تصویر کاور",-1),mt={key:0},pt=l("div",null,"آپلود کاور",-1),Nt=Y({__name:"index",setup(d){const[C,I]=F(),E=p({columns:et,api:J,defaultPageLimit:20}),h=p(!1),b=p(!1),y=p(null),v=p([]),f=p(0),r=p({title:"",sub_title:null,cover:null});function L(){v.value=[],b.value=!1,y.value=null,r.value={title:"",sub_title:null,cover:null},h.value=!0}function T(){h.value=!1}function D(e){return e.type.startsWith("image/")?e.size/1024/1024<5?!0:(n.error("حجم تصویر باید کمتر از 5MB باشد"),!1):(n.error("فقط فایل‌های تصویری مجاز است"),!1)}async function j(e){const{file:t,onSuccess:c,onError:_}=e;try{f.value++;const i=new FormData;i.append("file",t);const x=await fetch("https://node.machartaa.ir/upload/machartaa-img",{method:"POST",body:i,headers:{Authorization:`Bearer ${localStorage.getItem("token")||""}`}});if(!x.ok)throw new Error("خطا در آپلود تصویر");const s=await x.json(),a=s.full_src||s.url||s.src||s.path||s.data&&(s.data.full_src||s.data.url||s.data.src||s.data.path)||"";let m=a;a.startsWith("http")&&(m=a.replace(/^https?:\/\/[^\/]+/,""));const $=m.startsWith("http")?m:`https://node.machartaa.ir${m}`;r.value.cover=m,v.value=$?[{uid:`${Date.now()}`,name:"cover.jpg",status:"done",url:$,response:{path:m}}]:[],c(s),n.success("کاور با موفقیت آپلود شد!")}catch(i){console.error(i),_(i),n.error("خطا در آپلود کاور")}finally{f.value=Math.max(0,f.value-1)}}async function N(){var t,c,_;if(!((t=r.value.title)!=null&&t.trim())){n.error("لطفاً عنوان کتاب را وارد کنید");return}if(f.value>0){n.warning("لطفاً تا پایان آپلود صبر کنید");return}const e={title:r.value.title.trim(),sub_title:((c=r.value.sub_title)==null?void 0:c.trim())||null,cover:((_=r.value.cover)==null?void 0:_.trim())||null};try{b.value&&y.value?(await G(y.value,e),n.success("کتاب با موفقیت ویرایش شد")):(await H(e),n.success("کتاب با موفقیت افزوده شد")),T(),await I()}catch(i){console.error("Error saving book:",i),n.error("خطا در ذخیره کتاب: "+(i.message||"خطای ناشناخته"))}}function P(e){b.value=!0,y.value=e.id;let t=e.cover||null;t&&t.startsWith("http")&&(t=t.replace(/^https?:\/\/[^\/]+/,"")),r.value={title:e.title||"",sub_title:e.sub_title||null,cover:t};const c=t?t.startsWith("http")?t:`https://node.machartaa.ir${t}`:null;v.value=c?[{uid:"-1",name:"cover.jpg",status:"done",url:c,response:{path:t}}]:[],h.value=!0}function R(e){W.confirm({title:"حذف کتاب",content:`آیا مطمئن هستید که می‌خواهید کتاب "${e.title}" را حذف کنید؟`,okText:"بله، حذف کن",cancelText:"انصراف",okType:"danger",centered:!0,onOk:async()=>{try{await K(e.id),n.success("کتاب با موفقیت حذف شد"),await I()}catch(t){console.error("Error deleting book:",t),n.error("خطا در حذف کتاب: "+(t.message||"خطای ناشناخته"))}}})}return(e,t)=>{const c=A,_=O,i=V,x=z,s=S;return w(),B("div",null,[o(s,null,{default:u(()=>[l("div",at,[ot,o(c,{type:"primary",onClick:L},{default:u(()=>[Z("افزودن کتاب")]),_:1})]),o(_,tt(E.value,{ref:"table",onRegister:g(C)}),{action:u(({record:a})=>[l("div",lt,[o(g(U),{class:"cursor-pointer"},{title:u(()=>[st]),default:u(()=>[o(k,{icon:"vuesax-linear:trash",color:"#DC2626",onClick:m=>R(a)},null,8,["onClick"])]),_:2},1024),o(g(U),{class:"cursor-pointer"},{title:u(()=>[rt]),default:u(()=>[o(k,{icon:"vuesax-linear:edit",color:"#1D4ED8",onClick:m=>P(a)},null,8,["onClick"])]),_:2},1024)])]),_:1},16,["onRegister"]),o(x,{visible:h.value,"onUpdate:visible":t[3]||(t[3]=a=>h.value=a),title:b.value?"ویرایش کتاب":"افزودن کتاب",onOk:N,onCancel:T,width:"80%",confirmLoading:f.value>0},{default:u(()=>[l("div",it,[f.value>0?(w(),B("div",nt,[o(g(Q),{size:"large"})])):M("",!0),l("div",null,[ct,o(i,{value:r.value.title,"onUpdate:value":t[0]||(t[0]=a=>r.value.title=a),placeholder:"عنوان کتاب"},null,8,["value"])]),l("div",null,[ut,o(i,{value:r.value.sub_title,"onUpdate:value":t[1]||(t[1]=a=>r.value.sub_title=a),placeholder:"زیرعنوان کتاب"},null,8,["value"])]),l("div",null,[dt,o(g(X),{"file-list":v.value,"onUpdate:fileList":t[2]||(t[2]=a=>v.value=a),"before-upload":D,"custom-request":j,accept:"image/*","max-count":1,"list-type":"picture-card"},{default:u(()=>[v.value.length<1?(w(),B("div",mt,[o(k,{icon:"vuesax-linear:image",class:"text-2xl mb-2"}),pt])):M("",!0)]),_:1},8,["file-list"])])])]),_:1},8,["visible","title","confirmLoading"])]),_:1})])}}});export{Nt as default};