/*
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
重要信息:
JavaScript学习网站:https://www.w3school.com.cn/js/js_syntax.asp
Unicode表
运算符的优先级
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
*/
<script type="text/javascript">
  /*
  -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  搜索项的隐藏与显示(参考任务立项流程)
  -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  */
  var ssx = 0;
  var mouseUpDown = 0;
  var mouseInOut = 0;
  var SearchItems = document.getElementsByName("SearchItem");
  document.getElementById('ss1').style.cursor = "pointer";
  document.getElementById('ss1').style.userSelect = "none";
  document.getElementById('ss1').onmouseenter = function () {
    mouseInOut = 1;
    if (mouseUpDown == 0) {
      document.getElementById('ss1').style.backgroundColor = "#57C5F7";
    }
  };
  document.getElementById('ss1').onmouseleave = function () {
    mouseInOut = 0;
    if (mouseUpDown == 0) {
      document.getElementById('ss1').style.backgroundColor = "#2DB7F5";
    }
  };
  document.getElementById('ss1').onmousedown = function () {
    mouseUpDown = 1;
    document.getElementById('ss1').style.backgroundColor = "#2BAEE9";
  };
  document.getElementById('ss1').onmouseup = function () {
    if (mouseUpDown == 1) {
      document.getElementById('ss1').style.backgroundColor = "#57C5F7";
      if (ssx == 0) {
        for (item of SearchItems) {
          item.style.display = "table-row";
        }
        ssx = 1;
      } else if (ssx == 1) {
        for (item of SearchItems) {
          item.style.display = "none";
        }
        ssx = 0;
      }
    }
  };
  document.body.onmouseup = function () {
    if (mouseInOut == 0) {
      document.getElementById('ss1').style.backgroundColor = "#2DB7F5";
    }
    mouseUpDown = 0;
  };
  /*
  -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  搜索功能(参考任务立项流程)
  -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  */
  var ssj0 = ["field110952", "field110957", "field111983", "field111981", "field111982"];//精准搜索/主表搜索项
  var mxj0 = ["field109019", "field109684", "field109670", "field109675", "field109680"];//精准搜索/与搜索项对应的明细字段
  ModeForm.bindFieldChangeEvent("field112451,field110952,field110957,field111983,field111981,field111982", function () {
    var mxAll = ModeForm.getDetailAllRowIndexStr("detail_1").split(",");//提取所有明细行标识
    ModeForm.controlDetailRowDisplay("detail_1", "all", false);
    //模糊搜索
    var mhss = ModeForm.getFieldValue("field112451");
    var mxAll1 = "";
    if (mhss != "") {
      ModeForm.controlDetailRowDisplay("detail_1", "all", true);
      for (var i0 = 0; i0 < mxAll.length; i0++) {
        var i0Row = mxAll[i0];
        var mhssi = ModeForm.getFieldValue("field112452_" + i0Row);
        if (mhssi.indexOf(mhss) >= 0) {
          mxAll1 += i0Row + ",";
        }
      }
      if (mxAll1 !== "") {
        var mxAll2 = mxAll1.slice(0, mxAll1.length - 1);
        ModeForm.controlDetailRowDisplay("detail_1", mxAll2, false);
        mxAll = mxAll2.split(",");
      }
    }
    //精准搜索
    var ssj1 = ["field110952", "field110957", "field111983", "field111981", "field111982"];//方法待确认???
    var mxj1 = ["field109019", "field109684", "field109670", "field109675", "field109680"];//方法待确认???
    var ls1 = 0;
    for (var x = 0; x < ssj0.length; x++) {
      var ls2 = ModeForm.getFieldValue(ssj0[x]);
      if (ls2 == "") {
        ssj1.splice(x - ls1, 1);
        mxj1.splice(x - ls1, 1);
        ls1 += 1;
      }
    }
    if (ssj1.length > 0) {
      var jResult;//j循环判断结果
      var ssResult1 = "";//搜索结果,明细行序号
      for (var i = 0; i < mxAll.length; i++) {
        var iRow = mxAll[i];
        for (var j = 0; j < ssj1.length; j++) {
          var mxij1 = mxj1[j] + "_" + iRow;
          var mxij2 = ModeForm.getFieldValue(mxij1);
          var ssj2 = ModeForm.getFieldValue(ssj1[j]);
          //搜索项与明细信息匹配代码起点
          var mxij3 = mxij2.split(",");
          var ssj3 = ssj2.split(",");
          for (var y = 0; y < ssj3.length; y++) {
            for (var z = 0; z < mxij3.length; z++) {
              if (mxij3[z] == ssj3[y]) {
                jResult = 1;
                break;
              } else {
                jResult = 0;
              }
            }
            if (jResult == 1) {
              break;
            }
          }
          if (jResult == 0) {
            break;
          }
          //搜索项与明细信息匹配代码终点
        }
        if (jResult == 0) {
          ssResult1 += iRow + ",";
        }
      }
      if (ssResult1 !== "") {
        var ssResult2 = ssResult1 + ")";
        var ssResult3 = ssResult2.replace(",)", "");
        ModeForm.controlDetailRowDisplay("detail_1", ssResult3, true);
      }
    }
  });
  /*
  -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  开始日期、完成日期、工期三者间二算一功能(参考任务立项流程)
  -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  */
  var a1;
  var b1;
  var c1;
  var a2;
  var b2;
  var c2;
  var b3;
  var c3;
  var a3 = 0;//临时工作日起止编号赋值给日历起止编号的判断参数
  ModeForm.bindDetailFieldChangeEvent("field111707,field111708,field111709,field111710,field111711,field111712,field111758,field111759", function (id, rowIndex, value) {
    a1 = + ModeForm.getFieldValue("field111707_" + rowIndex);//字段id:field111707~12及58/59,均为开始、完成、工期的日历和工作天相关字段
    b1 = + ModeForm.getFieldValue("field111709_" + rowIndex);//用“+” 将getFieldValue的值从字符串转化为数值
    c1 = + ModeForm.getFieldValue("field111710_" + rowIndex);
    a2 = + ModeForm.getFieldValue("field111708_" + rowIndex);
    b2 = + ModeForm.getFieldValue("field111711_" + rowIndex);
    c2 = + ModeForm.getFieldValue("field111712_" + rowIndex);
    b3 = + ModeForm.getFieldValue("field111758_" + rowIndex);
    c3 = + ModeForm.getFieldValue("field111759_" + rowIndex);
    if (c1 != a1 + b1 - 1) {
      if (id.indexOf("field111707_") >= 0) {
        if (a1 == "" && b1 > 0) {
          ModeForm.changeFieldValue("field111710_" + rowIndex, { value: "" });
        } else if (a1 > 0 && b1 > 0) {
          ModeForm.changeFieldValue("field111710_" + rowIndex, { value: a1 + b1 - 1 });
        } else if (a1 > 0 && b1 == "" && c1 > 0) {
          ModeForm.changeFieldValue("field111709_" + rowIndex, { value: c1 - a1 + 1 });
        }
      } else if (id.indexOf("field111709_") >= 0) {
        if (b1 == "" && c1 > 0) {
          ModeForm.changeFieldValue("field111707_" + rowIndex, { value: "" });
        } else if (b1 > 0 && c1 > 0) {
          ModeForm.changeFieldValue("field111707_" + rowIndex, { value: c1 - b1 + 1 });
        } else if (b1 > 0 && c1 == "" && a1 > 0) {
          ModeForm.changeFieldValue("field111710_" + rowIndex, { value: b1 + a1 - 1 });
        }
      } else if (id.indexOf("field111710_") >= 0) {
        if (c1 == "" && b1 > 0) {
          ModeForm.changeFieldValue("field111707_" + rowIndex, { value: "" });
        } else if (c1 > 0 && b1 > 0) {
          ModeForm.changeFieldValue("field111707_" + rowIndex, { value: c1 - b1 + 1 });
        } else if (c1 > 0 && b1 == "" && a1 > 0) {
          ModeForm.changeFieldValue("field111709_" + rowIndex, { value: c1 - a1 + 1 });
        }
      }
    }
    if (c2 != a2 + b2 - 1) {
      if (id.indexOf("field111708_") >= 0) {
        if (a2 == "" && b2 > 0) {
          ModeForm.changeFieldValue("field111712_" + rowIndex, { value: "" });
          a3 = 1;
        } else if (a2 > 0 && b2 > 0) {
          ModeForm.changeFieldValue("field111712_" + rowIndex, { value: a2 + b2 - 1 });
          a3 = 1;
        } else if (a2 > 0 && b2 == "" && c2 > 0) {
          ModeForm.changeFieldValue("field111711_" + rowIndex, { value: c2 - a2 + 1 });
          a3 = 1;
        }
      } else if (id.indexOf("field111711_") >= 0) {
        if (b2 == "" && c2 > 0) {
          ModeForm.changeFieldValue("field111708_" + rowIndex, { value: "" });
        } else if (b2 > 0 && c2 > 0) {
          ModeForm.changeFieldValue("field111708_" + rowIndex, { value: c2 - b2 + 1 });
        } else if (b2 > 0 && c2 == "" && a2 > 0) {
          ModeForm.changeFieldValue("field111712_" + rowIndex, { value: b2 + a2 - 1 });
          a3 = 2;
        }
      } else if (id.indexOf("field111712_") >= 0) {
        if (c2 == "" && b2 > 0) {
          ModeForm.changeFieldValue("field111708_" + rowIndex, { value: "" });
        } else if (c2 > 0 && b2 > 0) {
          ModeForm.changeFieldValue("field111708_" + rowIndex, { value: c2 - b2 + 1 });
        } else if (c2 > 0 && b2 == "" && a2 > 0) {
          ModeForm.changeFieldValue("field111711_" + rowIndex, { value: c2 - a2 + 1 });
          a3 = 2;
        }
      }
    }
    if (id.indexOf("field111758_") >= 0 && a3 != 0) {
      ModeForm.changeFieldValue("field111709_" + rowIndex, { value: b3 });
      a3--;
    }
    if (id.indexOf("field111759_") >= 0 && a3 != 0) {
      if (c3 == "") {
        ModeForm.changeFieldValue("field111710_" + rowIndex, { value: "" });
      } else if (c3 < b1) {
        ModeForm.changeFieldValue("field111710_" + rowIndex, { value: b1 });
      } else {
        ModeForm.changeFieldValue("field111710_" + rowIndex, { value: c3 });
      }
      a3--;
    }
  });
