Lynn.Dou 发表于 2021-11-18 11:35:21

组件版设计器-根据条件禁止添加字段

背景:
客户使用组件版设计器,打开模板通过拖拽字段来设置模板。
需求是一个字段在表单中只能绑定一个单元格,在绑定第二个单元格时会提示禁止拖拽绑定。

思路:
通过重写 GC.Spread.Sheets.CellRange.prototype.bindingPath 来修改绑定字段逻辑。

代码:
var oldSetBindingPath = GC.Spread.Sheets.CellRange.prototype.bindingPath;
      GC.Spread.Sheets.CellRange.prototype.bindingPath = function(a) {
            var sheet = this.sheet;
            var rc = sheet.getRowCount();
            var cc = sheet.getColumnCount();
            // 遍历单元格,查看是否该字段已设置。如果是,则弹出弹窗提示,并取消绑定该字段
            for(var r = 0; r < rc; r++) {
                for(var c = 0; c < cc; c++) {
                  var path = sheet.getBindingPath(r, c);
                  if(path == a) {
                        alert("该字段已绑定!请勿拖拽");
                        return;
                  }
                }
            }
            oldSetBindingPath.call(this, a)
      }

实现效果如下图:


完整代码请参考附件demo。
页: [1]
查看完整版本: 组件版设计器-根据条件禁止添加字段