feat(subscriptions): add cross links in status summary cards

This commit is contained in:
萝卜
2026-03-14 22:25:32 +00:00
parent 3f2f66b65e
commit 4ec66d644c
2 changed files with 43 additions and 0 deletions

View File

@@ -134,18 +134,27 @@
<div class="num-md">
<a class="link" href="{!! $safeFullUrlWithQuery(['status' => 'activated', 'page' => null]) !!}">{{ $summaryStats['activated_subscriptions'] ?? 0 }}</a>
</div>
<div class="muted muted-xs">
<a class="link" href="{!! $safeFullUrlWithQuery(['status' => 'pending', 'page' => null]) !!}">查看待生效</a>
</div>
</div>
<div class="card">
<h3>待生效</h3>
<div class="num-md">
<a class="link" href="{!! $safeFullUrlWithQuery(['status' => 'pending', 'page' => null]) !!}">{{ $summaryStats['pending_subscriptions'] ?? 0 }}</a>
</div>
<div class="muted muted-xs">
<a class="link" href="{!! $safeFullUrlWithQuery(['status' => 'activated', 'page' => null]) !!}">查看已生效</a>
</div>
</div>
<div class="card">
<h3>已取消</h3>
<div class="num-md">
<a class="link" href="{!! $safeFullUrlWithQuery(['status' => 'cancelled', 'page' => null]) !!}">{{ $summaryStats['cancelled_subscriptions'] ?? 0 }}</a>
</div>
<div class="muted muted-xs">
<a class="link" href="{!! $safeFullUrlWithQuery(['status' => 'activated', 'page' => null]) !!}">查看已生效</a>
</div>
</div>
<div class="card">
<h3>已过期(按到期时间)</h3>

View File

@@ -0,0 +1,34 @@
<?php
namespace Tests\Feature;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
class AdminSiteSubscriptionStatusCardsCrossLinksTest extends TestCase
{
use RefreshDatabase;
protected function loginAsPlatformAdmin(): void
{
$this->seed();
$this->post('/admin/login', [
'email' => 'platform.admin@demo.local',
'password' => 'Platform@123456',
])->assertRedirect('/admin');
}
public function test_status_summary_cards_should_have_cross_links(): void
{
$this->loginAsPlatformAdmin();
$this->get('/admin/site-subscriptions')
->assertOk()
->assertSee('查看待生效')
->assertSee('查看已生效')
->assertSee('status=activated', false)
->assertSee('status=pending', false)
->assertSee('status=cancelled', false);
}
}