找回密码
 立即注册

QQ登录

只需一步,快速开始

eyAndrew

金牌服务用户

72

主题

314

帖子

912

积分

金牌服务用户

积分
912
eyAndrew
金牌服务用户   /  发表于:2024-2-27 14:18  /   查看:789  /  回复:10
image.png632103576.png

这个工具栏,想动态配置,配置数据存在后端, 渲染后,可以点击按钮切换展示不同的工作栏,可以做么?

10 个回复

倒序浏览
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-2-27 15:03:02
沙发
您好,如果有此需求,您可以不用上面的工具栏,抛弃这个工具栏。自己去设计一套或者多套工具栏,工具栏上的菜单可以按照自己的需求去设计。
至于点击菜单的事件都是SpreadJS支持的API。
回复 使用道具 举报
eyAndrew
金牌服务用户   /  发表于:2024-2-27 15:10:05
板凳
Ellia.Duan 发表于 2024-2-27 15:03
您好,如果有此需求,您可以不用上面的工具栏,抛弃这个工具栏。自己去设计一套或者多套工具栏,工具栏上的 ...

原有的功能,还是想保留,目前这种需求无法实现,对么?
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-2-27 17:08:02
地板
感觉像是搭积木,积木的位置需要动态设置。但是Designer中的菜单是一个成品,如果要动态设置,需要获取每一个原子的菜单,然后打乱,重新组合。
理论上来说是可以的,不过就是有点麻烦。需要对Designer中的每一个菜单的位置调整。
回复 使用道具 举报
eyAndrew
金牌服务用户   /  发表于:2024-2-27 17:44:25
5#
Ellia.Duan 发表于 2024-2-27 17:08
感觉像是搭积木,积木的位置需要动态设置。但是Designer中的菜单是一个成品,如果要动态设置,需要获取每一 ...

能不能给个demo?
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-2-28 09:30:40
6#
您好,需要您详细描述下需求,怎么动态调整,是图标位置发生变化,或者图标文字变化,亦或是有些菜单隐藏?
关于菜单可以通过GC.Spread.Sheets.Designer.DefaultConfig中的ribbon获取初始设置。
image.png622465819.png
如果想要菜单,对ribbon进行调整即可,如删除粘贴菜单。
先找到其位置
image.png786911926.png
然后对其删除,结果如下
image.png115531920.png
代码为

  1. let config = JSON.parse(JSON.stringify(GC.Spread.Sheets.Designer.DefaultConfig))
  2. config.ribbon[0].buttonGroups.splice(1,1)
  3. designer.setConfig(config)
复制代码


回复 使用道具 举报
eyAndrew
金牌服务用户   /  发表于:2024-2-28 09:44:48
7#
Ellia.Duan 发表于 2024-2-28 09:30
您好,需要您详细描述下需求,怎么动态调整,是图标位置发生变化,或者图标文字变化,亦或是有些菜单隐藏? ...

能隐藏么? 删除的话,每次我都要深拷贝下 之前的配置信息,因为可能点击按钮又要恢复。

我理解,应该可以只设置DOM, 不设置事件吧, 点击 通过自己的 addEventListener来触发,咱们没有做阻止冒泡吧
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-2-28 15:35:45
8#
目前没有隐藏的功能,只能深拷贝DefaultConfig ,然后编辑。
如果要重置的话
designer.setConfig(GC.Spread.Sheets.Designer.DefaultConfig);
以及关于您提到的第二个问题,不是很明白,是否可以具体解释下。
回复 使用道具 举报
eyAndrew
金牌服务用户   /  发表于:2024-2-29 14:11:26
9#
image.png18489684.png
正常这样设置, 我只设置text属性 可以么? 只做UI层,不走 execute的回调, 通过原生监听点击事件获取,然后写自己的逻辑。
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-2-29 15:58:50
10#
如果您想重写按钮点击的事件,建议您重新设计一套符合您的业务员逻辑的菜单栏。目前Designer菜单栏可以做到改写execute方法,但是做不到您说的原生监听点击事件。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部