Files
machartaa_admin_dist/dist/assets/index-cb7c3120.js
T
2026-10-05 18:40:49 +03:30

2 lines
8.6 KiB
JavaScript

import{_ as X}from"./BasicMainCard-e8fae2e0.js";import{_ as G}from"./BasicModal.vue_vue_type_style_index_0_lang-f76fec1b.js";import{_ as K}from"./BasicInput.vue_vue_type_style_index_0_lang-644caa39.js";import{_ as Q,u as Y}from"./useBaseTable-45427402.js";import{_ as Z}from"./button.vue_vue_type_style_index_0_lang-e7cef717.js";import{I as T}from"./Icon-b8613529.js";import{t as tt}from"./useDataTime-7db5a46b.js";import{getBooksTable as et,updateBook as ot,addBook as at,deleteBook as lt}from"./books-3d394903.js";import{d as it,i as _,o as I,c as M,e as s,w as d,b as a,f as st,L as rt,l as y,n as $,C as nt,t as ut,H as c,M as ct}from"./index-166b4ef1.js";import{g as P}from"./convert-2ad76038.js";import{g as j}from"./index-b9bbd6f2.js";import{M as mt}from"./index-58b86fb2.js";import{S as dt}from"./index-de862045.js";import{T as z}from"./isSymbol-c953ccc2.js";import{U as pt}from"./index-6c7cbb7d.js";import"./Grid-47180f92.js";import"./index-366f722a.js";import"./_plugin-vue_export-helper-e5be29c6.js";import"./shallowequal-78a96afc.js";import"./index-7f046693.js";import"./vnode-c85f1a09.js";import"./index-011e0893.js";import"./useState-43a565ec.js";import"./useRefs-ca4d56b6.js";import"./_flatRest-ae97161b.js";import"./isMobile-e2e89480.js";import"./omit-55909a9d.js";import"./index-b6f0378e.js";import"./Col-6dc2da7a.js";import"./styleChecker-2eddf97d.js";import"./isPlainObject-ed4c9976.js";import"./usePrice-bc935b83.js";import"./index-7005b758.js";import"./SearchOutlined-3d6399d7.js";import"./FormItemContext-0e89b3aa.js";import"./index-08810a1f.js";import"./updateLocale-6eb93789.js";import"./useMemo-99a24173.js";import"./lodash-593efeb6.js";import"./BaseSwitch.vue_vue_type_script_setup_true_lang-6e462f47.js";import"./index-8bcb6210.js";import"./Badge-a3c7a3a7.js";import"./isNumeric-3f69e2aa.js";import"./index-ad625a72.js";import"./index-1465c5c8.js";import"./index-75be736e.js";import"./DialogWrap-88ddfe3e.js";import"./pickAttrs-5cd7ef1f.js";import"./css-aae66f86.js";import"./index-3ad11dd3.js";import"./toArray-cf38ce67.js";import"./index-991e4e35.js";import"./index-f98d2511.js";import"./index-dfddf43f.js";const vt=[{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"}],ft={class:"flex justify-between items-center mb-4"},_t=a("h2",null,"کتاب ها",-1),gt={class:"gap-2 flex justify-center"},ht=a("span",null,"حذف",-1),bt=a("span",null,"ویرایش",-1),xt={class:"space-y-4 relative"},yt={key:0,class:"absolute inset-0 bg-white/60 z-10 flex items-center justify-center"},kt=a("div",{class:"mb-1 text-sm text-gray-600"},"عنوان *",-1),wt=a("div",{class:"mb-1 text-sm text-gray-600"},"زیرعنوان",-1),Bt=a("div",{class:"mb-1 text-sm text-gray-600"},"آپلود تصویر کاور",-1),Ct={key:0},It=a("div",null,"آپلود کاور",-1),Mt={key:0,class:"mt-1"},Ut={class:"h-2 rounded bg-gray-200 overflow-hidden"},Tt={class:"text-xs text-gray-700 font-semibold text-center mt-1"},$e=it({__name:"index",setup(p){const L={authorization:`Bearer ${j()||localStorage.getItem("tamin_token")||""}`},[N,R]=Y(),O=_({columns:vt,api:et,defaultPageLimit:20}),b=_(!1),k=_(!1),w=_(null),g=_([]),h=_(0),v=_(0),u=_({title:"",sub_title:null,cover:null});function V(){g.value=[],k.value=!1,w.value=null,u.value={title:"",sub_title:null,cover:null},b.value=!0}function D(){b.value=!1}function q(o){return o.type.startsWith("image/")?o.size/1024/1024<5?!0:(c.error("حجم تصویر باید کمتر از 5MB باشد"),!1):(c.error("فقط فایل‌های تصویری مجاز است"),!1)}async function E(o){const{file:t,onSuccess:r,onError:l,onProgress:m}=o,B=new FormData;B.append("file",t);const U=`${ct}/upload/machartaa-img`;v.value=0,h.value++,await new Promise((n,x)=>{const i=new XMLHttpRequest;i.open("POST",U);const J=j()||localStorage.getItem("tamin_token")||"";i.setRequestHeader("Authorization",`Bearer ${J}`),i.upload.onprogress=e=>{if(e.lengthComputable){const f=Math.round(e.loaded/e.total*100);v.value=f,m==null||m({percent:f})}},i.onload=()=>{if(v.value=100,i.status>=200&&i.status<300)try{const e=JSON.parse(i.responseText||"{}"),f=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 C=f;f!=null&&f.startsWith("http")&&(C=f.replace(/^https?:\/\/[^\/]+/,""));const S=P(C);u.value.cover=C,g.value=S?[{uid:`${Date.now()}`,name:"cover.jpg",status:"done",url:S,response:{path:C}}]:[],r==null||r(e,i),c.success("کاور با موفقیت آپلود شد!"),n()}catch(e){l==null||l(e,i),x(e)}else{const e=new Error("خطا در آپلود تصویر");l==null||l(e,i),x(e)}},i.onerror=()=>{const e=new Error("خطا در آپلود کاور");l==null||l(e,i),x(e)},i.onloadend=()=>{h.value=Math.max(0,h.value-1),v.value=0},i.send(B)})}function H(o){return{width:`${Math.max(0,Math.min(100,o))}%`}}async function W(){var t,r,l;if(!((t=u.value.title)!=null&&t.trim())){c.error("لطفاً عنوان کتاب را وارد کنید");return}if(h.value>0){c.warning("لطفاً تا پایان آپلود صبر کنید");return}const o={title:u.value.title.trim(),sub_title:((r=u.value.sub_title)==null?void 0:r.trim())||null,cover:((l=u.value.cover)==null?void 0:l.trim())||null};try{k.value&&w.value?(await ot(w.value,o),c.success("کتاب با موفقیت ویرایش شد")):(await at(o),c.success("کتاب با موفقیت افزوده شد")),D(),await R()}catch(m){console.error("Error saving book:",m),c.error("خطا در ذخیره کتاب: "+(m.message||"خطای ناشناخته"))}}function A(o){k.value=!0,w.value=o.id;let t=o.cover||null;t&&t.startsWith("http")&&(t=t.replace(/^https?:\/\/[^\/]+/,"")),u.value={title:o.title||"",sub_title:o.sub_title||null,cover:t};const r=t?P(t):null;g.value=r?[{uid:"-1",name:"cover.jpg",status:"done",url:r,response:{path:t}}]:[],b.value=!0}function F(o){mt.confirm({title:"حذف کتاب",content:`آیا مطمئن هستید که می‌خواهید کتاب "${o.title}" را حذف کنید؟`,okText:"بله، حذف کن",cancelText:"انصراف",okType:"danger",centered:!0,onOk:async()=>{try{await lt(o.id),c.success("کتاب با موفقیت حذف شد"),await R()}catch(t){console.error("Error deleting book:",t),c.error("خطا در حذف کتاب: "+(t.message||"خطای ناشناخته"))}}})}return(o,t)=>{const r=Z,l=Q,m=K,B=G,U=X;return I(),M("div",null,[s(U,null,{default:d(()=>[a("div",ft,[_t,s(r,{type:"primary",onClick:V},{default:d(()=>[st("افزودن کتاب")]),_:1})]),s(l,rt(O.value,{ref:"table",onRegister:y(N)}),{action:d(({record:n})=>[a("div",gt,[s(y(z),{class:"cursor-pointer"},{title:d(()=>[ht]),default:d(()=>[s(T,{icon:"vuesax-linear:trash",color:"#DC2626",onClick:x=>F(n)},null,8,["onClick"])]),_:2},1024),s(y(z),{class:"cursor-pointer"},{title:d(()=>[bt]),default:d(()=>[s(T,{icon:"vuesax-linear:edit",color:"#1D4ED8",onClick:x=>A(n)},null,8,["onClick"])]),_:2},1024)])]),_:1},16,["onRegister"]),s(B,{visible:b.value,"onUpdate:visible":t[3]||(t[3]=n=>b.value=n),title:k.value?"ویرایش کتاب":"افزودن کتاب",onOk:W,onCancel:D,width:"80%",confirmLoading:h.value>0},{default:d(()=>[a("div",xt,[h.value>0?(I(),M("div",yt,[s(y(dt),{size:"large"})])):$("",!0),a("div",null,[kt,s(m,{value:u.value.title,"onUpdate:value":t[0]||(t[0]=n=>u.value.title=n),placeholder:"عنوان کتاب"},null,8,["value"])]),a("div",null,[wt,s(m,{value:u.value.sub_title,"onUpdate:value":t[1]||(t[1]=n=>u.value.sub_title=n),placeholder:"زیرعنوان کتاب"},null,8,["value"])]),a("div",null,[Bt,s(y(pt),{"file-list":g.value,"onUpdate:fileList":t[2]||(t[2]=n=>g.value=n),"before-upload":q,"custom-request":E,headers:L,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"},{default:d(()=>[g.value.length<1?(I(),M("div",Ct,[s(T,{icon:"vuesax-linear:image",class:"text-2xl mb-2"}),It])):$("",!0)]),_:1},8,["file-list"]),v.value>0&&v.value<100?(I(),M("div",Mt,[a("div",Ut,[a("div",{class:"h-2 bg-blue-500 transition-all",style:nt(H(v.value))},null,4)]),a("div",Tt,ut(v.value)+"%",1)])):$("",!0)])])]),_:1},8,["visible","title","confirmLoading"])]),_:1})])}}});export{$e as default};