fix: date formatting
This commit is contained in:
		
							parent
							
								
									02890f550d
								
							
						
					
					
						commit
						e41926e2b9
					
				@ -1,5 +1,5 @@
 | 
			
		||||
import moment from 'moment'
 | 
			
		||||
import { connect, mapProps, mapReadPretty } from '@formily/react'
 | 
			
		||||
import { connect, mapProps, mapReadPretty, useField, useFieldSchema } from '@formily/react'
 | 
			
		||||
import { DatePicker as AntdDatePicker } from 'antd'
 | 
			
		||||
import {
 | 
			
		||||
  DatePickerProps as AntdDatePickerProps,
 | 
			
		||||
@ -34,6 +34,8 @@ const mapDateFormat = function () {
 | 
			
		||||
    return props['showTime'] ? 'YYYY-MM-DD HH:mm:ss' : 'YYYY-MM-DD'
 | 
			
		||||
  }
 | 
			
		||||
  return (props: any) => {
 | 
			
		||||
    const field = useField();
 | 
			
		||||
    const fieldSchema = useFieldSchema();
 | 
			
		||||
    const format = props['format'] || getDefaultFormat(props)
 | 
			
		||||
    const onChange = props.onChange
 | 
			
		||||
    return {
 | 
			
		||||
 | 
			
		||||
@ -15,6 +15,7 @@ import { Tag, Space, Popover } from 'antd'
 | 
			
		||||
import cls from 'classnames'
 | 
			
		||||
import { formatMomentValue, usePrefixCls } from '@formily/antd/esm/__builtins__'
 | 
			
		||||
import { FullscreenOutlined } from '@ant-design/icons';
 | 
			
		||||
import moment from 'moment';
 | 
			
		||||
 | 
			
		||||
const PlaceholderContext = createContext<string>('N/A')
 | 
			
		||||
 | 
			
		||||
@ -287,11 +288,20 @@ const Cascader: React.FC<CascaderProps> = observer((props) => {
 | 
			
		||||
  )
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
const DatePicker: React.FC<DatePickerProps> = (props) => {
 | 
			
		||||
const DatePicker: React.FC<DatePickerProps> = (props: any) => {
 | 
			
		||||
  const placeholder = usePlaceholder()
 | 
			
		||||
  const prefixCls = usePrefixCls('description-text', props)
 | 
			
		||||
  const getDefaultFormat = () => {
 | 
			
		||||
    const { dateFormat, showTime, timeFormat } = props;
 | 
			
		||||
    let format = dateFormat;
 | 
			
		||||
    if (showTime) {
 | 
			
		||||
      format += ` ${timeFormat}`;
 | 
			
		||||
    }
 | 
			
		||||
    return format || props.format;
 | 
			
		||||
  }
 | 
			
		||||
  const getLabels = () => {
 | 
			
		||||
    const labels = formatMomentValue(props.value, props.format, placeholder)
 | 
			
		||||
    const d = moment(props.value);
 | 
			
		||||
    const labels = formatMomentValue(d.isValid() ? d : null, getDefaultFormat(), placeholder)
 | 
			
		||||
    return isArr(labels) ? labels.join('~') : labels
 | 
			
		||||
  }
 | 
			
		||||
  return <div className={cls(prefixCls, props.className)}>{getLabels()}</div>
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user