diff --git a/resources/views/business/pages/courier-payables/courier-surcharge-settlement.blade.php b/resources/views/business/pages/courier-payables/courier-surcharge-settlement.blade.php index b2b6e67f..34db4e04 100644 --- a/resources/views/business/pages/courier-payables/courier-surcharge-settlement.blade.php +++ b/resources/views/business/pages/courier-payables/courier-surcharge-settlement.blade.php @@ -161,6 +161,14 @@ .settlement-table td[data-finance-fixed="end"] { background: #fffdf8; } .settlement-table td { overflow: hidden; text-overflow: ellipsis; } .settlement-table .settlement-empty td { min-width: 22rem; padding: 3rem 1rem; text-align: center; color: var(--settlement-muted); white-space: normal; } + .settlement-table tbody tr.is-clickable { cursor: pointer; } + .settlement-table tbody tr.is-clickable:not(.is-active):hover td, + .settlement-table tbody tr.is-clickable:not(.is-active):hover td[data-finance-fixed="true"], + .settlement-table tbody tr.is-clickable:not(.is-active):hover td[data-finance-fixed="end"] { background: #fcfaf5; } + .settlement-table tbody tr.is-active td, + .settlement-table tbody tr.is-active td[data-finance-fixed="true"], + .settlement-table tbody tr.is-active td[data-finance-fixed="end"] { background: var(--settlement-soft); border-bottom-color: #e4d7ba; } + .settlement-table tbody tr.is-active td:first-child { box-shadow: inset 3px 0 0 var(--settlement-accent); } @media (max-width: 900px) { .settlement-summary { grid-template-columns: 1fr 1fr; } @@ -233,7 +241,7 @@
-
附加费结算明细
快递名称和附加费类型固定显示,其余字段可在“列设置”中调整。
列设置按当前用户和本页面保存
+
附加费结算明细
快递名称和附加费类型固定显示,其余字段可在“列设置”中调整;点击行可高亮标记。
列设置按当前用户和本页面保存
当前筛选结果:{{ number_format((int) ($summary['count'] ?? $rows->total()), 0) }} 条数据状态:{{ $syncLabel }}@if (! empty($sync['last_succeeded_at'])),最近同步 {{ $sync['last_succeeded_at'] }}@endif
@@ -244,7 +252,7 @@ @forelse ($rows as $row) - + @foreach ($columns as $column) @endforeach @@ -261,3 +269,31 @@
{{ $rows->withQueryString()->links() }}
@endif + + diff --git a/tests/Feature/Business/CourierSurchargeSettlementPageTest.php b/tests/Feature/Business/CourierSurchargeSettlementPageTest.php index 546af5a4..db6b6f00 100644 --- a/tests/Feature/Business/CourierSurchargeSettlementPageTest.php +++ b/tests/Feature/Business/CourierSurchargeSettlementPageTest.php @@ -111,6 +111,53 @@ class CourierSurchargeSettlementPageTest extends FeatureTestCase ->assertSeeText('附加费结算'); } + public function test_settlement_rows_support_click_highlight(): void + { + $this->user->attachPermission(Permission::where('name', 'read-admin-panel')->firstOrFail()); + + $repository = Mockery::mock(CourierSurchargeSettlementMirrorRepository::class); + $repository->shouldReceive('available')->andReturn(true); + $repository->shouldReceive('ready')->andReturn(true); + $repository->shouldReceive('paginate')->andReturn([ + 'data' => [[ + 'courier_name' => '曹县德邦', + 'shipped_at' => '2026-10-12 18:38:33', + 'waybill' => 'DPK317248316615', + 'platform_product_id' => '993815011271', + 'product_code' => 'MKHDNZ0409260601380', + 'shop_name' => '拼多多-HX旗舰店101', + 'online_order_no' => '260912-325069063762746', + 'length' => 168, + 'width' => 30, + 'height' => 20, + 'volume' => 100800, + 'inspection_type' => null, + 'inspection_reason' => null, + 'return_waybill_no' => null, + 'settlement_weight' => null, + 'settlement_amount' => 8, + 'surcharge_type' => '超长费', + ]], + 'total' => 1, + 'has_more' => false, + 'summary' => ['count' => 1, 'settlement_amount' => 8.0], + 'sync' => ['code' => 'fresh', 'last_succeeded_at' => '2026-10-13 06:31:34'], + 'state' => ['code' => 'fresh', 'last_succeeded_at' => '2026-10-13 06:31:34'], + ]); + $this->app->instance(CourierSurchargeSettlementMirrorRepository::class, $repository); + + $this->loginAs()->get(route('business.pages.show', [ + 'section' => 'courier-payables', + 'page' => 'courier-surcharge-settlement', + ]))->assertOk() + ->assertSee('data-settlement-row', false) + ->assertSee('is-clickable', false) + ->assertSee('is-active', false) + ->assertSeeText('点击行可高亮标记') + ->assertSeeText('曹县德邦') + ->assertSeeText('超长费'); + } + public function test_settlement_export_streams_filtered_rows_as_xlsx(): void { $this->user->attachPermission(Permission::where('name', 'read-admin-panel')->firstOrFail());
{{ $displayValue(data_get($row, $column['key']), $column['key']) }}