找回密码
 立即注册

QQ登录

只需一步,快速开始

Richard.Ma 讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-11-2 12:34  /   查看:802  /  回复:0
本帖最后由 Richard.Ma 于 2024-4-7 17:00 编辑

在一些场景下,用户希望Ribbon菜单中的一些小图标更改为大图标显示。以此来更方便用户操作

本文以”插入>图表“按钮区域的柱形图图标为例,展示此类修改中的一些细节处理

先看一下修改效果

修改前
image.png864013976.png

修改后

image.png110667723.png


下面是设置的代码
  1. var config=GC.Spread.Sheets.Designer.DefaultConfig;
  2. var cmd=GC.Spread.Sheets.Designer.getCommand('columnOrBarChartPreview');
  3. cmd.bigButton=true
  4. cmd.text="柱形条形图"
  5. cmd.direction="vertical"
  6. config.commandMap.columnOrBarChartPreview=cmd
  7. var node=config.ribbon[1].buttonGroups[1].commandGroup.children[1].children[0].children[0]
  8. config.ribbon[1].buttonGroups[1].commandGroup.children[1].children[0].children.splice(0,1)
  9. config.ribbon[1].buttonGroups[1].commandGroup.children.splice(1,0,node)
  10. var designer=GC.Spread.Sheets.Designer.findControl(document.getElementById("gc-designer-container"))
  11. designer.setConfig(config)
复制代码


接下啦,我来分析一下上面的代码,看看主要需要做哪些设置

首先,需要对此按钮对应的command本身进行相关样式属性更改,并重新注册
  1. var cmd=GC.Spread.Sheets.Designer.getCommand('columnOrBarChartPreview');//获取command
  2. cmd.bigButton=true //显示大图标
  3. cmd.text="柱形条形图"//设置文字
  4. cmd.direction="vertical"//文字和图标按照纵向排列
  5. config.commandMap.columnOrBarChartPreview=cmd//重新注册以覆盖
复制代码


然后需要调整这个小图标的位置,放在图表按钮 image.png228526305.png 的后面。此前拿到的config中有关于ribbon菜单的节点定义。对照UI就能找到图表按钮组对应的是ribbon[1].buttonGroups[1],

在这个节点下面,如下图,我们需要把红框中的节点(包括刚刚修改的“columnOrBarChartPreview”,以及里面的子节点)放到箭头所指的位置
image.png198495177.png

  1. var node=config.ribbon[1].buttonGroups[1].commandGroup.children[1].children[0].children[0]  
  2. config.ribbon[1].buttonGroups[1].commandGroup.children[1].children[0].children.splice(0,1)
  3. config.ribbon[1].buttonGroups[1].commandGroup.children.splice(1,0,node)
复制代码

  1. var designer=GC.Spread.Sheets.Designer.findControl(document.getElementById("gc-designer-container"))
  2. designer.setConfig(config)
复制代码




image.png42357481.png
image.png377654723.png

0 个回复

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