cron表达式插件 qnn-react-cron

2023-10-27

/* eslint-disable react/no-unstable-nested-components */
import React from 'react'
import Cron from 'qnn-react-cron'
import { Button } from 'antd'

// 可使用 Cron.Provider 配置国际化语言
// 无需配置语言时,可不使用  Cron.Provider
// Cron.Provider 应该包裹于入口组件以实现全部路由下的组件内部语言都被自定义

export default function (props) {
    const { value = '* * * * * ? *', onCancel, onOk } = props
    let CronRef
    // language 为可选参数, 具体配置如下
    // const language = {
    //     // 面板标题,
    //     // panel title,
    //     paneTitle: {
    //         second: '秒',
    //         minute: '分',
    //         hour: '时',
    //         day: '日',
    //         month: '月',
    //         week: '周',
    //         year: '年',
    //     },

    //     // assign  指定
    //     assign: '指定',
    //     // Don't assign  不指定
    //     donTAssign: '不指定',

    //     // Every minute ...   每一秒钟、每一分钟
    //     everyTime: {
    //         second: '每一秒钟',
    //         minute: '每一分钟',
    //         hour: '每一小时',
    //         day: '每一日',
    //         month: '每一月',
    //         week: '每一周',
    //         year: '每年',
    //     },

    //     // weel option  周选项
    //     week: {
    //         sun: '星期日',
    //         mon: '星期一',
    //         tue: '星期二',
    //         wed: '星期三',
    //         thu: '星期四',
    //         fri: '星期五',
    //         sat: '星期六',
    //     },

    //     // from [a] to [b] [unit], executed once [unit]    a 到 b 每一个时间单位执行一次
    //     aTob: {
    //         second: (AInput, BInput) => (
    //             <span>
    //                 从{AInput}-{BInput}秒,每秒执行一次
    //             </span>
    //         ),
    //         minute: (AInput, BInput) => (
    //             <span>
    //                 从{AInput}-{BInput}分,每分钟执行一次
    //             </span>
    //         ),
    //         hour: (AInput, BInput) => (
    //             <span>
    //                 从{AInput}-{BInput}时,每小时执行一次
    //             </span>
    //         ),
    //         day: (AInput, BInput) => (
    //             <span>
    //                 从{AInput}-{BInput}日,每日执行一次
    //             </span>
    //         ),
    //         month: (AInput, BInput) => (
    //             <span>
    //                 从{AInput}-{BInput}月,每月执行一次
    //             </span>
    //         ),
    //         week: (AInput, BInput) => (
    //             <span>
    //                 从{AInput}-{BInput},每星期执行一次
    //             </span>
    //         ),
    //         year: (AInput, BInput) => (
    //             <span>
    //                 从{AInput}-{BInput}年,每年执行一次
    //             </span>
    //         ),
    //     },

    //     // from [a] [unit] start, every [b] Execute once [unit]   从 a 开始, 每一个时间单位执行一次
    //     aStartTob: {
    //         second: (AInput, BInput) => (
    //             <span>
    //                 从{AInput}秒开始,每{BInput}秒执行一次
    //             </span>
    //         ),
    //         minute: (AInput, BInput) => (
    //             <span>
    //                 从{AInput}分开始,每{BInput}分执行一次
    //             </span>
    //         ),
    //         hour: (AInput, BInput) => (
    //             <span>
    //                 从{AInput}时开始,每{BInput}小时执行一次
    //             </span>
    //         ),
    //         day: (AInput, BInput) => (
    //             <span>
    //                 从{AInput}日开始,每{BInput}日执行一次
    //             </span>
    //         ),
    //         month: (AInput, BInput) => (
    //             <span>
    //                 从{AInput}月开始,每{BInput}月执行一次
    //             </span>
    //         ),

    //         // [n] in the NTH week of this month    本月第 n 周的 星期[n] 执行一次
    //         week: (AInput, BInput) => (
    //             <span>
    //                 本月第{AInput}周的{BInput}执行一次
    //             </span>
    //         ),

    //         // 本月的最后一个 星期[n] 执行一次
    //         week2: AInput => <span>月的最后一个{AInput}执行一次</span>,

    //         year: (AInput, BInput) => (
    //             <span>
    //                 从{AInput}年开始,每{BInput}年执行一次
    //             </span>
    //         ),
    //     },
    // }
    // const localData = useMemo(
    //     () => ({
    //         // Minimum optional year    最小可选择的年份
    //         minYear: new Date().getFullYear(),
    //         // Maximum optional year   最大可选择的年份
    //         maxYear: new Date().getFullYear() + 60,
    //         // language   国际化语言配置
    //         language,
    //     }),
    //     [],
    // )

    const getValue = () => {
        const cronStr = CronRef.getValue()
        onOk(cronStr)
    }
    return (
        // <Cron.Provider value={{language}}>
        <Cron
            value={value}
            // 配置面板的隐藏, false 即隐藏
            // Configuration panel hiding
            panesShow={{
                second: true,
                minute: true,
                hour: true,
                day: true,
                month: true,
                week: true,
                year: true,
            }}
            // 默认显示哪个面板, 默认为 second, 如果隐藏了 second 需要自行设置
            // The default is second. If second is hidden, you need to set it by yourself
            defaultTab="second"
            // 未自定义底部按钮时,用户点击确认按钮后的回调
            // The bottom button is not customized when the user clicks the confirm button after the callback
            // onOk={e => {
            //     console.log('cron:', e)
            // }}
            // ref={CronRef}
            // 相当于 ref
            // equivalent to ref
            getCronFns={fns => {
                // 获取值方法
                // fns.getValue: () => string

                // 解析Cron表达式到UI 调用该方法才可以重新渲染 【一般不使用】(value值改变后组件会自动更新渲染)
                // fns.onParse: () => Promise().then(()=>void).catch(()=>()=>void),
                CronRef = fns
            }}
            // 自定义底部按钮后需要自行调用方法来或者值
            // After customizing the bottom button, you need to call the method or value
            footer={[
                <>
                    {/* 默认值 */}
                    <Button style={{ marginRight: 10 }} onClick={onCancel}>
                        重置
                    </Button>
                    <Button type="primary" onClick={getValue}>
                        生成
                    </Button>
                </>,
            ]}
        />
        //  </Cron.Provider>
    )
}

