fix: keep back when filtering subscription show related orders
This commit is contained in:
@@ -137,7 +137,7 @@
|
||||
<a href="/admin/site-subscriptions" class="muted">← 返回订阅列表</a>
|
||||
@if($subscription->subscription_no)
|
||||
<div class="mt-6 actions gap-10">
|
||||
<a class="btn btn-secondary btn-sm" href="{!! $makePlatformOrderUrl(['site_subscription_id' => $subscription->id]) !!}">查看关联平台订单</a>
|
||||
<a class="btn btn-secondary btn-sm" href="{!! $makePlatformOrderUrl(['site_subscription_id' => $subscription->id]) !!}">查看关联平台订单(按订阅ID精确过滤)</a>
|
||||
<a class="btn btn-secondary btn-sm" href="{!! $makePlatformOrderUrl(['site_subscription_id' => $subscription->id, 'syncable_only' => '1']) !!}">查看可同步订单</a>
|
||||
@php
|
||||
$createRenewalOrderUrl = '/admin/platform-orders/create?' . \Illuminate\Support\Arr::query([
|
||||
@@ -373,16 +373,53 @@
|
||||
|
||||
<div class="mb-10">
|
||||
<span class="muted">同步状态筛选:</span>
|
||||
@php $cur = $summaryStats['current_order_sync_status'] ?? ''; @endphp
|
||||
<a href="?" class="muted">全部</a>
|
||||
@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
|
||||
|
||||
<a href="{!! $makeSelfFilterUrl(null) !!}" class="muted">全部</a>
|
||||
<span class="muted">|</span>
|
||||
<a href="?order_sync_status=synced" class="muted">已同步</a>
|
||||
<a href="{!! $makeSelfFilterUrl('synced') !!}" class="muted">已同步</a>
|
||||
<span class="muted">|</span>
|
||||
<a href="?order_sync_status=failed" class="muted">同步失败</a>
|
||||
<a href="{!! $makeSelfFilterUrl('failed') !!}" class="muted">同步失败</a>
|
||||
<span class="muted">|</span>
|
||||
<a href="?order_sync_status=unsynced" class="muted">未同步</a>
|
||||
<a href="{!! $makeSelfFilterUrl('unsynced') !!}" class="muted">未同步</a>
|
||||
<span class="muted">|</span>
|
||||
<a href="?order_sync_status=syncable" class="muted">可同步</a>
|
||||
<a href="{!! $makeSelfFilterUrl('syncable') !!}" class="muted">可同步</a>
|
||||
<span class="muted">|</span>
|
||||
<a href="{!! $makePlatformOrderUrl(['site_subscription_id' => $subscription->id]) !!}" class="muted">在平台订单页打开</a>
|
||||
@if($cur)
|
||||
|
||||
Reference in New Issue
Block a user