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

element-ui 日期选择器设置禁用日期

element-ui 日期选择器设置禁用日期

效果图如下:

2024-09-01 到2024-09-18之间的日期都不可选

在这里插入图片描述
2024-01-01之前的日期都不可选
在这里插入图片描述

官方文档中 picker-options 相关的介绍

在这里插入图片描述

实现功能:

​ 某仓库有限制最大可放置资产数量,且资产出借和存放都有记录。由于线下仓库资产出借和购入记录都由人为记录,之后再将记录录入到系统中,为防止人为出现误差导致不能及时将信息录入系统或录入信息出错,需要实现以下控制:

仓库没有空位放置资产时,不可向仓库新增资产;资产进出有先后顺序,仓库没有余位防止资产时,需要保证先出后进。

思路:

​ 1、获取某一仓库的未出借的所有资产记录,计算这些记录覆盖的所有日期,并统计每个日期对应的资产数量

​ 2、找出资产数量达到仓库最大容量的日期,按照排序返回给前端。

​ 3、前端获取到数据后存储起来(如数组),检查当前日期是否在仓库已满的日期列表中,如果是则禁用该日期

​ 4、额外考虑是否需要该条件:仓库创建之前资产无法存放,是否有必要禁用

详细步骤:

1、定义日期选择器,在picker标签中,指定 picker-options 对应 data 中校验的变量,pickerOptions 是一个对象,其中包含 disabledDate 属性用于确定哪些日期应该被禁用。

        <el-form-item label="购买日期" prop="startDate"><el-date-pickerclearablev-model="form.buyDate"type="date"value-format="yyyy-MM-dd"placeholder="请选择资产购入日期":picker-options="pickerOptions"></el-date-picker></el-form-item>

2、将日期校验对象disabledDate属性,指定具体判断方法,并返回

time 参数代表当前可能要禁用的日期,将其转换成 YYYY-MM-DD 格式,并检查这个字符串是否在 dormitoryIsFullList 数组中。如果在,则该日期会被禁用。

  data() {return {pickerOptions: {disabledDate: (time) => {const creationTimeDate = new Date(this.dormitoriesDetails.creationTime);const dateString = `${time.getFullYear()}-${String(time.getMonth() + 1).padStart(2, '0')}-${String(time.getDate()).padStart(2, '0')}`;return this.dormitoryIsFullList.includes(dateString) || time < creationTimeDate;}},dormitoryIsFullList: [],};},                                                                                          

3、method中,完善日期处理判断逻辑

​ 将 API 调用获取de日期列表存储在 dormitoryIsFullList

method:{dormitoryIsFull() {dormitoryIsFull(this.dorId).then((res) => {// 假设 res.data 是一个 Date 对象的数组this.dormitoryIsFullList = res || [];}).catch(error => {console.error('日期获取失败', error);});},
}

总结:首先,通过 dormitoryIsFull 方法获取一些日期,并将它们存储在 dormitoryIsFullList 中。当用户试图选择一个日期时,pickerOptions.disabledDate 回调,会检查这个日期是否在 dormitoryIsFullList 中,如果是的话,这个日期就会被禁用,用户不能选择。这样可以防止用户选择那些已经被标记为不可用的日期。

后端日期获取步骤:

​ 获取数据库记录的所有日期,计算这些日期记录覆盖的所有日期,并统计每个日期对应的资产数量,按照日期排序返回给前端。

​ 1、查询所有资产的存入和出借时间

​ 2、根据资产唯一标识分组,并获取到存入和出借之间的日期合成一个嵌套列表

​ 3、对每个日期进行分组统计,查看每天有多少存借记录

​ 4、查询仓库最多可用位置

​ 5、统计计数,将资产存入记录 >= 仓库最多可用位置的日期添加到要返回给前端的List中

3、对每个日期进行分组统计,查看每天有多少存借记录

​ 4、查询仓库最多可用位置

​ 5、统计计数,将资产存入记录 >= 仓库最多可用位置的日期添加到要返回给前端的List中

​ 6、排序返回


http://www.mrgr.cn/news/29520.html

相关文章:

  • 光伏数字化全面开启,光伏的未来该何去何从?
  • 7.4、实验四:RIPv2 认证和触发式更新
  • VScode下脚本被禁止运行的原因及解决方案
  • 如何使用Django写个接口,然后postman中调用
  • 内网安全-代理技术-socket协议
  • zookeeper之节点基本操作
  • Games101图形学笔记——着色
  • day22JS-对象静态方法
  • 如何编写可维护的代码:最佳实践与技巧
  • 克隆centos网卡uuid相同如何修改
  • 进程的重要函数
  • 基于树表的查找
  • 网络封装分用
  • OpenHarmony(鸿蒙南向开发)——标准系统方案之瑞芯微RK3568移植案例(下)
  • 伪工厂模式制造敌人
  • 喜报!亲笔签数字科技荣获2024年“数据要素X”大赛重庆分赛三等奖
  • 构建 LLM 应用程序时经常遇到的高级概念的快速指南
  • 3.postman脚本语言、接口关联(json引用(变量)、脚本用正则表达式)、断言封装、自动化构造接口请求(Postman工具)
  • 直播开播极速流,如何有效接入?
  • 基于Spring Boot的学生社区故障维修预约系统的设计与实现(开题报告)
  • C++面试模拟01
  • C++:日期类的实现
  • YOLOv8改进:SA注意力机制【注意力系列篇】(附详细的修改步骤,以及代码,与其他一些注意力机制相比,不仅准确度更高,而且模型更加轻量化。)
  • 隐藏excel单元格数据的两个方法
  • 【d2l安装超详细老妈子教程】
  • 史上最强异步编程~CompletableFuture精读