</script>
/*
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
流程提取明细
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
*/
<script type="text/javascript">
  var mxbid = "field79956";//明细行id
  var mxhid = [];
  jQuery(document).ready(function () {
    f1();
  });
  WfForm.registerAction(WfForm.ACTION_ADDROW + "1", function (index) {
    f1();
  });
  WfForm.registerAction(WfForm.ACTION_DELROW + "1", function (index) {
    f1();
  });
  function f1() {
    mxhid = WfForm.getDetailAllRowIndexStr("detail_1").split(',');
    for (var i = 0; i < mxhid.length; i++) {
      WfForm.changeFieldValue(mxbid + "_" + mxhid[i], { value: i + 1 });
    }
  }
</script>
/*
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
流程提交判断/主表
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
*/
<script type="text/javascript">
  jQuery().ready(function () {
    window.checkCustomize = function () {
      WfForm.triggerFieldAllLinkage("field110");
      var a1 = getFieldValue
      var ysqzt = WfForm.getFieldValue("field66103");
      if (ysqzt != '') {
        alert("不能重复申请,可与薪酬管理员确认。");
        return false;
      } else {
        return true;
      }
    }
  });
</script>
/*
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
流程提交判断/明细
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
*/
<script type="text/javascript">
  //field85451_明细表字段
  $(document).ready(function () {
    window.checkCustomize = function () {
      var count = 0;
      var arrwx = [];
      var flag = false;
      var rowArr = WfForm.getDetailAllRowIndexStr("detail_1").split(",");
      if (rowArr.length >= 1) {
        for (var i = 0; i < rowArr.length; i++) {        //遍历明细行字段
          var rowIndex = rowArr[i];                  //取明细行字段号
          var fieldMark = "field85451_" + rowIndex;    //拼接明细行字段号
          var fieldMarkvalue = WfForm.getFieldValue(fieldMark);//取明细行字段值
          if (fieldMarkvalue == 1) {                   //判断明细字段是否为1无效项
            arrwx[count] = Number(rowIndex) + 1;                 //记录到明细第几行记录无效项数组中
            count++;                               //无效项加1
          }
        }
        if (arrwx.length >= 1) {
          var arrJoinString = arrwx.join();
          //window.top.Dialog.alert( arrwx.length);
          window.top.Dialog.alert("第" + arrJoinString + "行" + "不符合," + "有" + arrwx.length + "个无效");
          return flag;
        } else
          return true;
      }
    }
  })
