diff --git a/packages/app/src/pages/admin/orders.vue b/packages/app/src/pages/admin/orders.vue
index 08a2406..b0853cc 100644
--- a/packages/app/src/pages/admin/orders.vue
+++ b/packages/app/src/pages/admin/orders.vue
@@ -1,5 +1,5 @@
-
+
@@ -106,14 +106,14 @@
下单时间
- {{ formatDate(order.createdAt) }}
+ {{ formatDateTime(order.createdAt) }}
支付时间
- {{ formatDate(order.paidAt) }}
+ {{ formatDateTime(order.paidAt) }}
@@ -133,19 +133,21 @@
@@ -266,13 +353,18 @@ onMounted(() => {
/* ── Stats bar ──────────────────────────────── */
.stats-bar {
+ position: fixed;
+ top: calc(var(--status-bar) + 44px);
+ left: 0;
+ right: 0;
display: flex;
align-items: center;
+ height: 96rpx;
background: #FFFFFF;
- padding: 28rpx 0;
- margin: 0;
+ padding: 0;
border-bottom: 1rpx solid rgba(180, 160, 130, 0.2);
box-shadow: 0 2rpx 12rpx rgba(180, 160, 130, 0.08);
+ z-index: 100;
}
.stat-item {
@@ -309,9 +401,13 @@ onMounted(() => {
/* ── Filter pills ───────────────────────────── */
.filter-wrap {
+ position: fixed;
+ top: calc(var(--status-bar) + 92px);
+ left: 0;
+ right: 0;
background: #FAF8F5;
border-bottom: 1rpx solid rgba(180, 160, 130, 0.15);
- flex-shrink: 0;
+ z-index: 99;
}
.filter-scroll { overflow: hidden; }
@@ -364,7 +460,11 @@ onMounted(() => {
/* ── List ───────────────────────────────────── */
.list-scroll {
- flex: 1;
+ position: fixed;
+ top: calc(var(--status-bar) + 144px);
+ left: 0;
+ right: 0;
+ bottom: 0;
overflow: hidden;
}
diff --git a/packages/app/src/stores/admin.ts b/packages/app/src/stores/admin.ts
index f5c0219..1fa9b6e 100644
--- a/packages/app/src/stores/admin.ts
+++ b/packages/app/src/stores/admin.ts
@@ -120,7 +120,10 @@ export const useAdminStore = defineStore('admin', () => {
limit?: number
status?: string
}): Promise> {
- return get>('/admin/orders', params)
+ console.log('[admin] fetchAdminOrders params:', params)
+ const result = await get>('/admin/orders', params)
+ console.log('[admin] fetchAdminOrders result:', result)
+ return result
}
// ── Bookings ─────────────────────────────────────────────────────
diff --git a/packages/app/src/utils/format.ts b/packages/app/src/utils/format.ts
index fcdac1b..c86ed3d 100644
--- a/packages/app/src/utils/format.ts
+++ b/packages/app/src/utils/format.ts
@@ -135,14 +135,15 @@ export function getStockPercent(soldCount: number, totalStock: number): string {
return `${Math.min(100, getStockRatio(soldCount, totalStock) * 100)}%`
}
-/** 格式化日期时间为 MM-DD HH:mm */
+/** 格式化日期时间为 MM-DD HH:mm:ss */
export function formatDateTime(dateStr: string): string {
const d = new Date(dateStr)
const month = String(d.getMonth() + 1).padStart(2, '0')
const day = String(d.getDate()).padStart(2, '0')
const hour = String(d.getHours()).padStart(2, '0')
const min = String(d.getMinutes()).padStart(2, '0')
- return `${month}-${day} ${hour}:${min}`
+ const sec = String(d.getSeconds()).padStart(2, '0')
+ return `${month}-${day} ${hour}:${min}:${sec}`
}
/** 格式化 Date 为 YYYY-MM-DD(本地时间,用于 picker) */
diff --git a/packages/server/src/payment/payment.service.ts b/packages/server/src/payment/payment.service.ts
index 033d716..062075a 100644
--- a/packages/server/src/payment/payment.service.ts
+++ b/packages/server/src/payment/payment.service.ts
@@ -15,7 +15,7 @@ export interface CreateOrderResult {
}
export interface PaginatedOrders {
- data: T[]
+ items: T[]
total: number
page: number
limit: number
@@ -176,7 +176,7 @@ export class PaymentService {
])
return {
- data: data.map((o) => ({ ...o, cardType: { ...o.cardType } })),
+ items: data.map((o) => ({ ...o, cardType: { ...o.cardType } })),
total,
page,
limit,
@@ -207,8 +207,9 @@ export class PaymentService {
this.prisma.order.count({ where }),
])
+ this.logger.log(`getAllOrders: page=${page}, limit=${limit}, status=${status}, count=${total}`)
return {
- data: data.map((o) => ({
+ items: data.map((o) => ({
...o,
cardType: { ...o.cardType },
user: { ...o.user },