chore(admin-ui): dedupe platform order show back links into page header actions

This commit is contained in:
萝卜
2026-03-16 06:43:51 +08:00
parent 4787f6d32e
commit be3169d705

View File

@@ -27,6 +27,23 @@
'refund_inconsistent' => 1, 'refund_inconsistent' => 1,
]), $orderShowSelf); ]), $orderShowSelf);
@endphp @endphp
@php
$incomingBack = (string) request()->query('back', '');
// back 安全护栏:
// - 仅允许站内相对路径(/ 开头)
// - 拒绝引号/尖括号
// - 拒绝 nested back=(避免 URL 膨胀/绕过)
// 说明:下方 href 采用原样输出以避免 & 影响断言。
$safeBackForLinks = \App\Support\BackUrl::sanitizeForLinks($incomingBack);
// 若 back 指向的平台订单列表带 lead_id则在详情页也提示当前来源线索更不迷路
$leadIdFromBack = 0;
if ($safeBackForLinks !== '') {
$parts = parse_url($safeBackForLinks);
parse_str((string) ($parts['query'] ?? ''), $q);
$leadIdFromBack = (int) ($q['lead_id'] ?? 0);
}
@endphp
<div class="page-header mb-20" data-page="admin.platform_orders.show"> <div class="page-header mb-20" data-page="admin.platform_orders.show">
<div class="page-header-main"> <div class="page-header-main">
<div> <div>
@@ -35,6 +52,10 @@
</div> </div>
<div class="page-header-actions"> <div class="page-header-actions">
@if($safeBackForLinks !== '')
<a href="{!! $safeBackForLinks !!}" class="btn btn-secondary btn-sm"> 返回上一页(保留上下文)</a>
@endif
@php @php
$platformLeadId = (int) (data_get($order->meta, 'platform_lead_id') ?? 0); $platformLeadId = (int) (data_get($order->meta, 'platform_lead_id') ?? 0);
$leadIndexUrl = ''; $leadIndexUrl = '';
@@ -47,7 +68,11 @@
@if($platformLeadId > 0) @if($platformLeadId > 0)
<span class="badge">来源线索:#{{ $platformLeadId }}</span> <span class="badge">来源线索:#{{ $platformLeadId }}</span>
<a class="btn btn-secondary btn-sm" href="{!! $leadIndexUrl !!}">查看线索</a> <a class="btn btn-secondary btn-sm" href="{!! $leadIndexUrl !!}">查看线索</a>
@elseif($leadIdFromBack > 0)
<span class="badge">来源线索:#{{ $leadIdFromBack }}</span>
@endif @endif
<a href="{!! $makePlatformOrderIndexUrl([]) !!}" class="btn btn-secondary btn-sm">返回平台订单列表(保留上下文)</a>
</div> </div>
</div> </div>
</div> </div>
@@ -877,34 +902,5 @@
<pre class="pre-wrap">{{ json_encode($order->meta, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE) }}</pre> <pre class="pre-wrap">{{ json_encode($order->meta, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE) }}</pre>
</div> </div>
<div class="mb-20 mt-16"> {{-- 返回入口已收敛到 PageHeader actions避免页面底部重复出现“返回上一页/返回列表”链接) --}}
@php
$incomingBack = (string) request()->query('back', '');
// back 安全护栏:
// - 仅允许站内相对路径(/ 开头)
// - 拒绝引号/尖括号
// - 拒绝 nested back=(避免 URL 膨胀/绕过)
// 说明:下方 href 采用原样输出以避免 &amp; 影响断言。
$safeBackForLinks = \App\Support\BackUrl::sanitizeForLinks($incomingBack);
// 若 back 指向的平台订单列表带 lead_id则在详情页也提示当前来源线索更不迷路
$leadIdFromBack = 0;
if ($safeBackForLinks !== '') {
$parts = parse_url($safeBackForLinks);
parse_str((string) ($parts['query'] ?? ''), $q);
$leadIdFromBack = (int) ($q['lead_id'] ?? 0);
}
@endphp
@if($safeBackForLinks !== '')
<a href="{!! $safeBackForLinks !!}" class="muted"> 返回上一页(保留上下文)</a>
@if($leadIdFromBack > 0)
<span class="muted"></span>
<span class="badge">来源线索:#{{ $leadIdFromBack }}</span>
@endif
<span class="muted"></span>
@endif
<a href="{!! $makePlatformOrderIndexUrl([]) !!}"> 返回平台订单列表(保留上下文)</a>
</div>
@endsection @endsection