From c03344500550acb194102f0cf09b8d5139cf8742 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=90=9D=E5=8D=9C?= Date: Sat, 14 Mar 2026 10:59:10 +0000 Subject: [PATCH] fix: keep back when filtering subscription show related orders --- .../admin/site_subscriptions/show.blade.php | 51 ++++++++++++++++--- 1 file changed, 44 insertions(+), 7 deletions(-) diff --git a/resources/views/admin/site_subscriptions/show.blade.php b/resources/views/admin/site_subscriptions/show.blade.php index 79d5ace..8e6b616 100644 --- a/resources/views/admin/site_subscriptions/show.blade.php +++ b/resources/views/admin/site_subscriptions/show.blade.php @@ -137,7 +137,7 @@ ← 返回订阅列表 @if($subscription->subscription_no)
- 查看关联平台订单 + 查看关联平台订单(按订阅ID精确过滤) 查看可同步订单 @php $createRenewalOrderUrl = '/admin/platform-orders/create?' . \Illuminate\Support\Arr::query([ @@ -373,16 +373,53 @@
同步状态筛选: - @php $cur = $summaryStats['current_order_sync_status'] ?? ''; @endphp - 全部 + @php + $cur = $summaryStats['current_order_sync_status'] ?? ''; + + // 重要:这里的筛选链接需要保留 back,否则点击后会丢失“返回上一页(保留上下文)”能力。 + // 同时:href 中会包含多个 query 参数,必须使用 `{!! !!}` 原样输出,避免 `&` 被转义为 `&`。 + $incomingBack = (string) request()->query('back', ''); + $safeBack = (str_starts_with($incomingBack, '/') + && !preg_match('/["\'<>]/', $incomingBack) + && !preg_match('/(?:^|[?&])back=/', $incomingBack)) + ? $incomingBack + : ''; + + $baseQuery = request()->query(); + unset($baseQuery['order_sync_status']); + + if ($safeBack !== '') { + $baseQuery['back'] = $safeBack; + } else { + unset($baseQuery['back']); + } + + $makeSelfFilterUrl = function (?string $orderSyncStatus) use ($subscription, $baseQuery) { + $q = $baseQuery; + if ($orderSyncStatus !== null && $orderSyncStatus !== '') { + $q['order_sync_status'] = $orderSyncStatus; + } else { + unset($q['order_sync_status']); + } + + $url = '/admin/site-subscriptions/' . $subscription->id; + if (count($q) > 0) { + $url .= '?' . \Illuminate\Support\Arr::query($q); + } + + return $url; + }; + @endphp + + 全部 - 已同步 + 已同步 - 同步失败 + 同步失败 - 未同步 + 未同步 - 可同步 + 可同步 在平台订单页打开 @if($cur)