当前位置: 首页 > news >正文

element-plus限制日期可选范围(这里以7天为例)

element-plus日期范围限制功能实现逻辑

1. 需求:通过限制时间的可选范围减少请求的数据量
2. 实现效果:

日期选择器做限制

3. 代码逻辑:

思路:通过calendar-change获取开始日期,然后通过disabled-date禁用不满足条件的日期

<el-date-pickerv-model="value"type="daterange":disabled-date="disabledDate"@calendar-change="handleCalendarChange"range-separator="至"start-placeholder="开始日期"end-placeholder="结束日期" />
  • type="daterange":指定为日期范围选择器
  • :disabled-date="disabledDate":绑定日期禁用逻辑
  • @calendar-change="handleCalendarChange":监听日历变化事件

方法一:

function disabledDate(date: Date): boolean {if (startDateLimit.value) {const timeDiff = date.getTime() - startDateLimit.value.getTime()const maxTime = maxDays * 24 * 60 * 60 * 1000 // 转换为毫秒return timeDiff > maxTime || date < startDateLimit.value}return false
}

功能说明:

  • 当用户已经选择了开始日期(startDateLimit.value存在)时:

    1、计算当前日期与开始日期的时间差(timeDiff)

    2、计算最大允许的时间差(maxTime),这里是7天的毫秒数

    3、返回 true(禁用该日期)如果:

     时间差大于最大允许值(日期在开始日期7天之后)日期早于开始日期(确保结束日期不会早于开始日期)
    
  • 当用户尚未选择开始日期时,返回 false(不禁用任何日期)

方法二:

function handleCalendarChange(dates: Date[]) {if (dates && dates[0]) {startDateLimit.value = new Date(dates[0])} else {startDateLimit.value = null}
}

功能说明:

  • 当用户选择日期时,接收日期数组作为参数
  • 如果日期数组存在且有第一个元素(开始日期):
    更新 startDateLimit.value 为选中的开始日期
  • 如果日期数组为空(用户清空选择):
    重置 startDateLimit.value 为 null

相关文章:

  • 浅谈Apache HttpClient的相关配置和使用
  • 重生之拿着标准当令箭---[常见国内外设计标准有哪些]
  • 从0开始学习计算机视觉--Day04--损失函数
  • 【Linux指南】压缩、网络传输与系统工具
  • LinuxBridge的作用与发展历程:从基础桥接到云原生网络基石
  • 嵌入式项目:基于QT与Hi3861的物联网智能大棚集成控制系统
  • pandas---使用教程
  • docker小白自存-windows系统通过docker安装n8n-nodes-puppeteer
  • 基于GPS-RTK的履带吊车跑偏检测技术方案
  • Python网络自动化API接口统一库之napalm使用详解
  • Python打卡:Day38
  • 利用云雾自动化在智能无人水面航行器中实现自主碰撞检测和分类
  • redis配置文件-redis.conf
  • 【Docker】解决:构建(docker build)或重新运行容器时,丢失apt-get update问题
  • 【Docker基础】Docker容器管理:docker ps及其参数详解
  • HexHub开发运维利器Database, Docker, SSH, SFTP
  • 数据库外连接详解:方式、差异与关键注意事项
  • 基于fpga的串口控制的音乐播放器
  • Franka 机器人在配置空间距离场实验中的突破性应用:从算法优化到动态场景适配
  • Stable Diffusion 3终极提示词库:2000个工业设计场景生成公式(2025企业级实战指南)