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 调用获取的日期列表存储在 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中

​ 6、排序返回

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/426855.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高端论坛报告分享 | 李维森:中国地理信息产业发展报告(2024)

本报告为中国地理信息产业协会会长李维森在“2024中国地理信息产业大会”所作报告《中国地理信息产业发展报告&#xff08;2024&#xff09;》。转载请注明来源于中国地理信息产业协会。 本报告为中国地理信息产业协会会长李维森在“2024中国地理信息产业大会”所作报告《中国地…

Linux系统应用之知识补充——OpenEuler(欧拉)的安装和基础配置

前言 这篇文章将会对OpenEuler的安装进行详解&#xff0c;一步一步跟着走下去就可以成功 注意 &#xff1a;以下的指令操作最好在root权限下进行&#xff08;即su - root&#xff09; ☀️工贵其久&#xff0c;业贵其专&#xff01; 1、OpenEuler的安装 这里我不过多介绍&a…

GPT-4-Turbo 和 Claude-3.5-Sonnet 图片识别出答题的是否正确 进行比较

1、比较的图片&#xff1a; 使用GPT-4-Turbo 输入的 提问&#xff1a; 识别图片中的印刷字和手写字&#xff0c;如果写错的给一个正确答案 图片 回复&#xff1a; 在图片中&#xff0c;印刷字显示的是一系列的英语填空练习题&#xff0c;而手写字则是填入空白处的答案。以…

运行容器应用

kubernetes通过各种controller来管理pod的生命周期&#xff0c;为了满足不同的业务场景&#xff0c;kubernetes开发了Deployment&#xff0c;ReplicaSet&#xff0c;DaemonSet&#xff0c;StatefulSet&#xff0c;Job等多种ControllerDeployment&#xff1a; kubectl run nginx…

WebSocket 协议

原文地址&#xff1a;xupengboo WebSocket WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。 在 WebSocket API 中&#xff0c;浏览器和服务器只需要完成一次握手&#xff0c;两者之间就直接可以创建持久性的连接&#xff0c;并进行双向数据传输。…

MYSQL出现“mysql不是内部或外部命令,也不是可运行的程序”

目录 1.配置环境变量 2.重新打开cmd测试 1.配置环境变量 进入mysql目录下的bin文件夹 复制目录 我们按下win&#xff0c;然后搜索“环境” 粘贴刚刚复制的目录 2.重新打开cmd测试 可以看到此时mysql正常

基于web的工作管理系统设计与实现

博主介绍&#xff1a;专注于Java vue .net php phython 小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设&#xff0c;从业十五余年开发设计教学工作 ☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下次找不到哟 我的博客空间发布了1000毕设题目 方便大家学习使用 感兴趣的…

【Redis】Redis 典型应用 - 分布式锁原理与实现

目录 Redis 典型应⽤ - 分布式锁什么是分布式锁分布式锁的基础实现引⼊过期时间引⼊校验 id引⼊ lua引⼊ watch dog (看⻔狗)引⼊ Redlock 算法其他功能 Redis 典型应⽤ - 分布式锁 什么是分布式锁 在⼀个分布式的系统中&#xff0c; 也会涉及到多个节点访问同⼀个公共资源的…

飞书项目管理使用攻略

文章目录 项目管理项目管理的方法和工具项目管理方法&#xff1a;项目管理工具 飞书项目管理平台 创建空间需求管理缺陷管理人员排期飞书也可以创建敏捷开发管理.删除空间 参考文章 项目管理 项目管理是指在项目活动中运用专门的知识、技能、工具和方法&#xff0c;使项目能够…

Java面试篇基础部分-Java线程生命周期

线程的生命周期分别为 新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)和死亡(Dead)这五种状态。   在系统运行过程中有线程不断地被创建,而旧的线程在执行完毕之后被清理,线程通过排队的方式获取共享资源或者锁的时候被阻塞,所以运行中的线程就会在…

如何让大模型更好地进行场景落地?

