import { CHANGE_EVENT, UPDATE_MODEL_EVENT } from '../../../constants' import { buildProps, isBoolean, isString } from '../../../utils' import { pickerBaseProps } from '../../base/common-props/picker' import type { ExtractPropTypes } from 'vue' export const dateTimePickerModes = [ 'year', 'yearmonth', 'date', 'datetime', 'time', 'datetimeNoSecond', 'timeNoSecond', ] as const export const dateTimePickerProps = buildProps({ ...pickerBaseProps, /** * @description 日期时间选择器绑定的值,支持的格式2019/12/27 12:00:00 2019-12-27 12:00:00 */ modelValue: { type: String, default: '', }, /** * @description 显示隐藏日期时间选择器 */ open: Boolean, /** * @description 日期时间选择器类型 */ mode: { type: String, values: dateTimePickerModes, default: 'date', }, /** * @description 最小可选时间,格式为 YYYY/MM/DD HH:mm:ss 例如 2023/01/04 12:00:00 */ minTime: String, /** * @description 最大可选时间,格式为 YYYY/MM/DD HH:mm:ss 例如 2023/10/01 23:30:00 */ maxTime: String, /** * @description 是否初始化空值为当前时间 */ initCurrentDateTime: { type: Boolean, default: true, }, /** * @description 日期时间格式化 */ format: String, }) export const dateTimePickerEmits = { [UPDATE_MODEL_EVENT]: (value: string) => isString(value), [CHANGE_EVENT]: (value: string) => isString(value), 'update:open': (value: boolean) => isBoolean(value), confirm: (value: string) => isString(value), cancel: () => true, close: () => true, } export type DateTimePickerProps = ExtractPropTypes export type DateTimePickerEmits = typeof dateTimePickerEmits export type DateTimePickerMode = (typeof dateTimePickerModes)[number]