|
|
@@ -3,22 +3,33 @@ import { DatePicker } from 'antd'
|
|
|
import dayjs, { isDayjs } from 'dayjs'
|
|
|
|
|
|
const ChangeDatePicker = props => {
|
|
|
- const { defaultValue, refinstance, onSave } = props
|
|
|
+ const { defaultValue, refinstance, onSave, defaultOpen = false, ...restProps } = props
|
|
|
const [val, setVal] = useState(defaultValue)
|
|
|
+ const [open, setOpen] = useState(defaultOpen)
|
|
|
const handleOnChange = d => {
|
|
|
+ if (!d) return
|
|
|
const date = d.format('YYYY-MM-DD')
|
|
|
setVal(date)
|
|
|
+ onSave({ currentTarget: { value: date } })
|
|
|
+ }
|
|
|
+
|
|
|
+ const handleOnOpenChange = e => {
|
|
|
+ setOpen(e)
|
|
|
+ if (!e && val === defaultValue) {
|
|
|
+ onSave({ currentTarget: { value: null } })
|
|
|
+ }
|
|
|
}
|
|
|
return (
|
|
|
<DatePicker
|
|
|
- defaultOpen={true}
|
|
|
+ open={open}
|
|
|
+ value={isDayjs(val) ? val : dayjs(val)}
|
|
|
style={{ width: '100%' }}
|
|
|
placeholder="请选择日期"
|
|
|
ref={refinstance}
|
|
|
- allowClear
|
|
|
- defaultValue={isDayjs(defaultValue) ? defaultValue : dayjs(defaultValue)}
|
|
|
onBlur={() => onSave({ currentTarget: { value: val } })}
|
|
|
onChange={handleOnChange}
|
|
|
+ onOpenChange={handleOnOpenChange}
|
|
|
+ {...restProps}
|
|
|
/>
|
|
|
)
|
|
|
}
|