diff --git a/resources/views/admin/site_subscriptions/index.blade.php b/resources/views/admin/site_subscriptions/index.blade.php
index 9d58740..5074ce1 100644
--- a/resources/views/admin/site_subscriptions/index.blade.php
+++ b/resources/views/admin/site_subscriptions/index.blade.php
@@ -38,6 +38,13 @@
// - 拒绝 nested back=(避免 URL 膨胀/绕过)
$incomingBack = (string) request()->query('back', '');
$safeBackForLinks = \App\Support\BackUrl::sanitizeForLinks($incomingBack);
+
+ // 用于摘要卡等入口:保留当前 query 并覆盖字段,同时安全透传 back。
+ $safeFullUrlWithQuery = function (array $overrides = []) use ($safeBackForLinks) {
+ return \App\Support\BackUrl::currentPathWithQuery($overrides, $safeBackForLinks);
+ };
+
+ $subscriptionIndexUrl = \App\Support\BackUrl::withBack('/admin/site-subscriptions', $safeBackForLinks);
@endphp
这里是总台视角的订阅目录页,承接“套餐 -> 订阅 -> 平台订单”的收费主链中间层。
@@ -118,27 +125,39 @@
订阅总数
-
{{ $summaryStats['total_subscriptions'] ?? 0 }}
+
已生效
-
{{ $summaryStats['activated_subscriptions'] ?? 0 }}
+
待生效
-
{{ $summaryStats['pending_subscriptions'] ?? 0 }}
+
已取消
-
{{ $summaryStats['cancelled_subscriptions'] ?? 0 }}
+
已过期(按到期时间)
-
{{ $summaryStats['expired_subscriptions'] ?? 0 }}
+
7天内到期
-
{{ $summaryStats['expiring_7d_subscriptions'] ?? 0 }}
+
diff --git a/tests/Feature/AdminSiteSubscriptionIndexSummaryCardsAreClickableTest.php b/tests/Feature/AdminSiteSubscriptionIndexSummaryCardsAreClickableTest.php
new file mode 100644
index 0000000..cc0e64d
--- /dev/null
+++ b/tests/Feature/AdminSiteSubscriptionIndexSummaryCardsAreClickableTest.php
@@ -0,0 +1,40 @@
+seed();
+
+ $this->post('/admin/login', [
+ 'email' => 'platform.admin@demo.local',
+ 'password' => 'Platform@123456',
+ ])->assertRedirect('/admin');
+ }
+
+ public function test_summary_cards_should_link_to_filtered_sets(): void
+ {
+ $this->loginAsPlatformAdmin();
+
+ $this->get('/admin/site-subscriptions')
+ ->assertOk()
+ ->assertSee('订阅总数')
+ ->assertSee('已生效')
+ ->assertSee('待生效')
+ ->assertSee('已取消')
+ ->assertSee('已过期(按到期时间)')
+ ->assertSee('7天内到期')
+ ->assertSee('status=activated', false)
+ ->assertSee('status=pending', false)
+ ->assertSee('status=cancelled', false)
+ ->assertSee('expiry=expired', false)
+ ->assertSee('expiry=expiring_7d', false);
+ }
+}