---
id: "navigation-menu"
title: "导航菜单"
category: "容器组件"
document_type: "component-specification"
spec_status: "local-current-draft"
element_ui: "2.15.6"
vue: "2.6.14"
page: "../index.html#spec-navigation-menu"
source_data: "../component-data.json"
official_components: ["menu", "submenu", "menu-item", "menu-item-group"]
template_components: []
scenario_count: 6
verification: "scenario-checklist-not-full-test-pass"
---

# 导航菜单

专题 `navigation-menu` · 容器组件 · Element UI 2.15.6

## 适用范围与组件映射

公共色板及字体基线适用于整个运营后台。本库整理基础组件、组件状态和可复用的组合模式；本轮补齐表单整体验证、页面布局和导航组合；具体业务字段与跨页流程仍在业务场景中说明。专题验收清单包含接入要求，不表示当前示例已实现或已验证全部场景。

官方条目映射：`menu`、`submenu`、`menu-item`、`menu-item-group`。

## 通用基线

- 组件库：Element UI **2.15.6**；运行样例 Vue **2.6.14**。
- 系统中文字体：macOS 优先苹方，Windows 通常微软雅黑；工程顺序固定为 `"PingFang SC", "Microsoft YaHei", sans-serif`。不要求安装或加载网络字体，兼容回退不是另一套可选样式。
- 后续仅采用经验证且固定版本的兼容 Element UI 2.x；Element Plus 属于独立迁移路线。
- 正文、数据值、输入及已选值：`14px / 400 / 21px`，`#303133`。
- 表头及组件分组标题：`14px / 600 / 21px`；弹窗标题：`16px / 600 / 24px`，均使用 `#303133`。
- 辅助说明：`12px / 400 / 18px`，`#595959`；错误、链接、状态、禁用与占位按各自语义处理。
- 适用组件的默认尺寸为 `small / 32px`；不得将这一高度机械应用于表格、文本域、浮层等全部组件。
- 规范正文与场景说明使用 `14px / 400 / 24px`、`#303133`，不降成灰蓝小字。
- 筛选文本输入占位统一“请输入”；未选择下拉统一“请选择”；默认全部的下拉显示“全部”。字段标签保留业务含义；日期保留开始/结束语义。
- 次级文字操作（查看更多、编辑、详情、数据中心、更多）：`12px / 400 / 18px`，`#3377BB`；保留点击热区。
- 本规范库的深色目录、蓝色展示区属于文档排版，不是业务组件颜色或业务导航规范。

## 本页用法与分类

默认用法：后台沿用深色侧栏；只有层级较少、顶部空间适合时才采用水平模块导航。当前两个实例是布局对照，不要求在同一系统重复摆放。

| 区分什么 | 本页内容 | 选用或触发条件 |
| --- | --- | --- |
| 用途：全局导航与页内切换 | 导航进入模块或页面；页内标签切换同一页面的内容。 | 会员列表、平台报表等模块入口用导航；同页详情分区采用页内标签，不重复制两套入口。 |
| 布局：侧栏与水平 | 两种方向改变页面骨架与菜单展开位置。 | 后台默认侧栏200px，收起64px；水平菜单适用于较少顶层模块。选择由页面结构决定，不由选中或禁用状态决定。 |
| 层级：父组与叶子 | 父组控制子菜单展开，叶子代表具体目的地。 | 展开父组不切换内容；选择可用叶子才切换。当前叶子保留高亮，隐藏与禁用由宿主权限策略决定。 |
| 交互：本地示例与真实路由 | 当前样例只改变卡片内说明，不接入业务路由。 | 真实接入需同步地址、当前项与父组，验证深链接、后退、焦点和窄屏；不能把本页的方法测试称为业务壳验收完成。 |

使用边界：不把收起模式、禁用、当前项当成多套可随意选择的配色；不使用成功绿表示当前菜单；不展示看似可点却没有目的地的入口。

## 组件规则

