整理 closeOnSelect 逻辑

This commit is contained in:
liaoxuezhi 2019-12-18 20:08:29 +08:00
parent de42efad01
commit d7e2852915
3 changed files with 22 additions and 12 deletions

View File

@ -229,9 +229,13 @@ export interface DatePickerState {
} }
export class DatePicker extends React.Component<DateProps, DatePickerState> { export class DatePicker extends React.Component<DateProps, DatePickerState> {
static defaultProps: Pick<DateProps, 'viewMode' | 'shortcuts'> = { static defaultProps: Pick<
DateProps,
'viewMode' | 'shortcuts' | 'closeOnSelect'
> = {
viewMode: 'days', viewMode: 'days',
shortcuts: '' shortcuts: '',
closeOnSelect: true
}; };
state: DatePickerState = { state: DatePickerState = {
isOpened: false, isOpened: false,
@ -342,7 +346,8 @@ export class DatePicker extends React.Component<DateProps, DatePickerState> {
minTime, minTime,
maxTime, maxTime,
dateFormat, dateFormat,
timeFormat timeFormat,
closeOnSelect
} = this.props; } = this.props;
if (!moment.isMoment(value)) { if (!moment.isMoment(value)) {
@ -357,15 +362,17 @@ export class DatePicker extends React.Component<DateProps, DatePickerState> {
onChange(value.format(format)); onChange(value.format(format));
if (dateFormat && !timeFormat) { if (closeOnSelect && dateFormat && !timeFormat) {
this.close(); this.close();
} }
} }
selectRannge(item: any) { selectRannge(item: any) {
const {closeOnSelect} = this.props;
const now = moment(); const now = moment();
this.handleChange(item.date(now)); this.handleChange(item.date(now));
this.close();
closeOnSelect && this.close();
} }
checkIsValidDate(currentDate: moment.Moment) { checkIsValidDate(currentDate: moment.Moment) {
@ -465,7 +472,8 @@ export class DatePicker extends React.Component<DateProps, DatePickerState> {
popOverContainer, popOverContainer,
clearable, clearable,
shortcuts, shortcuts,
utc utc,
closeOnSelect
} = this.props; } = this.props;
const isOpened = this.state.isOpened; const isOpened = this.state.isOpened;

View File

@ -172,7 +172,7 @@ export class DateRangePicker extends React.Component<
ranges: 'yesterday,7daysago,prevweek,thismonth,prevmonth,prevquarter', ranges: 'yesterday,7daysago,prevweek,thismonth,prevmonth,prevquarter',
iconClassName: 'fa fa-calendar', iconClassName: 'fa fa-calendar',
resetValue: '', resetValue: '',
closeOnSelect: false closeOnSelect: true
}; };
innerDom: any; innerDom: any;
@ -389,7 +389,7 @@ export class DateRangePicker extends React.Component<
startDate: range.startDate(now.clone()), startDate: range.startDate(now.clone()),
endDate: range.endDate(now.clone()) endDate: range.endDate(now.clone())
}, },
closeOnSelect ? this.close : noop closeOnSelect ? this.confirm : noop
); );
} }

View File

@ -4,11 +4,13 @@ import cx from 'classnames';
import {filterDate} from '../../utils/tpl-builtin'; import {filterDate} from '../../utils/tpl-builtin';
import moment from 'moment'; import moment from 'moment';
import 'moment/locale/zh-cn'; import 'moment/locale/zh-cn';
import DateRangePicker from '../../components/DateRangePicker'; import DateRangePicker, {
DateRangePicker as BaseDateRangePicker
} from '../../components/DateRangePicker';
export interface DateRangeProps extends FormControlProps { export interface DateRangeProps extends FormControlProps {
placeholder?: string; placeholder?: string;
disabled?: boolean; disabled: boolean;
format: string; format: string;
joinValues: boolean; joinValues: boolean;
delimiter: string; delimiter: string;
@ -59,7 +61,7 @@ export default class DateRangeControl extends React.Component<
? defaultValue.split(delimiter) ? defaultValue.split(delimiter)
: defaultValue; : defaultValue;
setPrinstineValue( setPrinstineValue(
DateRangePicker.formatValue( BaseDateRangePicker.formatValue(
{ {
startDate: filterDate(arr[0], data), startDate: filterDate(arr[0], data),
endDate: filterDate(arr[1], data) endDate: filterDate(arr[1], data)
@ -106,7 +108,7 @@ export default class DateRangeControl extends React.Component<
setPrinstineValue( setPrinstineValue(
arr arr
? DateRangePicker.formatValue( ? BaseDateRangePicker.formatValue(
{ {
startDate: filterDate(arr[0], data), startDate: filterDate(arr[0], data),
endDate: filterDate(arr[1], data) endDate: filterDate(arr[1], data)