问题记录一:采用element-ui日期组件,实现根据指定日期获取前后天数,并更换日期列表数据
下边列表展示之后14天的日期及对应星期几
布局:
样式:
js代码:
点击日期控件时需处理的核心代码
点击上一页,下一页时日期列表更换处理方法如下:
js所有代码如下展示:
// 点击上一页的方法
prevDate(){
this.getPrev(this.datePicker,14)
},
// 点击下一页的方法
nextDate(){
this.getNext(this.datePicker,14)
},
// 获取14天前的日期
getPrev(date,day){
const newDate = new Date(date)
newDate.setDate(newDate.getDate() - day)
this.getDataAfter(newDate)
this.dateTime = newDate
},
// 获取14天后的日期
getNext(date,day){
const newDate = new Date(date)
newDate.setDate(newDate.getDate() + day)
this.getDataAfter(newDate)
this.dateTime = newDate
},
// 获取指定日期前14天数据并保存数组
getDataBefore(date){
this.datePicker = date
let list = []
for(let i = 0;i< 14;i++){
let obj ={
time: new Date(new Date(date).setDate((new Date(date).getDate()-i))).toLocaleDateString(),
week:'星期' + '日一二三四五六'.charAt(new Date(new Date(date).setDate((new Date(date).getDate()-i))).getDay())
}
list.unshift(obj)
}
this.dayList = list.map(item => {
item.time = item.time.split("/")[2]
return item
})
},
// 日期组件选择是修改dayList的值
dateHadler(val){
this.datePicker = val
this.getDataAfter(val)
},
// 获取指定后14天的数据并将day保存数组
getDataAfter(date) {
this.datePicker = date
let list = []
for(let i = 0;i<14;i++){
let obj ={
time: new Date(new Date(date).setDate((new Date(date).getDate()+i))).toLocaleDateString(),
week:'星期' + '日一二三四五六'.charAt(new Date(new Date(date).setDate((new Date(date).getDate()+i))).getDay())
}
list.push(obj)
}
this.dayList = list.map(item => {
item.time = item.time.split("/")[2]
return item
})
}