feat: 前台侧边栏改为分组导航,微信机器人归入 IM Bot 分组

This commit is contained in:
WorkBuddy committed 2026-07-09 21:53:23 +08:00
1 parent 950f86325a
commit 2eadd83304
2 files changed
+33 -7

No files matched your search

@@ -80,6 +80,14 @@
flex-direction: column; flex-direction: column;
gap: 2px; 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 { .nav-item {
position: relative; position: relative;
+25 -7
View File
@@ -3,16 +3,31 @@ import { Outlet, NavLink, useNavigate } from 'react-router-dom';
import { useAuth } from '@/contexts/AuthContext'; import { useAuth } from '@/contexts/AuthContext';
import './FrontLayout.css'; import './FrontLayout.css';
const navItems = [ const navGroups = [
{
title: '智能体',
items: [
{ path: '/chat', icon: 'chat', label: 'AI聊天' }, { path: '/chat', icon: 'chat', label: 'AI聊天' },
{ path: '/channels', icon: 'channel', label: 'IM Bot' },
{ path: '/knowledge', icon: 'knowledge', label: '知识库' }, { path: '/knowledge', icon: 'knowledge', label: '知识库' },
{ path: '/market', icon: 'market', 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: '/token', icon: 'token', label: 'Token驾驶舱' },
{ path: '/pricing', icon: 'pricing', label: '付费中心' }, { path: '/pricing', icon: 'pricing', label: '付费中心' },
{ path: '/assets', icon: 'assets', label: '资产文件' }, ],
{ path: '/evolution', icon: 'evolution', label: 'AI自进化' }, },
{ path: '/wechat-bot', icon: 'wechat', label: '微信机器人' },
]; ];
const bottomItems = [ const bottomItems = [
@@ -80,8 +95,10 @@ const FrontLayout: React.FC = () => {
</span> </span>
{!collapsed && <span className="nav-item-label">返回首页</span>} {!collapsed && <span className="nav-item-label">返回首页</span>}
</NavLink> </NavLink>
<div className="nav-section"> {navGroups.map(group => (
{navItems.map(item => ( <div className="nav-section" key={group.title}>
{!collapsed && <div className="nav-group-title">{group.title}</div>}
{group.items.map(item => (
<NavLink <NavLink
key={item.path} key={item.path}
to={item.path} to={item.path}
@@ -94,6 +111,7 @@ const FrontLayout: React.FC = () => {
</NavLink> </NavLink>
))} ))}
</div> </div>
))}
<div className="nav-section nav-bottom"> <div className="nav-section nav-bottom">
{bottomItems.map(item => ( {bottomItems.map(item => (
<NavLink <NavLink