# CloudCC 菜单模块介绍

## 1. 模块定位

`menu` 模块用于在 CloudCC
中创建和管理导航菜单（标签页），把对象、页面或脚本能力暴露给业务用户。

在 CloudCC
中，菜单是用户看到系统功能的主要入口。对象、页面、脚本等能力通常需要通过菜单挂载到应用中，才方便被终端用户访问。

---

## 2. 菜单能做什么

通过菜单模块，你可以：

- 为自定义对象创建入口
- 为自定义页面创建入口
- 为自定义脚本创建入口
- 更新已有自定义页面菜单（如切换 `pageApi`）
- 将入口加入应用导航
- 配置 PC 与移动端图标，统一产品体验

---

## 3. 支持的菜单类型

| 类型     | 说明           | 常见用途                  |
| -------- | -------------- | ------------------------- |
| `object` | 自定义对象菜单 | 打开对象列表/详情能力     |
| `page`   | 自定义页面菜单 | 打开 Lightning 自定义页面 |
| `script` | 自定义脚本菜单 | 点击后执行脚本逻辑        |
| `site`   | 站点菜单       | 关联 Site.com 站点        |

---

## 4. 菜单在平台中的典型流程

参考 CloudCC 官方「菜单」能力，菜单管理通常包含以下流程：

1. 进入后台设置，打开菜单管理
2. 新建菜单（对象菜单 / 页面菜单 / 脚本菜单）
3. 配置或调整菜单标签与图标（页面菜单可更新 `pageApi`）
4. 选择可见简档（决定谁能看到菜单）
5. 选择要加入的应用程序（决定菜单出现在哪个应用）
6. 保存并验证显示效果

---

## 5. 为什么要用菜单模块

菜单模块解决的是“能力可访问性”问题：

- 只创建对象/页面，不创建菜单，用户通常无法在导航中直接发现该能力
- 通过菜单可将功能按业务场景组织到不同应用
- 结合简档权限，可对不同角色展示不同入口

---

## 6. 适用场景

以下场景建议使用 `menu` 模块：

- 新建了自定义对象，需要给业务团队增加入口
- 开发了 Lightning 自定义页面，需要挂到导航栏
- 需要提供一个一键执行脚本的菜单入口
- 不同业务线需要在各自应用里看到不同菜单组合

---

## 7. 与其他模块的关系

`menu` 常与以下模块协同：

- `object`：菜单绑定对象能力
- `customPage`：菜单绑定页面能力
- `script`：菜单绑定脚本能力
- `application`：菜单最终出现在具体应用中
- `project`：提供连接配置与环境能力

---

## 8. 建议实践

- 菜单命名与对象/页面语义保持一致，降低学习成本
- 先在测试环境完成创建与权限验证，再推向生产
- 统一图标规范，避免同一应用内视觉风格不一致
- 创建后立即验证简档可见性与应用挂载是否正确

---
