fix(admin-dashboard): syncable quick link aligns with unsynced scope

This commit is contained in:
萝卜
2026-03-16 19:36:54 +08:00
parent 763c706cf3
commit f297ffacd5
3 changed files with 9 additions and 7 deletions

View File

@@ -19,7 +19,8 @@
'unpaid_pending' => \App\Support\BackUrl::withBack('/admin/platform-orders?payment_status=unpaid&status=pending', $selfWithoutBack),
// 待生效paid + pending并显式锁定 sync_status=unsynced排除同步失败等异常单
'paid_pending' => \App\Support\BackUrl::withBack('/admin/platform-orders?payment_status=paid&status=pending&sync_status=unsynced', $selfWithoutBack),
'syncable_only' => \App\Support\BackUrl::withBack('/admin/platform-orders?syncable_only=1', $selfWithoutBack),
// 可同步(工作台口径):只看可同步 + 未同步(排除同步失败等异常单),与工作台统计口径一致。
'syncable_only' => \App\Support\BackUrl::withBack('/admin/platform-orders?syncable_only=1&sync_status=unsynced', $selfWithoutBack),
'sync_failed' => \App\Support\BackUrl::withBack('/admin/platform-orders?sync_status=failed', $selfWithoutBack),
];
@endphp

View File

@@ -24,14 +24,15 @@ class AdminDashboardBillingWorkbenchQuickLinksShouldUseBackUrlTest extends TestC
$this->loginAsPlatformAdmin();
// 给 dashboard 带一个安全 back模拟从其它页面回到 dashboard 后再点治理入口
// 注意dashboard 链接的 back 口径已统一为 selfWithoutBack即返回 /admin不沿用 incoming back。
$res = $this->get('/admin?back=' . urlencode('/admin/plans'));
$res->assertOk();
// 期望:链接里带 back=%2Fadmin%2Fplans 且 & 不被 escape 成 &
$res->assertSee('href="/admin/platform-orders?payment_status=unpaid&status=pending&back=%2Fadmin%2Fplans"', false);
$res->assertSee('href="/admin/platform-orders?payment_status=paid&status=pending&sync_status=unsynced&back=%2Fadmin%2Fplans"', false);
$res->assertSee('href="/admin/platform-orders?syncable_only=1&back=%2Fadmin%2Fplans"', false);
$res->assertSee('href="/admin/platform-orders?sync_status=failed&back=%2Fadmin%2Fplans"', false);
// 期望:链接里带 back=%2Fadmin(返回仪表盘)且 & 不被 escape 成 &
$res->assertSee('href="/admin/platform-orders?payment_status=unpaid&status=pending&back=%2Fadmin"', false);
$res->assertSee('href="/admin/platform-orders?payment_status=paid&status=pending&sync_status=unsynced&back=%2Fadmin"', false);
$res->assertSee('href="/admin/platform-orders?syncable_only=1&sync_status=unsynced&back=%2Fadmin"', false);
$res->assertSee('href="/admin/platform-orders?sync_status=failed&back=%2Fadmin"', false);
$res->assertDontSee('&back=', false);
}

View File

@@ -34,7 +34,7 @@ class AdminDashboardBillingWorkbenchQuickLinksTest extends TestCase
$res->assertSee('href="/admin/platform-orders?payment_status=paid&status=pending&sync_status=unsynced&back=%2Fadmin"', false);
$res->assertSee('待生效');
$res->assertSee('href="/admin/platform-orders?syncable_only=1&back=%2Fadmin"', false);
$res->assertSee('href="/admin/platform-orders?syncable_only=1&sync_status=unsynced&back=%2Fadmin"', false);
$res->assertSee('可同步');
$res->assertSee('href="/admin/platform-orders?sync_status=failed&back=%2Fadmin"', false);