本文共 3081 字,大约阅读时间需要 10 分钟。
日期查询原先是这样实现的:
{/* 日期 */}
{getFieldDecorator('range-time-picker', rangeConfig)(
)}
{getFieldDecorator('rangtime', {
rules: [{
type: 'array',
message: '请选择时间范围'
}]
})(
'7天': [moment(), moment().add(7, 'days')],
'15天': [moment(), moment().add(15, 'days')],
'自然月': [moment(), moment().add(1, 'month')],
'半年': [moment(), moment().add(183, 'days')],
'一年': [moment(), moment().add(366, 'days')],
'一季度': [moment(), moment().add(3, 'month')],
'两季度': [moment(), moment().add(6, 'month')],
'三季度': [moment(), moment().add(9, 'month')],
'至月底': [moment(), moment().endOf('month')],
'至年底': [moment(), moment().endOf('year')]
}}
现在需要实现默认显示最近30天的日期范围怎么办?
{/* 日期范围默认设置 */}
{getFieldDecorator('rangtime', {
rules: [{
type: 'array',
message: '请选择时间范围'
}]
})(
'30天': [moment(), moment().add(29, 'days')]
}}
{/* 查询处理 */}
{ e.preventDefault();
const { dispatch, form } = this.props;
form.validateFields((err, fieldsValue) => {
if (err) return;
const rangeTimeValue = fieldsValue['rangtime'] ? fieldsValue['rangtime'] : [];
if (rangeTimeValue.length > 0) {
const values = { ...fieldsValue,
'starttime': '',
'endtime': '',
'customercode': this.state.customerID,
'commoditycode': fieldsValue['commoditycode'],
'billcode': fieldsValue['billcode'],
'searchtype': fieldsValue['searchtype'],
};
if (rangeTimeValue.length > 0) {
values['starttime'] = rangeTimeValue[0].format("Y-M-d");
values['endtime'] = rangeTimeValue[1].format("Y-M-d");
}
this.props.handleSetState({ formValues: values });
dispatch({ type: 'xxxxx/fetch', payload: values });
});
{/* 无条件查询处理 */}
{ e.preventDefault();
const { dispatch, form } = this.props;
form.validateFields((err, fieldsValue) => {
if (err) return;
const values = { ...fieldsValue,
};
dispatch({ type: 'xxxxx/fetch', payload: values });
});
转载地址:http://lobzz.baihongyu.com/