效果如下
日历代码 focus获得焦点时触发函数
// 获取焦点 展示日期
async isShow (e) {
await this.$nextTick()
document.querySelectorAll("[aria-label='下个月'],[aria-label='上个月'],[aria-label='后一年'],[aria-label='前一年']")
.forEach(item => item.addEventListener('click', () => {
this.monthChange()
}))
},
// 切换年月后重新调接口
async monthChange () {
if(this.loading==true){
this.$message.error('正在请求接口,请稍后再试')
return;
}
let year, month
// 获取年月
year = document.querySelectorAll('.el-date-picker__header-label')[0].innerHTML.slice(0, 4)
month = document.querySelectorAll('.el-date-picker__header-label')[1].innerHTML.slice(0,document.querySelectorAll('.el-date-picker__header-label')[1].innerHTML.length-2)
if (Number(month) < 10) {
// 10月之前都需要补0
month = '0' + month;
}
let datesYearMonth = year + '-' + month
this.getWorkDays(datesYearMonth);
}