Fiooona 发表于 2020-6-9 11:11:26

SpreadJS 中右键菜单功能扩展——自定义、禁用、隐藏

本帖最后由 Fiooona 于 2020-7-21 17:49 编辑

背景: SpreadJS 在V11 之后增加了右键菜单的功能,在工作簿的不同区域右键点击,可以呼出不同的右键菜单,实际的项目中有小伙伴有这样的需求:想要在右击某些单元格或者其他区域时,删除、禁用或者添加一些右键菜单。示例实现: 1 禁用B2单元格中的清除功能(清除功能显示为灰色)
                  2 删除了表单名称右键菜单的插入选项
                  3 自定义右键图片的菜单

主要代码:    /*
      *通过继承ContextMenu的方式自定义右键菜单逻辑
      * */
      function ContextMenu(){}
      ContextMenu.prototype = new GC.Spread.Sheets.ContextMenu.ContextMenu(spread);
      ContextMenu.prototype.onOpenMenu = function (menuData, itemsDataForShown, hitInfo, spread) {




// 如果点击在tabStrip 表单名称区域 不显示插入选项
if(hitInfo.tabStripHitInfo){
    for(let i=0; i<itemsDataForShown.length; i++){
      var item = itemsDataForShown;
      if(item.name === "gc.spread.insertSheet"){
            itemsDataForShown.splice(i,1) ;
      }
    }
    }// 点击在浮动对象区域
    if(hitInfo.worksheetHitInfo&&hitInfo.worksheetHitInfo.floatingObjectHitInfo &&hitInfo.worksheetHitInfo.floatingObjectHitInfo.floatingObject){
      // 自定义一个右键菜单command命令需要根据需求再自定义
      itemsDataForShown.push( {text: "自定义一个菜单", name: "designer.formatChart", iconClass: "gc-spread-formatChart", command: "designer.formatChart", workArea: "chart"})
    }

相关文章:深入解析如何自定义SpreadJS右键菜单(上)
               深入解析如何自定义SpreadJS右键菜单(下)


页: [1]
查看完整版本: SpreadJS 中右键菜单功能扩展——自定义、禁用、隐藏