import { RangePickerProps } from 'antd/es/date-picker'; import type { Dayjs } from 'dayjs'; export type RangeValueType = string | string[] | number | Date | Dayjs | null; export type RangeValueValuesType = RangeValueType[] | null | RangeValueObjectType; export type RangeDateType = Dayjs | null; export type RangeDateValueType = [RangeDateType, RangeDateType] | null; export type RangeValueObjectType = { [key: string]: string | null; } & { [key: string]: string | null; }; export type RangeValueTuple = [string, string]; export type RangeFormatString = RangeValueTuple | RangeValueObjectType; /** * SDatePickerRange 增强日期范围选择器 Props * * 相比 antd RangePicker,支持 rangeKeys 将日期范围拆分为两个独立字段, * 方便表单提交。onChange 直接返回格式化字符串。 * * @example * ```tsx * // 拆分为 startDate 和 endDate 两个字段 * * ``` */ export interface SDatePickerRangeProps extends Omit { /** 支持多种输入格式 */ value?: RangeValueValuesType; /** 将范围值拆分为两个字段的 key,如 ['startDate', 'endDate'] */ formatKeys?: RangeValueTuple; /** onChange 第一个参数为格式化后的值 */ onChange?: (formatString: RangeFormatString, values: RangeValueValuesType) => void; /** 与 formatKeys 功能相同的别名 */ rangeKeys?: string[]; }