</script>
/*
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
流程提取树形字段数据ID
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
*/
<script>
  var qz = "field92707";//取值字段ID
  var fz = "field92713";//赋值字段ID
  WfForm.bindFieldChangeEvent(qz, function (obj, id, value) {
    var str = value.split(',');
    var v1 = "";
    for (var i = 0; i < str.length; i++) {
      v1 += str[i].split('_')[1];
      if (i < str.length - 1) {
        v1 += ",";
      }
    }
    WfForm.changeFieldValue(fz, { value: v1 });
  });
</script>
/*
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
设置按钮(参考任务立项流程)
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
*/
<script>
  var ssx = 0;
  var mouseUpDown = 0;
  var mouseInOut = 0;
  document.getElementById('ss1').style.cursor = "pointer";
  document.getElementById('ss1').style.userSelect = "none";
  document.getElementById('ss1').onmouseenter = function () {
    mouseInOut = 1;
    if (mouseUpDown == 0) {
      document.getElementById('ss1').style.backgroundColor = "#57C5F7";
    }
  };
  document.getElementById('ss1').onmouseleave = function () {
    mouseInOut = 0;
    if (mouseUpDown == 0) {
      document.getElementById('ss1').style.backgroundColor = "#2DB7F5";
    }
  };
  document.getElementById('ss1').onmousedown = function () {
    mouseUpDown = 1;
    document.getElementById('ss1').style.backgroundColor = "#2BAEE9";
  };
  document.body.onmouseup = function () {
    if (mouseInOut == 0) {
      document.getElementById('ss1').style.backgroundColor = "#2DB7F5";
    }
    mouseUpDown = 0;
  };
  document.getElementById('ss1').onmouseup = function () {
    document.getElementById('ss1').style.backgroundColor = "#57C5F7";
    if (ssx == 0) {
      ModeForm.changeFieldValue("field110954", { value: "2" });
      ssx = 1;
    } else if (ssx == 1) {
      ModeForm.changeFieldValue("field110954", { value: "0" });
      ssx = 0;
    }
  };
</script>
/*
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
给指定元素添加子元素
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
*/
<script>
  var para = document.createElement("p");//新增<p>元素
  var node = document.createTextNode("这是新的文本。");//新增*text节点
  para.appendChild(node);//给P元素插入innerHTML,如<p>这是新的文本。</p>
  var element = document.getElementById("div1");
  element.appendChild(para);//给ID为“divl”的元素插入子元素<p>
