前端实现一个时间区间内,再次单选功能,使用Antd组件库内日历组件Calendar

需求:需要先让用户选择一个时间区间,然后再这个时间区间中,让用户再次去单选其种特殊日期。

思路:

1.先用Antd组件库中日期选择DatePicker.RangePicker实现让用户选择时间区间
2.在选择完时间区间后,用这个时间区间,弹出一个在这个时间区间范围内的日历组件Calendar
3.通过Calendar组件(日历)的onSelect(点击事件)获得点击value,然后通过dateCellRender(自定义渲染日期单元格)将选中的时间给用户颜色提示
4.最后将日期选择,还有区间内时间传给后端

第一步:先用Antd组件库中日期选择DatePicker.RangePicker实现让用户选择时间区间

页面:  

代码: 

<RangePickerdefaultValue={[moment(archiveStartTime, 'YYYY-MM-DD'), moment(archiveEndTime, 'YYYY-MM-DD')]}onChange={this.archiveTime}format={'YYYY-MM-DD'}
/>
  archiveTime = async (date: any, dateString: any) => {  //日期改变//这时候  先弹框,并且暂存时间区间this.setState({restVis: true, //弹框dateString, //暂存时间区间})}

第二步,第三步

2.在选择完时间区间后,用这个时间区间,弹出一个在这个时间区间范围内的日历组件Calendar

3.通过Calendar组件(日历)的onSelect(点击事件)获得点击value,然后通过dateCellRender(自定义渲染日期单元格)将选中的时间给用户颜色提示

刚弹出:选中后:

弹框中装入一个日历组件 
<Modaltitle="选择休息日"visible={restVis} //显示onOk={this.restHandleOk} //确定onCancel={this.restHandleCancel}  //取消
><CalendarclassName={styles.backgrand}  //改变默认选中蓝色的样式  不然每次点击颜色变化会影响用户选中判断fullscreen={false}  //不显示大日历onSelect={this.onSelect}  //点击时间dateCellRender={this.dateCellRender}  //日期渲染validRange={[moment(archiveStartTime), moment(archiveEndTime)]}  //可选时间区间,这边取上面日期选择组件的值/>
</Modal>

 上面日历组件中用global改变组件样式

.backgrand {:global {.ant-fullcalendar-selected-day .ant-fullcalendar-value,.ant-fullcalendar-month-panel-selected-cell .ant-fullcalendar-value {background-color: #fff !important;color: #595959;}}
}

日历组件两个事件

onSelect = (date: any) => { // 点击选择日期回调const { restDay } = this.state; //选中值集合let vis = true  //判断这个值是否选中if (restDay && Array.isArray(restDay)) {restDay.map((item: any) => {if (item == moment(date).format('YYYY-MM-DD')) {vis = false}})if (vis) { restDay.push(moment(date).format('YYYY-MM-DD')) } //如果未选中  增加这个选中值if (!vis) { restDay.splice(restDay.indexOf(moment(date).format('YYYY-MM-DD')), 1) }//如果已选中  删除这个选中值}this.setState({ restDay })
}
dateCellRender = (val: any) => { //自定义渲染日期单元格,返回内容会被追加到单元格const { restDay } = this.state; //选中值集合if (restDay && Array.isArray(restDay) && restDay.length > 0 && restDay.indexOf(moment(val).format('YYYY-MM-DD')) > -1) {return <div style={{ position: 'relative' }}><div style={{ //这边这个样式如果不处理,默认是在每个时间的下方color: 'red', backgroundColor: 'green',width: 25, height: 23, opacity: 0.4,position: 'absolute', left: 20, bottom: 18,}}></div></div>}
}
最终Modal弹框打开关闭事件,其中restDay,dateString就是最终用户一套花里胡哨操作后,我们最终需要得到两个参数
restHandleOk = async () => {const { dateString, restDay } = this.stateawait this.updateState({archiveStartTime: dateString[0],archiveEndTime: dateString[1],});console.log('此时单独选中:', restDay)console.log('此时时间区间:', dateString)this.restHandleCancel()
}
restHandleCancel = () => {this.setState({ restVis: false })
}

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

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

相关文章

从零开始 --- 创建vue项目

1、Vue脚手架创建项目 vue create home_vue 我选择了vue3 2、引入element-plus npm i element-plus vue2 对应 npm i element-ui main.js中 import { createApp } from vue import App from ./App.vue import ElementPlus from element-plus import element-plus/theme-…

Spring框架知识总结

目录 1、Spring框架有哪些设计模式&#xff1f; 2、介绍一下Spring框架和SpringBoot框架&#xff1f; 3、介绍一下SpringBoot具有哪些功能模块&#xff1f; 4、Spring用到了什么组件&#xff1f; 5、什么是IoC? 什么是AOP&#xff1f; 6、SpringBoot运行原理&#xff1…

鸿蒙HarmonyOS开发用什么语言

1.网上流行一句有中国底蕴的话&#xff1a;鸿蒙系统方舟框架盘古大模型。都方舟框架了肯定主推的是ArkUI框架。其实还能使用C、Java和Js开发。 2.从API8开始&#xff0c;Java语言已经从鸿蒙开发剔除了&#xff0c;而官方推荐的是ArkTs.下图是ArkTS与TS、JS的关系。 ArkTs 是TS的…

BFS:八数码问题求解

八数码原题 剖析一下BFS BFS算法是一种图遍历算法&#xff0c;它从起点开始&#xff0c;逐层扩展搜索范围&#xff0c;直到找到目标节点为止。 BFS算法一般选择队列作为节点存储的数据结构&#xff0c;我们将搜索目标节点的问题抽象为寻找目标状态&#xff0c;那么队列…

Vue3 reative回显问题

1. reactive 在做项目的时候通常会遇到这种情况&#xff0c;比如我们有一个 Table 显示数据&#xff0c;添加 Table 数据的时候使用 dialog 弹出&#xff0c;在里面填写字段然后添加。 在 vue3 中&#xff0c;对于对象的响应式定义推荐使用 reactive &#xff0c;那么可以写入…

运筹学经典问题(二):最短路问题

问题描述 给定一个图&#xff08;有向图或无向图&#xff09; G ( V , E ) G (V, E) G(V,E)&#xff0c; V V V是图中点的集合&#xff0c; E E E是图中边的集合&#xff0c;图中每条边 ( i , j ) ∈ E (i, j) \in E (i,j)∈E都对应一个权重 c i j c_{ij} cij​&#xff08;…

Android取消深色适配

从Android10&#xff08;API 29&#xff09;开始&#xff0c;在原有的主题适配的基础上&#xff0c;Google开始提供了Force Dark机制&#xff0c;在系统底层直接对颜色和图片进行转换处理&#xff0c;原生支持深色模式。当系统设置深色主题背景或者进入省电模式情况下会进入深色…

2023年烟花爆竹经营单位主要负责人证模拟考试题库及烟花爆竹经营单位主要负责人理论考试试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2023年烟花爆竹经营单位主要负责人证模拟考试题库及烟花爆竹经营单位主要负责人理论考试试题是由安全生产模拟考试一点通提供&#xff0c;烟花爆竹经营单位主要负责人证模拟考试题库是根据烟花爆竹经营单位主要负责人…

RGB颜色表示法(RGBA解释) 以及常见的色调

RGB&#xff1a;代表red&#xff0c;green&#xff0c;blue。即用这三个色调表示所有颜色。 表示方式如&#xff1a;&#xff08;255,255,255&#xff09;白色、&#xff08;0,0,0&#xff09;黑色 改变三个不同的数值可以得到不同的颜色&#xff0c;数值取值范围为0-255&#…

设计模式——模板方法模式

引言 模板方法模式是一种行为设计模式&#xff0c; 它在超类中定义了一个算法的框架&#xff0c; 允许子类在不修改结构的情况下重写算法的特定步骤。 问题 假如你正在开发一款分析公司文档的数据挖掘程序。 用户需要向程序输入各种格式 &#xff08;PDF、 DOC 或 CSV&#…

Ubuntu 常用命令之 cp 命令用法介绍

cp命令在Ubuntu系统中用于复制文件或目录。它的基本格式是cp [选项] 源文件或目录 目标文件或目录。 以下是一些常用的cp命令选项 -i&#xff1a;在覆盖目标文件之前将给出提示。-r或-R&#xff1a;递归复制&#xff0c;用于目录的复制操作。-v&#xff1a;详细模式&#xff…

2023-12-12 AIGC-AI工具的基本工作原理

摘要: 2023-12-12 AIGC-AI工具的基本工作原理 AI工具的基本工作原理 AI工具的基本工作原理涉及到一系列复杂的技术和算法。这些原理可以根据不同类型的AI工具进行概括&#xff0c;包括机器学习、自然语言处理、图像识别等。以下是一些关键的AI工具及其工作原理的概述&#xff…

对于实例控制,枚举类型优先于readResolve

实例控制是指控制类实例的创建和使用过程&#xff0c;而 readResolve 方法是 Serializable 接口中的一个特殊方法&#xff0c;用于在反序列化时控制对象的实例。在一些情况下&#xff0c;使用枚举类型可以更优雅地实现实例控制&#xff0c;而不需要依赖 readResolve 方法。 下…

网络基础(十二):ACL与NAT

目录 一、ACL 1、ACL的概述 2、ACL的分类 3、ACL的应用 4、ACL的组成和基本原理 ​编辑 5、ACL的配置 5.1配置基本ACL 5.2配置高级ACL 二、NAT 1、NAT的概述 2、NAT的分类 3、NAT的工作原理 4、静态NAT的配置 5、动态NAT的配置 6、NAPT&#xff08;端口映射&am…

查询某个类是在哪个JAR的什么版本开始出现的方法

背景 我们在依赖第三方JAR时&#xff0c;同时也会间接的依赖第三方JAR引用的依赖&#xff0c;而当我们项目中某个依赖的版本与第三方JAR依赖的版本不一致时&#xff0c;可能会导致第三方JAR的在运行时无法找到某些方法或类&#xff0c;从而无法正常使用。 如我正在开发的一个…

流程引擎相关资料

最近调研流程引擎相关知识&#xff0c;BPMN规范和流程引擎相关知识无法避开&#xff0c;以及市面上比较多的流程引擎产品。 BPMN2.0 基本形状 流对象&#xff08;Flow Objects&#xff09;&#xff0c;流对象是定义业务流程的主要图形元素。它进一步细分为三个类别&#xff0…

[SUCTF 2018]MultiSQL MYSQL 预处理写

首先这道题需要预处理写马 之前在ctfshow中学习过预处理 我们来看看 CTFSHOW -SQL 注入-CSDN博客 首先我们开始判断是否存在注入 2^(if(10,1,0))2^(if(ascii(mid(user(),1,1))>0,0,1))判断出存在sql注入 然后我们开始fuzz 发现 select &#xff0c;union 都没了 但是…

Mistral MOE架构全面解析

从代码角度理解Mistral架构 Mistral架构全面解析前言Mistral 架构分析分词网络主干MixtralDecoderLayerAttentionMOEMLP 下游任务因果推理文本分类 Mistral架构全面解析 前言 Mixtral-8x7B 大型语言模型 (LLM) 是一种预训练的生成式稀疏专家混合模型。在大多数基准测试中&…

探索顺序表:数据结构中的秩序之美(c语言实现常见功能接口)

在我们的数据结构探索中&#xff0c;我们已经探讨时间复杂度、空间复杂度。大家可以移步到我的上篇文章&#xff1a; 打开数据结构大门&#xff1a;深入理解时间与空间复杂度 今天&#xff0c;我们将深入研究另一个重要的主题——顺序表 全部的源代码大家可以去我github主页…

web服务器之——www服务器的基本配置

目录 一、www简介 1、什么是www 2、www所用的协议 3、WEB服务器 4、主要数据 5、浏览器 二、 网址及HTTP简介 1、HTTP协议请求的工作流程 三、www服务器的类型(静态网站&#xff08;HTML&#xff09;&#xff0c; 动态网站(jsp python,php,perl)) 1、 仅提供…