自ChatGPT模型问世后&#xff0c;在全球范围内掀起了AI新浪潮。 有很多企业和高校也随之开源了一些效果优异的大模型&#xff0c;例如&#xff1a;Qwen系列模型、MiniCPM序列模型、Yi系列模型、ChatGLM系列模型、Llama系列模型、Baichuan系列模型、Deepseek系列模型、Moss模型…

【数据结构】排序算法---快速排序

文章目录 1. 定义2. 算法步骤3. 动图演示4. 性质5. 递归版本代码实现5.1 hoare版本5.2 挖坑法5.3 lomuto前后指针 6. 优化7. 非递归版本代码实现结语 1. 定义 快速排序是由东尼霍尔所发展的一种排序算法。在平均状况下&#xff0c;排序 n 个项目要 O ( n l o g n ) Ο(nlogn) …

记录word转xml文件踩坑

word文件另存为xml文件后&#xff0c;xml文件乱码 解决方法&#xff1a; 1.用word打开.docx文件 2.另存为xml文件 3.点击工具 -> Web选项 -> 编码&#xff0c;选择UTF-8 4.点击确定 5.使用notpad打开xml文件 6.使用xml tool进行xml格式化即可。

【逐行注释】自适应Q和R的AUKF(自适应无迹卡尔曼滤波),附下载链接

文章目录 自适应Q的KF逐行注释的说明运行结果部分代码各模块解释 自适应Q的KF 自适应无迹卡尔曼滤波&#xff08;Adaptive Unscented Kalman Filter&#xff0c;AUKF&#xff09;是一种用于状态估计的滤波算法。它是基于无迹卡尔曼滤波&#xff08;Unscented Kalman Filter&am…

VMware vCenter Server 8.0U3b 发布下载,新增功能概览

VMware vCenter Server 8.0U3b 发布下载&#xff0c;新增功能概览 Server Management Software | vCenter 请访问原文链接&#xff1a;https://sysin.org/blog/vmware-vcenter-8-u3/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sysi…

无人机之控制距离篇

无人机的控制距离是一个复杂且多变的概念&#xff0c;它受到多种因素的共同影响。以下是对无人机控制距离及其影响因素的详细分析&#xff1a; 一、无人机控制距离的定义 无人机控制距离指的是遥控器和接收机之间的最远传输距离。这个距离决定了无人机在操作者控制下能够飞行的…

51单片机-直流电机(PWM:脉冲宽度调制)实验-会呼吸的灯直流电机调速

作者&#xff1a;Whappy&#xff08;菜的扣脚&#xff09; 脉冲宽度调制&#xff08;Pulse Width Modulation&#xff0c;PWM&#xff09;是一种通过调节信号的占空比来控制功率输出的技术。它主要通过改变脉冲信号的高电平持续时间相对于低电平的时间来调节功率传递给负载的量…

影刀RPA实战:网页爬虫之携程酒店数据

1.实战目标 大家对于携程并不陌生&#xff0c;我们出行定机票&#xff0c;住酒店&#xff0c;去旅游胜地游玩&#xff0c;都离不开这样一个综合性的网站为我们提供信息&#xff0c;同时&#xff0c;如果你也是做旅游的公司&#xff0c;那携程就是一个业界竞争对手&#xff0c;…

git 生成和查看密钥

项目场景&#xff1a; 在前端项目开发中&#xff0c;经常会用到git。一般的小公司很少去设置git令牌或者密钥&#xff1b;而在一些大公司&#xff0c;会用到这个。今天主要整理下git如何生成和查看密钥。 密钥 1、生成密钥 cat ~/.ssh/id_rsa.pub 2、查看密钥 ssh-keygen…

Istio下载及安装

Istio 是一个开源的服务网格&#xff0c;用于连接、管理和保护微服务。以下是下载并安装 Istio 的步骤。 官网文档&#xff1a;https://istio.io/latest/zh/docs/setup/getting-started/ 下载 Istio 前往Istio 发布页面下载适用于您的操作系统的安装文件&#xff0c;或者自动…