diff --git a/src/components/SelectTimePicker/index.tsx b/src/components/SelectTimePicker/index.tsx index 46a84b9..93ee28f 100644 --- a/src/components/SelectTimePicker/index.tsx +++ b/src/components/SelectTimePicker/index.tsx @@ -107,14 +107,14 @@ const SelectTimePicker = (props: SelectSaleTypeProps, ref) => { } // 选择自定义时间 - const onSelectDate = (event) => { + const onSelectDate = (event, isSameDay: boolean) => { console.log(event?.value, 'event?.value?.start') setCurrentDate({ start: event?.value?.start, - end: event?.value?.end, + end: isSameDay ? event?.value?.start : event?.value?.end, }) setShowTime(false) - customFilterButtonText.current = `${dayjs(event?.value?.start).format('YYYY年MM月DD日')} 至 ${dayjs(event?.value?.end).format('YYYY年MM月DD日')}` + customFilterButtonText.current = `${dayjs(event?.value?.start).format('YYYY年MM月DD日')} 至 ${dayjs(isSameDay ? event?.value?.start : event?.value?.end).format('YYYY年MM月DD日')}` change?.([event?.value?.start, event?.value?.end]) } diff --git a/src/components/timePicker/index.tsx b/src/components/timePicker/index.tsx index 2497dbd..9fdb817 100644 --- a/src/components/timePicker/index.tsx +++ b/src/components/timePicker/index.tsx @@ -1,5 +1,5 @@ import { View } from '@tarojs/components' -import { memo, useState } from 'react' +import { memo, useRef, useState } from 'react' import dayjs from 'dayjs' import NormalButton from '../normalButton' import styles from './index.module.scss' @@ -10,31 +10,33 @@ type DateArg = string | number | Date interface Props { end?: DateArg start?: DateArg - onSelectDate?: (any) => void + onSelectDate?: (any, isSameDay: boolean) => void } const TimePicker = (props: Props) => { const { start = '', end = '', onSelectDate } = props const [time, setTime] = useState({}) - + const isSameDay = useRef(false) const handTime = (e) => { const { start, end } = e.value + isSameDay.current = start === end // 如果选的是同一天的日期, end 自动加一天 if (!end) { // 判断如果没选下一天的时候 - e.value.end = `${dayjs(new Date(start)).add(1, 'day').format('YYYY-MM-DD')} 00:00:00` + e.value.end = `${dayjs(start).add(1, 'day').format('YYYY-MM-DD')} 00:00:00` + isSameDay.current = true } else if (start === end) { - e.value.end = `${dayjs(new Date(start)).add(1, 'day').format('YYYY-MM-DD')} 00:00:00` + e.value.end = `${dayjs(start).add(1, 'day').format('YYYY-MM-DD')} 00:00:00` } else { e.value.start = `${dayjs(start).format('YYYY-MM-DD')} 00:00:00` - e.value.end = `${dayjs(end).format('YYYY-MM-DD')} 00:00:00` + e.value.end = `${dayjs(end).format('YYYY-MM-DD')} 23:59:59` } console.log('e===>', e) setTime(e) } - // 由于小程序的bug,部分ios和安卓显示时间的时候会有问题,原因是格式化时有`-`这个横杠 + // 由于小程序的bug,部分ios和安卓显示时间的时候会有问题,原因是格式化时有`-`这个横杠 被dayjs解决了 return ( <> @@ -48,7 +50,7 @@ const TimePicker = (props: Props) => { onSelectDate={e => handTime(e)} /> - onSelectDate?.(time)} size="normal" round customClassName={styles['sure-box']}>确认 + onSelectDate?.(time, isSameDay.current)} size="normal" round customClassName={styles['sure-box']}>确认 ) } diff --git a/src/components/timePickerPopup/index.tsx b/src/components/timePickerPopup/index.tsx index 7b53258..b57cc68 100644 --- a/src/components/timePickerPopup/index.tsx +++ b/src/components/timePickerPopup/index.tsx @@ -9,7 +9,7 @@ interface Props { closePopup?: () => void end?: DateArg start?: DateArg - onSelectDate?: (any) => void + onSelectDate?: (any, isSameDay: boolean) => void } const TimePickerPopup = (props: Props) => { const { showTime = false, closePopup, start = '', end = '', onSelectDate } = props