找回密码
 立即注册

QQ登录

只需一步,快速开始

广先生

注册会员

3

主题

7

帖子

42

积分

注册会员

积分
42
  • 141

    金币

  • 3

    主题

  • 7

    帖子

最新发帖
广先生
注册会员   /  发表于:2023-8-3 21:48  /   查看:1177  /  回复:4
1金币
image.png184537047.png 怎么隐藏这两个菜单?

最佳答案

查看完整内容

1.有菜单栏版(designer) function deleteMenu(designer) { let designerConfig = JSON.parse(JSON.stringify(GC.Spread.Sheets.Designer.DefaultConfig)) if (designerConfig.contextMenu) { for (let i = designerConfig.contextMenu.length - 1; i >= 0; i--) { if (designerConfig.contextMenu === GC.Spread.Sheets.Designer.CommandNames.InsertSheet || designerConfig.contextMenu === GC.Spread.S ...

4 个回复

倒序浏览
最佳答案
最佳答案
陈皮
中级会员   /  发表于:2023-8-3 21:48:19
来自 2#
1.有菜单栏版(designer)


function deleteMenu(designer) {
  let designerConfig = JSON.parse(JSON.stringify(GC.Spread.Sheets.Designer.DefaultConfig))
  if (designerConfig.contextMenu) {
    for (let i = designerConfig.contextMenu.length - 1; i >= 0; i--) {
      if (designerConfig.contextMenu === GC.Spread.Sheets.Designer.CommandNames.InsertSheet || designerConfig.contextMenu === GC.Spread.Sheets.Designer.CommandNames.DeleteSheet) {
        designerConfig.contextMenu.splice(i, 1)
      }
    }
  }
  designer.setConfig(designerConfig)
}


2.无菜单栏版(spread)

var menuData = spread.contextMenu.menuData;

var newMenuData = [];

/*
*  注意:这里没有直接删除原数组,而是创建一个新数组,
*  原因是在遍历数组时不能同时删除数组项,这样会导致程序运算结果错误。
* */
menuData.forEach(function (item) {
    if(item){
        if(item.name === "gc.spread.insertSheet" ||
            item.name === "gc.spread.deleteSheet"){
            return;
        }
        newMenuData.push(item);
    }
});

// 将新数组赋予spread的右键菜单属性
spread.contextMenu.menuData = newMenuData;


参考地址:
深入解析如何自定义SpreadJS右键菜单(上) - 葡萄城技术博客 (grapecity.com.cn)

评分

参与人数 2金币 +666 满意度 +5 收起 理由
广先生 + 5
Joestar.Xu + 666 赞一个!

查看全部评分

回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-8-4 09:04:44
3#
陈皮 发表于 2023-8-4 08:48
1.有菜单栏版(designer)

回复 使用道具 举报
Banana
注册会员   /  发表于:2023-8-4 09:16:59
4#
本帖最后由 Banana 于 2023-8-4 09:22 编辑


// 以Vue3中使用为例

const changeMenu = ()=>{
  const spread = spreadRef.value
  const menuData = spread.contextMenu.menuData;
  const newMenuData = [];
  /*
  *  注意:这里没有直接删除原数组,而是创建一个新数组,
  *  原因是在遍历数组时不能同时删除数组项,这样会导致程序运算结果错误。
  * */
  menuData.forEach(function (item) {
    if(item){
      if(item.name === "gc.spread.insertSheet" ||
          item.name === "gc.spread.deleteSheet"){
        return;
      }
      newMenuData.push(item);
    }
  });

// 将新数组赋予spread的右键菜单属性
  spread.contextMenu.menuData = newMenuData;
}

-------
如需了解自定义右键菜单,可以参考下面的文章

深入解析如何自定义SpreadJS右键菜单--> https://www.grapecity.com.cn/blogs/how-to-customize-spread-right-click-menu-part1

评分

参与人数 2金币 +666 满意度 +5 收起 理由
广先生 + 5
Joestar.Xu + 666 赞一个!

查看全部评分

回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-8-4 10:06:45
5#
您好,可以参考楼上热心用户的回复,看能否解决您的问题。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部