From c54e95bb749332cc6a7101679299a06beca79635 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=90=9D=E5=8D=9C?= Date: Mon, 16 Mar 2026 23:54:54 +0800 Subject: [PATCH] Fix: dashboard recent platform orders table overflow --- public/css/admin-components.css | 30 +++++++++++++++ ...youtShouldBeFixedToPreventOverflowTest.php | 38 +++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 tests/Feature/AdminDashboardRecentPlatformOrdersTableLayoutShouldBeFixedToPreventOverflowTest.php diff --git a/public/css/admin-components.css b/public/css/admin-components.css index bbc9d4d..64b52c5 100644 --- a/public/css/admin-components.css +++ b/public/css/admin-components.css @@ -758,13 +758,43 @@ margin-right:4px; } +/* 仪表盘最近订单:避免内容把表格/卡片撑破导致横向溢出 */ +[data-page="admin.dashboard"] [data-role="recent-platform-orders-table"]{ + table-layout:fixed; +} + +[data-page="admin.dashboard"] [data-role="recent-platform-orders-table"] th:nth-child(1), +[data-page="admin.dashboard"] [data-role="recent-platform-orders-table"] td:nth-child(1){ + width:140px; +} + +[data-page="admin.dashboard"] [data-role="recent-platform-orders-table"] th:nth-child(3), +[data-page="admin.dashboard"] [data-role="recent-platform-orders-table"] td:nth-child(3){ + width:110px; + white-space:nowrap; +} + /* 仪表盘最近订单:避免「支付」表头在窄宽下被拆成竖排(CJK 可在任意字间断行) */ [data-page="admin.dashboard"] [data-role="recent-platform-orders-table"] th:nth-child(4), [data-page="admin.dashboard"] [data-role="recent-platform-orders-table"] td:nth-child(4){ + width:86px; white-space:nowrap; min-width:56px; } +[data-page="admin.dashboard"] [data-role="recent-platform-orders-table"] th:nth-child(5), +[data-page="admin.dashboard"] [data-role="recent-platform-orders-table"] td:nth-child(5){ + width:140px; +} + +[data-page="admin.dashboard"] [data-role="recent-platform-orders-table"] td:nth-child(1) a.link{ + display:block; + max-width:100%; + overflow:hidden; + text-overflow:ellipsis; + white-space:nowrap; +} + /* 仪表盘最近订单:扫描信息行(用于快速判断治理状态,不替代下方治理提示入口) */ [data-page="admin.dashboard"] .adm-order-scanline{ margin-top:3px; diff --git a/tests/Feature/AdminDashboardRecentPlatformOrdersTableLayoutShouldBeFixedToPreventOverflowTest.php b/tests/Feature/AdminDashboardRecentPlatformOrdersTableLayoutShouldBeFixedToPreventOverflowTest.php new file mode 100644 index 0000000..fa10bff --- /dev/null +++ b/tests/Feature/AdminDashboardRecentPlatformOrdersTableLayoutShouldBeFixedToPreventOverflowTest.php @@ -0,0 +1,38 @@ +seed(); + + $this->post('/admin/login', [ + 'email' => 'platform.admin@demo.local', + 'password' => 'Platform@123456', + ])->assertRedirect('/admin'); + } + + public function test_recent_platform_orders_table_should_have_fixed_layout_guard(): void + { + $this->loginAsPlatformAdmin(); + + $res = $this->get('/admin'); + $res->assertOk(); + + // 结构护栏:最近平台订单 table 必须可被稳定选择 + $res->assertSee('data-role="recent-platform-orders-table"', false); + + $css = (string) file_get_contents(public_path('css/admin-components.css')); + + // CSS 护栏:必须启用 table-layout:fixed,避免长内容把列宽撑破导致横向溢出。 + $this->assertStringContainsString('[data-role="recent-platform-orders-table"]{', $css); + $this->assertStringContainsString('table-layout:fixed', $css); + } +}