| | |
| | | minDate?: Date; |
| | | maxDate?: Date; |
| | | type?: string; |
| | | format?: string; |
| | | }; |
| | | |
| | | const props = withDefaults(defineProps<Props>(), {}); |
| | | const props = withDefaults(defineProps<Props>(), { |
| | | format: 'YYYY-MM-DD', |
| | | }); |
| | | |
| | | const emit = defineEmits<{ |
| | | (e: 'update:modelValue', val: string | number): void; |
| | | (e: 'change'): void; |
| | | }>(); |
| | | |
| | | function handleOpen() { |
| | | const _modelValue = [props.modelValue]; |
| | | const _modelValue = dayjs(props.modelValue).toDate(); |
| | | Portal.add((key) => { |
| | | return h( |
| | | Portal.Container, |
| | |
| | | type: props.type, |
| | | maxDate: props.maxDate, |
| | | onConfirm: ({ selectedValue }) => { |
| | | emit('update:modelValue', dayjs(selectedValue.join('-')).format('YYYY-MM-DD')); |
| | | let _selectedVale = ''; |
| | | if (selectedValue.length > 3) { |
| | | _selectedVale = `${selectedValue.slice(0, 3).join('-')} ${selectedValue |
| | | .slice(3) |
| | | .join(':')}`; |
| | | } else { |
| | | _selectedVale = selectedValue.join('-'); |
| | | } |
| | | emit('update:modelValue', dayjs(_selectedVale).format(props.format)); |
| | | onClose(); |
| | | }, |
| | | onChange: () => { |
| | | emit('change'); |
| | | }, |
| | | minDate: props.minDate, |
| | | }), |
| | | } |