1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- import React, { Component } from 'react';
- import './index.less';
- import { DatePicker } from 'antd';
- export default class extends Component {
- constructor(props) {
- super(props);
- this.state = { key: 0 };
- this.loading = false;
- }
- dateRender(date) {
- const { dateRender, checkRefresh } = this.props;
- if (!this.loading && checkRefresh) {
- if (checkRefresh(date, () => this.needRefresh())) {
- this.loading = true;
- }
- }
- if (dateRender) return dateRender(date);
- return date.get('date');
- }
- needRefresh() {
- this.setState({ key: this.state.key + 1 });
- this.loading = false;
- setTimeout(() => {
- this.setState({ key: this.state.key + 1 });
- }, 1);
- }
- render() {
- const { hideInput, disabledDate } = this.props;
- return (
- <div className={`g-date-block ${hideInput ? 'hide-input' : ''}`}>
- <DatePicker
- open
- dropdownClassName={`g-date ${hideInput ? 'hide-input' : ''}`}
- disabledDate={disabledDate}
- dateRender={date => this.dateRender(date)}
- />
- </div>
- );
- }
- }
|