From a884da7057100ee2beb055e2749607db9ff6590f Mon Sep 17 00:00:00 2001 From: renshen <1005457301@qq.com> Date: Tue, 13 Oct 2026 14:57:20 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BE=A7=E8=BE=B9=E6=A0=8F=E8=8F=9C=E5=8D=95?= =?UTF-8?q?=E6=90=9C=E7=B4=A2=20+=20=E5=B7=B2=E6=89=93=E5=BC=80=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E6=A0=87=E7=AD=BE=E6=A0=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1)侧边栏菜单上方新增搜索框:按关键字过滤菜单项(如输「快递应付」直接定位), 无匹配时给出提示,Esc 清空。 2)页面顶部新增「已打开页面」标签栏:点开过的业务页面并排固定在页面上方, 点标签直接切回(回到最近一次带筛选的地址);同一张页面按路径去重; 标签按账号存在浏览器本地(localStorage),没退出登录就一直保留; 支持单个关闭和「清空(保留当前页)」,最多并排 15 个,超出横向滚动。 钉钉单页入口模式下不显示这个标签栏。 --- .../pages/partials/open-page-tabs.blade.php | 177 ++++++++++++++++++ .../views/components/layouts/admin.blade.php | 4 + .../components/layouts/admin/menu.blade.php | 65 +++++++ .../Business/StoreViolationAlertPageTest.php | 1 + tests/Feature/Settings/NavigationTest.php | 17 ++ 5 files changed, 264 insertions(+) create mode 100644 resources/views/business/pages/partials/open-page-tabs.blade.php diff --git a/resources/views/business/pages/partials/open-page-tabs.blade.php b/resources/views/business/pages/partials/open-page-tabs.blade.php new file mode 100644 index 00000000..931d2de6 --- /dev/null +++ b/resources/views/business/pages/partials/open-page-tabs.blade.php @@ -0,0 +1,177 @@ +{{-- + 已打开页面标签栏:点开过的业务页面固定在顶部并排显示,方便来回切换; + 只要没退出登录就一直保留(按账号存在浏览器本地,不外传)。 +--}} + + + + + diff --git a/resources/views/components/layouts/admin.blade.php b/resources/views/components/layouts/admin.blade.php index 1075224e..026eec1b 100644 --- a/resources/views/components/layouts/admin.blade.php +++ b/resources/views/components/layouts/admin.blade.php @@ -92,6 +92,10 @@ + @unless ($focusEntry) + @include('business.pages.partials.open-page-tabs') + @endunless + diff --git a/resources/views/components/layouts/admin/menu.blade.php b/resources/views/components/layouts/admin/menu.blade.php index 75ff220f..687c82cb 100644 --- a/resources/views/components/layouts/admin/menu.blade.php +++ b/resources/views/components/layouts/admin/menu.blade.php @@ -199,6 +199,22 @@ @endphp +
+ +
+
@foreach ($prototypeGroups as $group)
@@ -226,6 +246,7 @@ @endforeach
@endforeach +
@stack('menu_end') + + diff --git a/tests/Feature/Business/StoreViolationAlertPageTest.php b/tests/Feature/Business/StoreViolationAlertPageTest.php index 171b7a1a..2b2e3259 100644 --- a/tests/Feature/Business/StoreViolationAlertPageTest.php +++ b/tests/Feature/Business/StoreViolationAlertPageTest.php @@ -149,6 +149,7 @@ class StoreViolationAlertPageTest extends FeatureTestCase ])) ->assertOk() ->assertDontSee('id="sidenav-main"', false) + ->assertDontSee('data-open-tabs', false) ->assertSeeText('店铺违规信息预警'); // 同目录下的另一个页面(流程统计)在钉钉里同样是单页模式。 diff --git a/tests/Feature/Settings/NavigationTest.php b/tests/Feature/Settings/NavigationTest.php index 851c5832..f92217f9 100644 --- a/tests/Feature/Settings/NavigationTest.php +++ b/tests/Feature/Settings/NavigationTest.php @@ -188,6 +188,23 @@ class NavigationTest extends FeatureTestCase ->assertSee('/workspace/financial-risk-control/store-violation-alert', false); } + public function test_business_pages_render_menu_filter_and_open_page_tabs(): void + { + $this->loginAs() + ->get(route('business.pages.show', [ + 'section' => 'financial-risk-control', + 'page' => 'store-violation-alert', + ])) + ->assertOk() + // 侧边栏菜单搜索框(方便按名称找页面)。 + ->assertSee('id="prototype-menu-filter"', false) + ->assertSee('prototype-menu-filter', false) + // 已打开页面标签栏(固定在页面上方,点开的页面并排显示)。 + ->assertSee('data-open-tabs', false) + ->assertSee('data-open-tabs-list', false) + ->assertSee('caiwu.open-pages.v1.', false); + } + public function testProcessStatisticsPageIsAvailableUnderRiskControl(): void { $this->loginAs()