@alitajs/antd-plus
Version:
基于 ant-design 封装的偏业务组件
80 lines (79 loc) • 2.02 kB
TypeScript
import React from 'react';
import { RangePickerProps } from 'antd/es/date-picker';
import { RadioGroupProps } from 'antd/es/radio';
export declare type PeriodType = 'year' | 'month' | 'day' | 'hour' | 'minute' | 'second';
export declare type RangeValue<T = number> = [T, T] | null;
export declare type ValueType<T = number> = {
period: PeriodType;
rangeTime: RangeValue<T>;
} | RangeValue<T>;
export interface PeriodData {
/**
* 间隔类型
*/
periodType?: PeriodType;
/**
* 间隔值
*/
periodValue?: number;
}
export interface OptionValue {
/**
* 粒度类型
*/
value: PeriodType;
/**
* 粒度描述
*/
label: string;
/**
* 粒度的数值
*/
periodValue: number;
}
interface OtherProps {
/**
* 是否禁用选择
* 设置为false则value类型为: [number, number];
* 设置为true则value类型为 {
* period: PeriodType;
* rangeTime: [number, number]
* }
* @default true
*/
disabledSelect?: boolean;
/**
* 默认的时间
* 请注意设置则会在组件初始化时,触发onChange
*/
defaultTimes?: RangePickerProps['value'];
/**
* 切换区域与选择时间区域的间隔
*/
spaceSize?: number;
/**
* 是否禁用今天之后的日期
* @default true
*/
disabledAfterToday?: boolean;
/**
* 粒度改变时是否清空时间
* @default true
*/
periodChangeClearDate?: boolean;
/**
* 时间框非空才可触发onChange
* @default true
*/
dateNotNullChange?: boolean;
/**
* 选择项配置
*/
options: OptionValue[];
optionType?: RadioGroupProps['optionType'];
value?: ValueType;
onChange?: (value: ValueType) => void;
}
export declare type RangePickerProProps = Omit<RangePickerProps, 'value' | 'onChange'> & OtherProps;
declare const RangePickerPro: React.FC<RangePickerProProps>;
export default RangePickerPro;