1.项目为vue项目,用的是element-ui框架
2.本来框架有开始结束关联的时间选择器,但是用户或者产品有时候会希望两个选择器是分开选择的,所以就需要使用到了自定义规则
<el-form-item label="培训周期" prop="trainingTime" style="width:100%">
<el-date-picker
v-model="ruleForm.eduStartTime"
type="date"
style="width: 45%"
placeholder='开始时间'
value-format="yyyy-MM-dd hh:mm:ss">
</el-date-picker>
<span style="width:1.5%; textAlign:center"> - </span>
<el-date-picker
v-model="ruleForm.eduEndTime"
type="date"
style="width: 45%"
placeholder='结束时间'
value-format="yyyy-MM-dd hh:mm:ss">
</el-date-picker>
</el-form-item>
// 校验规则
var validator = (rule, value, callback) => {
console.log(this.ruleForm.eduStartTime,this.ruleForm.eduEndTime);
if (!this.ruleForm.eduStartTime || !this.ruleForm.eduEndTime) {
callback(new Error('请选择日期'));
} else if (new Date(this.ruleForm.eduStartTime).getTime() >= new Date(this.ruleForm.eduEndTime).getTime()){
callback(new Error('开始时间要小于结束时间'));
}else{
const obj = [this.ruleForm.eduStartTime,this.ruleForm.eduEndTime].join(',')
this.ruleForm.trainingTime = obj
callback();
}
};
// 在rules下面使用
trainingTime: [{
required: true, validator:validator, trigger: 'change'
}]