- **NAVIGATION-MENU-R01**：后台默认采用深色侧栏导航，用于切换模块或页面；页内标签用于同一页面的并列内容，不能当作全局导航替代品。默认沿用已存在的中控菜单与模块名称，不另造业务模块。
- **NAVIGATION-MENU-R02**：侧栏展开与收起使用官方菜单的折叠能力；收起后保留图标、可访问名称与子菜单入口。当前叶子项唯一，父组展开只是层级展示，不是另一个已选页面。
- **NAVIGATION-MENU-R03**：水平导航只作为层级较少且横向空间充足时的布局对照，当前样例通过点击展开子菜单。侧栏和水平菜单分别操作，不在真实业务壳里同时提供同一组重复入口。
- **NAVIGATION-MENU-R04**：菜单选择必须带来对应内容变化；本页仅切换组件内的概览、会员列表、平台报表说明，不改变浏览器路由、不发起业务请求。禁用项不可进入，不能仅改灰色却继续触发。
- **NAVIGATION-MENU-R05**：本页补充键盘适配：制表键进入可用项；方向键在同组移动；起始键/结束键定位首尾；回车或空格选择叶子或展开父组。右方向键进入侧栏子菜单，下方向键进入水平子菜单；左方向键或退出键关闭子菜单并回父项。折叠浮层离开菜单后关闭。
- **NAVIGATION-MENU-R06**：菜单文字正文14px/400；不通过加粗或改变大小来表达当前项。收起、悬停、展开、当前、禁用是交互状态，不是新的配色方案。
- **NAVIGATION-MENU-R07**：【公共用色】颜色仅从公共色值 引用：主色系 3 个基础色值、辅助功能色 3 个、中性色 10 个，共 16 个基础色值。角色可以多个，实际色值复用；不为每个组件、悬停 或不同字段再新增近似颜色。透明效果仅限遮罩 35% 与阴影 12%，从 外壳深色 派生。
- **NAVIGATION-MENU-R08**：【统一字体】统一系统中文字体：macOS 优先苹方（PingFang SC），Windows 通常使用微软雅黑（Microsoft YaHei）；工程顺序固定为 "PingFang SC", "Microsoft YaHei", sans-serif。使用设备已有字体，不要求安装或加载网络字体；最后一项仅作兼容回退，不是供页面作者任选的另一套样式。正文 14px/400/21px；表头与分组标题 14px/600/21px，弹窗标题 16px/600/24px；次级文字操作和辅助说明 12px/400/18px。正文与标题同用 #303133；不通过额外加粗或透明度改变正文轻重。
- **NAVIGATION-MENU-R09**：【叠加优先级】状态叠加规则：禁用阻断交互；输入类控件错误边框覆盖蓝色聚焦边框；输入框不叠加外圈或阴影，其他无边框操作保留键盘焦点提示；选中底覆盖悬停底；只读不等于禁用；加载不等于成功；业务启用/停用的文字结果不等于控件是否可点击。
- **NAVIGATION-MENU-R10**：【侧栏普通项】沿用后台深色侧栏：外壳深色背景、白色文字和图标；展开宽度200px、收起宽度64px。默认一级项高50px，子项高44px。窄屏样例缩至160px；业务壳继续遵循实际断点。
- **NAVIGATION-MENU-R11**：【侧栏当前与悬停】当前叶子项主题蓝底、白色文字；可用项悬停操作蓝底。当前态覆盖悬停态，不改变字号或字重，父组展开本身不等于选中。
- **NAVIGATION-MENU-R12**：【水平当前与悬停】白底正文深灰；当前顶层项操作蓝文字与2px主题蓝底线，子项当前为选中浅蓝底与操作蓝字。悬停浅灰底、操作蓝字。
- **NAVIGATION-MENU-R13**：【禁用与键盘焦点】禁用文字禁用灰、不降低整项透明度，阻止点击和键盘进入。浅底焦点为2px操作蓝轮廓；深色侧栏内使用白色轮廓以便与主题蓝当前底区分。焦点不代表内容已经切换。

## 场景与验收清单

以下为需核对的场景组；`[ ]` 不代表已经测试通过。

