![](https://img-blog.csdnimg.cn/135693f19f9648ea88324da73a5a1757.png)
/**时间的回调 */
changeStartDate = (date: moment.Moment | null, dateString: string) => {
const { lzEndDate } = this.state;
this.setState({
lzStartDate: dateString,
}, () => {
this.getMonths(dateString, lzEndDate);
this.getYears(dateString, lzEndDate);
});
}
/**时间的回调 */
changeEndDate = (date: moment.Moment | null, dateString: string) => {
const { lzStartDate } = this.state;
this.setState({
lzEndDate: dateString,
}, () => {
this.getMonths(lzStartDate, dateString);
this.getYears(lzStartDate, dateString);
});
}
/** 获取总计月 */
getMonths = (startTime: string, endTime: string) => {
let dateArray = [];
let currentDate = moment(startTime);
let stopDate = moment(endTime);
// 开始日期小于等于结束日期,并循环
while (currentDate <= stopDate) {
dateArray.push(moment(currentDate).format('YYYY-MM'))
currentDate = moment(currentDate).add(1, 'months');
}
this.props.form.setFieldsValue({
lzqxzjy: (dateArray.length - 1) % 12,
});
return dateArray;
}
/** 获取总计年 */
getYears = (startTime: string, endTime: string) => {
let dateArray = [];
let currentDate = moment(startTime);
let stopDate = moment(endTime);
// 开始日期小于等于结束日期,并循环
while (currentDate <= stopDate) {
dateArray.push(moment(currentDate).format('YYYY'))
currentDate = moment(currentDate).add(1, 'year');
}
this.props.form.setFieldsValue({
cznx: dateArray.length - 1,
});
return dateArray;
}
render() {
....
<b><i>*</i>开始日期</b>
<Form.Item>
{getFieldDecorator("lzqxksrq", {
initialValue: defaultValue && defaultValue.lzqxksrq ? moment(defaultValue?.lzqxksrq as string) : null,
validateTrigger: "onSubmit",
rules: [
{
required: true,
message: "开始日期必须选择!",
},
],
})(<DatePicker
disabled={globelDisable}
placeholder="请选择"
onChange={this.changeStartDate}
/>)}
</Form.Item>
<b><i>*</i>结束日期</b>
<Form.Item>
{getFieldDecorator("lzqxjsrq", {
initialValue: (defaultValue && defaultValue.lzqxjsrq ? moment(defaultValue?.lzqxjsrq as string) : null),
validateTrigger: "onSubmit",
rules: [
{
required: true,
message: "结束日期必须选择",
},
],
})(<DatePicker
disabled={globelDisable}
disabledDate={(date: Moment | null) => {
if (!date) return false;
if (+date.format("YYYYMMDD") <= +moment(getFieldValue("lzqxksrq")).format("YYYYMMDD")) {
return true;
}
return false;
}}
placeholder="请选择"
onChange={this.changeEndDate}
/>)}
</Form.Item>
}