E8 里面有不少jquery框架内容,当前最新版本为 E9,据说 E10 也即将出现在大家视线。。。。
Ecology 中 需要使用 js 脚本的大部分在流程中,流程模块使用 js 通过流程表单编辑器的 "插入代码块实现" 实现的方式有两种:
1. 直接写在代码块编辑框中输入 js 代码
2. 单独写一个 js 文件,在代码块编辑器中引用该文件 [ 将 js 文件放在OA 服务器 ecology的文件夹下面 ]
编辑器的引用格式 :< script type = "text/javascript" src="/JUNTEST/demo.js">
JUNTEST 为 ecology 下面的文件夹
下面是 E8 流程表单常用 JS,仅供参考 。
注意:
1. 在 Ecology 8 中所有的文件 ( js、jsp、java、css ) 的编码格式必须为 UTF-8
2. 尽量使用 jQuery ( jQuery 兼容性好,涉及到 js 代码统一使用 jQuery,尽量不动原生的 js,原生 js 代码会出现浏览器不兼容的问题 )
// 流程表单的字段 id 以 "field" 开头
var str1 = "#field10950"; // 主表字段
var str2 = "#field10959_0"; // 明细表字段 0-代表明细表行标 明细行标从0开始
// addbutton0-明细表1[新增按钮] delbutton0-明细表1[删除按钮]
// 隐藏明细表1相关按钮 0 -> 明细表1 | 1 -> 明细表2 以此类推......
document.getElementById('$addbutton1$').style.display = "none";
document.getElementById('$delbutton1$').style.display = "none";
// 获取明细表1元素对象_控制勾选
var boxes1 = document.getElementsByName("check_node_0");
// 勾选下标t
boxes1[t].checked = true;
deleteRow0(0, true); // 删除明细表1勾选的明细行
addRow1(1); // 增加明细表2明细行
// 明细行遍历
jQuery("#oTable0").find("tr[_target=datarow]").each(function (index13, obj13) {
var p = $(obj13).attr("_rowindex"); // 下标
// 关键主键的取值
var r1 = jQuery(zlgjid + (p)).val(); // 关键主键
if (boxes3[t].checked) {
// 方法调用
isdel12(r1);
}
t++;
});
return true;
}
// 法2
function isdel12(r1) {
var boxes4 = document.getElementsByName("check_node_1"); // 明细表_boxes4
var num6 = jQuery("#indexnum1").val(); // 明细行数
var g = 0;
jQuery("#oTable1").find("tr[_target=datarow]").each(function (index14, obj14) {
var z = $(obj14).attr("_rowindex"); // 下标
var z1 = jQuery(mxgjid + (z)).val(); // 关键主键_明细
if (z1 == r1) {
boxes4[g].checked = true;
}
// deleteRow1(1, true); // 删除明细行
g++
});
}
// 法3
function isdel13() {
// 明细表1发生改变,如增减行之后进行的操作,不影响正常增减功能。
jQuery("#nodesnum0").bindPropertyChange(function () {
// 标识判断是否执行删除代码
var boxch = document.getElementsByName("check_node_1"); // 明细表_boxes4
var numch = jQuery("#indexnum1").val(); // 总览行数
for (var w = 0; w < numch; w++) {
if (boxch[w].checked) {
deleteRow1(1, true);
// 当明细表2有选择需要删除的数据时。
}
}
})
}
// 提交前的校验
jQuery(document).ready(function () {
checkCustomize = function () {
var hjzje = jQuery(check1).val(); // 获奖总金额值
var jdjjxe = jQuery(check2).val(); // 季度奖金限额值
var pxjd = jQuery(check3).val(); // 评选季度
var num = jQuery("#indexnum0").val(); // 评选结果总览行数
var num1 = jQuery("#indexnum1").val(); // 员工获奖明细行数
var flag = 0;
jQuery("#oTable0").find("tr[_target=datarow]").each(function (index16, obj16) {
var s1 = $(obj16).attr("_rowindex"); // 总览下标
var str0 = jQuery(zlgjid + (s1)).val(); // 遍历总览关键主键
var str1 = jQuery(zlhjje + (s1)).val(); // 总览获奖总金额
var str4 = jQuery(zljxmc + (s1)).val(); // 总览奖项名称
var str41 = jQuery(zljxmc + (s1) + "span").text();
var str411 = str41.split("x");
var nums = 0; // 明细获奖金额求和
jQuery("#oTable1").find("tr[_target=datarow]").each(function (index17, obj17) {
var s2 = $(obj17).attr("_rowindex"); // 明细下标
var str2 = jQuery(mxhjzje + (s2)).val(); // 遍历明细获奖金额
var str3 = jQuery(mxgjid + (s2)).val(); // 遍历明细关键主键
if (str2 != "undefined" && str3 == str0) {
nums = parseInt(str2) + parseInt(nums);
}
});
if (nums != str1) {
alert("【奖项名称】" + str411[0] + "的员工获奖金额合计与其获奖总金额不符,请再次核对各员工获奖明细。");
flag = 1;
}
});
if (flag == 1) {
return false;
}
if (hjzje != "" && jdjjxe != "") {
if (parseFloat(hjzje) > parseFloat(jdjjxe)) {
alert("每季度获奖总金额不可超过【每季度奖金限额】" + jdjjxe + ",请再次核对各奖项获奖总金额。");
return false;
}
} else {
alert("获奖总金额合计值或季度奖金限额值为空!");
return false;
}
return true;
}
});
// 需求一_保存
jQuery(document).ready(function () {
isdel13();
index1();
// 字段变化
var filed1 = "#field10955_"; // 获奖员工
var filed2 = "#field10954_"; // 奖项名称
var filed3 = "#field10969_"; // 执行标识
var filed4 = "#field10968_"; // 关键主键
jQuery("#oTable0").find("tr[_target=datarow]").each(function (index, obj) {
var i = $(obj).attr("_rowindex"); // 明细字段下标
var str5 = jQuery(filed1 + (i)).val(); // 获奖员工
var str6 = jQuery(filed2 + (i)).val(); // 奖项名称
var str7 = jQuery(filed3 + (i)).val(); // 执行标识
jQuery(filed1 + (i)).bindPropertyChange(function () { // 获奖员工
var str8 = jQuery(filed4 + (i)).val(); //关键主键
jQuery(filed3 + (i)).val("1");
if (str8 == "") {
jQuery(filed4 + (i)).val(Math.random());
}
});
jQuery(filed2 + (i)).bindPropertyChange(function () { // 奖项名称
var str8 = jQuery(filed4 + (i)).val(); //关键主键
jQuery(filed3 + (i)).val("1");
if (str8 == "") {
jQuery(filed4 + (i)).val(Math.random());
}
});
});
})
// 需求一_提交_备用
function index1() {
jQuery("#indexnum0").bindPropertyChange(function () {
// 字段变化
var filed1 = "#field10955_"; // 获奖员工
var filed2 = "#field10954_"; // 奖项名称
var filed3 = "#field10969_"; // 执行标识
var filed4 = "#field10968_"; // 关键主键
jQuery("#oTable0").find("tr[_target=datarow]").each(function (index, obj) {
var i = $(obj).attr("_rowindex"); // 明细字段下标
var str5 = jQuery(filed1 + (i)).val(); // 获奖员工
var str6 = jQuery(filed2 + (i)).val(); // 奖项名称
var str7 = jQuery(filed3 + (i)).val(); // 执行标识
jQuery(filed1 + (i)).bindPropertyChange(function () { // 获奖员工
var str8 = jQuery(filed4 + (i)).val(); //关键主键
jQuery(filed3 + (i)).val("1");
if (str8 == "") {
jQuery(filed4 + (i)).val(Math.random());
}
});
jQuery(filed2 + (i)).bindPropertyChange(function () { // 奖项名称
var str8 = jQuery(filed4 + (i)).val(); //关键主键
jQuery(filed3 + (i)).val("1");
if (str8 == "") {
jQuery(filed4 + (i)).val(Math.random());
}
});
});
})
}
//新按钮
$("#detail_250").before(' <input title="生成员工获奖明细" class="e8_btn_top" style="overflow: hidden; white-space: nowrap; text-overflow: ellipsis; max-width: 300px; padding-right: 10px;margin-left:80px; ?width:100px;height:23px;color: #fff;background-color: #30b5ff;" type="button" value="生成员工获奖明细" onclick="doSearch();" />');
function doSearch() {
var zl_zxbs = "#field10969_"; // 执行标识
var boxes = document.getElementsByName("check_node_0");
var boxes1 = document.getElementsByName("check_node_1");
jQuery("#oTable0").find("tr[_target=datarow]").each(function (index, obj) {
var i = $(obj).attr("_rowindex"); // 总览下标
var zl1 = jQuery(zlhjyg + (i)).val(); // 获奖员工
var zl11 = jQuery(zlhjyg + (i) + "span").text(); //获奖员工_标签
var zl4 = jQuery(zl_zxbs + (i)).val(); // 唯一标识
var zlh = jQuery("#indexnum0").val(); // 总览行数
if (zl4 == "1") {
var zl7 = jQuery(zlgjid + (i)).val(); // 关键主键_总览
var q = 0;
jQuery("#oTable1").find("tr[_target=datarow]").each(function (index1, obj1) {
var j = $(obj1).attr("_rowindex"); // 明细下标
var mx1 = jQuery(mxgjid + (j)).val(); // 关键主键_明细
if (mx1 == zl7) {
boxes1[q].checked = true;
}
q++;
});
if (zl1 != "") {
var spl = zl1.split(",");
var spl1 = zl11.split("x");
for (var m = 0; m < spl.length; m++) {
addRow1(1);
var zl5 = spl[m]; //获奖员工
var zl6 = spl1[m]; // 获奖员工_标签
var zl2 = jQuery(zljxmc + (i)).val(); // 奖项名称
var zl21 = jQuery(zljxmc + (i) + "span").text(); //获奖名称_标签
var zlx211 = zl21.split("x");
var zl3 = jQuery(zlgjid + (i)).val(); // 关键主键
// 总览表赋值
jQuery("#oTable1").find("tr[_target=datarow]").each(function (index2, obj2) {
var e = $(obj2).attr("_rowindex"); // 明细下标
var mx3 = jQuery(mxgjid + (e)).val(); // 关键主键
if (mx3 == "undefined" || mx3 == "") {
jQuery(mxgjid + (e)).val(zl3); // 赋值_关键主键
jQuery(mxjxmc + (e)).val(zl2); // 赋值_所获奖项
jQuery(mxjxmc + (e) + "span").html(zlx211[0]); // 赋值_所获奖项_标签
jQuery(mxhjyg + (e)).val(zl5); // 赋值_获奖员工
jQuery(mxhjyg + (e) + "span").html(zl6); // 赋值_获奖员工_标签
jQuery(zl_zxbs + (i)).val("2"); // 执行标识置为2
}
});
}
}
}
});
deleteRow1(1, true); //删除明细行
}
< / script >