# 导航结构设计文档

> **文档版本：** v1.0  
> **创建日期：** 2025-10-29  
> **维护者：** 前端开发团队  
> **最后更新：** 2025-10-29

---

## 📋 文档说明

本文档详细说明AI科研平台的导航结构设计，包括顶部导航和左侧导航的设计规范。

> **重要提示：** 本文档中涉及的模块版本要求（`requiredVersion`）均为**初始配置**，可以根据业务需求随时调整。版本权限分配完全可配置，无需改动代码逻辑。

---

## 🧭 顶部导航设计

### 导航项配置

```typescript
// navigationConfig.ts
export interface NavigationItem {
  id: string;                    // 唯一标识
  label: string;                 // 显示名称
  route: string;                 // 路由路径
  icon?: ReactNode;              // 图标（可选）
  requiredVersion?: UserVersion;  // 最低版本要求（可配置，支持后期调整）
  standalone?: boolean;          // 是否支持独立运行
}

/**
 * 顶部导航配置
 * 
 * ⚠️ 重要说明：
 * - requiredVersion 字段为初始配置，可根据业务需求随时调整
 * - 推荐通过后端API动态获取版本配置，支持实时调整
 * - 修改版本要求无需改动代码逻辑，只需更新配置即可
 */
export const TOP_NAVIGATION_ITEMS: NavigationItem[] = [
  {
    id: 'ai-qa',
    label: 'AI问答',
    route: '/ai-qa',
    requiredVersion: 'basic', // 初始配置：基础版可用（可调整）
  },
  {
    id: 'literature-platform',
    label: 'AI智能文献',
    route: '/literature',
    requiredVersion: 'advanced', // 初始配置：高级版可用（可调整）
    standalone: true,
  },
  {
    id: 'knowledge-base',
    label: '知识库',
    route: '/knowledge-base',
    requiredVersion: 'basic', // 初始配置：基础版可用（可调整）
  },
  {
    id: 'data-cleaning',
    label: '智能数据清洗',
    route: '/data-cleaning',
    requiredVersion: 'advanced', // 初始配置：高级版可用（可调整）
    placeholder: true, // 占位，显示"开发中"
  },
  {
    id: 'statistical-analysis',
    label: '智能统计分析',
    route: '/intelligent-analysis',
    requiredVersion: 'premium', // 初始配置：旗舰版可用（可调整）
    external: true, // 由Java团队开发，只做顶部导航集成
  },
  {
    id: 'statistical-tools',
    label: '统计分析工具',
    route: '/statistical-tools',
    requiredVersion: 'premium', // 初始配置：旗舰版可用（可调整）
    external: true, // 由Java团队开发，只做顶部导航集成
  },
];
```

### 顶部导航布局

```
┌──────────────────────────────────────────────────────────────────────────┐
│  [Logo]  [AI问答] [AI智能文献] [知识库] [智能数据清洗] [智能统计分析] [统计分析工具]  [用户名] [用户菜单▼] │
└──────────────────────────────────────────────────────────────────────────┘
  160px     自适应宽度                                                   200px
```

### 视觉设计规范

#### 导航项样式
- **正常状态**：`color: #4b5563`, `font-weight: 500`
- **悬停状态**：`color: #0ea5e9`, `background: rgba(14, 165, 233, 0.1)`
- **激活状态**：`color: #0ea5e9`, `font-weight: 600`, `border-bottom: 2px solid #0ea5e9`
- **禁用状态**（无权限）：`color: #9ca3af`, `cursor: not-allowed`

#### 间距规范
- 导航项之间：`16px` 水平间距
- 导航项内边距：`12px 16px`
- 整个导航栏高度：`64px`

### 个人中心设计

**位置**：顶部导航最右侧

**显示内容**：
- 用户名（手机号脱敏显示，如：`186****8738`）
- 用户头像/图标（点击触发下拉菜单）

**下拉菜单选项**：
```
┌─────────────────────┐
│ 个人中心            │
│ 历史记录            │
│ ────────────────    │
│ 订阅管理            │
│ 退出账号            │
└─────────────────────┘
```

**路由跳转**：
- 个人中心 → `/user/profile`
- 历史记录 → `/user/history`
- 订阅管理 → `/user/subscription`
- 退出账号 → 登出操作

---

## 📂 左侧导航设计

### 设计原则

1. **按需显示**：只有进入具体模块后才显示左侧导航
2. **模块独立**：每个模块有自己独立的左侧导航配置
3. **层级清晰**：支持一级和二级菜单

### AI问答模块左侧导航

**布局方式**：卡片式布局（不使用左侧导航）

```
┌─────────────────────────────────────────┐
│  AI问答主界面                            │
│  ┌───────────────────────────────────┐  │
│  │  搜索框 + 提问按钮                 │  │
│  └───────────────────────────────────┘  │
│                                         │
│  或选择一个智能体开始:                   │
│  ┌────┐ ┌────┐ ┌────┐ ┌────┐          │
│  │选题│ │PICO│ │研究│ │方法│ ...       │
│  │评价│ │梳理│ │方案│ │学   │          │
│  └────┘ └────┘ └────┘ └────┘          │
└─────────────────────────────────────────┘
```

### AI智能文献模块左侧导航

