补充平台订单摘要区快速导航
This commit is contained in:
@@ -665,6 +665,12 @@
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="actions gap-10 mb-10" data-role="po-summary-jump-links" aria-label="平台订单摘要快捷导航">
|
||||
<a class="btn btn-secondary btn-sm" data-role="po-summary-jump-paid-no-receipt" href="#po-summary-card-paid-no-receipt">已付无回执</a>
|
||||
<a class="btn btn-secondary btn-sm" data-role="po-summary-jump-reconcile-mismatch" href="#po-summary-card-reconcile-mismatch">对账不一致</a>
|
||||
<a class="btn btn-secondary btn-sm" data-role="po-summary-jump-syncable" href="#po-summary-card-syncable">可同步</a>
|
||||
<a class="btn btn-secondary btn-sm" data-role="po-summary-jump-renewal-missing-sub" href="#po-summary-card-renewal-missing-sub">续费缺订阅</a>
|
||||
</div>
|
||||
<div class="grid-3 mb-20" id="po-summary-cards" data-role="po-summary-cards">
|
||||
<div class="card">
|
||||
<h3>平台订单总数</h3>
|
||||
@@ -732,7 +738,7 @@
|
||||
</div>
|
||||
<div class="muted muted-xs">成功口径:存在 run_id 且无 error.message;失败口径:meta 失败标记</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<div class="card" id="po-summary-card-syncable">
|
||||
<h3>可同步订单</h3>
|
||||
<div class="metric-number">
|
||||
@include('admin.platform_orders._summary_metric_link', [
|
||||
@@ -743,7 +749,7 @@
|
||||
</div>
|
||||
<div class="muted muted-xs">已支付 + 已生效 + 未同步(续费单需已绑定订阅)</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<div class="card" id="po-summary-card-renewal-missing-sub">
|
||||
<h3>续费缺订阅</h3>
|
||||
<div class="metric-number">
|
||||
@include('admin.platform_orders._summary_metric_link', [
|
||||
@@ -903,7 +909,7 @@
|
||||
<div class="muted governance-block-footnote">提示:如果你是从其它页面(例如订阅详情/套餐页)通过 back 进入本页,建议优先用上方的「返回上一页」入口回到来源页,再继续操作。</div>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<div class="card" id="po-summary-card-reconcile-mismatch">
|
||||
<h3>对账差额</h3>
|
||||
@php $delta = (float) ($summaryStats['reconciliation_delta'] ?? 0); @endphp
|
||||
<div class="metric-number">¥{{ number_format($delta, 2) }}</div>
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
namespace Tests\Feature;
|
||||
|
||||
use Illuminate\Foundation\Testing\RefreshDatabase;
|
||||
use Tests\TestCase;
|
||||
|
||||
class AdminPlatformOrderSummaryCardsShouldHaveJumpLinksTest extends TestCase
|
||||
{
|
||||
use RefreshDatabase;
|
||||
|
||||
protected function loginAsPlatformAdmin(): void
|
||||
{
|
||||
$this->seed();
|
||||
|
||||
$this->post('/admin/login', [
|
||||
'email' => 'platform.admin@demo.local',
|
||||
'password' => 'Platform@123456',
|
||||
])->assertRedirect('/admin');
|
||||
}
|
||||
|
||||
public function test_platform_order_summary_cards_should_have_jump_links(): void
|
||||
{
|
||||
$this->loginAsPlatformAdmin();
|
||||
|
||||
$res = $this->get('/admin/platform-orders');
|
||||
$res->assertOk();
|
||||
|
||||
$html = (string) $res->getContent();
|
||||
$this->assertStringContainsString('data-role="po-summary-jump-links"', $html);
|
||||
$this->assertStringContainsString('href="#po-summary-card-paid-no-receipt"', $html);
|
||||
$this->assertStringContainsString('href="#po-summary-card-reconcile-mismatch"', $html);
|
||||
$this->assertStringContainsString('href="#po-summary-card-syncable"', $html);
|
||||
$this->assertStringContainsString('href="#po-summary-card-renewal-missing-sub"', $html);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user