-
{/* 不再有内层 tab:LDAP / 镜像源 已拆成独立路由,
由左侧「系统设置」分组的顶层 tab 切换(单层 tab 更好理解)。 */}
diff --git a/frontend/src/router/routes.tsx b/frontend/src/router/routes.tsx
index cbd41a5..c98d762 100644
--- a/frontend/src/router/routes.tsx
+++ b/frontend/src/router/routes.tsx
@@ -19,6 +19,7 @@ import {
Boxes,
ShieldCheck,
Container,
+ Bot,
} from 'lucide-react';
import type { AppRoute, MenuItem, RouteMeta } from '@/types/router';
@@ -32,6 +33,7 @@ const Collectors = lazy(() => import('@/pages/collectors'));
const SettingsPage = lazy(() => import('@/pages/settings'));
const LdapPage = lazy(() => import('@/pages/settings/ldap'));
const RegistryPage = lazy(() => import('@/pages/settings/registry'));
+const AiModelPage = lazy(() => import('@/pages/settings/ai'));
const NotFound = lazy(() => import('@/pages/not-found'));
const WizardPage = lazy(() => import('@/pages/wizard'));
const LogsPage = lazy(() => import('@/pages/logs'));
@@ -88,7 +90,8 @@ export const routes: AppRoute[] = [
},
{ path: '/audit', component: AuditPage, auth: true, meta: { title: 'menu.audit', icon: History, order: 10, adminOnly: true, groupKey: 'system', proOnly: true } },
{ path: '/settings/ldap', component: LdapPage, auth: true, meta: { title: 'menu.ldap', icon: ShieldCheck, order: 11, adminOnly: true, groupKey: 'system' } },
- { path: '/settings/registry', component: RegistryPage, auth: true, meta: { title: 'menu.registry', icon: Container, order: 12, adminOnly: true, groupKey: 'system' } },
+ { path: '/settings/registry', component: RegistryPage, auth: true, meta: { title: 'menu.registry', icon: Container, order: 13, adminOnly: true, groupKey: 'system' } },
+ { path: '/settings/ai', component: AiModelPage, auth: true, meta: { title: 'menu.aiModel', icon: Bot, order: 12, adminOnly: true, groupKey: 'system' } },
// 系统设置放回侧栏,并作为「系统设置」分组的 tab 起点(order 最小 = 排在第一个)
{
path: '/settings', component: SettingsPage, auth: true,