/* ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 重要信息: 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; }