602 lines
44 KiB
JavaScript
602 lines
44 KiB
JavaScript
(globalThis.TURBOPACK || (globalThis.TURBOPACK = [])).push([typeof document === "object" ? document.currentScript : undefined,
|
|
"[project]/components/ui/card.tsx [app-client] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"Card",
|
|
()=>Card,
|
|
"CardContent",
|
|
()=>CardContent,
|
|
"CardDescription",
|
|
()=>CardDescription,
|
|
"CardFooter",
|
|
()=>CardFooter,
|
|
"CardHeader",
|
|
()=>CardHeader,
|
|
"CardTitle",
|
|
()=>CardTitle
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/next/dist/compiled/react/jsx-dev-runtime.js [app-client] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/next/dist/compiled/react/index.js [app-client] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$utils$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/lib/utils.ts [app-client] (ecmascript)");
|
|
;
|
|
;
|
|
;
|
|
const Card = /*#__PURE__*/ __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["forwardRef"](_c = ({ className, ...props }, ref)=>/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
ref: ref,
|
|
className: (0, __TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$utils$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["cn"])("rounded-xl border bg-card text-card-foreground shadow", className),
|
|
...props
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/ui/card.tsx",
|
|
lineNumber: 9,
|
|
columnNumber: 3
|
|
}, ("TURBOPACK compile-time value", void 0)));
|
|
_c1 = Card;
|
|
Card.displayName = "Card";
|
|
const CardHeader = /*#__PURE__*/ __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["forwardRef"](_c2 = ({ className, ...props }, ref)=>/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
ref: ref,
|
|
className: (0, __TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$utils$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["cn"])("flex flex-col space-y-1.5 p-6", className),
|
|
...props
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/ui/card.tsx",
|
|
lineNumber: 24,
|
|
columnNumber: 3
|
|
}, ("TURBOPACK compile-time value", void 0)));
|
|
_c3 = CardHeader;
|
|
CardHeader.displayName = "CardHeader";
|
|
const CardTitle = /*#__PURE__*/ __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["forwardRef"](_c4 = ({ className, ...props }, ref)=>/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("h3", {
|
|
ref: ref,
|
|
className: (0, __TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$utils$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["cn"])("font-semibold leading-none tracking-tight", className),
|
|
...props
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/ui/card.tsx",
|
|
lineNumber: 36,
|
|
columnNumber: 3
|
|
}, ("TURBOPACK compile-time value", void 0)));
|
|
_c5 = CardTitle;
|
|
CardTitle.displayName = "CardTitle";
|
|
const CardDescription = /*#__PURE__*/ __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["forwardRef"](_c6 = ({ className, ...props }, ref)=>/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
|
ref: ref,
|
|
className: (0, __TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$utils$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["cn"])("text-sm text-muted-foreground", className),
|
|
...props
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/ui/card.tsx",
|
|
lineNumber: 48,
|
|
columnNumber: 3
|
|
}, ("TURBOPACK compile-time value", void 0)));
|
|
_c7 = CardDescription;
|
|
CardDescription.displayName = "CardDescription";
|
|
const CardContent = /*#__PURE__*/ __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["forwardRef"](_c8 = ({ className, ...props }, ref)=>/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
ref: ref,
|
|
className: (0, __TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$utils$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["cn"])("p-6 pt-0", className),
|
|
...props
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/ui/card.tsx",
|
|
lineNumber: 60,
|
|
columnNumber: 3
|
|
}, ("TURBOPACK compile-time value", void 0)));
|
|
_c9 = CardContent;
|
|
CardContent.displayName = "CardContent";
|
|
const CardFooter = /*#__PURE__*/ __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["forwardRef"](_c10 = ({ className, ...props }, ref)=>/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
ref: ref,
|
|
className: (0, __TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$utils$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["cn"])("flex items-center p-6 pt-0", className),
|
|
...props
|
|
}, void 0, false, {
|
|
fileName: "[project]/components/ui/card.tsx",
|
|
lineNumber: 68,
|
|
columnNumber: 3
|
|
}, ("TURBOPACK compile-time value", void 0)));
|
|
_c11 = CardFooter;
|
|
CardFooter.displayName = "CardFooter";
|
|
;
|
|
var _c, _c1, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11;
|
|
__turbopack_context__.k.register(_c, "Card$React.forwardRef");
|
|
__turbopack_context__.k.register(_c1, "Card");
|
|
__turbopack_context__.k.register(_c2, "CardHeader$React.forwardRef");
|
|
__turbopack_context__.k.register(_c3, "CardHeader");
|
|
__turbopack_context__.k.register(_c4, "CardTitle$React.forwardRef");
|
|
__turbopack_context__.k.register(_c5, "CardTitle");
|
|
__turbopack_context__.k.register(_c6, "CardDescription$React.forwardRef");
|
|
__turbopack_context__.k.register(_c7, "CardDescription");
|
|
__turbopack_context__.k.register(_c8, "CardContent$React.forwardRef");
|
|
__turbopack_context__.k.register(_c9, "CardContent");
|
|
__turbopack_context__.k.register(_c10, "CardFooter$React.forwardRef");
|
|
__turbopack_context__.k.register(_c11, "CardFooter");
|
|
if (typeof globalThis.$RefreshHelpers$ === 'object' && globalThis.$RefreshHelpers !== null) {
|
|
__turbopack_context__.k.registerExports(__turbopack_context__.m, globalThis.$RefreshHelpers$);
|
|
}
|
|
}),
|
|
"[project]/app/admin/page.tsx [app-client] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"default",
|
|
()=>AdminDashboard
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/next/dist/compiled/react/jsx-dev-runtime.js [app-client] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/components/ui/card.tsx [app-client] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$store$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/lib/store.ts [app-client] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$users$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Users$3e$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/icons/users.js [app-client] (ecmascript) <export default as Users>");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$book$2d$open$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__BookOpen$3e$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/icons/book-open.js [app-client] (ecmascript) <export default as BookOpen>");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$shopping$2d$bag$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__ShoppingBag$3e$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/icons/shopping-bag.js [app-client] (ecmascript) <export default as ShoppingBag>");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$trending$2d$up$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__TrendingUp$3e$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/icons/trending-up.js [app-client] (ecmascript) <export default as TrendingUp>");
|
|
;
|
|
var _s = __turbopack_context__.k.signature();
|
|
"use client";
|
|
;
|
|
;
|
|
;
|
|
function AdminDashboard() {
|
|
_s();
|
|
const { getAllUsers, getAllPurchases } = (0, __TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$store$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useStore"])();
|
|
const users = getAllUsers();
|
|
const purchases = getAllPurchases();
|
|
const totalRevenue = purchases.reduce((sum, p)=>sum + p.amount, 0);
|
|
const totalUsers = users.length;
|
|
const totalPurchases = purchases.length;
|
|
const stats = [
|
|
{
|
|
title: "总用户数",
|
|
value: totalUsers,
|
|
icon: __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$users$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Users$3e$__["Users"],
|
|
color: "text-blue-500"
|
|
},
|
|
{
|
|
title: "总收入",
|
|
value: `¥${totalRevenue.toFixed(2)}`,
|
|
icon: __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$trending$2d$up$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__TrendingUp$3e$__["TrendingUp"],
|
|
color: "text-green-500"
|
|
},
|
|
{
|
|
title: "订单数",
|
|
value: totalPurchases,
|
|
icon: __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$shopping$2d$bag$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__ShoppingBag$3e$__["ShoppingBag"],
|
|
color: "text-purple-500"
|
|
},
|
|
{
|
|
title: "转化率",
|
|
value: `${totalUsers > 0 ? (totalPurchases / totalUsers * 100).toFixed(1) : 0}%`,
|
|
icon: __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$book$2d$open$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__BookOpen$3e$__["BookOpen"],
|
|
color: "text-orange-500"
|
|
}
|
|
];
|
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "p-8 max-w-7xl mx-auto text-white",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("h1", {
|
|
className: "text-2xl font-bold mb-8",
|
|
children: "数据概览"
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/admin/page.tsx",
|
|
lineNumber: 25,
|
|
columnNumber: 7
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6 mb-8",
|
|
children: stats.map((stat, index)=>/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["Card"], {
|
|
className: "bg-[#1e293b] border-gray-700",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["CardHeader"], {
|
|
className: "flex flex-row items-center justify-between pb-2",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["CardTitle"], {
|
|
className: "text-sm font-medium text-gray-400",
|
|
children: stat.title
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/admin/page.tsx",
|
|
lineNumber: 31,
|
|
columnNumber: 15
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(stat.icon, {
|
|
className: `w-4 h-4 ${stat.color}`
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/admin/page.tsx",
|
|
lineNumber: 32,
|
|
columnNumber: 15
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/app/admin/page.tsx",
|
|
lineNumber: 30,
|
|
columnNumber: 13
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["CardContent"], {
|
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "text-2xl font-bold text-white",
|
|
children: stat.value
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/admin/page.tsx",
|
|
lineNumber: 35,
|
|
columnNumber: 15
|
|
}, this)
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/admin/page.tsx",
|
|
lineNumber: 34,
|
|
columnNumber: 13
|
|
}, this)
|
|
]
|
|
}, index, true, {
|
|
fileName: "[project]/app/admin/page.tsx",
|
|
lineNumber: 29,
|
|
columnNumber: 11
|
|
}, this))
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/admin/page.tsx",
|
|
lineNumber: 27,
|
|
columnNumber: 7
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "grid grid-cols-1 lg:grid-cols-2 gap-8",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["Card"], {
|
|
className: "bg-[#1e293b] border-gray-700",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["CardHeader"], {
|
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["CardTitle"], {
|
|
className: "text-white",
|
|
children: "最近订单"
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/admin/page.tsx",
|
|
lineNumber: 44,
|
|
columnNumber: 13
|
|
}, this)
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/admin/page.tsx",
|
|
lineNumber: 43,
|
|
columnNumber: 11
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["CardContent"], {
|
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "space-y-4",
|
|
children: [
|
|
purchases.slice(-5).reverse().map((p)=>/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "flex items-center justify-between p-4 bg-[#0f172a] rounded-lg",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
|
className: "text-sm font-medium text-white",
|
|
children: p.sectionTitle || "整本购买"
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/admin/page.tsx",
|
|
lineNumber: 51,
|
|
columnNumber: 21
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
|
className: "text-xs text-gray-400",
|
|
children: new Date(p.createdAt).toLocaleString()
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/admin/page.tsx",
|
|
lineNumber: 52,
|
|
columnNumber: 21
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/app/admin/page.tsx",
|
|
lineNumber: 50,
|
|
columnNumber: 19
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "text-right",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
|
className: "text-sm font-bold text-[#38bdac]",
|
|
children: [
|
|
"+¥",
|
|
p.amount
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/app/admin/page.tsx",
|
|
lineNumber: 55,
|
|
columnNumber: 21
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
|
className: "text-xs text-gray-500",
|
|
children: p.paymentMethod
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/admin/page.tsx",
|
|
lineNumber: 56,
|
|
columnNumber: 21
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/app/admin/page.tsx",
|
|
lineNumber: 54,
|
|
columnNumber: 19
|
|
}, this)
|
|
]
|
|
}, p.id, true, {
|
|
fileName: "[project]/app/admin/page.tsx",
|
|
lineNumber: 49,
|
|
columnNumber: 17
|
|
}, this)),
|
|
purchases.length === 0 && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
|
className: "text-gray-500 text-center py-4",
|
|
children: "暂无订单数据"
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/admin/page.tsx",
|
|
lineNumber: 61,
|
|
columnNumber: 17
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/app/admin/page.tsx",
|
|
lineNumber: 47,
|
|
columnNumber: 13
|
|
}, this)
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/admin/page.tsx",
|
|
lineNumber: 46,
|
|
columnNumber: 11
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/app/admin/page.tsx",
|
|
lineNumber: 42,
|
|
columnNumber: 9
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["Card"], {
|
|
className: "bg-[#1e293b] border-gray-700",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["CardHeader"], {
|
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["CardTitle"], {
|
|
className: "text-white",
|
|
children: "新注册用户"
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/admin/page.tsx",
|
|
lineNumber: 69,
|
|
columnNumber: 13
|
|
}, this)
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/admin/page.tsx",
|
|
lineNumber: 68,
|
|
columnNumber: 11
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["CardContent"], {
|
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "space-y-4",
|
|
children: [
|
|
users.slice(-5).reverse().map((u)=>/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "flex items-center justify-between p-4 bg-[#0f172a] rounded-lg",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "flex items-center gap-3",
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
className: "w-8 h-8 rounded-full bg-gray-700 flex items-center justify-center text-xs",
|
|
children: u.nickname.charAt(0)
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/admin/page.tsx",
|
|
lineNumber: 76,
|
|
columnNumber: 21
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", {
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
|
className: "text-sm font-medium text-white",
|
|
children: u.nickname
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/admin/page.tsx",
|
|
lineNumber: 80,
|
|
columnNumber: 23
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
|
className: "text-xs text-gray-400",
|
|
children: u.phone
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/admin/page.tsx",
|
|
lineNumber: 81,
|
|
columnNumber: 23
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/app/admin/page.tsx",
|
|
lineNumber: 79,
|
|
columnNumber: 21
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/app/admin/page.tsx",
|
|
lineNumber: 75,
|
|
columnNumber: 19
|
|
}, this),
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
|
className: "text-xs text-gray-500",
|
|
children: new Date(u.createdAt).toLocaleDateString()
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/admin/page.tsx",
|
|
lineNumber: 84,
|
|
columnNumber: 19
|
|
}, this)
|
|
]
|
|
}, u.id, true, {
|
|
fileName: "[project]/app/admin/page.tsx",
|
|
lineNumber: 74,
|
|
columnNumber: 17
|
|
}, this)),
|
|
users.length === 0 && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", {
|
|
className: "text-gray-500 text-center py-4",
|
|
children: "暂无用户数据"
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/admin/page.tsx",
|
|
lineNumber: 88,
|
|
columnNumber: 17
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/app/admin/page.tsx",
|
|
lineNumber: 72,
|
|
columnNumber: 13
|
|
}, this)
|
|
}, void 0, false, {
|
|
fileName: "[project]/app/admin/page.tsx",
|
|
lineNumber: 71,
|
|
columnNumber: 11
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/app/admin/page.tsx",
|
|
lineNumber: 67,
|
|
columnNumber: 9
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/app/admin/page.tsx",
|
|
lineNumber: 41,
|
|
columnNumber: 7
|
|
}, this)
|
|
]
|
|
}, void 0, true, {
|
|
fileName: "[project]/app/admin/page.tsx",
|
|
lineNumber: 24,
|
|
columnNumber: 5
|
|
}, this);
|
|
}
|
|
_s(AdminDashboard, "X6KRPVZgjdLLi2tzgBO7CbrNWg0=", false, function() {
|
|
return [
|
|
__TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$store$2e$ts__$5b$app$2d$client$5d$__$28$ecmascript$29$__["useStore"]
|
|
];
|
|
});
|
|
_c = AdminDashboard;
|
|
var _c;
|
|
__turbopack_context__.k.register(_c, "AdminDashboard");
|
|
if (typeof globalThis.$RefreshHelpers$ === 'object' && globalThis.$RefreshHelpers !== null) {
|
|
__turbopack_context__.k.registerExports(__turbopack_context__.m, globalThis.$RefreshHelpers$);
|
|
}
|
|
}),
|
|
"[project]/node_modules/lucide-react/dist/esm/icons/book-open.js [app-client] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
/**
|
|
* @license lucide-react v0.454.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*/ __turbopack_context__.s([
|
|
"default",
|
|
()=>BookOpen
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-client] (ecmascript)");
|
|
;
|
|
const BookOpen = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["default"])("BookOpen", [
|
|
[
|
|
"path",
|
|
{
|
|
d: "M12 7v14",
|
|
key: "1akyts"
|
|
}
|
|
],
|
|
[
|
|
"path",
|
|
{
|
|
d: "M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",
|
|
key: "ruj8y"
|
|
}
|
|
]
|
|
]);
|
|
;
|
|
//# sourceMappingURL=book-open.js.map
|
|
}),
|
|
"[project]/node_modules/lucide-react/dist/esm/icons/book-open.js [app-client] (ecmascript) <export default as BookOpen>", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"BookOpen",
|
|
()=>__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$book$2d$open$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["default"]
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$book$2d$open$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/icons/book-open.js [app-client] (ecmascript)");
|
|
}),
|
|
"[project]/node_modules/lucide-react/dist/esm/icons/shopping-bag.js [app-client] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
/**
|
|
* @license lucide-react v0.454.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*/ __turbopack_context__.s([
|
|
"default",
|
|
()=>ShoppingBag
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-client] (ecmascript)");
|
|
;
|
|
const ShoppingBag = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["default"])("ShoppingBag", [
|
|
[
|
|
"path",
|
|
{
|
|
d: "M6 2 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4Z",
|
|
key: "hou9p0"
|
|
}
|
|
],
|
|
[
|
|
"path",
|
|
{
|
|
d: "M3 6h18",
|
|
key: "d0wm0j"
|
|
}
|
|
],
|
|
[
|
|
"path",
|
|
{
|
|
d: "M16 10a4 4 0 0 1-8 0",
|
|
key: "1ltviw"
|
|
}
|
|
]
|
|
]);
|
|
;
|
|
//# sourceMappingURL=shopping-bag.js.map
|
|
}),
|
|
"[project]/node_modules/lucide-react/dist/esm/icons/shopping-bag.js [app-client] (ecmascript) <export default as ShoppingBag>", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"ShoppingBag",
|
|
()=>__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$shopping$2d$bag$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["default"]
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$shopping$2d$bag$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/icons/shopping-bag.js [app-client] (ecmascript)");
|
|
}),
|
|
"[project]/node_modules/lucide-react/dist/esm/icons/trending-up.js [app-client] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
/**
|
|
* @license lucide-react v0.454.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*/ __turbopack_context__.s([
|
|
"default",
|
|
()=>TrendingUp
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-client] (ecmascript)");
|
|
;
|
|
const TrendingUp = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["default"])("TrendingUp", [
|
|
[
|
|
"polyline",
|
|
{
|
|
points: "22 7 13.5 15.5 8.5 10.5 2 17",
|
|
key: "126l90"
|
|
}
|
|
],
|
|
[
|
|
"polyline",
|
|
{
|
|
points: "16 7 22 7 22 13",
|
|
key: "kwv8wd"
|
|
}
|
|
]
|
|
]);
|
|
;
|
|
//# sourceMappingURL=trending-up.js.map
|
|
}),
|
|
"[project]/node_modules/lucide-react/dist/esm/icons/trending-up.js [app-client] (ecmascript) <export default as TrendingUp>", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"TrendingUp",
|
|
()=>__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$trending$2d$up$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["default"]
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$trending$2d$up$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/icons/trending-up.js [app-client] (ecmascript)");
|
|
}),
|
|
]);
|
|
|
|
//# sourceMappingURL=_a25c721b._.js.map
|