PageSourceSearch

https://souvenirs-ticketbro.vercel.app/_nuxt/vcbMNzUI.js

js souvenirs-ticketbro.vercel.app collected 2026-10-03 07:46:56 UTC 6,831 bytes, 1 lines download raw bytes

1import{_ as O}from"./DEOYRwXB.js";import{d as P,u as S,G as B,a as T,r as h,m as U,e as r,f as e,g as o,t as s,w as c,i as n,F as j,C,D as g,s as G,o as d,h as D,K as z,R as x}from"./C_PlOPrN.js";import{_ as L}from"./BbpVURXc.js";import{_ as V}from"./BbHfuZUx.js";import{_ as M}from"./CQgg-ri9.js";import{u as H}from"./DIPex95E.js";import"./DvbEqsJm.js";import"./40WrCjha.js";import"./CMXdpDBn.js";const Y={class:"space-y-6"},q={class:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4"},J={class:"text-2xl font-bold"},Q={class:"text-muted mt-1"},W={key:0,class:"grid grid-cols-1 md:grid-cols-3 gap-6"},X={key:1,class:"grid grid-cols-1 md:grid-cols-3 gap-6"},Z={class:"flex items-start justify-between gap-4"},tt={class:"flex-1 min-w-0"},et={class:"text-sm font-medium text-muted"},st={class:"text-3xl font-bold mt-2"},at={key:0,class:"flex items-center gap-1 mt-2"},ot={key:1,class:"text-xs text-muted/70 mt-2"},nt={class:"w-12 h-12 rounded-xl bg-blue-500/10 flex items-center justify-center flex-shrink-0"},dt={class:"flex items-start justify-between gap-4"},rt={class:"flex-1 min-w-0"},it={class:"text-sm font-medium text-muted"},ct={class:"text-3xl font-bold mt-2"},lt={key:0,class:"flex items-center gap-1 mt-2"},mt={key:1,class:"text-xs text-muted/70 mt-2"},ut={class:"w-12 h-12 rounded-xl bg-green-500/10 flex items-center justify-center flex-shrink-0"},_t={class:"flex items-start justify-between gap-4"},pt={class:"flex-1 min-w-0"},ft={class:"text-sm font-medium text-muted mb-2"},ht={class:"text-sm text-muted mb-3"},xt={class:"w-12 h-12 rounded-xl bg-primary/10 flex items-center justify-center flex-shrink-0"},yt={class:"flex items-start justify-between"},bt={class:"text-sm font-medium text-muted"},gt={class:"text-3xl font-bold mt-2"},vt={class:"flex items-center gap-1 mt-2"},$t={class:"w-12 h-12 rounded-xl bg-purple-500/10 flex items-center justify-center"},wt={class:"flex items-center justify-between"},kt={class:"font-semibold"},jt={class:"text-sm text-muted mt-1"},Ct={key:0,class:"space-y-4"},Dt={key:1,class:"text-center py-12"},Rt={class:"w-16 h-16 rounded-full bg-muted/50 flex items-center justify-center mx-auto mb-4"},At={class:"font-medium"},Nt={class:"text-muted mt-1"},Gt=P({__name:"index",setup(Et){const{t:m}=S(),R=B(),v=T(),_=R.params.provider,{formatCurrency:A}=H(),l=h({totalOrders:0,totalRevenue:0,successRate:0}),y=h([]),$=h(0),p=h(!0),N=[{accessorKey:"id",header:()=>m("admin.dashboard.recent_orders.columns.id"),cell:({row:t})=>x("span",{class:"font-mono text-sm"},`#${t.original.id}`)},{accessorKey:"product",header:()=>m("admin.dashboard.recent_orders.columns.product"),cell:({row:t})=>t.original.product?.name||"N/A"},{accessorKey:"totalAmount",header:()=>m("admin.dashboard.recent_orders.columns.amount"),cell:({row:t})=>x("span",{class:"font-medium"},w(t.original.totalAmount))},{accessorKey:"status",header:()=>m("admin.dashboard.recent_orders.columns.status"),cell:({row:t})=>{const a=t.original.status,f=I(a);return x(O,{color:f,variant:"subtle"},()=>a.replace("_"," "))}},{accessorKey:"createdAt",header:()=>m("admin.dashboard.recent_orders.columns.date"),cell:({row:t})=>x("span",{class:"text-muted"},F(t.original.createdAt))}];U(async()=>{await E()});async function E(){p.value=!0;try{const[t,a]=await Promise.all([$fetch(`/api/admin/${_}/stats`),$fetch(`/api/admin/${_}/products`)]);l.value=t.stats,y.value=t.recentOrders||[],$.value=a.products?.length||0}catch(t){console.error("Failed to fetch dashboard data:",t)}finally{p.value=!1}}function I(t){return{PAID:"success",PENDING_PAYMENT:"warning",GENERATING:"info",FAILED:"error"}[t]||"neutral"}function F(t){return t?new Intl.DateTimeFormat("default",{dateStyle:"medium",timeStyle:"short"}).format(new Date(t)):"-"}function w(t){return A(t)}return(t,a)=>{const f=G,k=L,i=z,u=V,K=M;return d(),r("div",Y,[e("div",q,[e("div",null,[e("h2",J,s(t.$t("admin.dashboard.title")),1),e("p",Q,s(t.$t("admin.dashboard.subtitle")),1)]),o(f,{to:n(v)(`/admin/${n(_)}/orders`),variant:"soft","trailing-icon":"i-lucide-arrow-right"},{default:c(()=>[D(s(t.$t("admin.dashboard.view_all_orders")),1)]),_:1},8,["to"])]),n(p)?(d(),r("div",W,[(d(),r(j,null,C(3,b=>o(k,{class:"h-32 rounded-xl",key:b})),64))])):(d(),r("div",X,[o(u,{ui:{body:"p-5"}},{default:c(()=>[e("div",Z,[e("div",tt,[e("p",et,s(t.$t("admin.dashboard.stats.total_orders")),1),e("p",st,s(n(l).totalOrders||0),1),n(l).totalOrders>0?(d(),r("div",at,[o(i,{name:"i-lucide-trending-up",class:"text-success text-sm"}),a[0]||(a[0]=e("span",{class:"text-sm text-success"},"+12%",-1)),a[1]||(a[1]=e("span",{class:"text-sm text-muted"},"vs last month",-1))])):(d(),r("p",ot,s(t.$t("admin.dashboard.stats.zero_state.orders")),1))]),e("div",nt,[o(i,{name:"i-lucide-shopping-cart",class:"text-2xl text-blue-500"})])])]),_:1}),o(u,{ui:{body:"p-5"}},{default:c(()=>
1[e("div",dt,[e("div",rt,[e("p",it,s(t.$t("admin.dashboard.stats.revenue")),1),e("p",ct,s(w(n(l).totalRevenue||0)),1),n(l).totalRevenue>0?(d(),r("div",lt,[o(i,{name:"i-lucide-trending-up",class:"text-success text-sm"}),a[2]||(a[2]=e("span",{class:"text-sm text-success"},"+8%",-1)),a[3]||(a[3]=e("span",{class:"text-sm text-muted"},"vs last month",-1))])):(d(),r("p",mt,s(t.$t("admin.dashboard.stats.zero_state.revenue")),1))]),e("div",ut,[o(i,{name:"i-lucide-euro",class:"text-2xl text-green-500"})])])]),_:1}),n(l).totalOrders===0&&n($)===0?(d(),g(u,{key:0,ui:{body:"p-5"}},{default:c(()=>[e("div",_t,[e("div",pt,[e("p",ft,s(t.$t("admin.dashboard.create_first_product")),1),e("p",ht,s(t.$t("admin.dashboard.create_first_product_desc")),1),o(f,{to:n(v)(`/admin/${n(_)}/products`),icon:"i-lucide-plus",size:"sm"},{default:c(()=>[D(s(t.$t("admin.dashboard.go_to_products")),1)]),_:1},8,["to"])]),e("div",xt,[o(i,{name:"i-lucide-plus-circle",class:"text-2xl text-primary"})])])]),_:1})):(d(),g(u,{key:1,ui:{body:"p-5"}},{default:c(()=>[e("div",yt,[e("div",null,[e("p",bt,s(t.$t("admin.dashboard.stats.success_rate")),1),e("p",gt,s(n(l).successRate||0)+"%",1),e("div",vt,[o(i,{name:"i-lucide-check-circle",class:"text-success text-sm"}),a[4]||(a[4]=e("span",{class:"text-sm text-muted"},"Excellent performance",-1))])]),e("div",$t,[o(i,{name:"i-lucide-trending-up",class:"text-2xl text-purple-500"})])])]),_:1}))])),o(u,null,{header:c(()=>[e("div",wt,[e("div",null,[e("h3",kt,s(t.$t("admin.dashboard.recent_orders.title")),1),e("p",jt,s(t.$t("admin.dashboard.latest_activity")),1)])])]),default:c(()=>[n(p)?(d(),r("div",Ct,[(d(),r(j,null,C(5,b=>o(k,{class:"h-12",key:b})),64))])):n(y).length===0?(d(),r("div",Dt,[e("div",Rt,[o(i,{name:"i-lucide-inbox",class:"w-8 h-8 text-muted"})]),e("h3",At,s(t.$t("admin.dashboard.no_orders_yet")),1),e("p",Nt,s(t.$t("admin.dashboard.recent_orders.no_orders")),1)])):(d(),g(K,{key:2,data:n(y),columns:N,ui:{td:"py-4",th:"py-3"}},null,8,["data"]))]),_:1})])}}});export{Gt as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.