vue+element-ui 校验开始时间与结束时间的实现代码
更新时间:2024年07月15日 10:02:51 作者:是小张吖~
这篇文章主要介绍了vue+element-ui 校验开始时间与结束时间的代码实现,最主要的需求是开始时间不能早于当前时间,感兴趣的朋友跟随小编一起看看吧
需求背景:开始时间不能早于当前时间(此刻之前不可选)

代码实现:
<template>
<div>
<ElForm v-model="basicMessage" :rules="basicMessageRules">
<ElFormItem prop="startTime">
<!-- 此处用到的是el-element的日期时间选择器 -->
<!-- 通过设置type属性为datetime,即可在同一个选择器里同时进行日期和时间的选择。快捷选项的使用方法与 Date Picker 相同。 -->
<ElDatePicker
v-model="basicMessage.startTime"
value-format="yyyy-MM-dd HH:mm:ss"
type="datetime"
:picker-options="pickerOptions"
placeholder="选择执行开始时间" >
</ElDatePicker>
</ElFormItem>
<span style="margin: 0 8px">-</span>
<ElFormItem prop="endTime">
<ElDatePicker
v-model="basicMessage.endTime"
value-format="yyyy-MM-dd HH:mm:ss"
type="datetime"
:picker-options="pickerOptions"
placeholder="选择执行结束时间">
</ElDatePicker>
</ElFormItem>
</ElForm>
</div>
</template>
<script>
export default {
data () {
return {
// picker-options设置日期可选范围
disabledDate (time) {
return time.getTime() < new Date().getTime() - 86400000
},
// 控制时分秒不可选
selectableRange: (() => {
const data = new Date()
const hour = data.getHours()
const minute = data.getMinutes()
const second = data.getSeconds()
return [`${hour}:${minute}:${second} - 23:59:59`]
})(),
basicMessage: {
startTime: '',
endTime: ''
},
// 自定义校验规则
basicMessageRules: {
startTime: { validator: this.validStartTime, trigger: 'blur' },
endTime: { validator: this.validEndTime, trigger: 'blur' }
}
}
},
methods: {
/* 校验活动区间 */
validStartTime (rule, value, callback) {
if (!value) {
callback(new Error('请选择开始时间'))
} else {
if (this.basicMessage.startTime) {
this.$refs.basicMessage.validateField('endTime')
}
callback()
}
},
validEndTime (rule, value, callback) {
// 判断结束时间不得晚于当前时间(看自己需求)
if (new Date(value).getTime() < new Date().getTime()) {
callback(new Error('结束时间不得晚于当前时间'))
}
if (!value) {
callback(new Error('请选择结束时间'))
} else {
if (!this.basicMessage.startTime) {
callback(new Error('请选择开始时间!'))
} else if (Date.parse(this.basicMessage.startTime) >= Date.parse(value)) {
callback(new Error('结束时间必须大于开始时间!'))
} else {
callback()
}
}
}
}
}
</script>到此这篇关于vue+element-ui 校验开始时间与结束时间的文章就介绍到这了,更多相关vue element-ui 校验时间内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
el-table表格动态合并相同数据单元格(可指定列+自定义合并)
工作时遇到的el-table合并单元格的需求,本文主要介绍了el-table表格动态合并相同数据单元格(可指定列+自定义合并),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2023-07-07
vue+element获取el-table某行的下标,根据下标操作数组对象方式
这篇文章主要介绍了vue+element获取el-table某行的下标,根据下标操作数组对象方式,具有很好的参考价值,希望对大家有所帮助。一起跟随想过来看看吧2020-08-08
vite.config.ts配置之自动导入element-puls方式
这篇文章主要介绍了vite.config.ts配置之自动导入element-puls方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2023-10-10


最新评论