From 16dee9441a9876e7b35f4adbf66169e6fc59fa70 Mon Sep 17 00:00:00 2001
From: xiaosi <2652281683@qq.com>
Date: Tue, 1 Sep 2026 18:23:51 +0800
Subject: [PATCH] feat: add read-only traffic ledger tab
Allow admins to filter and page platform/user traffic ledger entries.
---
src/views/TrafficOpsView/TrafficOpsView.vue | 106 +++++++++++++++++++-
1 file changed, 104 insertions(+), 2 deletions(-)
diff --git a/src/views/TrafficOpsView/TrafficOpsView.vue b/src/views/TrafficOpsView/TrafficOpsView.vue
index 3a9d390..7106bbe 100644
--- a/src/views/TrafficOpsView/TrafficOpsView.vue
+++ b/src/views/TrafficOpsView/TrafficOpsView.vue
@@ -141,7 +141,53 @@
-
账务流水占位
+
({
+ id: String(r.id),
+ createdAt: fmtTime(r.createdAt),
+ accountType: r.accountType === 'user' ? '用户' : (r.accountType === 'platform' ? '平台' : (r.accountType || '—')),
+ accountId: String(r.accountId),
+ direction: r.direction === 'credit' ? '入账' : (r.direction === 'debit' ? '扣减' : r.direction),
+ amountText: `${bytesToGbText(r.amountBytes)} (${r.amountBytes})`,
+ balanceText: `${bytesToGbText(r.balanceBefore)} → ${bytesToGbText(r.balanceAfter)}`,
+ sourceType: r.sourceType || '—',
+ sourceId: r.sourceId || '—',
+ idempotencyKey: r.idempotencyKey || '—'
+ }))
+ } catch (e) {
+ ui.toast(e.message || '加载流水失败')
+ }
+}
+
+function reloadLedger() {
+ ledgerPageNum.value = 1
+ loadLedger()
+}
+
+
watch(tab, (v) => {
if (v === 'packages') loadPackages()
if (v === 'purchases') loadPurchasesTab()
+ if (v === 'ledger') loadLedger()
})
onMounted(() => {
@@ -625,7 +726,8 @@ onMounted(() => {