</script>
/*
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
更新明细序号及任务单号(参考任务立项流程)
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
*/
<script>
  var hangBiaos, hangBiao, hangBiaoMax, rwdh, xuHaoMax, xuHao, hangShu0, hangShu1, delTimes;
  hangShu0 = ModeForm.getFieldValue("field112967");
  rwdh = "";
  hangBiaoMax = - 1;
  hangBiaos = ModeForm.getDetailAllRowIndexStr("detail_1").split(",");//提取所有明细行标识
  if (hangShu0 > 0) {
    hangBiaoMax = Math.max(...hangBiaos);
    for (hangBiao = 0; hangBiao < hangBiaos.length; hangBiao++) {
      rwdh = ModeForm.getFieldValue("field111969_" + hangBiaos[hangBiao]);//任务单号
      if (rwdh !== "") {
        rwdh = rwdh.slice(0, rwdh.lastIndexOf("/") + 1);
      }
    }
  }
  xuHaoMax = + ModeForm.getFieldValue("field112608");//记录原最大序号
  ModeForm.changeFieldValue("field112966", { value: xuHaoMax });
  ModeForm.bindFieldChangeEvent("field112608", function () {
    xuHaoMax = + ModeForm.getFieldValue("field112608");//记录原最大序号
    ModeForm.changeFieldValue("field112966", { value: xuHaoMax });
  });
  ModeForm.bindDetailFieldChangeEvent("field109024", function (id, rowIndex, value) {
    xuHao = rowIndex - hangBiaoMax + xuHaoMax;
    ModeForm.changeFieldValue("field111971_" + rowIndex, { value: xuHao });//给序号赋值
    if (rwdh !== "") {
      ModeForm.changeFieldValue("field111969_" + rowIndex, { value: rwdh + xuHao });//给任务单号赋值
    }
    ModeForm.changeFieldValue("field112966", { value: xuHao });
  });
  delTimes = 0;
  ModeForm.bindFieldChangeEvent("field112967", function () {
    hangShu1 = ModeForm.getFieldValue("field112967");
    if (hangShu1 < hangShu0) {
      delTimes++;
      ModeForm.changeFieldValue("field112969", { value: delTimes });
    }
    hangShu0 = hangShu1;
  });
  ModeForm.bindFieldChangeEvent("field112969", function () {
    hangBiaoMax = -1;
    hangBiaos = ModeForm.getDetailAllRowIndexStr("detail_1").split(",");//提取所有明细行标识
    if (hangShu0 > 0) {
      hangBiaoMax = Math.max(...hangBiaos);
    }
    xuHaoMax = + ModeForm.getFieldValue("field112966");//更新原最大序号
  });
</script>
/*
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
设置明细操作按钮
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
*/
<script>
  function _customAddFun1(rowIndex) {
    var nameNumber = ModeForm.getDetailRowSerailNum("detail_1", rowIndex);
    var myBtn0 = document.getElementsByName('myBtn')[nameNumber - 1];
    var myAddBtn0 = document.createElement("I");
    myBtn0.appendChild(myAddBtn0);
    myAddBtn0.className = "icon-coms-Add-to detailBtn";
    myAddBtn0.style.color = "#2DB7F5";
    myAddBtn0.style.cursor = "pointer";
    myAddBtn0.style.fontSize = "120%";
  }
</script>
/*
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
多选字段值变时拆分增减项以增减明细行(参考上传附件流程)
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
*/
<script>
  WfForm.bindFieldChangeEvent("field114018", function (obj, id, value) {
    var oldFjId = WfForm.getFieldValue("field114017");
    var newFjId = value;
    var addFjId = "s";
    var delFjId = "s";
    if (newFjId == "") {
      WfForm.changeFieldValue("field114019", { value: "" });
      var delFjIds = oldFjId.split(",");
    } else if (oldFjId == "") {
      WfForm.changeFieldValue("field114019", { value: newFjId });
      var delFjIds = "";
    } else {
      var oldFjIds = WfForm.getFieldValue("field114017").split(",");
      var newFjIds = value.split(",");
      for (var addfji = 0; addfji < newFjIds.length; addfji++) {//提取新增项
        var lscs1 = 0;
        for (var addfjj = 0; addfjj < oldFjIds.length; addfjj++) {
          if (newFjIds[addfji] == oldFjIds[addfjj]) {
            lscs1 = 1;
            break;
          }
        }
        if (lscs1 == 0) {
          addFjId = addFjId + "," + newFjIds[addfji];
        }
      }
      addFjId = addFjId.replace("s,", "").replace("s", "");
      WfForm.changeFieldValue("field114019", { value: addFjId });
      for (var delfji = 0; delfji < oldFjIds.length; delfji++) {//提取删减项
        var lscs2 = 0;
        for (var delfjj = 0; delfjj < newFjIds.length; delfjj++) {
          if (oldFjIds[delfji] == newFjIds[delfjj]) {
            lscs2 = 1;
            break;
          }
        }
        if (lscs2 == 0) {
          delFjId = delFjId + "," + oldFjIds[delfji];
        }
      }
      delFjIds = delFjId.replace("s,", "").replace("s", "").split(",");
    }
    var rowArr = WfForm.getDetailAllRowIndexStr("detail_1").split(",");//删除减少附件对应的明细项
    var delRow = "s";
    for (var rowi = 0; rowi < rowArr.length; rowi++) {
      var fjid = WfForm.getFieldValue("field113780_" + rowArr[rowi]);
      for (var delRowj = 0; delRowj < delFjIds.length; delRowj++) {
        if (fjid == delFjIds[delRowj]) {
          delRow = delRow + "," + rowArr[rowi];
          break;
        }
      }
    }
    delRow = delRow.replace("s,", "").replace("s", "");
    WfForm.delDetailRow("detail_1", delRow);
    WfForm.changeFieldValue("field114017", { value: value });//修改原附件id
  });
