Files
machartaa_admin_dist/dist/assets/index-3b04794a.js
T
2026-06-02 20:08:47 +03:30

2 lines
7.8 KiB
JavaScript

import{_ as G}from"./BasicMainCard-6dd48f47.js";import{_ as X}from"./BasicModal.vue_vue_type_style_index_0_lang-c60160bb.js";import{_ as K}from"./BasicInput.vue_vue_type_style_index_0_lang-cb979b48.js";import{_ as Q,u as Y}from"./useBaseTable-c7721a03.js";import{_ as Z}from"./button.vue_vue_type_style_index_0_lang-4dc9d3e9.js";import{I as T}from"./Icon-83dbbbe4.js";import{t as tt}from"./useDataTime-7a9ebe02.js";import{getBooksTable as et,updateBook as at,addBook as ot,deleteBook as lt}from"./books-4527b2b7.js";import{d as st,g as f,o as $,c as I,b as r,w as m,a as o,e as rt,G as it,j as k,k as U,z as nt,t as ut,D as c,H as D}from"./index-9a17e55b.js";import{g as P}from"./index-d0cad351.js";import{M as ct}from"./index-d5d26f82.js";import{T as N}from"./shallowequal-5f876352.js";import{S as dt}from"./index-26298d7e.js";import{U as mt}from"./index-b78b7a1c.js";import"./_plugin-vue_export-helper-09135f79.js";import"./index-58b0d53e.js";import"./index-f08856bb.js";import"./Col-dc7ee55f.js";import"./vnode-0a46e202.js";import"./useState-6ac08ff3.js";import"./useRefs-707c512d.js";import"./isPlainObject-7dd54c5e.js";import"./usePrice-7afab779.js";import"./index-369204e0.js";import"./FormItemContext-101590b9.js";import"./index-4182a454.js";import"./toArray-c5dd79c4.js";import"./pickAttrs-0804445f.js";import"./index-e6e78cc4.js";import"./index-dad403b6.js";const pt=[{title:"ردیف",dataIndex:"id",key:"id",filterable:!1,width:70,align:"center",customRender:p=>p.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:p=>p.record.total_storys??0},{title:"تصویر کاور",dataIndex:"cover",key:"cover",customRender:p=>p.record.cover||"-"},{title:"زمان ایجاد",dataIndex:"created_at",key:"created_at",customRender:p=>tt(p.record.created_at)},{title:"عملیات",dataIndex:"action",key:"action",slot:"action",filterable:!1,align:"center"}],vt={class:"flex justify-between items-center mb-4"},_t=o("h2",null,"کتاب ها",-1),ft={class:"gap-2 flex justify-center"},ht=o("span",null,"حذف",-1),gt=o("span",null,"ویرایش",-1),bt={class:"space-y-4 relative"},xt={key:0,class:"absolute inset-0 bg-white/60 z-10 flex items-center justify-center"},yt=o("div",{class:"mb-1 text-sm text-gray-600"},"عنوان *",-1),kt=o("div",{class:"mb-1 text-sm text-gray-600"},"زیرعنوان",-1),wt=o("div",{class:"mb-1 text-sm text-gray-600"},"آپلود تصویر کاور",-1),Bt={key:0},Ct=o("div",null,"آپلود کاور",-1),$t={key:0,class:"mt-1"},It={class:"h-2 rounded bg-gray-200 overflow-hidden"},Mt={class:"text-xs text-gray-700 font-semibold text-center mt-1"},se=st({__name:"index",setup(p){const L={authorization:`Bearer ${P()||localStorage.getItem("tamin_token")||""}`},[W,R]=Y(),j=f({columns:pt,api:et,defaultPageLimit:20}),x=f(!1),w=f(!1),B=f(null),h=f([]),g=f(0),v=f(0),u=f({title:"",sub_title:null,cover:null});function O(){h.value=[],w.value=!1,B.value=null,u.value={title:"",sub_title:null,cover:null},x.value=!0}function S(){x.value=!1}function V(a){return a.type.startsWith("image/")?a.size/1024/1024<5?!0:(c.error("حجم تصویر باید کمتر از 5MB باشد"),!1):(c.error("فقط فایل‌های تصویری مجاز است"),!1)}async function q(a){const{file:t,onSuccess:i,onError:l,onProgress:d}=a,C=new FormData;C.append("file",t);const M=`${D}/upload/machartaa-img`;v.value=0,g.value++,await new Promise((n,y)=>{const s=new XMLHttpRequest;s.open("POST",M);const J=P()||localStorage.getItem("tamin_token")||"";s.setRequestHeader("Authorization",`Bearer ${J}`),s.upload.onprogress=e=>{if(e.lengthComputable){const _=Math.round(e.loaded/e.total*100);v.value=_,d==null||d({percent:_})}},s.onload=()=>{if(v.value=100,s.status>=200&&s.status<300)try{const e=JSON.parse(s.responseText||"{}"),_=e.full_src||e.url||e.src||e.path||e.data&&(e.data.full_src||e.data.url||e.data.src||e.data.path)||"";let b=_;_!=null&&_.startsWith("http")&&(b=_.replace(/^https?:\/\/[^\/]+/,""));const z=b.startsWith("http")?b:`${D}${b}`;u.value.cover=b,h.value=z?[{uid:`${Date.now()}`,name:"cover.jpg",status:"done",url:z,response:{path:b}}]:[],i==null||i(e,s),c.success("کاور با موفقیت آپلود شد!"),n()}catch(e){l==null||l(e,s),y(e)}else{const e=new Error("خطا در آپلود تصویر");l==null||l(e,s),y(e)}},s.onerror=()=>{const e=new Error("خطا در آپلود کاور");l==null||l(e,s),y(e)},s.onloadend=()=>{g.value=Math.max(0,g.value-1),v.value=0},s.send(C)})}function E(a){return{width:`${Math.max(0,Math.min(100,a))}%`}}async function H(){var t,i,l;if(!((t=u.value.title)!=null&&t.trim())){c.error("لطفاً عنوان کتاب را وارد کنید");return}if(g.value>0){c.warning("لطفاً تا پایان آپلود صبر کنید");return}const a={title:u.value.title.trim(),sub_title:((i=u.value.sub_title)==null?void 0:i.trim())||null,cover:((l=u.value.cover)==null?void 0:l.trim())||null};try{w.value&&B.value?(await at(B.value,a),c.success("کتاب با موفقیت ویرایش شد")):(await ot(a),c.success("کتاب با موفقیت افزوده شد")),S(),await R()}catch(d){console.error("Error saving book:",d),c.error("خطا در ذخیره کتاب: "+(d.message||"خطای ناشناخته"))}}function A(a){w.value=!0,B.value=a.id;let t=a.cover||null;t&&t.startsWith("http")&&(t=t.replace(/^https?:\/\/[^\/]+/,"")),u.value={title:a.title||"",sub_title:a.sub_title||null,cover:t};const i=t?t.startsWith("http")?t:`${D}${t}`:null;h.value=i?[{uid:"-1",name:"cover.jpg",status:"done",url:i,response:{path:t}}]:[],x.value=!0}function F(a){ct.confirm({title:"حذف کتاب",content:`آیا مطمئن هستید که می‌خواهید کتاب "${a.title}" را حذف کنید؟`,okText:"بله، حذف کن",cancelText:"انصراف",okType:"danger",centered:!0,onOk:async()=>{try{await lt(a.id),c.success("کتاب با موفقیت حذف شد"),await R()}catch(t){console.error("Error deleting book:",t),c.error("خطا در حذف کتاب: "+(t.message||"خطای ناشناخته"))}}})}return(a,t)=>{const i=Z,l=Q,d=K,C=X,M=G;return $(),I("div",null,[r(M,null,{default:m(()=>[o("div",vt,[_t,r(i,{type:"primary",onClick:O},{default:m(()=>[rt("افزودن کتاب")]),_:1})]),r(l,it(j.value,{ref:"table",onRegister:k(W)}),{action:m(({record:n})=>[o("div",ft,[r(k(N),{class:"cursor-pointer"},{title:m(()=>[ht]),default:m(()=>[r(T,{icon:"vuesax-linear:trash",color:"#DC2626",onClick:y=>F(n)},null,8,["onClick"])]),_:2},1024),r(k(N),{class:"cursor-pointer"},{title:m(()=>[gt]),default:m(()=>[r(T,{icon:"vuesax-linear:edit",color:"#1D4ED8",onClick:y=>A(n)},null,8,["onClick"])]),_:2},1024)])]),_:1},16,["onRegister"]),r(C,{visible:x.value,"onUpdate:visible":t[3]||(t[3]=n=>x.value=n),title:w.value?"ویرایش کتاب":"افزودن کتاب",onOk:H,onCancel:S,width:"80%",confirmLoading:g.value>0},{default:m(()=>[o("div",bt,[g.value>0?($(),I("div",xt,[r(k(dt),{size:"large"})])):U("",!0),o("div",null,[yt,r(d,{value:u.value.title,"onUpdate:value":t[0]||(t[0]=n=>u.value.title=n),placeholder:"عنوان کتاب"},null,8,["value"])]),o("div",null,[kt,r(d,{value:u.value.sub_title,"onUpdate:value":t[1]||(t[1]=n=>u.value.sub_title=n),placeholder:"زیرعنوان کتاب"},null,8,["value"])]),o("div",null,[wt,r(k(mt),{"file-list":h.value,"onUpdate:fileList":t[2]||(t[2]=n=>h.value=n),"before-upload":V,"custom-request":q,headers:L,accept:"image/*","max-count":1,"list-type":"picture-card"},{default:m(()=>[h.value.length<1?($(),I("div",Bt,[r(T,{icon:"vuesax-linear:image",class:"text-2xl mb-2"}),Ct])):U("",!0)]),_:1},8,["file-list"]),v.value>0&&v.value<100?($(),I("div",$t,[o("div",It,[o("div",{class:"h-2 bg-blue-500 transition-all",style:nt(E(v.value))},null,4)]),o("div",Mt,ut(v.value)+"%",1)])):U("",!0)])])]),_:1},8,["visible","title","confirmLoading"])]),_:1})])}}});export{se as default};