# qnn-react-cron **Repository Path**: xm124/qnn-react-cron ## Basic Information - **Project Name**: qnn-react-cron - **Description**: 基于react和antd开发的cron表达式生成组件 React and ANTD based cron expression generation components - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2022-01-07 - **Last Updated**: 2025-01-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: cron, Ant-Design, react-cron, qnn-react-cron ## README # qnn-react-cron [![npm](https://img.shields.io/npm/v/qnn-react-cron.svg)](https://www.npmjs.com/package/qnn-react-cron) [![npm](https://img.shields.io/npm/dm/qnn-react-cron.svg?style=flat)](https://www.npmjs.com/package/qnn-react-cron) > 使用中遇到问题欢迎提 issues > 如果组件对你有帮助的话,请使用你那个发财的小手帮我点个星星吧!
基于React及Antd的cron时间表达式生成器

效果图 效果图
### 声明 该组件改编自 react-cron-antd
改编原因:作者长时间未更新组件 导致组件无法正常引用,除了修复了不能组件不能使用的问题外,
在原基础增加:getCronFns、footer、国际化等功能使组件更加灵活强大,修改 value 值传入后或者更新后自动重新渲染 ### 特性 - 🎉 全面支持 cron:秒、分、时、日、月、周、年 - 🎉 日及周条件互斥,自动改变响应值 - 🎉 支持反解析 cron 表达式到 UI - 🎉 可结合此组件与 Antd 的下拉及输入组件封装成下拉输入框 - 🎉 国际化支持 - 🎉 TypeScript 支持 ## 交流群 QQ 交流群: 854445223 ### 安装 // yarn 安装 yarn add qnn-react-cron // npm 安装 npm i qnn-react-cron ### 对 antd 版本的支持 请自行根据自己项目中使用的的 antd 版本安装对应的 qnn-react-cron 版本 qnn-react-cron 1.x 版本使用 antd 4.x qnn-react-cron 2.x 版本使用 antd 5.x ### 预览地址 codesandbox 点击直达 ### 使用 ```jsx import React from "react"; import Cron from "qnn-react-cron"; // 可使用 Cron.Provider 配置国际化语言 // 无需配置语言时,可不使用 Cron.Provider // Cron.Provider 应该包裹于入口组件以实现全部路由下的组件内部语言都被自定义 export default ()=>{ const cronFnsRef = useRef(); // 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) => ( 从{AInput}-{BInput}秒,每秒执行一次 ), minute: (AInput, BInput) => ( 从{AInput}-{BInput}分,每分钟执行一次 ), hour: (AInput, BInput) => ( 从{AInput}-{BInput}时,每小时执行一次 ), day: (AInput, BInput) => ( 从{AInput}-{BInput}日,每日执行一次 ), month: (AInput, BInput) => ( 从{AInput}-{BInput}月,每月执行一次 ), week: (AInput, BInput) => ( 从{AInput}-{BInput},每星期执行一次 ), year: (AInput, BInput) => ( 从{AInput}-{BInput}年,每年执行一次 ), }, // from [a] [unit] start, every [b] Execute once [unit] 从 a 开始, 每一个时间单位执行一次 aStartTob: { second: (AInput, BInput) => ( 从{AInput}秒开始,每{BInput}秒执行一次 ), minute: (AInput, BInput) => ( 从{AInput}分开始,每{BInput}分执行一次 ), hour: (AInput, BInput) => ( 从{AInput}时开始,每{BInput}小时执行一次 ), day: (AInput, BInput) => ( 从{AInput}日开始,每{BInput}日执行一次 ), month: (AInput, BInput) => ( 从{AInput}月开始,每{BInput}月执行一次 ), // [n] in the NTH week of this month 本月第 n 周的 星期[n] 执行一次 week: (AInput, BInput) => ( 本月第{AInput}周的{BInput}执行一次 ), // 本月的最后一个 星期[n] 执行一次 week2: (AInput) => 月的最后一个{AInput}执行一次, year: (AInput, BInput) => ( 从{AInput}年开始,每{BInput}年执行一次 ), } }; return } ``` ### TypeScript 描述 // CronProps 组件接受的 props // CronFns 实际上是组件的 ref import { CronProps, CronFns } from "qnn-react-cron" // ts 中引用的方式 import * as QnnCron from "qnn-react-cron" ### TypeScript 项目中使用 ##### 方式一 用 * as 引入,这种方式和在ts项目中使用react一样,可能还需要修改 tsconfig.json,自行百度即可。 import * as QnnCron from "qnn-react-cron" ##### 方式二 在项目的 src 中新增一个 custom.d.ts 然后写入下面内容。 declare module "qnn-react-cron" { const content: any; export default content; } 然后在项目中直接引用 import QnnCron from "qnn-react-cron" ... ### 为什么没有 antd 组件的样式? 在 0.5.3 版本后,为了避免打包后的样式影响定制的样式,样式使用按需加载。不再打包进组件代码中。 解决方式1: 在 babel 配置中加入以下代码: plugins:[ [ "import", { libraryName: "antd", libraryDirectory: "es", style: "css", }, "ant", ] ] 解决方式2: 或者直接在项目中引入 antd 样式,如下 import "antd/dist/antd.min.css" ### 一些参考 1、[配合 antd Form 组件使用,打造一个可控的输入组件](https://github.com/wangzongming/qnn-react-cron/issues/21#issuecomment-1480692706) ### LICENSE MIT