找回密码
 立即注册

QQ登录

只需一步,快速开始

RainYan

中级会员

50

主题

175

帖子

501

积分

中级会员

积分
501
RainYan
中级会员   /  发表于:2024-7-26 17:19  /   查看:2882  /  回复:28
20金币
我在sheet表单切换事件里面重新注册了 config,但是我发现个问题 我只要点击了文件顶部的文件菜单栏在关闭 再去切换sheet表单 他就会报错cannot read peoperties of undefined (reading 'apply')

最佳答案

查看完整内容

哈喽楼主,之前说再研究下这个config设置,现在有方案了。 鼠标右键打开菜单时会执行一个方法,也就是spread.contextMenu.onOpenMenu,可以通过改写这个方法,判断动作发生时的Worksheet名称,自配置相关的业务逻辑。可以参考如下代码:

28 个回复

倒序浏览
最佳答案
最佳答案
eat_grape_5
高级会员   /  发表于:2024-7-26 17:19:26
来自 26#
哈喽楼主,之前说再研究下这个config设置,现在有方案了。
鼠标右键打开菜单时会执行一个方法,也就是spread.contextMenu.onOpenMenu,可以通过改写这个方法,判断动作发生时的Worksheet名称,自配置相关的业务逻辑。可以参考如下代码:
  1. var oldOpenMenu = spread.contextMenu.onOpenMenu;
  2. spread.contextMenu.onOpenMenu = function (menuData, itemsDataForShown, hitInfo, workbook) {
  3.     let sheet = workbook.getActiveSheet();
  4.     let sheetName = sheet.name();
  5.     if (hitInfo && hitInfo.hasOwnProperty('tabStripHitInfo')) {
  6.         //  定于业务逻辑
  7.         console.log("sheet: ", sheetName);
  8.     }
  9.     oldOpenMenu.call(spread.contextMenu, menuData, itemsDataForShown, hitInfo, workbook);
  10. }
复制代码


回复 使用道具 举报
eat_grape_5
高级会员   /  发表于:2024-7-26 17:23:46
2#
楼主在config中修改了哪些配置项?
回复 使用道具 举报
RainYan
中级会员   /  发表于:2024-7-26 17:28:16
3#
主要是修改的右键菜单 我每个sheet表单右键菜单功能不一样 ,就是点了文件再关闭切换会出错 不点就正常的
回复 使用道具 举报
RainYan
中级会员   /  发表于:2024-7-26 17:31:00
4#
eat_grape_5 发表于 2024-7-26 17:23
楼主在config中修改了哪些配置项?

config里面的contextMenu 用了splice unshift 这些数组方法
回复 使用道具 举报
eat_grape_5
高级会员   /  发表于:2024-7-26 17:31:48
5#
RainYan 发表于 2024-7-26 17:28
主要是修改的右键菜单 我每个sheet表单右键菜单功能不一样 ,就是点了文件再关闭切换会出错 不点就正常的

楼主方便提供下demo吗?或者只将修改项贴出来,我需要据此复现下问题。
回复 使用道具 举报
RainYan
中级会员   /  发表于:2024-7-26 17:41:35
6#
eat_grape_5 发表于 2024-7-26 17:31
楼主方便提供下demo吗?或者只将修改项贴出来,我需要据此复现下问题。

企业微信截图_172198683015.png989335021.png 企业微信截图_17219867847055.png535242614.png 我就这样写 好像点了文件 在关闭都会出错
回复 使用道具 举报
RainYan
中级会员   /  发表于:2024-7-26 17:55:26
7#
eat_grape_5 发表于 2024-7-26 17:31
楼主方便提供下demo吗?或者只将修改项贴出来,我需要据此复现下问题。

我刚才用了个空的designer来测试 啥都没干 就初始化函数里面加了个表单切换事件  那个config是定义在组件函数体外的。let  config =  cloneDeep(GC.Spread.Sheets.Designer.DefaultConfig);是不是我事件用的不对
回复 使用道具 举报
eat_grape_5
高级会员   /  发表于:2024-7-26 18:12:34
8#
RainYan 发表于 2024-7-26 17:41
我就这样写 好像点了文件 在关闭都会出错

为什么要在切换工作表时对设计器设置confing呢?config本来就是对设计器全局有效的,我理解不需要在切换工作表时这样做,楼主讲讲需求吧!
回复 使用道具 举报
RainYan
中级会员   /  发表于:2024-7-26 18:16:05
9#
eat_grape_5 发表于 2024-7-26 18:12
为什么要在切换工作表时对设计器设置confing呢?config本来就是对设计器全局有效的,我理解不需要在切换 ...

比如 我有两个sheet表单 一个sheet表单右键就是自带的那些功能,另一个就有我自定义的功能
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部