# Fantastic-admin 插槽位置参考

本文档详细介绍 Fantastic-admin 框架中所有可用的插槽位置。

## 插槽分类

### 布局插槽（2 个位置）

位于应用布局的最外层，横跨全宽。

#### LayoutTop
- **位置**：位于整个应用的最顶部，在头部之上
- **适用场景**：
  - 全局公告横幅
  - 系统维护通知
  - Cookie 同意栏
  - 试用到期提醒
- **布局方式**：全宽块级容器
- **说明**：内容会将整个布局向下撑开，适合需要立即引起注意的横幅

#### LayoutBottom
- **位置**：位于整个应用的最底部，在页脚之下
- **适用场景**：
  - 全局版权声明
  - 法律免责声明
  - 持久状态栏
- **布局方式**：全宽块级容器

---

### 头部插槽（4 个位置）

位于应用顶部的头部导航栏中。

#### HeaderStart
- **位置**：头部最左侧，logo 之前
- **适用场景**：
  - 菜单折叠按钮
  - 面包屑导航
  - 自定义品牌元素
- **布局方式**：水平弹性布局

#### HeaderAfterLogo
- **位置**：头部 logo 紧后方
- **适用场景**：
  - 应用标题或副标题
  - 版本徽标
  - 环境标识（开发/预发/生产）
- **布局方式**：水平弹性布局

#### HeaderAfterMenu
- **位置**：头部主菜单之后
- **版本要求**：v5.3.0+
- **适用场景**：
  - 搜索框
  - 快捷操作
  - 通知提示
- **布局方式**：水平弹性布局

#### HeaderEnd
- **位置**：头部最右侧
- **适用场景**：
  - 用户头像下拉菜单
  - 设置按钮
  - 退出登录按钮
  - 主题切换器
- **布局方式**：水平弹性布局

---

### 主侧边栏插槽（4 个位置）

位于主导航侧边栏中。

#### MainSidebarTop
- **位置**：主侧边栏顶部，logo 之前
- **适用场景**：
  - 折叠/展开按钮
  - 自定义头部内容
  - 工作区选择器
- **布局方式**：垂直弹性布局

#### MainSidebarAfterLogo
- **位置**：主侧边栏 logo 紧后方
- **适用场景**：
  - 用户信息卡片
  - 快速统计数据
  - 工作区名称
- **布局方式**：垂直弹性布局

#### MainSidebarAfterMenu
- **位置**：主侧边栏导航菜单之后
- **版本要求**：v5.3.0+
- **适用场景**：
  - 附加导航项
  - 快捷方式
  - 固定项目
- **布局方式**：垂直弹性布局

#### MainSidebarBottom
- **位置**：主侧边栏底部
- **适用场景**：
  - 帮助/支持链接
  - 版本信息
  - 底部内容
  - 折叠按钮
- **布局方式**：垂直弹性布局

---

### 子侧边栏插槽（4 个位置）

位于次级导航侧边栏中（使用多级导航时显示）。

#### SubSidebarTop
- **位置**：子侧边栏顶部
- **适用场景**：
  - 区块标题
  - 返回按钮
  - 面包屑
- **布局方式**：垂直弹性布局

#### SubSidebarAfterLogo
- **位置**：子侧边栏 logo 之后
- **适用场景**：
  - 区块描述
  - 上下文信息
- **布局方式**：垂直弹性布局

#### SubSidebarAfterMenu
- **位置**：子侧边栏导航菜单之后
- **版本要求**：v5.3.0+
- **适用场景**：
  - 附加子导航
  - 相关链接
- **布局方式**：垂直弹性布局

#### SubSidebarBottom
- **位置**：子侧边栏底部
- **适用场景**：
  - 区块专属操作
  - 底部内容
- **布局方式**：垂直弹性布局

---

### 顶部栏插槽（4 个位置）

位于标签栏和工具栏区域。

#### TabbarStart
- **位置**：标签栏左侧
- **适用场景**：
  - 标签导航控件
  - 刷新按钮
  - 自定义标签操作
- **布局方式**：水平弹性布局

#### TabbarEnd
- **位置**：标签栏右侧
- **适用场景**：
  - 关闭所有标签按钮
  - 标签管理操作
- **布局方式**：水平弹性布局

#### ToolbarStart
- **位置**：工具栏左侧
- **适用场景**：
  - 页面专属操作
  - 面包屑
  - 页面标题
- **布局方式**：水平弹性布局

#### ToolbarEnd
- **位置**：工具栏右侧
- **适用场景**：
  - 操作按钮
  - 筛选器
  - 导出/导入按钮
- **布局方式**：水平弹性布局

---

### 自由定位插槽

#### FreePosition
- **位置**：灵活定位，需手动设置坐标
- **特殊要求**：
  - **必须**在样式中使用 `position: absolute;`
  - **必须**手动设置定位坐标（top/right/bottom/left）
  - **必须**设置合适的 z-index
- **适用场景**：
  - 悬浮操作按钮（FAB）
  - 客服聊天组件
  - 自定义遮罩层
  - 通知 Toast
  - 帮助按钮
- **样式示例**：
  ```css
  .free-position-slot {
    position: absolute;
    bottom: 20px;
    right: 20px;
    z-index: 1000;
  }
  ```

---

## 插槽选择指南

### 何时使用布局插槽：
- 需要显示在所有内容之上的全局横幅（公告、维护通知）
- 需要显示在所有内容之下的全局底栏（版权声明、法律免责）

### 何时使用头部插槽：
- 全局导航元素
- 用户账号控件
- 全局操作按钮
- 品牌元素

### 何时使用侧边栏插槽：
- 导航增强内容
- 用户信息展示
- 工作区上下文
- 帮助与支持链接

### 何时使用顶部栏插槽：
- 页面专属操作
- 标签管理
- 上下文控件
- 面包屑导航

### 何时使用 FreePosition：
- 不适合放入标准布局的悬浮元素
- 需要覆盖在内容之上的元素
- 客服聊天组件或帮助按钮
- 需要自定义定位的组件

---

## 文件结构

所有插槽必须遵循以下目录结构：
```
/src/slots/{插槽名称}/index.vue
```

**注意**：文件名必须为 `index.vue`。

示例：
```
/src/slots/LayoutTop/index.vue
/src/slots/LayoutBottom/index.vue
/src/slots/HeaderStart/index.vue
/src/slots/MainSidebarBottom/index.vue
/src/slots/FreePosition/index.vue
```
