记录一下昨天遇到的一个小问题,优化了时间设定的代码。
表单内容:
<a-col :span="24">
<a-form-item label="结束时刻" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-date placeholder="请选择结束时刻" v-decorator="['EndTime',validatorRules.EndTime]" :trigger-change="true"
:show-time="true" date-format="YYYY-MM-DD HH:mm:ss" @change="timeCalculator" style="width: 100%"/>
</a-form-item>
</a-col>
绑定了开始时间和结束时间的验证方法,但只要选择了开始时间,只需要重新设定一下结束时间的规则。
validatorRules.EndTime
return{
validatorRules: {
StartTime:{
rules: [
{ required: true, message:'请选择开始时间!'},
]
},
EndTime:{
rules: [
{ required: true, validator: validateEndTime},
]
},
}
}
设定检修开始时间为必填选项,给检修结束时间绑定一个自定义的验证方法。
validator: validateEndTime
data(){
const validateEndTime = (rule, value, callback) => {
let StartTime=this.queryParam.StartTime;//v-decorator标签属性值
if (value === '') {
callback(new Error('请选择结束时间'))
} else {
if (
new Date(StartTime).getTime() >=
new Date(value).getTime()
) {
callback(new Error('结束时间必须大于开始时间!'))
} else {
callback()
}
}
}
}
结果:报错后无法提交数据,只有重新选择了才可以。