3.4判断处理数据

177 未经授权,禁止转载了解课程
课程介绍
讨论{{interaction.discussNum ? '(' + interaction.discussNum + ')' : ''}}
适合人群
企业IT、运维、项目实施、项目开发、项目经理等
你将会学到
基于Ecology低代码平台开发表单代码块
课程简介

需求背景(介绍):

     新员工入职,HRBP发起入职流程。提交自动触发劳动合同电子签。其中劳动合同模板中的变量参数,在流程表单填写。

    痛点1:每次填写很容易出错,例如:结束日期只加了年份,漏减去一天。试用期结束日期是1年的+29天,2年的加59天,3年的加179天更容易出错。 

  痛点2:每次计算试用期都要翻日历,包含二月的更容易出错,各种提醒自己。

  痛点3:要与劳动合同类型、是否有试用期关联,无固定期限的不能填写合同开始结束日期,无试用期的不能填写开始试用结束日期。

期望可以选了劳动合同类型、试用期类型和合同年限后自动计算赋值。

     

需求描述(介绍):

    选择入职日期、劳动合同类型、合同年限、试用期类型后:

  (1) 劳动合同类型为【无固定期限】时,劳动合同开始结束日期=///日】

  (2) 劳动合同类型为【固定期限】时,合同开始日期=入职日期,合同结束日期=入职日期+合同年限(年)-1(天)。

  (3) 试用期类型为【无试用期】时,开始结束日期=///日】

  (4) 试用期类型为【有试用期】时,试用开始日期=入职日期,试用结束日期=入职日期+(合同年限为1年加29天;合同年限为2年加59天;合同年限为3年加179天;)

这样HRBP就可以通过简单选择自动计算得出合同开始结束日期、试用开始结束日期,并自动转换符合合同模板要求的字符串。简化、规范录入,杜绝录入错误。

需求分析(介绍):

(1) 日期字段只能赋值日期,不能赋值【///日】字符串。方案一:系统集成时加转换规则。方案二:表单创建日期字段+文本字段,表单上转换好。为简化集成开发,选方案二。

(2) 表单上做字符串转换,日期字段为空时文本字段赋值【///日】,日期字段不为空时,直接转换日期字符串格式。方案一:代码块处理  方案二:字段属性SQL赋值,选方案二。

(3) 劳动合同类型、试用期类型、合同年限为选择框,选项对应ID值为0123。其中合同年限为简化处理,0对应零年后封存、1对应一年、2对应二年、3对应三年。

(4) 计算日期处理,方案一:代码块处理  方案二:字段属性SQL赋值。一开始选了方案一,现在看方案二也不难,本次按方案一。

(5) 判断:入职日期为空劳动合同类型为空合同年限为空或劳动合同类型=0时,合同开始日期=///日】,合同结束日期=///日】。否则合同开始日期=入职日期,合同结束日期=入职日期+合同年限-1天。

(6) 判断:入职日期为空试用期类型为空合同年限为空试用期类型=0 时,试用期开始日期=///日】,试用期结束日期=///日】。否则试用期开始日期=入职日期,试用期结束日期=入职日期+(合同年限为1年加29天;合同年限为2年加59天;合同年限为3年加179天;)

   

配置过程(实操):

基础知识:

1.      Ecology流程表单前端API文档:https://e-cloudstore.com/doc.html?appId=98cb7a20fae34aa3a7e3a3381dd8764e

2.      JS入门-得智:https://edu.51cto.com/course/26295.html

3.      JS入门-李兴华:https://edu.51cto.com/course/5821.html

4.      程序基本过程:输入→处理→输出

5.      开发就是不断尝试得过程。

6.      搭建一个简单流程。

 

一、页面载入后触发

jQuery().ready(function(){

       console.log("输出日志1111111");

});    

二、输入(获取)条件数据

    var fieldvalue = WfForm.getFieldValue("field110");

三、输出处理后数据

    WfForm.changeFieldValue("field123", {value:"1.234"});

四、判断处理数据

if(htlx=="" || htlx==1 || htnx==""){

}else{

}

五、日期计算处理

   var tmp = new Date(rzrq);

   tmp.setFullYear(tmp.getFullYear()+htnx);

   tmp.setDate(tmp.getDate()-1);

  console.log("tmp日期:"+ tmp.toISOString().substring(0,10)); 

 

六、字段变更时触发

    WfForm.bindFieldChangeEvent("field27555,field27556", function(obj,id,value){

    console.log("WfForm.bindFieldChangeEvent--",obj,id,value);

});

七、JS匿名函数

    var Calculatecontractdate=function(){

     }

    Calculatecontractdate();//执行函数

八、延迟执行

    setTimeout(function(){

    Calculatecontractdate();//执行函数

},100);  //延迟执行100ms

九、转文本格式

    DATE_FORMAT( '$main.htksrq$', '%Y%m%d' )


展开更多
发布
头像

{{ item.user.nick_name }} {{ EROLE_NAME[item.user.identity] }}

置顶笔记
讨论图
{{ item.create_time }}回复
  • 删除

    是否确认删除?

    确认
    取消
  • {{ item.is_top == 1 ? '取消置顶' : '置顶'}}

    已有置顶的讨论,是否替换已有的置顶?

    确认
    取消
{{ tag.text}}
头像
{{ subitem.user.nick_name }}{{ EROLE_NAME[subitem.user.identity] }}
{{ subitem.create_time }}回复
删除

是否确认删除?

确认
取消
发布
{{pageType === 'video' ? '讨论区抢占沙发,可获得双倍学分' :'讨论区空空如也,你来讲两句~'}}
发布
{{tips.text}}
{{ noteHeaderTitle }} 笔记{{ hasMyNote ? '我的笔记' : '记笔记' }}
{{ hasMyNote ? '我的笔记' : '记笔记' }}
优质笔记
更新于:{{ $dayjs.formate('YYYY-MM-DD HH:mm:ss', item.last_uptime*1000) }}
头像
{{ detail.username }}

公开笔记对他人可见,有机会被管理员评为“优质笔记”

{{ noteEditor.content.length }}/2000

公开笔记
保存
提问

讲师收到你的提问会尽快为你解答。若选择公开提问,可以获得更多学员的帮助。

记录时间点
记录提问时视频播放的时间点,便于后续查看
公开提问
提交