| | |
| | | |
| | | this.state = { |
| | | value, |
| | | minDate: config.minDate ? moment().add(config.minDate, 'days').endOf('day') : '', |
| | | maxDate: config.maxDate ? moment().add(config.maxDate, 'days').endOf('day') : '', |
| | | mode, |
| | | format |
| | | } |
| | |
| | | this.props.onChange(val ? moment(val).format(format) : '') |
| | | } |
| | | |
| | | disabledDate = (current) => { |
| | | const { minDate, maxDate } = this.state |
| | | |
| | | if (!current || (!maxDate && !minDate)) { |
| | | return false |
| | | } |
| | | |
| | | if (!maxDate) { |
| | | return current < minDate |
| | | } else if (!minDate) { |
| | | return current > maxDate |
| | | } else { |
| | | return current < minDate || current > maxDate |
| | | } |
| | | } |
| | | |
| | | render() { |
| | | const { config } = this.props |
| | | const { value, mode } = this.state |
| | | |
| | | if (mode === 'date') { |
| | | return <DatePicker defaultValue={value} disabled={config.readonly} onChange={this.onChange}/> |
| | | return <DatePicker defaultValue={value} disabledDate={this.disabledDate} disabled={config.readonly} onChange={this.onChange}/> |
| | | } else if (mode === 'month') { |
| | | return <MonthPicker defaultValue={value} disabled={config.readonly} onChange={this.onChange}/> |
| | | } else if (mode === 'datetime') { |
| | | return <DatePicker defaultValue={value} showTime disabled={config.readonly} onChange={this.onChange}/> |
| | | return <DatePicker defaultValue={value} disabledDate={this.disabledDate} showTime disabled={config.readonly} onChange={this.onChange}/> |
| | | } |
| | | } |
| | | } |