找回密码
 立即注册

QQ登录

只需一步,快速开始

kelvinChen
金牌服务用户   /  发表于:2024-9-2 14:47  /   查看:287  /  回复:10
image.png36949461.png

第一次进入,点击保存,有概率会出现不能调用函数的情况,刷新会解决该问题

10 个回复

倒序浏览
Wilson.Zhang
超级版主   /  发表于:2024-9-2 15:19:40
沙发
您好!请问下您所说的“有概率会出现”是否意指现象是偶发现象呢?顺便跟您确认下,本贴是否与您发布的帖子报表点击保存,函数不触发,是自定义的函数是相同的问题呢?
回复 使用道具 举报
kelvinChen
金牌服务用户   /  发表于:2024-9-2 15:36:49
板凳
是的,目前的情况是,当第一次进入报表,点击保存,有概率点击了后没有任何反应,也不出现报错,保存的函数也没有回调,刷新页面后又恢复正常,能够点击并且正常触发,当前未能找到稳定触发的方法
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-9-2 15:41:29
地板
kelvinChen 发表于 2024-9-2 15:36
是的,目前的情况是,当第一次进入报表,点击保存,有概率点击了后没有任何反应,也不出现报错,保存的函数 ...

既然本贴和另外的帖子是相同问题,那就关闭另外的帖子,咱们就在本贴讨论吧!需要您提供一个能复现问题的完整demo,我们针对demo来分析问题。
回复 使用道具 举报
kelvinChen
金牌服务用户   /  发表于:2024-9-2 15:47:52
5#
本身是直接在工具栏直接进行按钮的添加,某些情况会不触发,使用的是官方的写法
   //初始化自定义Tab
    initRibbon() {
      _this.config = GC.Spread.Sheets.Designer.DefaultConfig;
      let configTab = GC.Spread.Sheets.Designer.DefaultConfig;
      if (configTab.ribbon[0].buttonGroups[7]) {
        let editFirstElement =
          configTab.ribbon[0].buttonGroups[7].commandGroup.children[0]
            .children[2];
        let edit = configTab.ribbon[0].buttonGroups[7];
        edit.commandGroup = editFirstElement;
        _this.config.ribbon[4].buttonGroups.push(edit);
      }
      // add new tab
      let newTab = {
        id: "operate",
        text: "自定义",
        buttonGroups: [],
      };
      if (
        Array.isArray(_this.config && _this.config.ribbon) &&
        !_this.config.ribbon.filter((d) => d && d.text === "自定义").length
      ) {
        _this.config.ribbon.unshift(newTab);
        let dataSaveInfo = {};
        if (
          localStorage.getItem("se_oss_authority") &&
          JSON.parse(localStorage.getItem("se_oss_authority")).indexOf(
            "MY_REPORT_SUBMIT"
          ) !== -1
        ) {
          dataSaveInfo.release = {
            iconClass: "ribbon-button-save", //按钮的样式
            text: "发布", //显示的文字
            bigButton: true,
            commandName: "reportRelease", //命令名称,需要全局唯一
            execute: this.reportRelease, //对应执行内容的function
          };
        }
        //创建按钮
        dataSaveInfo = Object.assign(dataSaveInfo, {
          exit: {
            iconClass: "ribbon-button-save", //按钮的样式
            text: "退出",
            bigButton: true,
            commandName: "exitReport",
            execute: this.exitReport,
          },
          saveTemplateCommand: {
            iconClass: "ribbon-button-save", //按钮的样式
            text: "保存", //显示的文字
            bigButton: true,
            commandName: "saveDatas", //命令名称,需要全局唯一
            execute: this.saveInfos, //对应执行内容的function
          },
          relateMutCheck: {
            iconClass: "ribbon-button-save", //按钮的样式
            text: "多选其他关联",
            bigButton: true,
            commandName: "relateMutCheck",
            execute: this.relateMutCheck,
          },
          reWrite: {
            iconClass: "ribbon-button-save", //按钮的样式
            text: "自动回填", //显示的文字
            bigButton: true,
            commandName: "reWriteBtn", //命令名称,需要全局唯一
            execute: this.reWriteBtn, //对应执行内容的function
          },
          overReWrite: {
            iconClass: "ribbon-button-save", //按钮的样式
            text: "取消自动回填", //显示的文字
            bigButton: true,
            commandName: "overReWriteBtn", //命令名称,需要全局唯一
            execute: this.overReWriteBtn, //对应执行内容的function
          },
          childrenDropdown: {
            commandName: "childrenDropdown",
            text: "校验规则",
            title: "Children",
            iconClass: "ribbon-button-welcome",
            bigButton: "true",
            // direction: "vertical",
          },
          childrenDropdown2: {
            title: "设置正则",
            text: "设置正则",
            iconClass: "ribbon-button-welcome",
            commandName: "childrenDropdown2",
            execute: function (context, propertyName, fontItalicChecked) {
              _this.diaMode = "reg";
              _this.dialogVisible = true;

              // let spread = context.Spread; //获取工作簿
              // let activeCell = _this.getCell(); //获取激活单元格
              // let sheet = _this.getActiveSheet(); //获取工作表
              // let style = new GC.Spread.Sheets.Style();
              // style.locked = false;
              // style.backColor = "#C3C3C3";
              // sheet.setStyle(activeCell.row, activeCell.col, style);
            },
          },
          ruleSource: {
            title: "多选框校验",
            text: "多选框校验",
            iconClass: "ruleSource",
            commandName: "ruleSource",
            execute: this.ruleSources,
          },
          resetDataSourceList: {
            title: "清除所选数据",
            text: "清除所选数据",
            iconClass: "resetDataSourceList",
            commandName: "resetDataSourceList",
            execute: this.resetDSList,
          },
        });

        //将图标放入工具栏
        if (
          !_this.config.ribbon[0].buttonGroups[0] ||
          (!(_this.config.ribbon[0].buttonGroups[0].label === "保存设计") &&
            !_this.config.ribbon[0].buttonGroups.filter(
              (d) => d.label === "保存设计"
            ).length)
        ) {
          _this.config.ribbon[0].buttonGroups.unshift({
            label: "常用操作",
            thumbnailClass: "ribbon-thumbnail-spreadsettings",
            commandGroup: {
              children: [
                {
                  direction: "vertical",
                  commands: ["saveTemplateCommand"],
                },
                {
                  type: "separator",
                },
                {
                  direction: "vertical",
                  commands: ["release"],
                },
                {
                  type: "separator",
                },
                {
                  direction: "vertical",
                  commands: ["exit"],
                },
                {
                  type: "separator",
                },
                {
                  direction: "vertical",
                  commands: ["relateMutCheck"],
                },
                {
                  type: "separator",
                },
                {
                  direction: "vertical",
                  commands: ["reWrite"],
                },
                {
                  type: "separator",
                },
                {
                  direction: "vertical",
                  commands: ["overReWrite"],
                },
                {
                  type: "separator",
                },
                {
                  command: "childrenDropdown", //父命令可以有自己的execute,点击执行;也可以没有,点击弹出children
                  type: "dropdown",
                  children: [
                    // "childrenDropdown1",
                    "childrenDropdown2",
                    "ruleSource",
                    // "resetDataSourceList",
                  ],
                },
                {
                  type: "separator",
                },
              ],
            },
          });
        }

        _this.config.commandMap = {};
        Object.assign(_this.config.commandMap, dataSaveInfo);
      }

      return _this.config;
    },
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-9-2 17:06:15
6#
kelvinChen 发表于 2024-9-2 15:47
本身是直接在工具栏直接进行按钮的添加,某些情况会不触发,使用的是官方的写法
   //初始化自定义Tab
   ...