- [ ] **NAVIGATION-MENU-S01**：当前样例：侧栏展开/收起、一个会员管理子菜单、唯一当前项、禁用通知中心；选择切换组件内的模块说明。禁用只是组件状态示例，不代表业务通知中心已被停用。
- [ ] **NAVIGATION-MENU-S02**：当前样例：水平菜单使用点击展开子菜单；鼠标和键盘选择对应内容。不改变真实系统侧栏、浏览器地址或历史记录。
- [ ] **NAVIGATION-MENU-S03**：接入已有业务壳时：以真实路由更新当前项；直接打开深层页面时同步展开父组；权限与停用状态须由宿主数据决定，不能用本页示例替代权限控制。
- [ ] **NAVIGATION-MENU-S04**：键盘验收：制表键不落在禁用或隐藏项，方向键跳过禁用项；展开后可进入子项；收起后焦点不遗留在隐藏项。鼠标和键盘同样只触发一次选择。
- [ ] **NAVIGATION-MENU-S05**：业务采用：已有 overview 系统壳侧栏可作为导航落点；本页新增适配不等于已更新所有业务模块，业务壳的路由、键盘与窄屏能力需按实际实现独立验收。
- [ ] **NAVIGATION-MENU-S06**：视觉验收：公共色值、14px/400、当前态优先于悬停；不因折叠产生裁切、浮层遮挡或额外页面横向滚动。

### 专题验收重点

分别操作侧栏和水平菜单：选择概览/会员列表/平台报表时内容同步改变，禁用项保持不变；侧栏收起再展开后当前项保留。另验子菜单鼠标、键盘开关和焦点恢复，深色当前项仍有清晰键盘轮廓。源码与方法检查不能代替浏览器里的浮层位置和窄屏实测。

## 当前示例模板

以下来自本专题的结构化示例，使用 Vue 2 模板语法。`v-model`、事件方法、数据列表等依赖 [components.js](../components.js)；完整样式文件及加载顺序见 [通用基线](FOUNDATIONS.md)。自定义组合标签的内部实现由下方依赖文件提供，不能仅复制标签作为完整组件。

```html
<official-navigation-menu>
</official-navigation-menu>
```

## 交付与使用边界

- 规范条款、示例代码与待验收场景分开理解；有示例不等于已覆盖所有样式、交互状态和使用场景。
- 业务接口、权限、时区、金额精度、数据规模等依赖应从实际项目读取，不使用演示值代替生产约定。
- 发生样式或文案变更时，同步专题数据、页面与 Markdown，避免规范和样例分离。

## 来源与关联

- 来源线索：Element UI 2.15.6 官方 Menu / Submenu / MenuItem，结合现有中控导航壳；补充本页键盘与语义适配。。
- [打开本专题页面](../index.html#spec-navigation-menu)
- [通用基线](FOUNDATIONS.md)
- [规范总索引](README.md)
- [结构化规范数据](../component-data.json)（记录 id：`navigation-menu`）
- [原始历史样板](../original-20260621.html)
- [历史规范条目](../spec-notes.json)

自定义示例 `official-navigation-menu` 的实现：[official-navigation.js](../official-navigation.js)。

## 本组件颜色状态表

| 状态 / 条件 | 统一规则 |
| --- | --- |
| 侧栏普通项 | 沿用后台深色侧栏：外壳深色背景、白色文字和图标；展开宽度200px、收起宽度64px。默认一级项高50px，子项高44px。窄屏样例缩至160px；业务壳继续遵循实际断点。 |
| 侧栏当前与悬停 | 当前叶子项主题蓝底、白色文字；可用项悬停操作蓝底。当前态覆盖悬停态，不改变字号或字重，父组展开本身不等于选中。 |
| 水平当前与悬停 | 白底正文深灰；当前顶层项操作蓝文字与2px主题蓝底线，子项当前为选中浅蓝底与操作蓝字。悬停浅灰底、操作蓝字。 |
| 禁用与键盘焦点 | 禁用文字禁用灰、不降低整项透明度，阻止点击和键盘进入。浅底焦点为2px操作蓝轮廓；深色侧栏内使用白色轮廓以便与主题蓝当前底区分。焦点不代表内容已经切换。 |

导航切换与页面路由有关，成功绿、警告橙和错误红不用于当前菜单高亮；选中、展开和焦点分别表达不同含义。

[公共颜色与字体 token](../color-tokens.json) · [公共组件样式](../color-contract.css) · [系统字体合同（最后加载）](../font-contract.css)

## 业务落地场景

- [运营总览 · 左侧模块菜单与折叠](../../showcase/index.html#overview) · [场景文档](../../showcase/docs/overview.md)

[竞品组件拆解](../../reference-review/竞品组件反推规范.html) · [业务场景分类](../../业务场景分类清单.md)
