2 lines
11 KiB
JavaScript
2 lines
11 KiB
JavaScript
import{_ as ee}from"./BasicMainCard-33e38576.js";import{_ as te}from"./BasicModal.vue_vue_type_style_index_0_lang-aed8f5e4.js";import{_ as ae}from"./BasicInput.vue_vue_type_style_index_0_lang-e6a4e582.js";import{_ as ie,u as le}from"./useBaseTable-e7a67916.js";import{_ as se}from"./button.vue_vue_type_style_index_0_lang-f90e25b2.js";import{I as D}from"./Icon-29e38d16.js";import{t as oe}from"./useDataTime-6e234adb.js";import{_ as ne,O as re,P as ue,Q as ce,d as me,i as g,o as C,c as R,e as o,w as m,b as i,f as j,R as de,l as y,t as pe,n as A,C as _e,H as h,S as ve}from"./index-1ba0f9ec.js";import{g as L}from"./convert-2ad76038.js";import{g as E}from"./index-c4537a3b.js";import{M as fe}from"./index-ec322234.js";import{S as ge}from"./index-4bff02a6.js";import{C as he}from"./index-e22339b6.js";import{T as N}from"./isSymbol-355a1404.js";import{U as xe}from"./index-f4084f09.js";import"./Grid-660f1a55.js";import"./index-f22a4554.js";import"./_plugin-vue_export-helper-31e07528.js";import"./shallowequal-e0d9eafb.js";import"./index-3f6d5caa.js";import"./vnode-c4e67237.js";import"./index-73cafb1e.js";import"./useState-dcd360f8.js";import"./useRefs-5e33302c.js";import"./_flatRest-7877cdf8.js";import"./isMobile-e2e89480.js";import"./omit-f5d28cd3.js";import"./index-c136a321.js";import"./Col-f8806a10.js";import"./styleChecker-19ce40ea.js";import"./isPlainObject-e945bc1f.js";import"./usePrice-bc935b83.js";import"./index-aafc0fe2.js";import"./SearchOutlined-95278fe5.js";import"./FormItemContext-33ef1221.js";import"./index-8f2b7e91.js";import"./updateLocale-a8654270.js";import"./useMemo-ee45fb46.js";import"./lodash-27f814e6.js";import"./BaseSwitch.vue_vue_type_script_setup_true_lang-36a1ea6e.js";import"./index-c8127d4e.js";import"./Badge-8a8eeb58.js";import"./isNumeric-3f69e2aa.js";import"./index-a8579634.js";import"./index-e0664925.js";import"./toArray-41940180.js";import"./pickAttrs-0ddf9a54.js";import"./index-175b83cf.js";import"./DialogWrap-394d7eb0.js";import"./index-876da578.js";import"./LeftOutlined-93011b30.js";import"./css-aae66f86.js";import"./index-83b891e2.js";import"./index-65e13d19.js";const V=[{title:"ردیف",dataIndex:"id",key:"id",filterable:!1,width:70,align:"center",customRender:s=>s.record.index+1},{title:"عنوان",dataIndex:"title",key:"title"},{title:"لینک",dataIndex:"link_url",key:"link_url",customRender:s=>s.record.link_url||"-"},{title:"ترتیب",dataIndex:"sort_order",key:"sort_order",align:"center",width:90,customRender:s=>String(s.record.sort_order??0)},{title:"فعال",dataIndex:"active",key:"active",align:"center",width:90,customRender:s=>s.record.active!==!1?"بله":"خیر"},{title:"زمان ایجاد",dataIndex:"created_at",key:"created_at",customRender:s=>oe(s.record.created_at)},{title:"عملیات",dataIndex:"action",key:"action",slot:"action",filterable:!1,align:"center"}];async function ye(s){const f=await re("home_slider_slides",s);return Array.isArray(f)?f:[f]}async function q(s,f){const d=await ue("home_slider_slides",s,{...f,updated_at:new Date().toISOString()});return Array.isArray(d)?d:[d]}async function ke(s){await ce("home_slider_slides",s)}async function be(s){const{TableEngineRequest:f}=await ne(()=>import("./buildSupabaseQuery-2323f568.js"),["assets/buildSupabaseQuery-2323f568.js","assets/index-1ba0f9ec.js","assets/index-cb402307.css"]),d={...s};!d.sort&&!d.order&&(d.order="sort_order");const _=await f(d,"home_slider_slides");try{if(Array.isArray(_==null?void 0:_.rows)){const T=d.page||1,k=d.limit||20,w=(T-1)*k,I=_.rows.map((r,x)=>({...r,title:r.title??"",image:r.image??null,link_url:r.link_url??null,sort_order:Number(r.sort_order??0),active:r.active!==!1,index:w+x}));return{..._,rows:I}}}catch(T){console.error("[getHomeSliderTable]",T)}return _}const we={class:"flex flex-wrap justify-between items-start gap-3 mb-4"},Ie=i("div",null,[i("h2",{class:"m-0"},"اسلایدر صفحه خانه"),i("p",{class:"m-0 mt-1 text-sm text-gray-500"}," اسلایدهای تصویر عریض صفحه خانه. بنرهای اطلاعرسانی ویدیویی هم در همین اسلایدشو نمایش داده میشوند. ")],-1),Se=["src"],Ce={key:1},Re={class:"gap-2 flex justify-center"},Te=i("span",null,"حذف",-1),Ue=i("span",null,"ویرایش",-1),Be={class:"space-y-4 relative"},$e={key:0,class:"absolute inset-0 bg-white/60 z-10 flex items-center justify-center"},De=i("div",{class:"mb-1 text-sm text-gray-600"},"عنوان",-1),Pe=i("div",{class:"mb-1 text-sm text-gray-600"},"لینک کلیک (اختیاری)",-1),Me=i("p",{class:"m-0 mt-1 text-xs text-gray-500"}," مسیر داخلی با / شروع شود؛ لینک خارجی با http/https. ",-1),Ae={class:"grid grid-cols-2 gap-3"},Le=i("div",{class:"mb-1 text-sm text-gray-600"},"ترتیب نمایش",-1),Ne={class:"flex items-end pb-1"},Oe={class:"rounded-xl border-2 border-dashed border-emerald-400 bg-emerald-50 p-4 space-y-3"},ze=i("div",null,[i("div",{class:"text-sm font-bold text-emerald-800"},"تصویر اسلاید *"),i("p",{class:"m-0 mt-1 text-xs text-gray-600 leading-5"}," تصویر عریض (ترجیحاً نسبت حدود ۱۶:۹) برای اسلایدشو صفحه خانه. ")],-1),He={key:0},je=i("div",null,"آپلود تصویر",-1),Ee={key:0,class:"mt-1"},Ve={class:"h-2 rounded bg-gray-200 overflow-hidden"},qt=me({__name:"index",setup(s){const f={authorization:`Bearer ${E()||localStorage.getItem("tamin_token")||""}`},[d,_]=le(),T=g({columns:[...V.slice(0,2),{title:"تصویر",dataIndex:"image",key:"image",slot:"image",align:"center",width:130,filterable:!1},...V.slice(2)],api:be,defaultPageLimit:20}),k=g(!1),w=g(!1),I=g(null),r=g([]),x=g(0),b=g(0),U=g("0"),n=g({title:"",image:"",link_url:null,sort_order:0,active:!0});function F(){r.value=[],w.value=!1,I.value=null,U.value="0",n.value={title:"",image:"",link_url:null,sort_order:0,active:!0},k.value=!0}function O(){k.value=!1}function J(t){return t.type.startsWith("image/")?t.size/1024/1024<5?!0:(h.error("حجم تصویر باید کمتر از 5MB باشد"),!1):(h.error("فقط فایلهای تصویری مجاز است"),!1)}function z(t){return t?t.startsWith("http")?t.replace(/^https?:\/\/[^\/]+/,""):t:null}async function W(t){const{file:a,onSuccess:p,onError:u,onProgress:v}=t,B=new FormData;B.append("file",a);const P=`${ve}/upload/machartaa-img`;b.value=0,x.value++,await new Promise((e,S)=>{const c=new XMLHttpRequest;c.open("POST",P);const Z=E()||localStorage.getItem("tamin_token")||"";c.setRequestHeader("Authorization",`Bearer ${Z}`),c.upload.onprogress=l=>{if(l.lengthComputable){const $=Math.round(l.loaded/l.total*100);b.value=$,v==null||v({percent:$})}},c.onload=()=>{if(b.value=100,c.status>=200&&c.status<300)try{const l=JSON.parse(c.responseText||"{}"),$=l.full_src||l.url||l.src||l.path||l.data&&(l.data.full_src||l.data.url||l.data.src||l.data.path)||"",M=z($)||"",H=L(M);n.value.image=M,r.value=H?[{uid:`${Date.now()}`,name:"slide.jpg",status:"done",url:H,response:{path:M}}]:[],p==null||p(l,c),h.success("تصویر اسلاید آپلود شد"),e()}catch(l){u==null||u(l,c),S(l)}else{const l=new Error("خطا در آپلود تصویر");u==null||u(l,c),S(l)}},c.onerror=()=>{const l=new Error("خطا در آپلود تصویر");u==null||u(l,c),S(l)},c.onloadend=()=>{x.value=Math.max(0,x.value-1),b.value=0},c.send(B)})}function Q(){n.value.image="",r.value=[]}function X(t){w.value=!0,I.value=t.id;const a=z(t.image||null)||"";U.value=String(t.sort_order??0),n.value={title:t.title||"",image:a,link_url:t.link_url||null,sort_order:Number(t.sort_order??0),active:t.active!==!1};const p=a?L(a):null;r.value=p?[{uid:"-slide",name:"slide.jpg",status:"done",url:p,response:{path:a}}]:[],k.value=!0}function G(t){fe.confirm({title:"حذف اسلاید",content:`آیا از حذف «${t.title||"این اسلاید"}» مطمئن هستید؟`,okText:"حذف",cancelText:"انصراف",onOk:async()=>{await ke(t.id),h.success("حذف شد"),_()}})}async function K(t){const a=t.active===!1;await q(t.id,{active:a}),h.success(a?"اسلاید فعال شد":"اسلاید غیرفعال شد"),_()}async function Y(){var p,u,v;if(!((p=n.value.image)!=null&&p.trim())){h.warning("تصویر اسلاید الزامی است");return}if(x.value>0){h.warning("لطفاً تا پایان آپلود صبر کنید");return}const t=Number(U.value),a={title:((u=n.value.title)==null?void 0:u.trim())||"",image:n.value.image.trim(),link_url:((v=n.value.link_url)==null?void 0:v.trim())||null,sort_order:Number.isFinite(t)?t:0,active:n.value.active!==!1};w.value&&I.value?(await q(I.value,a),h.success("ویرایش شد")):(await ye(a),h.success("افزوده شد")),O(),_()}return(t,a)=>{const p=se,u=ie,v=ae,B=te,P=ee;return C(),R("div",null,[o(P,null,{default:m(()=>[i("div",we,[Ie,o(p,{type:"primary",onClick:F},{default:m(()=>[j("افزودن اسلاید")]),_:1})]),o(u,de(T.value,{ref:"table",onRegister:y(d)}),{image:m(({record:e})=>[e.image?(C(),R("img",{key:0,src:y(L)(e.image),alt:"",class:"w-24 h-12 object-cover rounded"},null,8,Se)):(C(),R("span",Ce,"-"))]),action:m(({record:e})=>[i("div",Re,[o(y(N),{class:"cursor-pointer"},{title:m(()=>[i("span",null,pe((e==null?void 0:e.active)===!1?"فعالسازی":"غیرفعالسازی"),1)]),default:m(()=>[o(D,{icon:(e==null?void 0:e.active)===!1?"vuesax-linear:eye":"vuesax-linear:eye-slash",color:(e==null?void 0:e.active)===!1?"#10B981":"#F59E0B",onClick:S=>K(e)},null,8,["icon","color","onClick"])]),_:2},1024),o(y(N),{class:"cursor-pointer"},{title:m(()=>[Te]),default:m(()=>[o(D,{icon:"vuesax-linear:trash",color:"#DC2626",onClick:S=>G(e)},null,8,["onClick"])]),_:2},1024),o(y(N),{class:"cursor-pointer"},{title:m(()=>[Ue]),default:m(()=>[o(D,{icon:"vuesax-linear:edit",color:"#1D4ED8",onClick:S=>X(e)},null,8,["onClick"])]),_:2},1024)])]),_:1},16,["onRegister"]),o(B,{visible:k.value,"onUpdate:visible":a[5]||(a[5]=e=>k.value=e),title:w.value?"ویرایش اسلاید":"افزودن اسلاید",onOk:Y,onCancel:O,width:"640px",confirmLoading:x.value>0},{default:m(()=>[i("div",Be,[x.value>0?(C(),R("div",$e,[o(y(ge),{size:"large"})])):A("",!0),i("div",null,[De,o(v,{value:n.value.title,"onUpdate:value":a[0]||(a[0]=e=>n.value.title=e),placeholder:"مثلاً خبرهای داغ"},null,8,["value"])]),i("div",null,[Pe,o(v,{value:n.value.link_url,"onUpdate:value":a[1]||(a[1]=e=>n.value.link_url=e),placeholder:"مثلاً /announcements/7 یا https://example.com"},null,8,["value"]),Me]),i("div",Ae,[i("div",null,[Le,o(v,{value:U.value,"onUpdate:value":a[2]||(a[2]=e=>U.value=e),type:"number",placeholder:"0"},null,8,["value"])]),i("div",Ne,[o(y(he),{checked:n.value.active,"onUpdate:checked":a[3]||(a[3]=e=>n.value.active=e)},{default:m(()=>[j("فعال")]),_:1},8,["checked"])])]),i("div",Oe,[ze,o(y(xe),{"file-list":r.value,"onUpdate:fileList":a[4]||(a[4]=e=>r.value=e),"before-upload":J,"custom-request":W,headers:f,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",onRemove:Q},{default:m(()=>[r.value.length<1?(C(),R("div",He,[o(D,{icon:"vuesax-linear:image",class:"text-2xl mb-2"}),je])):A("",!0)]),_:1},8,["file-list"]),b.value>0&&b.value<100?(C(),R("div",Ee,[i("div",Ve,[i("div",{class:"h-2 bg-emerald-500 transition-all",style:_e({width:`${b.value}%`})},null,4)])])):A("",!0)])])]),_:1},8,["visible","title","confirmLoading"])]),_:1})])}}});export{qt as default};
|