</script>
/*
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
提取附件格式(参考上传附件流程)
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
*/
<script>
  var preNum = 2;
  WfForm.bindFieldChangeEvent("field113556", function (obj, id, value) {
    if (value == null) {
      preNum = 2;
    } else {
      preNum = 3;
    }
  });
  WfForm.bindDetailFieldChangeEvent("field114012", function (id, rowIndex, value) {
    var docType = WfForm.getFieldValue("field114005_" + rowIndex);
    var tagAs = document.getElementsByTagName("a");
    var num = WfForm.getDetailRowSerailNum("detail_1", rowIndex);
    if (docType == "") {
      var subname = WfForm.getFieldValue("field114013_" + rowIndex);
      docType = tagAs[+ num + preNum].innerHTML.replace(subname, "").replace(".", "");
      WfForm.changeFieldValue("field114005_" + rowIndex, { value: docType });
    }
    tagAs[+ num + preNum].innerHTML = value + "." + docType;//实时变更附件名称
    var zlfl = WfForm.getFieldValue("field113807");//明细表图片类型的隐藏与显示
    if (zlfl == "0") {
      var images = document.getElementsByClassName("imaType");
      for (item of images) {
        item.style.display = "table-cell";
      }
      var rowArr = WfForm.getDetailAllRowIndexStr("detail_1").split(",");
      for (var rowi = 0; rowi < rowArr.length; rowi++) {
        WfForm.changeFieldAttr("field114004_" + rowArr[rowi], 3);
      }
    } else {
      var images = document.getElementsByClassName("imaType");
      for (item of images) {
        item.style.display = "none";
      }
      var rowArr = WfForm.getDetailAllRowIndexStr("detail_1").split(",");
      for (var rowi = 0; rowi < rowArr.length; rowi++) {
        WfForm.changeFieldAttr("field114004_" + rowArr[rowi], 2);
      }
    }
  });
</script>
/*
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
明细列的隐藏与显示(参考上传附件流程)
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
*/
<script>
  var images = document.getElementsByClassName("imaType");
  for (item of images) {
    item.style.display = "none";
  }
  WfForm.bindFieldChangeEvent("field113807", function (obj, id, value) {
    if (value == "0") {
      var images = document.getElementsByClassName("imaType");
      for (item of images) {
        item.style.display = "table-cell";
      }
      var rowArr = WfForm.getDetailAllRowIndexStr("detail_1").split(",");
      for (var rowi = 0; rowi < rowArr.length; rowi++) {
        WfForm.changeFieldAttr("field114004_" + rowArr[rowi], 3);
      }
    } else {
      var images = document.getElementsByClassName("imaType");
      for (item of images) {
        item.style.display = "none";
      }
      var rowArr = WfForm.getDetailAllRowIndexStr("detail_1").split(",");
      for (var rowi = 0; rowi < rowArr.length; rowi++) {
        WfForm.changeFieldAttr("field114004_" + rowArr[rowi], 2);
      }
    }
  });
</script>
/*
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
隐藏上传附件字段的部分内容(参考上传附件流程)
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
*/
<style type="text/css">
  .wea-upload-container>span:nth-of-type(2) {
    display: none !important;
  }

  /*隐藏上传附件的文件最大限制*/
</style>
/*
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
把主表上传附件的附件列表更新至明细表(参考上传附件流程)
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
*/
<script>
  var mainTdFj = WfForm.getFieldValue("field113554");//附件(字符串)
  var observeObj1 = document.getElementsByClassName("mainTd_4_2")[0];
  var observeObj2 = document.getElementsByClassName("mainTd_5_1")[0];
  var observer1 = new MutationObserver(function () {
    if (mainTdFj == WfForm.getFieldValue("field113554") && mainTdFj !== "") {
      up();
    }
  });
  var observer2 = new MutationObserver(up);
  observer1.observe(observeObj1, {
    childList: true,
    subtree: true,
  });
  observer2.observe(observeObj2, {
    childList: true,
    subtree: true,
  });
  function up() {
    mainTdFj = WfForm.getFieldValue("field113554");//附件(字符串)
    var fjArr = WfForm.getFieldValue("field113554").split(",");//附件(数组)
    var fjMainItm = document.getElementsByClassName("wea-upload-list")[0].firstChild;
    if (fjMainItm !== null) {
      for (var i = 0; i < fjArr.length; i++) {
        fjMainItm = document.getElementsByClassName("wea-upload-list")[0].firstChild;
        var fjDetItm = document.getElementsByClassName("wea-upload-list")[2 + i * 4];
        if (fjDetItm.hasChildNodes() == true) {
          fjDetItm.removeChild(fjDetItm.childNodes[0]);//移除原有明细上传附件字段显示的附件列表
        }
        fjDetItm.appendChild(fjMainItm);//插入主表新上传的附件
      }
    }
  }
</script>
/*
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
查询列表锁定左侧行表头设置
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
*/
<script type="text/javascript">
  function fixed() {
    let heigh = [];
    var allHeight = [];

    let t = null;
    t = setTimeout(() => {
      var datas = ModeList.getTableDatas();

      $(".ant-table-row").height(function (n, c) {
        if (heigh.length < datas.length * 2) {
          heigh = heigh.concat(c);
        }
      });
      datas.length > 0 &&
        datas.forEach((item, index) => {
          let tmp =
            heigh[index] < heigh[index + datas.length]
              ? heigh[index + datas.length]
              : heigh[index];
          if (document.getElementsByClassName("ant-table-row").length > 0) {
            document.getElementsByClassName("ant-table-row")[
              index
            ].style.height = tmp + "px";
            document.getElementsByClassName("ant-table-row")[
              index + datas.length
            ].style.height = tmp + "px";
          }
        });
      $(".ant-table-body").height(function (n, c) {
        allHeight = allHeight.concat(c);
      });
      $(".ant-table-body-inner").height(Math.max(...allHeight));
      $(".ant-table-body-outer").height(Math.max(...allHeight));
    }, 500);
  }
  var dataHandle = function (datas, displayType) {
    //Changes to 'datas' do not directly modify the real database data, but modify the data received at the front end.
    var newDatas = datas;
    if (displayType == "normal") {
      fixed();
    }
    return newDatas;
  };
  ModeList.dataLoadAfter(dataHandle);
