1.校验输入日期是否在当前时间的一年内
场景:请假流程-请假类型为“婚假”时,需要校验“结婚登记时间”是否超过一年,超过一年则不允许申请婚假
实现逻辑:表单中字段“结婚登记日期”设置字段校验-js校验
var date = new Date();
//获取到一年前的时间
let startyear = (date.getFullYear()-1);
let month = (date.getMonth()+1);
let startdate = (date.getDate()-1);
if(month<10){month = '0'+month;}
if(date<10){date = '0'+date;}
if(startdate<10){startdate = '0'+startdate;}
var starttime =(startyear + "-" + month + "-" + startdate);
//判断请假类型是否为婚假
if(data.qjsq.twid == '婚假') {
//判断结婚登记时间是否小于一年前的时间
if(starttime > data.qjsq.marrydate){
return {valid:false,data:{message: "结婚登记日期超过—年,不可申请婚假!" }};
}else if(value >= starttime){
return true;
}
}return true;
//扩展 //获取当前小时 let hour = date.getHours(); //获取当前分钟 let min = date.getMinutes(); //获取当前秒 let second = date.getSeconds();
2.数字校验
场景:请假申请流程,请假类型为年假时,需要校验请假时长是否大于剩余年假时间
实现逻辑:字段“时间长度”添加字段校验-js校验
if (value > 0) {
if(data.qjsq.twid == '年假' && data.qjsq.bal < value){
return { valid: false, data: { message: "年假额度不足"}}
}else if(data.qjsq.twid == '婚假' && value >3 || data.qjsq.twid == '丧假' && value >3){
return { valid: false, data: { message: "请假时长不能大于3天"}}
}else if(data.qjsq.twid == '产假' && value > 143){
return { valid: false, data: { message: "请假时长不能大于143天"}}
}else if(data.qjsq.twid == '护理假' && value > 15){
return { valid: false, data: { message: "请假时长不能大于15天"}}
}else if(data.qjsq.twid == '病假' && value > 90){
return { valid: false, data: { message: "病假一年不允许超过90天!"}}
}else if(data.qjsq.twid == '事假' && value > 15){
return { valid: false, data: { message: "事假—年不超过15天!"}}
}return true;
}else{
return { valid: false, data: { message: "时间长度必须大于0"}}
}
3.校验子表某列之和是否等于主表某个字段
场景:合同表单:发起合同流程时,需校验子表[收付款计划]中的计划金额总和是否等于主表的合同金额
实现逻辑:子表[收付款计划]中的“计划金额”添加字段校验-js校验
let jhje = 0;
if(data.htsplc.sub_sfkjh && data.htsplc.sub_sfkjh.length>0){
data.htsplc.sub_sfkjh.forEach(item =>{
jhje += item.jhje;
})
}
if (jhje != data.htsplc.htje) {
return { valid: false, data: { message: "计划金额总和必须等于合同金额!" } };
} return true;