找回密码
 立即注册

QQ登录

只需一步,快速开始

Derrick.Jiao 讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-12-30 10:00  /   查看:2534  /  回复:0
在使用的设计器的朋友,在文件模板中可能有一些不需要的项,因此需要做删除。
image.png450678100.png
这块文件按钮本质上是一个template,我们可以通过下面的代码对这个模板结构进行分析来层层找到我们要删除部分GC.Spread.Sheets.Designer.getTemplate(GC.Spread.Sheets.Designer.TemplateNames.FileMenuPanelTemplate);
image.png791564636.png

这里以“新建”这部分为例,通过下面的代码将这部分内容及其children删除。
  1. var fileMenuPanelTemplate = GC.Spread.Sheets.Designer.getTemplate(GC.Spread.Sheets.Designer.TemplateNames.FileMenuPanelTemplate);
  2.         fileMenuPanelTemplate.content[0].children[0].children[0].children[0].children[1].items.splice(0, 1)
  3.         fileMenuPanelTemplate.content[0].children[0].children[1].children.splice(0, 1)
复制代码


删除后,我们通过registerTemplate注册回去
  1. GC.Spread.Sheets.Designer.registerTemplate(GC.Spread.Sheets.Designer.TemplateNames.FileMenuPanelTemplate, fileMenuPanelTemplate);
复制代码


点击"文件"发现"新建"已经删除了,但是右侧是一片空白,这个应该怎么处理呢?
image.png202906188.png

我们把这句代码通过控制台打印看一下,可以发现这里的activeCategory_main指的还是被删除的”新建“
  1. console.log(GC.Spread.Sheets.Designer.getCommand('fileMenuPanel').getState(designer))
复制代码


image.png970512695.png

那么我们可以把这个new字段给到我们删除之后的第一个item,就可以一进来就展示这个内容,也就是下面两句代码。这样就ok了~
  1. fileMenuPanelTemplate.content[0].children[0].children[0].children[0].children[1].items[0].value = "New"
  2. fileMenuPanelTemplate.content[0].children[0].children[1].children[0].visibleWhen = "activeCategory_main=New"
复制代码


下载附件即可查看完整demo。

filemenu_delete.html

2.8 KB, 下载次数: 93

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部