废话不多说直接上代码,拷贝代码保存为 html 文件,用浏览器打开就可以看到效果。
在线查看效果:https://run.iviewui.com/PmGsUW3P
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Vue.js中使用iView日期选择器并设置开始时间结束时间校验</title>
<!-- import Vue.js -->
<script src="https://vuejs.org/js/vue.min.js"></script>
<!-- import stylesheet -->
<link rel="stylesheet" href="https://unpkg.com/iview/dist/styles/iview.css">
<!-- import iView -->
<script src="https://unpkg.com/iview/dist/iview.min.js"></script>
</head>
<body>
<div id="app">
<template>
<Row>
<Col span="12"> 开始时间:
<date-picker type="datetime" v-model="startTime" placeholder="请选择开始时间" :options="startTimeOption" @on-change="onStartTimeChange"></date-picker>
</Col>
<Col span="12"> 结束时间:
<date-picker type="datetime" v-model="endTime" placeholder="请选择结束时间" :options="endTimeOption" @on-change="onEndTimeChange"></date-picker>
</Col>
</Row>
</template>
</div>
<script>
new Vue({
el: '#app',
data() {
return {
startTime: '',
endTime: '',
startTimeOption: {},
endTimeOption: {}
}
},
mounted() {
this.startTime = '2018-08-08 00:00:00'
this.endTime = '2018-08-11 23:59:59'
this.onStartTimeChange(this.startTime)
this.onEndTimeChange(this.endTime)
},
methods: {
/**
* 开始时间发生变化时触发,设置结束时间不可选择的日期
* 结束时间应大于等于开始时间,且小于等于当前时间
* @param {string} startTime 格式化后的日期
* @param {string} type 当前的日期类型
*/
onStartTimeChange(startTime, type) {
this.endTimeOption = {
disabledDate(endTime) {
return endTime < new Date(startTime) || endTime > Date.now()
}
}
},
/**
* 结束时间发生变化时触发,设置开始时间不可选择的日期
* 开始时间小于等于结束时间,且小于等于当前时间
* @param {string} date 格式化后的日期
* @param {string} type 当前的日期类型
*/
onEndTimeChange(endTime, type) {
this.startTimeOption = {
disabledDate(startTime) {
return startTime > new Date(endTime) || startTime > Date.now()
}
}
}
}
})
</script>
</body>
</html>
关于本文
- 作者:侠骨留香
- 时间:2018年09月20日
- 联系作者:xiaguliuxiang@foxmail.com
网友评论