Derrick.Jiao 发表于 2021-12-30 10:00:48

自定制组件化编辑器——删除文件菜单项

在使用的设计器的朋友,在文件模板中可能有一些不需要的项,因此需要做删除。

这块文件按钮本质上是一个template,我们可以通过下面的代码对这个模板结构进行分析来层层找到我们要删除部分GC.Spread.Sheets.Designer.getTemplate(GC.Spread.Sheets.Designer.TemplateNames.FileMenuPanelTemplate);


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

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


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


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



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

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

页: [1]
查看完整版本: 自定制组件化编辑器——删除文件菜单项