From 072a36fd7e28e8ec0156ed6c2cda2740686e10bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=90=9D=E5=8D=9C?= Date: Tue, 17 Mar 2026 11:20:50 +0800 Subject: [PATCH] ui(site-subscriptions): add return-to-order header in attach order mode --- .../views/admin/site_subscriptions/index.blade.php | 12 +++++++++++- ...nIndexAttachOrderIdShouldRenderBindButtonTest.php | 7 ++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/resources/views/admin/site_subscriptions/index.blade.php b/resources/views/admin/site_subscriptions/index.blade.php index acaf94e..4970ddf 100644 --- a/resources/views/admin/site_subscriptions/index.blade.php +++ b/resources/views/admin/site_subscriptions/index.blade.php @@ -47,7 +47,17 @@
- @if($safeBackForLinks !== '') + @if($attachOrderId > 0) + @php + // attach_back 优先(从订单详情跳来),否则 fallback 到订单详情自身 + $attachBackUrl = $safeAttachBackForLinks; + if ($attachBackUrl === '') { + $attachBackUrl = '/admin/platform-orders/' . $attachOrderId; + } + @endphp + 绑定订阅到订单:#{{ $attachOrderId }} + 返回订单详情 + @elseif($safeBackForLinks !== '') 返回上一页(保留上下文) @endif
diff --git a/tests/Feature/AdminSiteSubscriptionIndexAttachOrderIdShouldRenderBindButtonTest.php b/tests/Feature/AdminSiteSubscriptionIndexAttachOrderIdShouldRenderBindButtonTest.php index 8540c2b..ed8541a 100644 --- a/tests/Feature/AdminSiteSubscriptionIndexAttachOrderIdShouldRenderBindButtonTest.php +++ b/tests/Feature/AdminSiteSubscriptionIndexAttachOrderIdShouldRenderBindButtonTest.php @@ -62,8 +62,13 @@ class AdminSiteSubscriptionIndexAttachOrderIdShouldRenderBindButtonTest extends $html = (string) $res->getContent(); - // 去重降噪:处于 attach_order_id 模式时,不应出现“续费下单(先选订阅)”工具入口 + // 去重降噪:处于 attach_order_id 模式时,不应出现任何“续费下单”入口(包含工具入口与行内按钮) $this->assertStringNotContainsString('续费下单(先选订阅)', $html); + $this->assertStringNotContainsString('>续费下单<', $html); + + // 顶部应有“返回订单详情”入口,避免运营迷路 + $this->assertStringContainsString('返回订单详情', $html); + $this->assertStringContainsString('/admin/platform-orders/1', $html); $this->assertStringContainsString('绑定到订单 #' . $orderId, $html); $this->assertStringContainsString('/admin/platform-orders/' . $orderId . '/attach-subscription', $html);