```typescript
const LITERATURE_SIDE_NAV = [
  {
    id: 'research-plan',
    label: '研究方案生成',
    route: '/literature/research-plan',
    icon: '📋',
  },
  {
    id: 'search',
    label: '智能文献检索',
    route: '/literature/search',
    icon: '🔍',
  },
  {
    id: 'management',
    label: '文献管理',
    route: '/literature/management',
    icon: '📚',
  },
  {
    id: 'screening',
    label: '标题摘要初筛',
    route: '/literature/screening',
    icon: '✅',
  },
  {
    id: 'full-text',
    label: '全文复筛',
    route: '/literature/full-text',
    icon: '📄',
  },
  {
    id: 'extraction',
    label: '全文解析与数据提取',
    route: '/literature/extraction',
    icon: '🔬',
  },
  {
    id: 'analysis',
    label: '数据综合分析与报告',
    route: '/literature/analysis',
    icon: '📊',
  },
];
```

**布局样式**：
- 宽度：`200px`
- 背景色：`#f9fafb`
- 激活项：`background: #e0e7ff`, `border-left: 3px solid #4f46e5`

### 知识库模块左侧导航

```typescript
const KNOWLEDGE_BASE_SIDE_NAV = [
  {
    id: 'list',
    label: '知识库列表',
    route: '/knowledge-base',
    icon: '📚',
  },
  {
    id: 'create',
    label: '+ 新建知识库',
    route: '/knowledge-base/create',
    icon: '+',
  },
];
```

### 智能统计分析模块（外部模块说明）

**说明：** 智能统计分析模块由**Java团队**开发，采用**Java后端**技术栈。  
**我们的职责：** 仅在顶部导航中集成该模块的入口，点击后跳转到Java团队开发的页面。  
**设计规范：** 不需要我们设计左侧导航，Java团队已有自己的页面布局设计。

**集成方式：**
- 顶部导航点击后，直接跳转到 `/intelligent-analysis` 路由
- 该路由可能指向独立的Java应用或iframe嵌入
- 具体集成方式需与Java团队协商确定

### 统计分析工具模块（外部模块说明）

**说明：** 统计分析工具模块由**Java团队**开发，采用**Java后端**技术栈。  
**我们的职责：** 仅在顶部导航中集成该模块的入口，点击后跳转到Java团队开发的页面。  
**设计规范：** 该模块**不是左侧导航设计**，Java团队有自己的页面布局（如顶部Tab导航等）。

**集成方式：**
- 顶部导航点击后，直接跳转到 `/statistical-tools` 路由
- 该路由可能指向独立的Java应用或iframe嵌入
- 具体集成方式需与Java团队协商确定

---

## 🔄 导航交互逻辑

### 顶部导航切换

```typescript
// 点击顶部导航项
const handleNavClick = (item: NavigationItem) => {
  // 1. 检查权限
  if (!hasPermission(item.requiredVersion)) {
    showUpgradePrompt(item);
    return;
  }
  
  // 2. 检查是否为占位模块
  if (item.placeholder) {
    showComingSoon(item);
    return;
  }
  
  // 3. 导航到目标路由
  navigate(item.route);
  
  // 4. 更新激活状态
  setActiveNavItem(item.id);
};
```

### 左侧导航切换

```typescript
// 点击左侧导航项
const handleSideNavClick = (item: SideNavItem) => {
  // 导航到目标路由（模块内部路由）
  navigate(item.route);
  
  // 更新激活状态
  setActiveSideNavItem(item.id);
};
```

### 面包屑导航（可选）

对于深层级页面，建议添加面包屑导航：

```
首页 > AI智能文献 > 标题摘要初筛 > 审核工作台
```

---

## 📱 响应式设计

### 桌面端 (>1024px)
- 完整显示所有顶部导航项
- 显示完整的左侧导航

### 平板端 (768-1024px)
- 显示前4个顶部导航项
- 其余导航项折叠到"更多"菜单
- 左侧导航可折叠为抽屉式

### 移动端 (<768px)
- 顶部导航采用汉堡菜单（☰）
- 左侧导航改为底部Tab导航或抽屉式

---

## 🎨 样式规范

### CSS变量定义

```css
:root {
  /* 导航颜色 */
  --nav-bg-color: #ffffff;
  --nav-border-color: #e5e7eb;
  --nav-text-color: #4b5563;
  --nav-text-hover: #0ea5e9;
  --nav-text-active: #0ea5e9;
  --nav-active-border: #0ea5e9;
  
  /* 侧边栏颜色 */
  --sidebar-bg: #f9fafb;
  --sidebar-active-bg: #e0e7ff;
  --sidebar-active-border: #4f46e5;
  --sidebar-text-color: #4338ca;
  
  /* 尺寸 */
  --nav-height: 64px;
  --sidebar-width: 200px;
  --nav-item-padding: 12px 16px;
  --nav-item-spacing: 16px;
}
```

---

## 📝 实施清单

### 组件开发
- [ ] `TopNavigation.tsx` - 顶部导航组件
- [ ] `SideNavigation.tsx` - 左侧导航组件
- [ ] `UserMenu.tsx` - 用户菜单组件
- [ ] `NavigationGuard.tsx` - 导航权限守卫
- [ ] `ComingSoon.tsx` - 开发中占位组件

### 配置文件
- [ ] `navigationConfig.ts` - 导航配置
- [ ] `moduleNavConfig.ts` - 模块导航配置
- [ ] `versionConfig.ts` - 版本配置（本地配置，作为兜底）
- [ ] `useVersionConfig.ts` - 版本配置Hook（从API动态获取）

### 文档
- [ ] 更新本文档
- [ ] 编写导航组件使用文档

---

**文档版本：** v1.0  
**最后更新：** 2025-10-29