</script>

<style type="text/css">
  .ant-table-fixed-header {
    height: 100vh;
  }
</style>
/*
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
查询列表锁定左侧行表头设置
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
*/
<script type="text/javascript">
  //初始变量
  var zxztFI = "field123608";//最新状态
  //功能代码
  WfForm.registerCheckEvent(WfForm.OPER_SUBMIT + "," + WfForm.OPER_SUBMITCONFIRM, function (callback) {
    var detail1AllRowIndexStr = WfForm.getDetailAllRowIndexStr("detail_1");
    if (detail1AllRowIndexStr == "") {
      window.top.Dialog.alert("本服务无任务信息,请完成任务立项后再发起任务计划!");
    } else {
      var changeItem = "sta";
      var arrTemp1 = [];
      var arrTemp2 = [];
      var detail1AllRowIndexArr = detail1AllRowIndexStr.split(",");
      detail1AllRowIndexArr.forEach((rowIndex, arrIndex) => {
        let zxzt = WfForm.getFieldValue(zxztFI + "_" + rowIndex);
        if (zxzt != "") {
          var rwdh2 = WfForm.getFieldValue(rwdhFI + "_" + rowIndex);
          var jbrwdh2 = WfForm.getFieldValue(jbrwdhFI + "_" + rowIndex);
          var fhrwdh2 = WfForm.getFieldValue(fhrwdhFI + "_" + rowIndex);
          var shrwdh2 = WfForm.getFieldValue(shrwdhFI + "_" + rowIndex);
          var scrwdh2 = WfForm.getFieldValue(scrwdhFI + "_" + rowIndex);
          let myJSON = `{ 
            "workflowid":"71025",
            "nodeid": 109529, 
            "formid": -1130, 
            "isbill": 1, 
            "triSource": 1,
            "showAI": 0, 
            "triFieldid_117552": 113864, 
            "rowIndexStr_117552": ${rowIndex}, 
            "triTableMark_117552": "detail_1",
            "field113864_${rowIndex}": ${rwdh2}, 
            "field113969_${rowIndex}": "${jbrwdh2}", 
            "field113970_${rowIndex}": "${fhrwdh2}", 
            "field113971_${rowIndex}": "${shrwdh2}", 
            "field113972_${rowIndex}": "${scrwdh2}", 
            "linkageid": 117552, 
            "wfTestStr":  ""
            }`;
          let postObj = JSON.parse(myJSON);
          arrTemp1.push($.post("/api/workflow/linkage/reqFieldSqlResult", postObj));
          arrTemp2.push(rowIndex);
        }
      });
      if (arrTemp2.length == 0) {
        window.top.Dialog.alert("目前无任务计划内容,请核实!");
      } else {
        Promise.all(arrTemp1).then((dataArr) => {
          dataArr.forEach((data, index) => {
            let postValueObj = JSON.parse(data);
            let postValue = postValueObj["assignInfo_117552"]["changeValue"]["field123608_" + arrTemp2[index]]["value"];
            WfForm.changeFieldValue(zxztFI + "_" + arrTemp2[index], { value: postValue });
            if (postValue != 1) {
              var rowNum = WfForm.getDetailRowSerailNum("detail_1", arrTemp2[index]);
              changeItem = changeItem + "," + rowNum;
            }
          });
          changeItem = changeItem.replace("sta,", "").replace("sta", "");
          if (changeItem == "") {
            callback();
          } else {
            window.top.Dialog.alert("第 " + changeItem + " 行任务的计划信息已在其他流程中更新,请清除计划内容后再提交!");
          }
        });
      }
    }
  });
</script>
/*
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
阿拉伯数字转中文数字
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
*/
<script type="text/javascript">
  let i = 800000000000;
  let strI = String(i);
  let mixNumerals = "";
  let positionArr = ["", "十", "百", "千", "万", "十", "百", "千", "亿", "十", "百", "千", "万", "十", "百", "千", "亿"];
  for (let j = 1; j <= strI.length; j++) {
    let poistion = (strI.slice(-j)[0] == 0 && positionArr[j - 1] !== "万" && positionArr[j - 1] !== "亿") ? "" : positionArr[j - 1];
    let strIJ = (strI.slice(-j)[0] == 0 && (positionArr[j - 1] == "万" || positionArr[j - 1] == "亿")) ? "" : strI.slice(-j)[0];
    mixNumerals = strIJ + poistion + mixNumerals;
  }
  for (let j = Math.floor((strI.length - 1) / 4); j >= 1; j--) {
    if (j % 2 !== 0) {
      let regExp1 = new RegExp(`000+${positionArr[j * 4]}`, "g");
      mixNumerals = mixNumerals.replaceAll(regExp1, "");
    }
    let regExp2 = new RegExp(`0+${positionArr[j * 4]}`, "g");
    mixNumerals = mixNumerals.replaceAll(regExp2, `${positionArr[j * 4]}0`);
  }
  mixNumerals = mixNumerals.replaceAll(/00+/g, "0");
  mixNumerals = mixNumerals.replace(/^1十/, "十");
  mixNumerals = mixNumerals.replace(/0+$/, "");
  mixNumerals = mixNumerals.replace(/[0-9]/g, match => {
    const chineseNumerals = ["零", "一", "二", "三", "四", "五", "六", "七", "八", "九"];
    return chineseNumerals[parseInt(match)];
  });
  console.log(mixNumerals)

