Derrick.Jiao 发表于 2021-8-2 12:05:43

SpreadJS在线表格编辑器自定义功能 -- 禁用文件栏

本帖最后由 Derrick.Jiao 于 2021-12-29 12:06 编辑

v14的组件版编辑器已经发布有一段时间了,相信大家无论是通过公开课,或者我们的技术文章,都已经了解组件版编辑器的一些自定义的内容。有些小伙伴对于文件栏大点击事件想要实现自己的一些逻辑,那么我们可以重新定义这个命令来实现自己的一些逻辑。本次主要讲解,如何跟根据表单的保护状态实现禁用导入导出。

首先,我们把默认的配置文件打印出来看下,文件按钮对应的就是"fileMenuButton"这个命令。



接着,我们使用
GC.Spread.Sheets.Designer.getCommand("fileMenuButton");
获取这个命令,我们需要修改里面对应的excute方法


重写代码如下:我们在excute里面加一个判断,判断是否为表单保护。如果不是表单保护,则执行原有的逻辑,如果是表单保护,则执行else的逻辑。
let old = GC.Spread.Sheets.Designer.getCommand("fileMenuButton");
            let oldExecuteMergeCenter = old.execute;
            old.execute = function (context, propertyName) {
                console.log(sheet)
                if(sheet.options.isProtected === false){
                  oldExecuteMergeCenter.call(this, context, propertyName);
                }else{
                  alert('The file button has been banned!');
                }
               
            };

最后,往comandMap里面写入我们自定义的命令,通过setConfig给设计器添加上这个配置。
var config = GC.Spread.Sheets.Designer.DefaultConfig;
config.commandMap["fileMenuButton"] = old;
d.setConfig(config);添加完成后,若当前表单是保护的,则弹出alert框,不执行导入导出的逻辑。

下载附件即可查看完整demo。
页: [1]
查看完整版本: SpreadJS在线表格编辑器自定义功能 -- 禁用文件栏