UNPKG

lts-cron-editor

Version:

基于antd、react的crontab表达式生成工具

86 lines (83 loc) 3.39 kB
/** * 功能:周期-年 * 作者:宋鑫鑫 * 日期:2019.11.04 */ import React, { PureComponent } from 'react' import { Radio, InputNumber, message, Col, List } from 'antd' const { Group } = Radio import { isNumber } from '../utils/index' export default class Year extends PureComponent { changeParams(type, value) { const state = { ...this.props.year } state[type] = value if (type === 'start') { if (state.end - state.start <= 1) { state.end = value + 1 } } if (type === 'end') { if (state.end - state.start <= 1) { state.start = value - 1 } } this.props.onChange(state) } render() { const { year: { type, start, end }, } = this.props return ( <div> <Group value={type} onChange={(e) => { this.changeParams('type', e.target.value) }} defaultValue="" > <List size="small" bordered> <List.Item> <Radio value="">不指定</Radio> </List.Item> <List.Item> <Radio value="*">每年</Radio> </List.Item> <List.Item> <Radio value="period">周期</Radio> <InputNumber min={new Date().getFullYear()} value={start} placeholder="年" formatter={(value) => value.toString().replace(/[^\d\.]/g, '')} onChange={(value) => { if (isNumber(value) && Number(value) >= new Date().getFullYear()) { this.changeParams('start', value) } else { message.info('输入不合法') } }} disabled={type !== 'period'} /> {' - '} <InputNumber min={new Date().getFullYear() + 1} value={end} placeholder="年" formatter={(value) => value.toString().replace(/[^\d\.]/g, '')} onChange={(value) => { if (isNumber(value) && Number(value) >= new Date().getFullYear() + 1) { this.changeParams('end', value) } else { message.info('输入不合法') } }} disabled={type !== 'period'} /> </List.Item> </List> </Group> </div> ) } }