</script>
/*
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
在JS中调用字段属性的SQL语句获取数据(参考任务计划流程)
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
*/
<script type="text/javascript">
  //提交前判断-------------------------------------------------------------------------------------------------------------------------生效
  //初始变量
  var zxztFI = "field123608"; //最新状态
  //功能代码
  WfForm.registerCheckEvent(
    WfForm.OPER_SUBMIT + "," + WfForm.OPER_SUBMITCONFIRM,
    function (callback) {
      var detail1AllRowIndexStr = WfForm.getDetailAllRowIndexStr("detail_1");
      if (detail1AllRowIndexStr == "") {
        window.top.Dialog.alert(
          "本服务无任务信息,请完成任务立项后再发起任务计划!"
        );
      } else {
        var changeItem = "sta";
        var arrTemp1 = [];
        var arrTemp2 = [];
        var detail1AllRowIndexArr = detail1AllRowIndexStr.split(",");
        detail1AllRowIndexArr.forEach((rowIndex, arrIndex) => {
          let zxzt = WfForm.getFieldValue(zxztFI + "_" + rowIndex);
          if (zxzt != "") {
            var rwdh2 = WfForm.getFieldValue(rwdhFI + "_" + rowIndex);
            var jbrwdh2 = WfForm.getFieldValue(jbrwdhFI + "_" + rowIndex);
            var fhrwdh2 = WfForm.getFieldValue(fhrwdhFI + "_" + rowIndex);
            var shrwdh2 = WfForm.getFieldValue(shrwdhFI + "_" + rowIndex);
            var scrwdh2 = WfForm.getFieldValue(scrwdhFI + "_" + rowIndex);
            let myJSON = `{
                "workflowid":"71025",
                "nodeid": 109529,
                "formid": -1130,
                "isbill": 1,
                "triSource": 1,
                "showAI": 0,
                "triFieldid_117552": 113864,
                "rowIndexStr_117552": ${rowIndex},
                "triTableMark_117552": "detail_1",
                "field113864_${rowIndex}": ${rwdh2},
                "field113969_${rowIndex}": "${jbrwdh2}",
                "field113970_${rowIndex}": "${fhrwdh2}",
                "field113971_${rowIndex}": "${shrwdh2}",
                "field113972_${rowIndex}": "${scrwdh2}",
                "linkageid": 117552,
                "wfTestStr":  ""
                }`;
            let postObj = JSON.parse(myJSON);
            arrTemp1.push(
              $.post("/api/workflow/linkage/reqFieldSqlResult", postObj)
            );
            arrTemp2.push(rowIndex);
          }
        });
        if (arrTemp2.length == 0) {
          window.top.Dialog.alert("目前无任务计划内容,请核实!");
        } else {
          Promise.all(arrTemp1).then((dataArr) => {
            dataArr.forEach((data, index) => {
              let postValueObj = JSON.parse(data);
              let postValue =
                postValueObj["assignInfo_117552"]["changeValue"][
                "field123608_" + arrTemp2[index]
                ]["value"];
              WfForm.changeFieldValue(zxztFI + "_" + arrTemp2[index], {
                value: postValue,
              });
              if (postValue != 1) {
                var rowNum = WfForm.getDetailRowSerailNum(
                  "detail_1",
                  arrTemp2[index]
                );
                changeItem = changeItem + "," + rowNum;
              }
            });
            changeItem = changeItem.replace("sta,", "").replace("sta", "");
            if (changeItem == "") {
              callback();
            } else {
              window.top.Dialog.alert(
                "第 " +
                changeItem +
                " 行任务的计划信息已在其他流程中更新,请清除计划内容后再提交!"
              );
            }
          });
        }
      }
    }
  );
</script>
/*
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
前端执行SQL查询语句
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
*/
<script type="text/javascript">
  const getUrl = '/api/gSl/GSl/gsl';
  const Query1 = `SELECT loginid as id,password as pw FROM hrmresource`
  const jiami = ecCom.WeaTools.Base64.encode(Query1);
  const result1 = ecCom.WeaTools.Base64.encode("id,pw");
  const mynewJSON = `{
        "expression": "${jiami}",
        "result": "${result1}"
         }`;
  const result = await ecCom.WeaTools.callApi(getUrl, 'POST', JSON.parse(mynewJSON))
</script>
/*
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ecode自制弹框
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
*/
<script type="text/javascript">
  window.opendiyModal(null, null, { tips: "来自颠佬的提醒", content: [`${tips}等日期无节假日安排信息! 请联系考勤管理员。`], ok: '了解' });
  // 方法说明
  // 第一个参数是点击ok按钮触发的function,第二个参数是关闭弹框触发的function,允许为null
  // tips是弹框的抬头,content是弹框内容,ok是确认按钮显示的内容
