DatePicker日期选择框切换月份、年份时添加监听函数

实现方式:通过添加addEventListener('DOMCharacterDataModified',() =>{})监听来实现。

功能需求:切换月份时需要调用接口来获取该月禁用日期。

1.dom节点

 <a-date-picker 
    v-model:value="date"
    @openChange="datePanelChange"
    :disabled-date="disabledDate" 
    format="YYYY-MM-DD" 
    valueFormat="YYYY-MM-DD"/>

2.js部分主要代码

setup(){
  date = ref(null)
  disabledDates = ref([])
  // 禁用时间设置
  function disabledDate(current) {
    return disabledDates.includes(moment(current).format("YYYY-MM-DD"))
  };
  // 日期面板展开/关闭
  function datePanelChange(isShow){
    if(isShow){
      setTimeout(() => {
        const dateDom = document.querySelector('.ant-calendar-ym-select')
        dateDom.addEventListener('DOMCharacterDataModified', () => {
        const year = document.querySelector('.ant-calendar-year-        
          select').innerText.replace('年', '')
        let month = document.querySelector('.ant-calendar-month- 
          select').innerText.replace('月', '')
        month = month < 10 ? '0' + month : month
        const date_after = moment(year + '-' +month).startOf("month").format("YYYY-MM-DD")
        const date_before = moment(year + '-' +month).endOf("month").format("YYYY-MM-DD")
        ajax.getNodate().then(res =>{
          disabledDates = [].concat(res)})
       })
      }, 0)
    }
   }
    return {
      datePanelChange,
      disabledDates,
      disabledDate
      date,
    }
}

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值