ForeverSmiYngEcologyKit/JavaScript经验总结.html
2024-06-22 16:23:39 +08:00

1065 lines
50 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
重要信息:
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);//字段idfield11170712及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_rowIndexSP_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;
}