当前位置: 首页 > 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
http://www.lqws.cn/news/542413.html

相关文章:

  • Unity 脚本自动添加头部注释
  • Qwen VLo :一个多模态统一理解与生成模型
  • 在shell中直接调用使用R
  • 【容器】容器平台初探 - k8s整体架构
  • RJ45 以太网与 5G 的原理解析及区别
  • swagger访问不了的解决方案 http://localhost:8080/swagger-ui/index.html
  • 可编辑37页PPT | 数字化转型咨询规划方案
  • Mysql Mybatis批量插入和批量更新数据
  • 设计模式 | 适配器模式
  • LaTeX下载与实践入门指南
  • 在 Dev Container 中实现 GUI 开发的解决方案
  • 报表控件stimulsoft教程:在报表、仪表板和 PDF 表单自动生成缩略图
  • SQL Server 中 GO 的作用
  • mPaaS 客户端诊断概述
  • CSS3实现同心圆效果
  • Go 语言中的 package 和 go modules
  • (二)YOLOV12部署训练
  • 人工智能-基础篇-1-人工智能介绍(发展史,技术体系,技术基础,主要领域,前景和挑战)
  • macOS,切换 space 失效,向右切换space(move right a space) 失效
  • Django导入错误:`from django.conf.urls import url` 的终极解决方案
  • 【机器学习深度学习】线性回归(基本模型训练流程)
  • 【AS32系列MCU调试教程】SPI调试的常见问题解析
  • 【AI助手】释放双手,基于Cursor Agent与Playwright MCP的浏览器自动化实战
  • Windows家庭版安装docker
  • 【Pandas】pandas DataFrame last_valid_index
  • 校企协同育人,智慧养老实训基地助力人才就业无忧
  • 【中文核心期刊推荐】《计算机工程与科学 》
  • MST56XXB/MST5650B/MST5033B 是一款耐高压的LDO芯片,针对中控设备,给MCU供电,60V的耐压,150mA
  • elastic-ai.creator开源程序是设计、训练和生成专门针对 FPGA 优化的神经网络
  • react-sequence-diagram时序图组件