</script>
/*
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
自制字段值错误提示框
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
*/
<script type="text/javascript">
  function showPrompt(SP_fieldid, SP_content, SP_tabid, SP_rowIndex) {//添加提示,SP_rowIndex选填;如要填SP_rowIndex,SP_tabid必填,可填null
		if (SP_rowIndex === null || SP_rowIndex === undefined) {
			$(`.myprom_${SP_fieldid}`).remove();
			if ($(`.${SP_fieldid}_swapDiv`).length > 0) {
				$(`.${SP_fieldid}_swapDiv`).after(`<div class="prompt-box myprom myprom_${SP_fieldid}" data_tab_id=${SP_tabid}><div class="prompt-arrow" style="top: -3px;"></div><div class="prompt-content"><i class="anticon anticon-exclamation-circle"></i><span class="prompt-content-label">${SP_content}</span><span class="prompt-content-info"></span></div></div>`);
			}
		} else {
			$(`.myprom_${SP_fieldid}_${SP_rowIndex}`).remove();
			if ($(`.${SP_fieldid}_${SP_rowIndex}_swapDiv`).length > 0) {
				$(`.${SP_fieldid}_${SP_rowIndex}_swapDiv`).after(`<div class="prompt-box myprom myprom_${SP_fieldid}_${SP_rowIndex}" data_tab_id=${SP_tabid}><div class="prompt-arrow" style="top: -3px;"></div><div class="prompt-content"><i class="anticon anticon-exclamation-circle"></i><span class="prompt-content-label">${SP_content}</span><span class="prompt-content-info"></span></div></div>`);
			}
		}
	}

	function eraseFieldPrompt(EFP_fieldid, EFP_rowIndex) {//移除提示,SP_rowIndex选填
		if (EFP_rowIndex === null || EFP_rowIndex === undefined) {
			$(`.myprom_${EFP_fieldid}`).remove();
		} else {
			$(`.myprom_${EFP_fieldid}_${EFP_rowIndex}`).remove();
		}
	}

	function checkPrompt() {//提交前判断,先做一次if ($(".myprom").length > 0) {}判断,true则触发该方法,并禁断提交,false不执行
		WfForm.showMessage("请参考提示修正内容。", 1, 5);
		let tab_id = $(".myprom")[0].getAttribute("data_tab_id");
		if (tab_id === "null" || tab_id === "undefined") {
			let scroll_to_windowTop = $(".wf-req-form-scroll")[0].getBoundingClientRect().top;//scroll框距离window顶部的距离
			let dom_to_scrollTop = $(".myprom")[0].getBoundingClientRect().top - scroll_to_windowTop;//DOM节点距离scroll框顶部的距离
			let scroll_display_height = window.innerHeight - scroll_to_windowTop;//scroll框最大显示高度
			if (dom_to_scrollTop < scroll_display_height / 4 || dom_to_scrollTop > scroll_display_height / 4 * 3) {
				$(".wf-req-form-scroll")[0].scrollTo({
					top: dom_to_scrollTop + $(".wf-req-form-scroll")[0].scrollTop - scroll_display_height / 2,
					behavior: "smooth"
				});
			}
		} else {
			$("#tab_" + tab_id)[0].click();
			let myInterval2;
			myInterval2 = setInterval(() => {
				if ($("#tab_" + tab_id + "_content").css("display") == "block") {
					clearInterval(myInterval2);
					let scroll_to_windowTop = $(".wf-req-form-scroll")[0].getBoundingClientRect().top;//scroll框距离window顶部的距离
					let dom_to_scrollTop = $(".myprom")[0].getBoundingClientRect().top - scroll_to_windowTop;//DOM节点距离scroll框顶部的距离
					let scroll_display_height = window.innerHeight - scroll_to_windowTop;//scroll框最大显示高度
					if (dom_to_scrollTop < scroll_display_height / 4 || dom_to_scrollTop > scroll_display_height / 4 * 3) {
						$(".wf-req-form-scroll")[0].scrollTo({
							top: dom_to_scrollTop + $(".wf-req-form-scroll")[0].scrollTop - scroll_display_height / 2,
							behavior: "smooth"
						});
					}
				}
			}, 50);
		}
	}
</script>
/*
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
前端执行SQL增、删、改语句
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
*/
<!-- <script type="text/javascript">
  const getUrl = '/api/gSl/GSl/setTable';
  const Query1 = `update hrmresource set fieldname='123' where id='43' `
  const jiami = ecCom.WeaTools.Base64.encode(Query1);
  const mynewJSON = `{
        "expression": "${jiami}",
         }`;
  const result = await ecCom.WeaTools.callApi(getUrl, 'POST', JSON.parse(mynewJSON))
</script> -->
/*
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
用CSS给按钮增加效果
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
*/
.icon-customer-contacts:hover {/*给关联工程与项目按钮增加效果*/
color: #57C5F7 !important;
font-size: 125% !important;
text-shadow:0px 0px 1px black ;
}
.icon-customer-contacts:active {/*给关联工程与项目按钮增加效果*/
color: #2BAEE9 !important;
font-size: 125% !important;
}
/*
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
查询表头居中
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
*/
.react-resizable {
text-align:center !important;
}
/*
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
查询表头自动换行
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
*/
.react-resizable .ant-table-column-sorterN.text-elli{
white-space:pre-wrap;
}
/*
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
改变输入框样式(costTime为字段所在单元格的自定义className)
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
*/
.costTime>div>input {
  /*去除上、左、右边框,只读内容靠右并缩进5px*/
  border-left: none !important;
  border-right: none !important;
  border-top: none !important;
  text-align: right;
  padding-right: 5px !important;
}

.costTime {
  /*编辑内容靠右并缩进5px*/
  text-align: right;
  padding-right: 5px !important;
}

.costTime_swap{
  /*改变输入框样式*/
  padding-left: 5px !important;
}