当前位置: 首页 > news >正文

怎么做国外的网站吗有没有网址呀

怎么做国外的网站吗,有没有网址呀,网站建设中高低端区别,设计一个网站的首页步骤前言 最近在写的一个分布式调度系统#xff0c;后端同学需要让我传入cron表达式#xff0c;给调度接口传参。我去了学习了解了cron表达式的用法#xff0c;发现有3个通用的表达式刚好符合我们的需求#xff1a; 需求 每天 xx 的时间#xff1a; 0 11 20 * * ? 上面是…前言 最近在写的一个分布式调度系统后端同学需要让我传入cron表达式给调度接口传参。我去了学习了解了cron表达式的用法发现有3个通用的表达式刚好符合我们的需求 需求 每天 xx 的时间 0 11 20 * * ? 上面是每天20:11的cron表达式 每周的 xxx 星期 的 xxx 时间 0 14 20 * * WED,THU 上面是 每周星期三星期四20:14的cron表达式 每周的 xxx号 的 xxx时间 0 15 20 3,7 * ? 上面是 每月的37号20:15的cron表达式 这三个表达式刚好符合我们的需求并且每个符号表达的意思也很直观。那么话不多说直接开写 环境 react 我的版本“react”: “18.2.0”用的函数组件react hooks moment npm install moment semi-design组件库 npm install semi-design typescript 实现 数据 utils下创建cron.ts对组件所用到的数据进行统一的管理 export const dayOfTheWeekData [{ key: MON, label: 星期一 },{ key: TUE, label: 星期二 },{ key: WED, label: 星期三 },{ key: THU, label: 星期四 },{ key: FRI, label: 星期五 },{ key: SAT, label: 星期六 },{ key: SUN, label: 星期天 } ];export const dayOfTheWeekOption [{ key: 1, label: 星期一 },{ key: 2, label: 星期二 },{ key: 3, label: 星期三 },{ key: 4, label: 星期四 },{ key: 5, label: 星期五 },{ key: 6, label: 星期六 },{ key: 7, label: 星期天 } ];export const monthOption [{ key: 1, label: 一月 },{ key: 2, label: 二月 },{ key: 3, label: 三月 },{ key: 4, label: 四月 },{ key: 5, label: 五月 },{ key: 6, label: 六月 },{ key: 7, label: 七月 },{ key: 8, label: 八月 },{ key: 9, label: 九月 },{ key: 10, label: 十月 },{ key: 11, label: 十一月 },{ key: 12, label: 十二月 } ];//获取dayOfTheMonthOption的每月对象 function getDayOfTheMonthOption() {const days [];for (let i 1; i 32; i 1) {days.push({ key: i.toString(), label: i.toString().concat(号) });}return days; }export const dayOfTheMonthOption getDayOfTheMonthOption(); 组件 到了组件的具体实现个人感觉我写的注释挺全的就单挑几个核心重点讲下 时间转换函数handleTimeChange //时间选择函数const handleTimeChange (time: moment.Moment | null) {setSelectTime(time);if (!time) return;const currentCron expression ? expression.split( ) : [];const [seconds, , , dayOfMonth, month1, dayOfWeek] currentCron;const minutes moment(time).minutes().toString(); //获取分钟const hours moment(time).hours().toString(); //获取小时let result null;if (!Number.isNaN(Number(hours)) !Number.isNaN(Number(minutes))) {const minutesAndHour seconds.concat(space).concat(minutes).concat(space).concat(hours).concat(space);if (defaultTimeType everyDay) result minutesAndHour.concat(* * ?);if (defaultTimeType ! everyDay)result minutesAndHour.concat(dayOfMonth).concat(space).concat(month1).concat(space).concat(dayOfWeek);}if (result) onChange?.(result);setExpression(result);};使用moment函数将time转成数字类型 minutes moment(time).minutes().toString(); //获取分钟hours moment(time).hours().toString(); //获取小时 获取时间cron字符串minutesAndHour const minutesAndHour seconds.concat(space).concat(minutes).concat(space).concat(hours).concat(space);拼接得到完整的cron表达式 defaultTimeType ‘everyDay’ result minutesAndHour.concat(‘* * ?’); defaultTimeType ! ‘everyDay’ result minutesAndHour.concat(dayOfMonth).concat(space).concat(month1).concat(space).concat(dayOfWeek);日期转换函数handleSelectChange setSelectedValue(data); const selectValues data.join(,); const currentCron expression ? expression.split( ) : []; const [seconds, minutes, hours, dayOfMonth, month1, dayOfWeek] currentCron; let result ; if (defaultTimeType everyWeek) {result seconds.concat(space).concat(minutes).concat(space).concat(hours).concat(space).concat(dayOfMonth).concat(space).concat(month1).concat(space).concat(selectValues); } if (defaultTimeType everyMonth) {result seconds.concat(space).concat(minutes).concat(space).concat(hours).concat(space).concat(data.length ? selectValues : *).concat(space).concat(month1).concat(space).concat(dayOfWeek); } if (selectTime) onChange?.(result); setExpression(result);defaultTimeType ‘everyWeek’ result seconds.concat(space).concat(minutes).concat(space).concat(hours).concat(space).concat(dayOfMonth).concat(space).concat(month1).concat(space).concat(selectValues);defaultTimeType ‘everyMonth’ result seconds.concat(space).concat(minutes).concat(space).concat(hours).concat(space).concat(data.length ? selectValues : *).concat(space).concat(month1).concat(space).concat(dayOfWeek);组件全部代码CronInput import { ConfigProvider, TimePicker } from douyinfe/semi-ui; import { Fragment, useState } from react; import { Select } from douyinfe/semi-ui; import moment from moment; //引入数据 import { dayOfTheMonthOption, dayOfTheWeekData } from /utils/cron;const { Option } Select; const format HH:mm; const defaultCron 0 * * * * ?; const space ; //空格 //类型选择 const timeTypes [{ key: everyDay, label: 每天 },{ key: everyWeek, label: 每周 },{ key: everyMonth, label: 每月 } ];interface Props {onChange?: (cron?: string) void; } const CronInput: React.FCProps ({ onChange }) {const [defaultTimeType, setDefaultTimeType] useState(timeTypes[0].key); //选择类型const [selectedValue, setSelectedValue] useState[]([]); //日期多选数组const [selectTime, setSelectTime] useStateany(null); //时间const [expression, setExpression] useStatestring | null(defaultCron); //bzd//类型选择函数const handleTimeTypeChange (selectValue: string) {setDefaultTimeType(selectValue);setSelectTime(null);setSelectedValue([]);setExpression(defaultCron);};//时间选择函数const handleTimeChange (time: moment.Moment | null) {setSelectTime(time);if (!time) return;const currentCron expression ? expression.split( ) : [];const [seconds, , , dayOfMonth, month1, dayOfWeek] currentCron;const minutes moment(time).minutes().toString(); //获取分钟const hours moment(time).hours().toString(); //获取小时let result null;if (!Number.isNaN(Number(hours)) !Number.isNaN(Number(minutes))) {const minutesAndHour seconds.concat(space).concat(minutes).concat(space).concat(hours).concat(space);if (defaultTimeType everyDay) result minutesAndHour.concat(* * ?);if (defaultTimeType ! everyDay)result minutesAndHour.concat(dayOfMonth).concat(space).concat(month1).concat(space).concat(dayOfWeek);}if (result) onChange?.(result);setExpression(result);};const handleSelectChange (data: []) {setSelectedValue(data);const selectValues data.join(,);const currentCron expression ? expression.split( ) : [];const [seconds, minutes, hours, dayOfMonth, month1, dayOfWeek] currentCron;let result ;if (defaultTimeType everyWeek) {result seconds.concat(space).concat(minutes).concat(space).concat(hours).concat(space).concat(dayOfMonth).concat(space).concat(month1).concat(space).concat(selectValues);}if (defaultTimeType everyMonth) {result seconds.concat(space).concat(minutes).concat(space).concat(hours).concat(space).concat(data.length ? selectValues : *).concat(space).concat(month1).concat(space).concat(dayOfWeek);}if (selectTime) onChange?.(result);setExpression(result);};const RenderSelect ({placeholder,data []}: {placeholder: string;data: { key: string; label: string }[];}) {return (FragmentSelectmultipleplaceholder{placeholder}onChange{(val: any) handleSelectChange(val)}style{{ marginRight: 16px, width: auto }}value{selectedValue}{data.map((item: { key: string; label: string }) (Option key{item.key} value{item.key}{item.label}/Option))}/SelectConfigProviderTimePickervalue{selectTime moment(selectTime, format).toDate()}format{format}placeholder请选择时间onChange{(val: any) handleTimeChange(val)}//ConfigProvider/Fragment);};return (div className{cron}Select// rolecron-typestyle{{ marginRight: 16px, width: auto }}placeholder请选择类型onChange{(val: any) handleTimeTypeChange(val)}value{defaultTimeType}{timeTypes.map((item) (Option key{item.key} value{item.key}{ }{item.label}/Option))}/Select{defaultTimeType everyDay (ConfigProviderTimePickervalue{selectTime moment(selectTime, format).toDate()}format{format}placeholder请选择时间onChange{(val: any) handleTimeChange(val)}//ConfigProvider)}{defaultTimeType everyWeek (RenderSelect data{dayOfTheWeekData} placeholder请选择星期 /)}{defaultTimeType everyMonth (RenderSelect data{dayOfTheMonthOption} placeholder请选择日期 /)}/div/); };export default CronInput; 使用与效果 使用 使用方法很简单接收onChange传来的cron表达式即可 const App: FCIProps (props) {const { datas [] } props;let [value, setValue] useStatestring();return (divCronInput onChange{(cron) setValue(cron)} /div{value}/div/div); };效果 每天 每周 每月
http://www.hkea.cn/news/14541652/

