1. 动态菜单
菜单路径:高级功能 → 动态菜单
动态菜单用于把组织自建的微应用或外部网页加入 ThinkLink 左侧菜单,也可以创建自定义菜单分组。菜单是否对某个用户可见,还取决于启用状态、显示状态和该用户的角色权限。
1.1. 动态菜单的作用
通过动态菜单,可以在不修改平台前端代码的情况下:
- 将微应用发布给组织成员;
- 将外部业务系统或帮助页面加入 ThinkLink;
- 创建一个自定义分组,将多个相关入口放在一起;
- 决定页面在 ThinkLink 内嵌打开,还是在新窗口独立打开。
动态菜单属于当前组织,不会出现在其他组织中。
1.2. 内容来源
| 内容来源 | 用途 | 必要配置 |
|---|---|---|
| 微应用 | 打开已在微应用页面创建并上传的静态站点。 | 选择关联应用。 |
| 外部链接 | 打开另一个网站或业务系统。 | 填写以 http:// 或 https:// 开头的完整地址。 |
| 菜单分组 | 只作为侧边栏中的可展开父级,本身不打开页面。 | 填写分组名称;分组固定放在侧边栏根部。 |
1.3. 新增微应用菜单
- 确认目标微应用已经上传文件并可以正常预览。
- 进入高级功能 → 动态菜单,点击新增。
- 填写菜单名称。
- 将内容来源设为微应用。
- 在关联应用中选择目标应用。
- 设置挂载位置、打开方式、图标和排序。
- 保持显示在菜单和启用为开启状态。
- 点击确定保存。
- 前往角色管理为目标角色授权。
1.4. 新增外部链接菜单
- 点击新增并填写菜单名称。
- 将内容来源设为外部链接。
- 在外部地址中填写完整 URL。
- 设置挂载位置、打开方式、图标、排序、显示和启用状态。
- 保存后为目标角色授权。
外部地址必须以 http:// 或 https:// 开头。使用当前页面内嵌前,请确认目标网站允许被其他页面嵌入;如果目标网站禁止嵌入,应选择新窗口独立访问。
1.5. 新增菜单分组
- 点击新增。
- 填写分组名称。
- 将内容来源设为菜单分组。
- 设置图标、排序、显示和启用状态。
- 保存。
- 新增或编辑其他动态菜单,在挂载位置中选择该自建分组。
菜单分组只能位于侧边栏根部,不能挂到另一个菜单分组或平台菜单下。分组本身不配置应用、外部地址或打开方式。
1.6. 挂载位置与排序
挂载位置
- 不选择挂载位置:菜单作为一级菜单显示在侧边栏根部;
- 选择平台已有菜单:动态菜单显示在该平台菜单组内;
- 选择自建菜单分组:动态菜单显示在该分组下。
下拉选项的层级和顺序与实际侧边栏保持一致。自建菜单分组会带有相应标记,便于和平台菜单区分。
排序
排序值用于同一层级内与其他菜单一起排序:
- 数值越小,位置越靠前;
- 填
0表示放在当前层级最后; - 配置表单会显示同级平台菜单的参考序号,可据此选择合适的插入位置。
1.7. 打开方式
| 打开方式 | 效果 | 建议场景 |
|---|---|---|
| 当前页面内嵌(保留菜单) | 页面显示在 ThinkLink 主布局内,左侧菜单保持可见。 | 同源微应用、允许被嵌入的内部页面。 |
| 新窗口独立访问 | 浏览器在新窗口或新标签页打开页面。 | 外部系统、禁止嵌入的网页、需要更大显示区域的应用。 |
菜单分组本身没有打开方式。
1.8. 显示与启用
| 设置 | 关闭后的效果 |
|---|---|
| 显示在菜单 | 侧边栏不显示该入口,但已有直接地址仍可用于访问;适合只通过链接进入的页面。 |
| 启用 | 当前用户菜单中不再提供该项,直接通过菜单承载页访问也会被拒绝。 |
配置变更后,用户可能需要刷新页面或重新进入当前组织,才能加载最新菜单。
1.9. 为角色授权
动态菜单与平台已有菜单使用同一套角色权限:
- 进入系统管理 → 角色管理。
- 编辑目标角色。
- 在菜单权限树中找到并勾选新建的动态菜单或菜单分组。
- 保存角色。
- 确认目标用户已经分配该角色。
- 使用目标用户刷新页面或重新进入组织,检查菜单是否出现。
默认 admin 角色拥有当前组织的完整权限。自定义角色只有在权限树中勾选相应动态菜单后才能访问。
1.10. 删除菜单或分组
删除普通动态菜单
删除后,该入口从侧边栏消失,角色中对应的菜单授权也会被清理。删除菜单不会删除其关联的微应用文件。
删除菜单分组
删除分组后,直接挂在该分组下的动态菜单不会被删除,而会变成侧边栏根部的一级菜单。请在删除后检查这些菜单的新位置和排序。
补充: 如果直接删除微应用,平台会同时删除指向该应用的动态菜单及相关角色授权。删除前请先备份应用并确认影响范围。
1.11. 菜单不可见或打不开
按以下顺序检查:
- 动态菜单是否已启用;
- 显示在菜单是否开启;
- 当前用户角色是否勾选了该动态菜单;
- 菜单挂载的父级或自建分组是否启用并显示;
- 微应用是否仍然存在,且入口文件可以预览;
- 外部链接是否以
http://或https://开头; - 内嵌外部页面是否被目标网站的安全策略拒绝;
- 刷新页面或重新进入组织后再试。