/** * @author linhd * @date 2024/3/5 10:07 * @description 周期选择器 */ import React, { FunctionComponent } from 'react'; import { Dayjs } from 'dayjs'; import { HelperTextDetailProps } from "../HelperText"; import './index.scss'; export interface CycleSelectorValueProps { /** 开始时间 */ startTime?: string | number; /** 周期类型:0:不重复,1:每天重复,2:每周重复,3:每月重复,4:每年重复,5:自定义 */ cycleType?: number; /** 周期频率 */ frequency?: number; /** 频率单位;day:天,week:周,month:月,year:年 */ frequencyUnit?: string; /** 当选择月维度,是按照天还是周;day:天,week:周 */ monthCycleType?: string; /** 当选择周维度,指定周几(国外),用逗号分隔 */ executionDay?: string; /** 结束重复方式;0:无线重复,1:截至时间,2:限定次数 */ endType?: number; /** 当结束方式是限定次数,限定的重复执行次数 */ limitNum?: number; /** 当结束方式是限定时间,结束执行的日期 */ endTime?: string | number; } declare type DisabledTimes = { disabledHours?: () => number[]; disabledMinutes?: (hour: number) => number[]; disabledSeconds?: (hour: number, minute: number) => number[]; }; declare type DisabledTime = (date: DateType | null) => DisabledTimes; export interface CycleSelectorRefProps { getTipText: (val?: CycleSelectorValueProps) => React.ReactNode; } export interface CycleSelectorProps extends HelperTextDetailProps { className?: string; style?: React.CSSProperties; value: CycleSelectorValueProps; /** 时间格式 * undefined:YYYY-MM-DD HH:mm:ss * zone: YYYY-MM-DD[T]HH:mm:ss[Z] * stamp: 时间戳 * */ timeType?: 'zone' | 'stamp'; /** 提示文本自定义渲染 */ tipRender?: () => React.ReactNode; /** 获取组件内部方法 */ cRef?: React.MutableRefObject; /** 禁用 */ disabled?: boolean; /** 禁用日期 */ disabledDate?: (date: Dayjs) => boolean; /** 禁用时间 */ disabledTime?: DisabledTime; /** 禁用自定义选项*/ disabledCustom?: boolean; /** 显示弹窗 * 不传:组件里面控制 * */ showPopover?: boolean; onChange: (val: CycleSelectorValueProps) => void; } declare const CycleSelector: FunctionComponent; export default CycleSelector;