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
+
没有匹配的菜单
@@ -347,3 +368,47 @@
@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()