diff --git a/components/apolloTable/component/base/edit/dateRange/index.tsx b/components/apolloTable/component/base/edit/dateRange/index.tsx index 53c43624e9933fd05b29bfa39abb71b8c1f0d722..9d88249f3b958b6901fc339b77188e8e93839c75 100644 --- a/components/apolloTable/component/base/edit/dateRange/index.tsx +++ b/components/apolloTable/component/base/edit/dateRange/index.tsx @@ -1,18 +1,41 @@ -import React from 'react'; +import React, { useRef } from 'react'; import { DatePicker } from 'antd'; -import styles from './styles.less'; +import { onBlurFn } from '../onBlurFn'; import { antiAssign } from '../../../../utils/utils'; +import styles from './styles.less'; const { RangePicker } = DatePicker; export const ApolloDateRange = (props: any) => { - const { onChange, placeholder, beginDatePlaceholder, endDatePlaceholder } = props; + const { onChange, placeholder, showTime, beginDatePlaceholder, endDatePlaceholder, origin } = props; const selfProps = antiAssign(props, ['onChange', 'columnConfig']); - const changeValue = (dates, dateStrings) => { + const isOpen = useRef(); + const changeValue = (date, dateString) => { if (typeof onChange === 'function') { - onChange(dates, dateStrings); + if (typeof onBlurFn === 'function' && !isOpen.current) { + onBlurFn({ ...props, value: date }); + } + onChange(date, dateString); + } + }; + const dateOnBlurFn = (e: boolean) => { + isOpen.current = e; + }; + const timeOnBlurFn = (e: boolean) => { + isOpen.current = e; + if (typeof onBlurFn === 'function' && !e) { + onBlurFn(props); } }; - return ( + return (origin === 'editForm' ? + :