首页 前端知识 泛微 Ecology8 流程表单常用JS 总结

泛微 Ecology8 流程表单常用JS 总结

2024-06-07 00:06:40 前端知识 前端哥 902 292 我要收藏

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 >

转载请注明出处或者链接地址:https://www.qianduange.cn//article/11175.html
标签
评论
发布的文章

JQuery中的load()、$

2024-05-10 08:05:15

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!