Lynn.Dou 发表于 2024-11-8 16:34:06

Designer右键菜单删除或禁用某项

背景:

用户希望删除和禁用Designer单元格右键菜单的某些项,以满足业务中的需求。

思路:
在打开右键菜单时,会触发onOpenMenu,所以可以在此获取显示的菜单项,进而删除或禁用。
var oldOpenMenu = spread.contextMenu.onOpenMenu;
            spread.contextMenu.onOpenMenu = function (
                menuData,
                itemsDataForShown,
                hitInfo,
                spread
            ) {
                oldOpenMenu.apply(this, arguments);
                console.log(itemsDataForShown);

                itemsDataForShown.forEach((item, index) => {
                  // 删除剪切项
                  if (item.name == "contextMenuCut") {
                        itemsDataForShown.splice(index, 1)
                  }
                  // 禁用筛选项
                  if (item.name == "gc.spread.contextMenu.filter") {
                        item.disable = true;
                  }
                })
            };测试效果如下图:


页: [1]
查看完整版本: Designer右键菜单删除或禁用某项