我们需要根据您提供的代码片段运行分析下,这需要一些时间,请您等候。
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-9-3 13:59:49
7#
kelvinChen 发表于 2024-9-2 15:47
本身是直接在工具栏直接进行按钮的添加,某些情况会不触发,使用的是官方的写法
   //初始化自定义Tab
   ...

您好!根据您提供的代码片段,其中没有为自定义菜单按钮定义的iconClass和命令函数的具体内容,为了调试代码,我们自定义了对应的内容,您可以参考附件中的demo了解详情。运行后,发现各个自定义的菜单按钮均可以正常响应点击动作,因此建议您排查下对各个自定义菜单按钮定义的命令函数的执行逻辑。您也可以基于附件中的demo提供下能复现您问题的完整代码,这样也便于分析。

Designer工具栏新增自定义按钮.html

12.3 KB, 下载次数: 9

回复 使用道具 举报
kelvinChen
金牌服务用户   /  发表于:2024-9-3 15:13:32
8#
本帖最后由 kelvinChen 于 2024-9-3 15:25 编辑

目前已经发现问题,是点击报表保存,后退出,再进入另一张报表,点击保存,这时应该有弹窗出现,使用的弹窗是element ui,显示弹窗的字段设置为了true,但是弹窗没有出现,造成好像保存没触发的错觉
回复 使用道具 举报
kelvinChen
金牌服务用户   /  发表于:2024-9-3 15:15:38
9#
目前发现多个弹窗都有问题,在a表打开弹窗渲染弹窗数据,再去b表打开弹窗渲染弹窗数据,b表弹窗数据不能正常显示,但是data中的数据都正确的获取,显示数据为空
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-9-3 17:50:13
10#
kelvinChen 发表于 2024-9-3 15:15
目前发现多个弹窗都有问题,在a表打开弹窗渲染弹窗数据,再去b表打开弹窗渲染弹窗数据,b表弹窗数据不能正 ...

那自定义的工具栏菜单按钮及其对应的命令定义都是正常的哈,既然定位出了问题所在,那就再排查下弹窗吧!
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部