原因:
element-ui官网上的两个日期选择器并不好用,两个连到一起用户体验不理想
实现效果
/** html代码 **/
<div class="choiceTime">
<el-date-picker
v-model="startTime"
type="date"
value-format="yyyy-MM-dd"
:picker-options="startNoTime"
placeholder="选择日期">
</el-date-picker>
<div class="timeTo">至</div>
<el-date-picker
v-model="endTime"
type="date"
value-format="yyyy-MM-dd"
:picker-options="endNoTime"
placeholder="选择日期">
</el-date-picker>
</div>
.choiceTime{
border: 1px solid #E6E6E6;
width: 270px;
height: 32px;
border-radius: 5px;
display: flex;
overflow: hidden;
.el-date-editor{
flex: 8;
.el-input__inner{
width: 100%;
border: none;
height: 100%;
}
}
.timeTo{
flex: 1;
color: black;
text-align: center
}
}
data() {
return {
startTime: '',
endTime: '',
startNoTime: {
disabledDate(time) {
return time.getTime() >= (Date.now() - 8.64e7)
}
},
endNoTime: {
disabledDate(time) {
return time.getTime() >= (Date.now() - 8.64e7)
}
},
}
},
watch: {
startTime: {
handler(val) {
this.endNoTime = {
disabledDate(time) {
const time1 = new Date(val).getTime()
return time.getTime() < time1 || time.getTime() >= (Date.now() - 8.64e7)
}
}
}
}
},
mounted() {
const time1 = new Date(new Date().getTime() - 1000 * 3600 * 24 * 31)
const time2 = new Date(new Date().getTime() - 60 * 60 * 24 * 1000)
this.startTime = this.procesTime(time1)
this.endTime = this.procesTime(time2)
},
methods: {
procesTime(time) {
const year = time.getFullYear()
const month = time.getMonth() + 1 > 10 ? time.getMonth() + 1 : '0' + (time.getMonth() + 1)
const day = time.getDate() > 10 ? time.getDate() : '0' + time.getDate()
return year + '-' + month + '-' + day
},
}