E8-实现遍历日期范围,根据条件实现流转判断

起因

接前一篇《E8-怎么监听表单里的日期控件被修改过_rarenmen的博客-CSDN博客》中所说的需求,实现判断请假范围中是否包含周六,结合请假人的职务,判断是否需老板审批。

经过

之前分享了是如何实现监听日期控件的修改,已经实现了在修改的时候触发事件。这次分享怎么按天去遍历日期,怎么判断遍历的日期中,包含不包含周六,怎么取申请人的职位描述等问题。

一、怎么按天去遍历日期,怎么判断遍历的日期中,包含不包含周六:需要注意的是,从前台取过来的日期,类型是字符串,需要转换成日期时间类型;实现日期时间类型的加一天,不能使用“变量名+1”,需要使用“变量名.getDate()+1”。

// 检查从开始日期到结束日期,中间是否包含周六
function checkDate() {
// 取表单里的值
    var beginDateStr = $("#field9442").val();    //field9442:日期选择控件(开始日期)
    var endDateStr = $("#field9444").val();        //field9444:日期选择控件(结束日期)
    
// 字符串转换成日期    
    var beginDate = new Date(beginDateStr);        
    var endDate = new Date(endDateStr);
    
// 循环初始变量
    var dateI = beginDate;
    
// 标识变量
    var flagI = 0;

// 取职位描述
    var zwms = $("#field10214").val();                //field10214:文本控件(职位描述),

// 记录日期中是不是包含周六
    for(dateI; dateI <= endDate;  dateI.setDate(dateI.getDate() + 1 )) {
        if(dateI.getDay() == 6 ) {
            flagI = 1;
        }
    }

    if(flagI == 1 && zwms == "业务员")  {
        $("#field10213").prop("checked", true);    //field10213:check控件(是否需要老板审批)
        $("#field10213").next("span").prop("class", "jNiceCheckbox jNiceChecked");
    } else {
        $("#field10213").prop("checked", false);
        $("#field10213").next("span").prop("class", "jNiceCheckbox");
    }
}

二、怎么实现取职位描述的:添加了一个单行文本控件,长度设置的是100,应该够用。设置字段属性实现获取申请人($9439$)的人员基本信息中填写的“岗位”。 

doFieldSQL(" select jobtitlename from hrmresource inner join hrmjobtitles on hrmresource.jobtitle = hrmjobtitles.id where hrmresource.id = '$9439$' ")

* 注:hrmjobtitles(人力资源岗位表)里jobtitlename(职位描述)的长度是1000,单行文本框支持的最大长度是999。

有了check控件(是否需要老板审批),至于如何实现控制流转,是放到出口条件也行,放到节点选人的条件里,都可以,看各公司工作流的实现习惯。

结果

用了将近一周的时间,在网上寻找了一个个的知识点,拼凑出了这些代码,实现了需求。有兴趣的小伙伴,欢迎留言讨论。更期待小伙伴们留言,关注,点赞。

你可能感兴趣的:(泛微-E8,javascript,其他)