feat: 前台侧边栏改为分组导航,微信机器人归入 IM Bot 分组
This commit is contained in:
1 parent
950f86325a
commit
2eadd83304
2 files changed
+33
-7
No files matched your search
@@ -80,6 +80,14 @@
|
||||
flex-direction: column;
|
||||
gap: 2px;
|
||||
}
|
||||
.nav-group-title {
|
||||
padding: 14px var(--space-md) 6px;
|
||||
font-size: 11px;
|
||||
font-weight: 600;
|
||||
letter-spacing: 0.06em;
|
||||
text-transform: uppercase;
|
||||
color: #9CA3AF;
|
||||
}
|
||||
|
||||
.nav-item {
|
||||
position: relative;
|
||||
|
||||
@@ -3,16 +3,31 @@ import { Outlet, NavLink, useNavigate } from 'react-router-dom';
|
||||
import { useAuth } from '@/contexts/AuthContext';
|
||||
import './FrontLayout.css';
|
||||
|
||||
const navItems = [
|
||||
const navGroups = [
|
||||
{
|
||||
title: '智能体',
|
||||
items: [
|
||||
{ path: '/chat', icon: 'chat', label: 'AI聊天' },
|
||||
{ path: '/channels', icon: 'channel', label: 'IM Bot' },
|
||||
{ path: '/knowledge', icon: 'knowledge', label: '知识库' },
|
||||
{ path: '/market', icon: 'market', label: '技能市场' },
|
||||
{ path: '/evolution', icon: 'evolution', label: 'AI自进化' },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: 'IM Bot',
|
||||
items: [
|
||||
{ path: '/channels', icon: 'channel', label: '频道管理' },
|
||||
{ path: '/wechat-bot', icon: 'wechat', label: '微信机器人' },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: '资源中心',
|
||||
items: [
|
||||
{ path: '/assets', icon: 'assets', label: '资产文件' },
|
||||
{ path: '/token', icon: 'token', label: 'Token驾驶舱' },
|
||||
{ path: '/pricing', icon: 'pricing', label: '付费中心' },
|
||||
{ path: '/assets', icon: 'assets', label: '资产文件' },
|
||||
{ path: '/evolution', icon: 'evolution', label: 'AI自进化' },
|
||||
{ path: '/wechat-bot', icon: 'wechat', label: '微信机器人' },
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
const bottomItems = [
|
||||
@@ -80,8 +95,10 @@ const FrontLayout: React.FC = () => {
|
||||
</span>
|
||||
{!collapsed && <span className="nav-item-label">返回首页</span>}
|
||||
</NavLink>
|
||||
<div className="nav-section">
|
||||
{navItems.map(item => (
|
||||
{navGroups.map(group => (
|
||||
<div className="nav-section" key={group.title}>
|
||||
{!collapsed && <div className="nav-group-title">{group.title}</div>}
|
||||
{group.items.map(item => (
|
||||
<NavLink
|
||||
key={item.path}
|
||||
to={item.path}
|
||||
@@ -94,6 +111,7 @@ const FrontLayout: React.FC = () => {
|
||||
</NavLink>
|
||||
))}
|
||||
</div>
|
||||
))}
|
||||
<div className="nav-section nav-bottom">
|
||||
{bottomItems.map(item => (
|
||||
<NavLink
|
||||
|
||||
Reference in new issue
Block a user