泛微OA 明细表浏览按钮列出现重复提示。

用泛微提供的这个实现不了。

jquery(document).ready(function(){
   jquery("#detailDiv_0").delegate("input[id^='field18420_']", "blur", function(){
      var _thisValue = this.value;

      
      var str = "";
      for(var i = 0; i < jquery("#nodesnum0").val(); i++){
         if(jquery("#field18420_" + i).length == 0)
            continue; //如果元素被删除,则跳过
         if(i == this.id.split("_")[1])
            continue; //如果是本元素,则跳过
         if(jquery("#field18420_" + i).val() == jquery(this).val()) {
            alert("数据重复");
            return;
         }
      }
   })
});
不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 以帮助更多的人 ^-^

亲测有效。

代码如下:


<script>
jQuery(document).ready(function () {
  //如果不是pc流程表单或移动端流程表单中,则不执行下面逻辑
  if (!(ecodeSDK.checkLPath('/spa/workflow/static4form/index.html#/main/workflow/req') || ecodeSDK.checkLPath('/spa/workflow/static4mobileform/index.html#/req'))) return;
  let workflowid = "-1";
  if (WfForm.getBaseInfo()) {
    workflowid = WfForm.getBaseInfo().workflowid;
  }
  //如果流程路径id不是1110,则不执行下面逻辑
  if (workflowid != 1110) return;
  var checkCustomize = function () {
    var arr = new Array();
    var repeatAry = new Array();
    var detailLineNum = WfForm.getDetailAllRowIndexStr("detail_1");//获取明细表2的所有行标
    detailLineNum = detailLineNum.split(",");
    detailLineNum.map(function (i) {
      //浏览按钮字段取值方式
      var th = WfForm.getBrowserShowName("field580516_" + i); //field580516_是待判断是否重复的明细表字段id
      //单行文本字段取值方式
      // var th = WfForm.getFieldValue("field580515_" + i);?
      //选择框字段获取值方式
      // var th = WfForm.getSelectShowName("field580517_" + i)
      th && arr.push(th);
    })
    var arr = arr.sort();
    for (var i = 0; i < arr.length - 1; i++) {
      if (arr[i] == arr[i + 1]) {
        repeatAry.push(arr[i]);
      }
    }
    var array = [];
    for (var i = 0; i < repeatAry.length; i++) {
      if (array.indexOf(repeatAry[i]) == -1) {
        array.push(repeatAry[i])
      }
    }
    if (array.length != 0) {
      var arrayStr = array.join(",");
      WfForm.showConfirm("图号:<strong><font color='red'>" + arrayStr + "</font></strong>,存在重复值,请重新填写!", function () { });
      return false;
    }
    return true;
  }
  window.checkCustomize = checkCustomize;
  //绑定提交事件,点击提交按钮时触发明细表重复校验判断
  WfForm.registerCheckEvent(WfForm.OPER_SUBMIT, function (callback) {
    if (checkCustomize()) {
      callback();
    }
  });
});
</script>