From 69ed7d85d7aab6c9af8ce0add1965c3eb1e173a8 Mon Sep 17 00:00:00 2001 From: fengsilin Date: Tue, 12 May 2026 11:13:10 +0800 Subject: [PATCH] =?UTF-8?q?feat(sidebar):=20=E6=B7=BB=E5=8A=A0=E7=9B=91?= =?UTF-8?q?=E6=8E=A7=E5=A4=96=E9=83=A8=E9=93=BE=E6=8E=A5=E8=8F=9C=E5=8D=95?= =?UTF-8?q?=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在管理员菜单区域新增「监控」入口,仅 root 用户可见, 点击后在新窗口打开外部监控面板。支持在侧边栏模块管理中切换显示/隐藏。 同时在 renderWrapper 中添加外部链接的通用支持。 Co-Authored-By: Claude Opus 4.7 --- web/src/components/layout/SiderBar.jsx | 22 +++++++++++++++++++ web/src/helpers/render.jsx | 3 +++ web/src/hooks/common/useSidebar.js | 1 + .../Operation/SettingsSidebarModulesAdmin.jsx | 8 +++++++ 4 files changed, 34 insertions(+) diff --git a/web/src/components/layout/SiderBar.jsx b/web/src/components/layout/SiderBar.jsx index edcd76b..8c8d8aa 100644 --- a/web/src/components/layout/SiderBar.jsx +++ b/web/src/components/layout/SiderBar.jsx @@ -49,6 +49,7 @@ const routerMap = { deployment: '/console/deployment', playground: '/console/playground', personal: '/console/personal', + monitoring: 'https://monitor.lancerouter.ai/', }; const SiderBar = ({ onNavigate = () => {} }) => { @@ -189,6 +190,12 @@ const SiderBar = ({ onNavigate = () => {} }) => { to: '/setting', className: isRoot() ? '' : 'tableHiddle', }, + { + text: t('监控'), + itemKey: 'monitoring', + to: 'https://monitor.lancerouter.ai/', + className: isRoot() ? '' : 'tableHiddle', + }, ]; // 根据配置过滤项目 @@ -416,6 +423,21 @@ const SiderBar = ({ onNavigate = () => {} }) => { // 如果没有路由,直接返回元素 if (!to) return itemElement; + // 外部链接用 在新窗口打开 + if (to.startsWith('http')) { + return ( + + {itemElement} + + ); + } + return ( ; case 'setting': return ; + case 'monitoring': + return ; default: return ; } diff --git a/web/src/hooks/common/useSidebar.js b/web/src/hooks/common/useSidebar.js index cd74ada..5eddc4a 100644 --- a/web/src/hooks/common/useSidebar.js +++ b/web/src/hooks/common/useSidebar.js @@ -53,6 +53,7 @@ export const DEFAULT_ADMIN_CONFIG = { user: true, subscription: true, setting: true, + monitoring: true, }, }; diff --git a/web/src/pages/Setting/Operation/SettingsSidebarModulesAdmin.jsx b/web/src/pages/Setting/Operation/SettingsSidebarModulesAdmin.jsx index bcfad9b..8ea1b77 100644 --- a/web/src/pages/Setting/Operation/SettingsSidebarModulesAdmin.jsx +++ b/web/src/pages/Setting/Operation/SettingsSidebarModulesAdmin.jsx @@ -67,6 +67,7 @@ export default function SettingsSidebarModulesAdmin(props) { user: true, subscription: true, setting: true, + monitoring: true, }, }); @@ -128,6 +129,7 @@ export default function SettingsSidebarModulesAdmin(props) { user: true, subscription: true, setting: true, + monitoring: true, }, }; setSidebarModulesAdmin(defaultModules); @@ -197,6 +199,7 @@ export default function SettingsSidebarModulesAdmin(props) { user: true, subscription: true, setting: true, + monitoring: true, }, }; setSidebarModulesAdmin(defaultModules); @@ -276,6 +279,11 @@ export default function SettingsSidebarModulesAdmin(props) { title: t('系统设置'), description: t('系统参数配置'), }, + { + key: 'monitoring', + title: t('监控'), + description: t('外部监控面板'), + }, ], }, ];