diff --git a/resources/views/admin/dashboard.blade.php b/resources/views/admin/dashboard.blade.php
index c1e7e72..d3a3e30 100644
--- a/resources/views/admin/dashboard.blade.php
+++ b/resources/views/admin/dashboard.blade.php
@@ -8,6 +8,12 @@
$incomingBack = (string) request()->query('back', '');
$safeBackForLinks = \App\Support\BackUrl::sanitizeForLinks($incomingBack);
+ $billingEntryLinks = [
+ 'platform_orders' => \App\Support\BackUrl::withBack('/admin/platform-orders', $safeBackForLinks),
+ 'site_subscriptions' => \App\Support\BackUrl::withBack('/admin/site-subscriptions', $safeBackForLinks),
+ 'plans' => \App\Support\BackUrl::withBack('/admin/plans', $safeBackForLinks),
+ ];
+
$platformOrdersQuickLinks = [
'unpaid_pending' => \App\Support\BackUrl::withBack('/admin/platform-orders?payment_status=unpaid&status=pending', $safeBackForLinks),
'paid_pending' => \App\Support\BackUrl::withBack('/admin/platform-orders?payment_status=paid&status=pending', $safeBackForLinks),
@@ -39,9 +45,9 @@
聚焦收费闭环的日常治理入口:订单 → 订阅 → 套餐。
diff --git a/tests/Feature/AdminDashboardBillingWorkbenchLinksCarrySafeBackTest.php b/tests/Feature/AdminDashboardBillingWorkbenchLinksCarrySafeBackTest.php
new file mode 100644
index 0000000..f184d14
--- /dev/null
+++ b/tests/Feature/AdminDashboardBillingWorkbenchLinksCarrySafeBackTest.php
@@ -0,0 +1,37 @@
+seed();
+
+ $this->post('/admin/login', [
+ 'email' => 'platform.admin@demo.local',
+ 'password' => 'Platform@123456',
+ ])->assertRedirect('/admin');
+ }
+
+ public function test_dashboard_billing_workbench_entry_links_should_carry_safe_back_and_not_escape_ampersand(): void
+ {
+ $this->loginAsPlatformAdmin();
+
+ $res = $this->get('/admin?back=' . urlencode('/admin/plans?status=active'));
+ $res->assertOk();
+
+ $res->assertSee('收费工作台');
+
+ $res->assertSee('href="/admin/platform-orders?back=%2Fadmin%2Fplans%3Fstatus%3Dactive"', false);
+ $res->assertSee('href="/admin/site-subscriptions?back=%2Fadmin%2Fplans%3Fstatus%3Dactive"', false);
+ $res->assertSee('href="/admin/plans?back=%2Fadmin%2Fplans%3Fstatus%3Dactive"', false);
+
+ $res->assertDontSee('&back=', false);
+ }
+}