相关文章:

  • 闵行做网站的公司上海人才网欢迎您
  • 网站推广的网站平面设计师磨刀石
  • 免费网站建设基础步骤成都网站制作培训
  • 工信部网站 地址海南网站建设海南网络公司
  • 如何做英文ppt模板下载网站休闲食品网站建设规划书
  • 如何百度收录我的网站搜云seo
  • 南联网站建设在线crm管理系统
  • 做一个网站加优化排名得多少钱彩妆网站建设策划书
  • 网站信息化建设寓意八方来财的公司名字
  • 河北邢台手机网站建设wordpress案例分析
  • 公司电商网站建设费用怎么记账做设计有哪些地图网站
  • 贵港网站建设兼职温州百度快速排名优化
  • 廊坊网站建设费用响应式做的好的网站有哪些
  • 设计素材网站情人节申请一个网站需要怎么做
  • 个人网站设计要求深圳品牌网站推广公司哪家好
  • 网站开发小程序定制网站制作做站长挣钱
  • 杭州网站建设方案书做任务赚话费的网站
  • 网站紧急升级维护中朋友做的网站图片不显示
  • 做网站和app怎么跑业务开发网站公司收入
  • 打折网站建设教程下载wordpress设置头像
  • 企业网站认证如何用百度搜自己做的网站
  • 网站开发获取报价旅游网站建设经费预算
  • dede网站后台南宁网络公司有哪些
  • 成都 建设网站智慧团建在线登录
  • 北京网站制建设公司wordpress启用特色
  • 什么网站专门做境外当地游小程序收录wordpress主题
  • 金华网站建设yw126中信建设内部网站
  • 设计导航网站大全see最便宜云主机永久免费
  • 鲜花网站建设店蓬莱专业做网站公司
  • 台州网站建设 推广公司佛山 网站关键词优化