2 lines
20 KiB
JavaScript
2 lines
20 KiB
JavaScript
import{_ as xe}from"./BasicMainCard-5dbf2123.js";import{_ as be}from"./BasicModal.vue_vue_type_style_index_0_lang-5a281b97.js";import{_ as ye}from"./BasicTextArea.vue_vue_type_style_index_0_lang-314e342a.js";import{a as te,_ as he,u as G}from"./useBaseTable-0603087a.js";import{_ as ae}from"./BasicInput.vue_vue_type_style_index_0_lang-9081be0a.js";import{_ as ne}from"./button.vue_vue_type_style_index_0_lang-0bce19d5.js";import{_ as we,I as w,d as se,g as I,h as E,v as Ie,D as v,o as P,c as L,F as ke,a,b as c,t as $,p as Ae,w as g,e as H,j as h,G as V,k as X,H as Se}from"./index-293f04b3.js";import{f as Y,a as Re,b as Pe,c as Le,d as Ne,e as Ce}from"./supabaseTableQuery-95762ff3.js";import{t as q}from"./useDataTime-57a8a3f8.js";import{I as z}from"./Icon-143cda7e.js";import{g as Te}from"./index-b2ebe9dd.js";import{e as J,g as W}from"./convert-67c23be8.js";import{T as Q}from"./index-a099f91c.js";import{M as Ue}from"./index-54115afc.js";import{S as ze}from"./index-1fca4b83.js";import{T as O}from"./shallowequal-01da2816.js";import{U as Be}from"./index-dca57a40.js";import"./index-5d736149.js";import"./index-c35faac3.js";import"./Col-96a24c64.js";import"./vnode-1aecf5d6.js";import"./_plugin-vue_export-helper-e06a1ebf.js";import"./isPlainObject-d528b478.js";import"./index-7b3ddc64.js";import"./FormItemContext-aa4f9ccd.js";import"./fa_IR-d598d318.js";import"./toArray-a928867c.js";import"./pickAttrs-78f9c6a8.js";import"./useState-4ab7f1e5.js";import"./lodash-a587ee41.js";import"./index-87832a78.js";import"./usePrice-bc935b83.js";import"./useRefs-98debfb1.js";import"./index-e5115cc8.js";function ie(e,i){return Math.max(0,Math.round(e*(1-(i||0)/100)))}async function Ee(e){const{TableEngineRequest:i}=await we(()=>import("./buildSupabaseQuery-0c131031.js"),["assets/buildSupabaseQuery-0c131031.js","assets/index-293f04b3.js","assets/index-f59f1398.css","assets/supabaseTableQuery-95762ff3.js"]),o={...e};!o.sort&&!o.order&&(o.order="-sort_order");const t=await i(o,"subscription_plans");if(Array.isArray(t==null?void 0:t.rows)){const p=t.rows.map((d,x)=>({...d,index:x,final_price:ie(Number(d.price),Number(d.discount_percent||0))}));return{...t,rows:p}}return t}const $e=new Set(["plan_title","payment_status","status","final_price","expires_at","created_at","user_id","plan_id"]),De=["plan_title","payment_status","status"];async function Me(e){const{limit:i=20,page:o=1,search:t,filters:p}=e;let d=w.from("subscription_purchases").select("*, users(name, phone, first_name, last_name)",{count:"exact"});if(t!=null&&t.trim()){const u=await Y(w,t);d=Re(d,t,De,u)}if(p!=null&&p.length){for(const u of p)if(!(u.hidden||!u.field)){if(u.field==="user_name"||u.field==="user_phone"){if(["eq","has","like"].includes(u.op)){const r=await Y(w,String(u.value));r.length?d=d.in("user_id",r):d=d.eq("user_id","00000000-0000-0000-0000-000000000000")}continue}$e.has(u.field)&&(d=Pe(d,u))}}d=Le(d,e,"-created_at",["created_at","plan_title","payment_status","status"]),d=Ne(d,o,i);const{data:x,error:k,count:m}=await d;if(k)throw k;return Ce(x,m,e,u=>{const r=Array.isArray(u.users)?u.users[0]:u.users;let b="نامشخص";return r!=null&&r.name?b=r.name:r!=null&&r.first_name||r!=null&&r.last_name?b=`${r.first_name||""} ${r.last_name||""}`.trim():r!=null&&r.phone&&(b=r.phone),{...u,user_name:b,user_phone:(r==null?void 0:r.phone)||""}})}async function Fe(e){const{data:i,error:o}=await w.from("subscription_plans").insert([{title:e.title,description:e.description||null,image_url:e.image_url,price:e.price,discount_percent:e.discount_percent??0,duration_days:e.duration_days,is_active:e.is_active??!0,sort_order:e.sort_order??0}]).select().single();if(o)throw o;return i}async function Oe(e,i){const{data:o,error:t}=await w.from("subscription_plans").update({title:i.title,description:i.description||null,image_url:i.image_url,price:i.price,discount_percent:i.discount_percent??0,duration_days:i.duration_days,is_active:i.is_active??!0,sort_order:i.sort_order??0,updated_at:new Date().toISOString()}).eq("id",e).select();if(t)throw t;return o}async function qe(e){const{error:i}=await w.from("subscription_plans").delete().eq("id",e);if(i)throw i}async function He(e,i){const{data:o,error:t}=await w.from("subscription_plans").update({is_active:i,updated_at:new Date().toISOString()}).eq("id",e).select();if(t)throw t;return o}function ee(e){return Number(e||0).toLocaleString("fa-IR")}const Ze=[{title:"ردیف",dataIndex:"id",key:"id",filterable:!1,width:70,align:"center",customRender:e=>(e.record.index??0)+1},{title:"عنوان",dataIndex:"title",key:"title"},{title:"مدت (روز)",dataIndex:"duration_days",key:"duration_days",width:100,align:"center"},{title:"قیمت (ریال)",dataIndex:"price",key:"price",customRender:e=>ee(e.record.price)},{title:"تخفیف %",dataIndex:"discount_percent",key:"discount_percent",width:90,align:"center"},{title:"قیمت نهایی",dataIndex:"final_price",key:"final_price",customRender:e=>ee(e.record.final_price)},{title:"فعال",dataIndex:"is_active",key:"is_active",customRender:e=>e.record.is_active?"بله":"خیر"},{title:"ترتیب",dataIndex:"sort_order",key:"sort_order",width:80,align:"center"},{title:"ایجاد",dataIndex:"created_at",key:"created_at",customRender:e=>q(e.record.created_at)},{title:"عملیات",dataIndex:"action",key:"action",slot:"action",filterable:!1,align:"center"}];function Ke(e){return Number(e||0).toLocaleString("fa-IR")}const je={pending:"در انتظار",paid:"پرداخت شده",failed:"ناموفق",cancelled:"لغو شده"},Ge={pending:"در انتظار",active:"فعال",expired:"منقضی",cancelled:"لغو شده"},Ve=[{title:"ردیف",dataIndex:"id",key:"id",filterable:!1,width:70,align:"center",customRender:e=>(e.record.index??0)+1},{title:"کاربر",dataIndex:"user_name",key:"user_name",filterField:"user_name"},{title:"موبایل",dataIndex:"user_phone",key:"user_phone",filterField:"user_phone"},{title:"پلن",dataIndex:"plan_title",key:"plan_title"},{title:"مبلغ",dataIndex:"final_price",key:"final_price",customRender:e=>Ke(e.record.final_price)},{title:"پرداخت",dataIndex:"payment_status",key:"payment_status",customRender:e=>je[e.record.payment_status]||e.record.payment_status},{title:"وضعیت",dataIndex:"status",key:"status",customRender:e=>Ge[e.record.status]||e.record.status},{title:"انقضا",dataIndex:"expires_at",key:"expires_at",customRender:e=>e.record.expires_at?q(e.record.expires_at):"-"},{title:"تاریخ خرید",dataIndex:"created_at",key:"created_at",customRender:e=>q(e.record.created_at)}],S={ZARINPAL_MERCHANT_ID:"zarinpal_merchant_id",ZARINPAL_SANDBOX:"zarinpal_sandbox",SUBSCRIPTION_CALLBACK_URL:"subscription_app_callback_url",ZARINPAL_ENABLED:"zarinpal_enabled"},Xe=Object.values(S);function Ye(e){const i=(e[S.ZARINPAL_SANDBOX]||"no").toLowerCase(),o=(e[S.ZARINPAL_ENABLED]||"yes").toLowerCase();return{zarinpal_merchant_id:e[S.ZARINPAL_MERCHANT_ID]||"",zarinpal_sandbox:i==="yes"||i==="true"||i==="1",zarinpal_enabled:o!=="no"&&o!=="false"&&o!=="0",subscription_app_callback_url:e[S.SUBSCRIPTION_CALLBACK_URL]||"https://macharta.ir"}}async function B(e,i){const{data:o,error:t}=await w.from("configs").select("id").eq("key",e).maybeSingle();if(t)throw t;if(o!=null&&o.id){const{data:x,error:k}=await w.from("configs").update({value:i}).eq("key",e).select("id");if(k)throw k;if(!(x!=null&&x.length))throw new Error("ذخیره انجام نشد. لطفاً migration دسترسی configs را در Supabase اجرا کنید.");return}const{data:p,error:d}=await w.from("configs").insert({key:e,value:i}).select("id");if(d)throw d;if(!(p!=null&&p.length))throw new Error("ایجاد تنظیم انجام نشد. لطفاً migration دسترسی configs را در Supabase اجرا کنید.")}async function re(){const{data:e,error:i}=await w.from("configs").select("key, value").in("key",Xe);if(i)throw i;const o=(e||[]).reduce((t,p)=>(t[p.key]=p.value??"",t),{});return Ye(o)}async function Je(e){return await B(S.ZARINPAL_MERCHANT_ID,e.zarinpal_merchant_id.trim()),await B(S.ZARINPAL_SANDBOX,e.zarinpal_sandbox?"yes":"no"),await B(S.ZARINPAL_ENABLED,e.zarinpal_enabled?"yes":"no"),await B(S.SUBSCRIPTION_CALLBACK_URL,e.subscription_app_callback_url.trim().replace(/\/$/,"")),re()}const We={class:"max-w-2xl space-y-4"},Qe=a("p",{class:"text-sm text-gray-600 mb-4"}," کد مرچنت و آدرس بازگشت از درگاه در اینجا تنظیم میشود. اپ کاربر از همین تنظیمات برای اتصال به زرینپال استفاده میکند. ",-1),et={key:0,class:"py-8 text-center"},tt=a("div",{class:"mb-1 text-sm text-gray-600"},"کد مرچنت زرینپال (Merchant ID)",-1),at=a("div",{class:"mb-1 text-sm text-gray-600"},"آدرس بازگشت از درگاه (URL اپ کاربر)",-1),nt=a("div",{class:"text-xs text-gray-500 mt-1"},[H(" مسیر callback بهصورت خودکار اضافه میشود: "),a("code",null,"/subscriptions/callback")],-1),st={class:"flex items-center gap-3"},it=a("span",{class:"text-sm"},"فعال بودن درگاه زرینپال",-1),rt={class:"flex items-center gap-3"},lt=a("span",{class:"text-sm"},"حالت تست (Sandbox)",-1),ot=se({__name:"PaymentGatewaySettings",setup(e){const i=I(!0),o=I(!1),t=I({zarinpal_merchant_id:"",zarinpal_sandbox:!1,zarinpal_enabled:!0,subscription_app_callback_url:"https://macharta.ir"}),p=E(()=>{var m;return t.value.zarinpal_enabled?t.value.zarinpal_sandbox?!0:!!((m=t.value.zarinpal_merchant_id)!=null&&m.trim()):!1}),d=E(()=>{var m;return t.value.zarinpal_enabled?t.value.zarinpal_sandbox?"حالت تست فعال است — پرداخت از sandbox زرینپال انجام میشود.":(m=t.value.zarinpal_merchant_id)!=null&&m.trim()?"درگاه برای پرداخت واقعی آماده است.":"کد مرچنت وارد نشده — درگاه آماده پرداخت واقعی نیست.":"درگاه غیرفعال است — کاربران نمیتوانند پرداخت کنند."}),x=E(()=>p.value?"bg-green-50 border-green-200 text-green-800":"bg-amber-50 border-amber-200 text-amber-800");Ie(async()=>{try{t.value=await re()}catch(m){v.error((m==null?void 0:m.message)||"خطا در بارگذاری تنظیمات")}finally{i.value=!1}});async function k(){var m,u;if(!((m=t.value.subscription_app_callback_url)!=null&&m.trim())){v.warning("آدرس بازگشت از درگاه الزامی است");return}if(t.value.zarinpal_enabled&&!t.value.zarinpal_sandbox&&!((u=t.value.zarinpal_merchant_id)!=null&&u.trim())){v.warning("برای پرداخت واقعی، کد مرچنت الزامی است");return}o.value=!0;try{t.value=await Je(t.value),v.success("تنظیمات درگاه ذخیره شد")}catch(r){v.error((r==null?void 0:r.message)||"خطا در ذخیره")}finally{o.value=!1}}return(m,u)=>{const r=ae,b=te,C=ne;return P(),L("div",We,[Qe,i.value?(P(),L("div",et,"در حال بارگذاری...")):(P(),L(ke,{key:1},[a("div",null,[tt,c(r,{value:t.value.zarinpal_merchant_id,"onUpdate:value":u[0]||(u[0]=l=>t.value.zarinpal_merchant_id=l),placeholder:"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},null,8,["value"])]),a("div",null,[at,c(r,{value:t.value.subscription_app_callback_url,"onUpdate:value":u[1]||(u[1]=l=>t.value.subscription_app_callback_url=l),placeholder:"https://macharta.ir"},null,8,["value"]),nt]),a("div",st,[c(b,{value:t.value.zarinpal_enabled,"onUpdate:value":u[2]||(u[2]=l=>t.value.zarinpal_enabled=l)},null,8,["value"]),it]),a("div",rt,[c(b,{value:t.value.zarinpal_sandbox,"onUpdate:value":u[3]||(u[3]=l=>t.value.zarinpal_sandbox=l)},null,8,["value"]),lt]),a("div",{class:Ae(["rounded-lg border p-3 text-sm",x.value])},$(d.value),3),c(C,{type:"primary",loading:o.value,onClick:k},{default:g(()=>[H(" ذخیره تنظیمات درگاه ")]),_:1},8,["loading"])],64))])}}}),ct={class:"flex justify-between items-center mb-4"},ut=a("h2",null,"مدیریت اشتراکها",-1),dt={class:"gap-2 flex justify-center"},_t=a("span",null,"حذف",-1),pt=a("span",null,"ویرایش",-1),mt=a("div",{class:"mb-4"},[a("h2",null,"لیست خرید اشتراک")],-1),vt=a("div",{class:"mb-4"},[a("h2",null,"تنظیمات درگاه پرداخت")],-1),ft={class:"space-y-4 relative"},gt={key:0,class:"absolute inset-0 bg-white/60 z-10 flex items-center justify-center"},xt={class:"grid grid-cols-2 gap-4"},bt=a("div",{class:"mb-1 text-sm text-gray-600"},"عنوان اشتراک",-1),yt=a("div",{class:"mb-1 text-sm text-gray-600"},"مدت اشتراک (روز)",-1),ht={class:"grid grid-cols-3 gap-4"},wt=a("div",{class:"mb-1 text-sm text-gray-600"},"مبلغ (ریال)",-1),It=a("div",{class:"mb-1 text-sm text-gray-600"},"تخفیف (درصد)",-1),kt=a("div",{class:"mb-1 text-sm text-gray-600"},"قیمت نهایی (ریال)",-1),At={class:"mt-2 font-semibold text-green-700"},St={class:"grid grid-cols-2 gap-4"},Rt=a("div",{class:"mb-1 text-sm text-gray-600"},"ترتیب نمایش",-1),Pt=a("div",{class:"mb-1 text-sm text-gray-600"},"وضعیت",-1),Lt={class:"flex items-center gap-2 mt-2"},Nt={class:"text-sm text-gray-600"},Ct=a("div",{class:"mb-1 text-sm text-gray-600"},"توضیحات",-1),Tt={class:"flex justify-center"},Ut=a("div",{class:"mb-1 text-sm text-gray-600"},"تصویر اشتراک",-1),zt={key:0},Bt=a("div",null,"آپلود تصویر",-1),fa=se({__name:"index",setup(e){const i=Q,o=Q.TabPane,t=I("plans"),p=I(!1),d=I(!1),x=I(null),[k,m]=G(),[u]=G(),r=I([]),b=I(0),C=()=>({title:"",description:"",image_url:null,price:0,discount_percent:0,duration_days:30,is_active:!0,sort_order:0}),l=I(C()),le=E(()=>ie(Number(l.value.price),Number(l.value.discount_percent)).toLocaleString("fa-IR")),oe={columns:Ze,api:Ee,defaultPageLimit:20},ce={columns:Ve,api:Me,defaultPageLimit:20};function Z(){l.value=C(),r.value=[]}function ue(){d.value=!1,x.value=null,Z(),p.value=!0}function K(){p.value=!1,Z()}function de(_){return _.type.startsWith("image/")?_.size/1024/1024>=5?(v.error("حجم تصویر باید کمتر از 5MB باشد"),!1):!0:(v.error("فقط فایل تصویری مجاز است"),!1)}async function _e(_){const{file:n,onSuccess:R,onError:y,onProgress:A}=_,T=new FormData;T.append("file",n);const D=`${Se}/upload/machartaa-img`;b.value++,await new Promise((M,N)=>{const s=new XMLHttpRequest;s.open("POST",D);const U=Te()||localStorage.getItem("tamin_token")||"";s.setRequestHeader("Authorization",`Bearer ${U}`),s.upload.onprogress=f=>{f.lengthComputable&&(A==null||A({percent:Math.round(f.loaded/f.total*100)}))},s.onload=()=>{if(s.status>=200&&s.status<300)try{const f=JSON.parse(s.responseText||"{}"),ge=f.full_src||f.url||f.src||f.path||f.data&&(f.data.full_src||f.data.url||f.data.src||f.data.path)||"",F=J(ge),j=W(F);l.value.image_url=F,r.value=j?[{uid:`${Date.now()}`,name:"image.jpg",status:"done",url:j,response:{path:F}}]:[],R==null||R(f,s),v.success("تصویر با موفقیت آپلود شد!"),M()}catch(f){y==null||y(f,s),N(f)}else y==null||y(new Error("خطا در آپلود تصویر"),s),N(new Error("خطا در آپلود تصویر"))},s.onerror=()=>{y==null||y(new Error("خطا در آپلود تصویر"),s),N(new Error("خطا در آپلود تصویر"))},s.onloadend=()=>{b.value=Math.max(0,b.value-1)},s.send(T)})}async function pe(){var _;if(b.value>0){v.warning("لطفاً تا پایان آپلود صبر کنید");return}if(!((_=l.value.title)!=null&&_.trim())){v.warning("عنوان الزامی است");return}if(!l.value.duration_days||Number(l.value.duration_days)<1){v.warning("مدت اشتراک باید حداقل ۱ روز باشد");return}try{const n={...l.value,price:Number(l.value.price)||0,discount_percent:Number(l.value.discount_percent)||0,duration_days:Number(l.value.duration_days),sort_order:Number(l.value.sort_order)||0};d.value&&x.value?(await Oe(x.value,n),v.success("اشتراک ویرایش شد")):(await Fe(n),v.success("اشتراک افزوده شد")),K(),await m()}catch(n){v.error((n==null?void 0:n.message)||"خطا در ذخیره")}}function me(_){d.value=!0,x.value=_.id;const n=J(_.image_url)||null;l.value={title:_.title||"",description:_.description||"",image_url:n,price:_.price||0,discount_percent:_.discount_percent||0,duration_days:_.duration_days||30,is_active:_.is_active??!0,sort_order:_.sort_order??0};const R=n?W(n):null;r.value=R?[{uid:"-1",name:"image.jpg",status:"done",url:R,response:{path:n}}]:[],p.value=!0}function ve(_){Ue.confirm({title:"حذف اشتراک",content:`آیا از حذف «${_.title}» مطمئن هستید؟`,okText:"بله، حذف کن",cancelText:"انصراف",okType:"danger",centered:!0,onOk:async()=>{try{await qe(_.id),v.success("حذف شد"),await m()}catch(n){v.error((n==null?void 0:n.message)||"خطا در حذف")}}})}async function fe(_){try{await He(_.id,!_.is_active),v.success("وضعیت بهروز شد"),await m()}catch(n){v.error((n==null?void 0:n.message)||"خطا")}}return(_,n)=>{const R=ne,y=he,A=ae,T=te,D=ye,M=be,N=xe;return P(),L("div",null,[c(N,null,{default:g(()=>[c(h(i),{activeKey:t.value,"onUpdate:activeKey":n[0]||(n[0]=s=>t.value=s)},{default:g(()=>[c(h(o),{key:"plans",tab:"پلنهای اشتراک"},{default:g(()=>[a("div",ct,[ut,c(R,{type:"primary",onClick:ue},{default:g(()=>[H("افزودن اشتراک")]),_:1})]),c(y,V(oe,{ref:"table",onRegister:h(k)}),{action:g(({record:s})=>[a("div",dt,[c(h(O),{class:"cursor-pointer"},{title:g(()=>[a("span",null,$(s.is_active?"غیرفعال کردن":"فعال کردن"),1)]),default:g(()=>[c(z,{icon:s.is_active?"vuesax-linear:eye-slash":"vuesax-linear:eye",color:s.is_active?"#F59E0B":"#16A34A",onClick:U=>fe(s)},null,8,["icon","color","onClick"])]),_:2},1024),c(h(O),{class:"cursor-pointer"},{title:g(()=>[_t]),default:g(()=>[c(z,{icon:"vuesax-linear:trash",color:"#DC2626",onClick:U=>ve(s)},null,8,["onClick"])]),_:2},1024),c(h(O),{class:"cursor-pointer"},{title:g(()=>[pt]),default:g(()=>[c(z,{icon:"vuesax-linear:edit",color:"#1D4ED8",onClick:U=>me(s)},null,8,["onClick"])]),_:2},1024)])]),_:1},16,["onRegister"])]),_:1}),c(h(o),{key:"purchases",tab:"خریدهای کاربران"},{default:g(()=>[mt,c(y,V(ce,{onRegister:h(u)}),null,16,["onRegister"])]),_:1}),c(h(o),{key:"gateway",tab:"تنظیمات درگاه (زرینپال)"},{default:g(()=>[vt,c(ot)]),_:1})]),_:1},8,["activeKey"]),c(M,{visible:p.value,"onUpdate:visible":n[9]||(n[9]=s=>p.value=s),title:d.value?"ویرایش اشتراک":"افزودن اشتراک",onOk:pe,onCancel:K,width:"70%",confirmLoading:b.value>0},{default:g(()=>[a("div",ft,[b.value>0?(P(),L("div",gt,[c(h(ze),{size:"large"})])):X("",!0),a("div",xt,[a("div",null,[bt,c(A,{value:l.value.title,"onUpdate:value":n[1]||(n[1]=s=>l.value.title=s),placeholder:"مثلاً اشتراک یک ماهه"},null,8,["value"])]),a("div",null,[yt,c(A,{value:l.value.duration_days,"onUpdate:value":n[2]||(n[2]=s=>l.value.duration_days=s),type:"number",min:"1",placeholder:"30"},null,8,["value"])])]),a("div",ht,[a("div",null,[wt,c(A,{value:l.value.price,"onUpdate:value":n[3]||(n[3]=s=>l.value.price=s),type:"number",min:"0",placeholder:"100000"},null,8,["value"])]),a("div",null,[It,c(A,{value:l.value.discount_percent,"onUpdate:value":n[4]||(n[4]=s=>l.value.discount_percent=s),type:"number",min:"0",max:"100",placeholder:"0"},null,8,["value"])]),a("div",null,[kt,a("div",At,$(le.value),1)])]),a("div",St,[a("div",null,[Rt,c(A,{value:l.value.sort_order,"onUpdate:value":n[5]||(n[5]=s=>l.value.sort_order=s),type:"number",placeholder:"0"},null,8,["value"])]),a("div",null,[Pt,a("div",Lt,[c(T,{value:l.value.is_active,"onUpdate:value":n[6]||(n[6]=s=>l.value.is_active=s)},null,8,["value"]),a("span",Nt,$(l.value.is_active?"فعال":"غیرفعال"),1)])])]),a("div",null,[Ct,c(D,{value:l.value.description,"onUpdate:value":n[7]||(n[7]=s=>l.value.description=s),placeholder:"توضیحات اشتراک",rows:4},null,8,["value"])]),a("div",Tt,[a("div",null,[Ut,c(h(Be),{"file-list":r.value,"onUpdate:fileList":n[8]||(n[8]=s=>r.value=s),"before-upload":de,"custom-request":_e,accept:"image/*","max-count":1,"list-type":"picture-card"},{default:g(()=>[r.value.length<1?(P(),L("div",zt,[c(z,{icon:"vuesax-linear:image",class:"text-2xl mb-2"}),Bt])):X("",!0)]),_:1},8,["file-list"])])])])]),_:1},8,["visible","title","confirmLoading"])]),_:1})])}}});export{fa as default};
|