结合Antd 使用

  <Popover
                                               // visible={cronVisible}
                                                placement="bottomRight"
                                                overlayClassName={styles['cron-pop']}
                                                trigger="click"
                                                // onClick={onPopClick}
                                                content={<Cron value="* * * * * ? *" onOk={okCron} onCancel={cancelCron} />}
                                            >
                                                <Button icon={<SettingOutlined />} />
                                            </Popover>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

cron表达式插件 qnn-react-cron 的相关文章

  • 等待 JavaScript 中 Json 调用完成

    我正在使用下面的json调用在我的 javascript 方法中 function go123 var cityName var temp getJSON https abc in api city callback args functi
  • 从 JavaScript 中 Firebase 数据库的查询结果中获取特定子项的值

    我在 Firebase 上有这个示例数据库 样本数据库 我有一个index html 其中有这两个输入文本 div class login form h2 Login Form h2 div
  • 将数组中的所有值作为参数传递给函数

    我有一个值数组 a b c d 我需要将它们作为参数传递给函数 window myFunction a b c d 如果我可以将数组 对象传递到函数中 那么这会更容易 但这些函数是由其他人编写的或已经存在 我无法更改它们 它们需要作为单独的
  • 在 HTML SELECT 标记中禁用键盘

    我想禁用 HTML SELECT 标记的键盘 以便用户只能使用鼠标来选择选项 我试过了event cancelBubble true on the onkeydown onkeyup and onkeypress没有运气的事件 有任何想法吗
  • 如何使用 JqGrid 子网格进行内联编辑?

    我知道如何使用主网格进行内联编辑 但是有没有办法对子网格进行内联编辑 这是我的 JS 文件 function var lastsel list jqGrid url example php postData q 1 datatype jso
  • javascript获取上周的第一天和最后一天[重复]

    这个问题在这里已经有答案了 我想用 javascript 获取上周的第一天 星期一 和最后一天 星期日 我已经检查过其他主题 但它不起作用 我还需要处理前一周是否是两个不同的月份 我正在使用此代码 但最后一个星期日是 06 03 2014
  • 了解执行模型和事件循环

    我读过很多关于JavaScript单线程执行模型 事件循环和事件队列的文章 但有一件事尚不清楚 我创建了一个小提琴来说明我的问题 http jsfiddle net yzpmf67f http jsfiddle net yzpmf67f
  • 如何使用 jquery 从 iframe 内部滚动?

    我正在使用一个 Shadowbox 它生成一个 iframe 以在页面上显示产品详细信息 由于详细信息页面可能相当长 因此客户端需要一个 更多 按钮来向下滚动页面 显然 iframe 右侧的滚动条还不够 这是我为了让 iframe 滚动而尝
  • JavaScript 中的常用数字

    在我的任务中 我必须编写一个程序来查找数组中最常见的数字以及它重复的次数 我写了一些东西 但只打印最大重复次数 所以我的问题是如何打印这个元素的值 最大数量 在我的例子中是 4 var array 13 4 1 1 4 2 3 4 4 1
  • Backbone-relational 无法实例化两个 RelationalModel 对象

    我正在尝试实现 BackboneRelational 并不断获得 无法实例化多个 Backbone RelationalModel 每种类型都有相同的 ID class App Models User extends Backbone Re
  • 在 NPM 上捆绑并发布客户端 Web 代码

    我制作了一个 JavaScript 文件 假设它的内容是这样的 let myCoolAlert str gt alert str in a different js file SO doesn t allow you to cross fi
  • 避免 AngularJS 部分视图在 IE 中缓存

    我正在开发一个 ASP NET MVC 应用程序 它也有一些 angularJS 我有一个主页 其中有不同的选项卡 当您单击它们时 它们会加载角度部分视图 主页是这样的 div class widget div div class widg
  • 使用 test() 通过正则表达式进行信用卡验证

    我正在尝试完成一些作业 看来这本书可能做错了 我有一个简单的 html 页面 允许用户在我们的例子中选择信用卡 美国运通卡 然后 用户输入一个数字并根据正则表达式评估该数字 我的问题最终是当 test 计算它返回的数字时是布尔值还是字符串
  • 获取键盘事件中的鼠标位置

    我试图在用户按住 Shift 键时出现选择轮 滚轮应以鼠标位置为中心 然而当我测试这个时 pageX and clientX两者在事件对象上都未定义 是否可以通过键盘事件获取鼠标坐标 不 只需跟踪mousemove事件并持续保存当前位置 以
  • 反转二进制网络

    如何反转二元方程 以便找到哪些输入将产生给定的输出 Example Inputs i0 through i8 Outputs o0 through o8 Operators XOR AND 二元方程 1 i0 1 i1 0 i2 1 i3
  • 单击窗口后才检测到 keydown

    在我的 Web 应用程序中 我有一个用于打开菜单的键的事件侦听器 仅当我单击页面上的任意位置后 此功能才可以正常工作 我尝试将焦点添加到窗口加载 但这仍然不会让 keydown 函数运行 直到我单击页面上的某个位置之后 有谁知道这是否可能
  • 用于客户端存储和服务器端同步的javascript库[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个 javascript 库 它可以让我将数据存储在客户端数据库中 并在后台自动将数据库同
  • 在javascript中定义Date.parse的格式[重复]

    这个问题在这里已经有答案了 我正在使用 Date parse 将字符串转换为 JavaScript 中的日期 但是 如果字符串看起来像 10 11 2016 它会被解释为 2016 年 10 月 11 日 我需要将其解释为 2016 年 1
  • 如何逐步绘制矢量路径? (拉斐尔.js)

    如何逐步动画化矢量路径 就像它被绘制一样 换句话说 慢慢地逐像素地显示路径 我在用着Rapha l js but如果您的答案不是特定于库的 例如可能有一些通用的编程模式可以完成此类事情 我对矢量动画相当陌生 欢迎 使用直线路径很容易做到 就
  • 使用 Promise 语法编写同步代码有什么好处吗?

    有同步承诺这样的概念吗 使用 Promise 语法编写同步代码有什么好处吗 try foo bar a b bam catch e handleError e 可以写成类似的东西 但使用同步版本then foo then bar bind

随机推荐

  • MATLAB机器人工具箱使用

    MATLAB机器人工具箱 一 前言 在开始做机器人仿真之前 我了解了一系列机器人仿真软件 包括Matlab Webots Gazebo V rep Adams Simbad Morse等 的适用场景 使用方法等资料 决定从最经典的Matla
  • 程序设计之C语言判断满足条件的三位数

    6 6 判断满足条件的三位数 15 分 本题要求实现一个函数 统计给定区间内的三位数中有两位数字相同的完全平方数 如144 676 的个数 函数接口定义 int search int n 其中传入的参数int n是一个三位数的正整数 最高位
  • 超实用的自动化测试平台推荐

    什么是平台 平台就是一种用来实现某种功能的体系 包括各种不同的元素 架构 流程 标准 机制和工具等 而软件测试平台是为客户打造的集高效率 低成本等特性于一身的软件工作空间 它不仅可以大幅缩短软件产品的测试周期 还可以提升产品品质 同时还能充
  • Centos7安装Mysql

    1 添加Mysql Yum Repository rpm Uvh https dev mysql com get mysql80 community release el7 3 noarch rpm 然后查看Mysql包 yum list
  • 如何在 Java 中将 InputStream 读取/转换为字符串?

    问题描述 如果您有一个 java io InputStream 对象 您应该如何处理该对象并生成一个 String 假设我有一个包含文本数据的 InputStream 并且我想将其转换为 String 例如 我可以将其写入日志文件 获取 I
  • 线上排查问题大全

    CPU 一般来讲我们首先会排查cpu方面的问题 cpu异常往往还是比较好定位的 原因包括业务逻辑问题 死循环 频繁gc以及上下文切换过多 而最常见的往往是业务逻辑 或者框架逻辑 导致的 可以使用jstack来分析对应的堆栈情况 使用jsta
  • Vue 3 状态管理进阶:使用 Pinia 构建可扩展的应用程序

    Vue 3 状态管理进阶 使用 Pinia 构建可扩展的应用程序 前言 1 Pinia 简介 2 安装和配置 Pinia 3 创建和使用 Pinia Store 4 在组件中使用 Pinia Store 5 在模板中使用 Pinia Sto
  • JavaWeb通过前端向Mysql数据库中插入数据问题

    作为入门小白 记录下因为基础不扎实而踩得坑 在写注册界面时 需要利用web界面输入数据 idea操作向数据库插入数据 首先确定了数据库正常 tomcat正常运行 sql语句正常 在idea中测试业务层也能正常向数据库中插入数据 但是在web
  • 构造器注入导致的循环依赖问题及解决方案

    构造器注入导致的循环依赖问题及解决方案 目录 概述 实现思路分析 循环依赖 问题 解决方案 方式二 相关工具如下 分析 小结 参考资料和推荐阅读 LD is tigger forever CG are not brothers foreve
  • [疯狂Java]NIO.2:walkFileTree、FileVisitor(遍历文件/目录)

    1 遍历文件和目录 FileVisitor 1 在旧版本中遍历文件系统只能通过递归的方法来实现 但是这种方法不仅消耗资源大而且效率低 2 NIO 2的Files工具类提供了一个静态工具方法walkFileTree来高效并优雅地遍历文件系统
  • 七十五.二分查找的递归实现 —— JAVA

    编写递归代码是最重要的有以下三点 递归总有一个最简单的情况 方法的第一条语句总是一个包含 return的条件语句 递归调用总是尝试解决一个规模更小的子问题 这样递归才能收敛到最简单的情况 递归调用的父问题和尝试解决的子问题之间不应该有交集
  • 伪代码书写规范

    伪代码 Pseudocode 是一种算法描述语言 使用伪代码的目的是为了使被描述的算法可以容易地以任何一种编程语言 Pascal C Java etc 实现 因此 伪代码必须结构清晰 代码简单 可读性好 并且类似自然语言 介于自然语言与编程
  • matlab lpc求共振峰频率,用Python中的LPC估计共振峰

    我对信号处理还不太熟悉 关于这一点 numpy scipy和matlab 我试着用Python中的LPC来估计元音共振峰 方法是修改下面的matlab代码 这是我目前的代码 usr bin env python import sys imp
  • vs+opencv环境配置出现程序无法启动及提示无法打开opencv_world400d.lib问题的解决方法

    vs opencv 1配置完成但是频频出错 1问题描述 无法启动程序 系统找不到指定的文件 我的原图忘记保存 故找了一张类似问题的图片做代替描述问题 在出现上述问题之后 点击确定后 程序报错 错误如下图 2解决方法 我已按照网上教程配置环境
  • springboot多数据源配置并解决多数据源下出现Cannot determine embedded database driver class for database type NONE的问题

    被多数据源折腾晕了 为了让自己记住写下这篇博客 第一步 配置 application properties server port 8081 server session timeout 1000000 server context pat
  • Web前端——用CSS的常用样式制作一个炫酷的按钮

    文章目录 笔记 CSS的常用样式 炫酷按钮效果实现 笔记 CSS的常用样式 边框以及弧度样式 border width 边框的线条宽度 border style 边框的样式 例如 solid实现 dotted 点线 dashed 虚线 bo
  • @Async 异步调用

    package com example demo controller import com example demo service AsyncService import org springframework http Respons
  • c:\Windows\System32\drivers\etc\hosts

    c Windows System32 drivers etc hosts 是域名解析文件 可以直接用记事本打开 将IP地址重定向 格式为 ip地址 空格 域名 可以将一个域名重新定向到一个IP Hosts文件配置的映射是静态的 如果网络上的
  • NVIDIA GPU驱动和CUDA工具包 Linux CentOS 7 在线安装指南

    挑选指定系统和对应的GPU型号下载驱动和CUDA工具包 Linux CentOS安装NVIDIA GPU驱动程序和NVIDIA CUDA工具包 centos安装显卡驱动和cuda Entropy Go的博客 CSDN博客 相比之下 本文是在
  • cron表达式插件 qnn-react-cron

    eslint disable react no unstable nested components import React from react import Cron from qnn react cron import Button