本帖最后由 Lynn.Dou 于 2023-8-22 11:58 编辑
需求:
在线表格编辑器中用代码添加了浮动元素,希望给浮动元素专门设置一些菜单项。
分析:
在线表格编辑器没有添加浮动元素的功能所以没考虑专门对浮动元素设置专门的菜单选项,需要自己自定义。
思路:
1.首先需要用到setData方法设置一个专属的标记来区分浮动对象
- designer.setData('isFloatingObjectSelected', true)
复制代码
2.在对应的菜单项的visibleContext中添加这个标记。
- config.commandMap = {
- floating_menu1: {
- commandName: "floating_menu1",
- text: "Floating Object Menu Item 1",
- visibleContext: 'isFloatingObjectSelected',
- execute: function (args) {
- alert("custom menu");
- }
- }
- };
复制代码 3.在workbook.contextMenu.onOpenMenu方法中通过判断是否点击的是浮动对象,来更改上面的标记的值。
- workbook.contextMenu.onOpenMenu = function (menuData, menuDataForShown, hitTest, workbook) {
- var designer = GC.Spread.Sheets.Designer.findControl("dss");
- if (hitTest && hitTest.worksheetHitInfo && hitTest.worksheetHitInfo.floatingObjectHitInfo) {
- menuData = menuData.filter((menu) => {
- return menu.command && menu.command.indexOf("floating") > -1;
- })
- designer.setData('isFloatingObjectSelected', true)
- } else {
- designer.setData('isFloatingObjectSelected', false)
- }
- return designerOnOpenMenu.apply(this, arguments);
- }
复制代码
详情见附件demo
|
|