Home > SYS_HeaderMenu > insertSystemHeaderMenuItem
SYS_HeaderMenu.insertSystemHeaderMenuItem() method
此 API 当前处于 BETA 预览状态,希望得到开发者的反馈。它的任何功能都可能在接下来的开发进程中被修改,请不要将它用于任何正式环境。
在指定位置插入系统顶部菜单项
签名
function insertSystemHeaderMenuItem(
env: ESYS_HeaderMenuEnvironment,
id: Array<string>,
props: {
title: string;
registerFn?: undefined | string;
menuItems?:
undefined | (null | ISYS_HeaderMenuSub2MenuItem | ISYS_HeaderMenuSub1MenuItem)[];
insertDividerBefore?: undefined | false | true;
insertDividerAfter?: undefined | false | true;
insertBefore?: undefined | string;
crossDividerWhenInsert?: undefined | false | true;
},
): Promise<string | undefined>;2
3
4
5
6
7
8
9
10
11
12
13
14
参数名
参数 | 类型 | 描述 |
|---|---|---|
env | 环境 | |
id | Array<string> | 菜单项 ID 树,将会按照数组顺序按层级匹配菜单项,并将数组最后一位作为插入的菜单项的 ID |
props | { title: string; registerFn?: undefined | string; menuItems?: undefined | (null | ISYS_HeaderMenuSub2MenuItem | ISYS_HeaderMenuSub1MenuItem)[]; insertDividerBefore?: undefined | false | true; insertDividerAfter?: undefined | false | true; insertBefore?: undefined | string; crossDividerWhenInsert?: undefined | false | true } | 其它参数 |
返回值
Promise<string | undefined>
顶部菜单项的 ID,分隔线是否插入并不会影响操作结果的返回值,不包含 menuItems 中的子项的 ID
备注
本接口需要在系统已有的系统一级菜单下新增子菜单,无法新增和修改一级菜单,id 数组请至少传递 2 个值
本接口将会强制新建的系统顶部菜单的 ID 包含扩展 UUID,例如输入的 id = 'example',将会被自动重写为 e143d88179874e7f851cc890cd22fc71|example,后续如需移除该菜单,请输入重写后的名称
本接口不能在 **高级** 菜单下新增任何子菜单
本接口新增的子菜单将默认排列在原菜单的结尾,除非指定了 props.insertBefore 参数
注意:本接口需要使用者启用扩展的外部交互权限,如若未启用将始终 throw Error
非公开接口使用提醒:本接口按原样提供,不提供参数的额外文档,参数可能在任何版本出现破坏性更改并不另行通知
示例
// 1. 在 PCB 环境的 工具(Tools)菜单下插入子菜单项,并带上两个三级菜单项
const menuId = await eda.sys_HeaderMenu.insertSystemHeaderMenuItem('pcb', ['Tools', '嘉立创示例_扩展工具'], {
title: '嘉立创示例 扩展工具',
menuItems: [
{ id: '嘉立创示例_打开面板', title: '打开扩展面板' },
{ id: '嘉立创示例_扩展设置', title: '扩展设置' },
],
});
// 2. 输出重写后的菜单 ID(真实扩展中通过 registerFn 指定点击回调)
console.log('插入的菜单 ID:', menuId);
// 3. 移除刚插入的菜单项还原菜单栏(同一 ID 重复插入会返回 undefined,
// 自建自删保证案例可重复运行)
const removed = await eda.sys_HeaderMenu.removeSystemHeaderMenuItem(['Tools', menuId]);
console.log('移除结果:', removed);2
3
4
5
6
7
8
9
10
11
12
13
14
15
16