@ray-js/smart-ui
Version:
轻量、可靠的智能小程序 UI 组件库
196 lines (195 loc) • 4.4 kB
TypeScript
/// <reference types="miniprogram-api-typings" />
import { SmartComponent, SmartEventHandler } from '../base';
type TimeType = 'date' | 'time' | 'year-month' | 'datetime';
export interface SmartDateTimePickerProps {
/**
* 当前选中值,当 type 为 time时,请使用 HH:mm 格式传值
*/
value?: string | number | Date;
/**
* 类型, 不建议动态修改
*
* @default 'datetime'
*/
type?: TimeType;
/**
* 可选的最小时间,精确到分钟
*
* @default '十年前'
*/
minDate?: number;
/**
* 可选的最大时间,精确到分钟
*
* @default 十年后
*/
maxDate?: number;
/**
* 可选的最小小时,针对`time`类型
*
* @default 0
*/
minHour?: number;
/**
* 可选的最大小时,针对`time`类型
*
* @default 23
*/
maxHour?: number;
/**
* 可选的最小分钟,针对`time`类型
*
* @default 0
*/
minMinute?: number;
/**
* 可选的最大分钟,针对`time`类型
*
* @default 59
*/
maxMinute?: number;
/**
* 选项过滤函数
* Ray组件不支持此属性
*/
/**
* 选项格式化函数
* Ray组件不支持此属性
*/
/**
* 顶部栏标题
*
* @default '''
*/
title?: string;
/**
* 是否显示顶部栏
*
* @default true
*/
showToolbar?: boolean;
/**
* 是否显示加载状态
*
* @default false
*/
loading?: boolean;
/**
* 选项高度
*
* @default 44
*/
itemHeight?: number;
/**
* 确认按钮文字
*
* @default 'Confirm'
*/
confirmButtonText?: string;
/**
* 取消按钮文字
*
* @default 'Cancel'
*/
cancelButtonText?: string;
/**
* 可见的选项个数
*
* @default 6
*/
visibleItemCount?: number;
/**
* 年月日时分秒单位
*/
locale?: {
year?: string;
month?: string;
day?: string;
hour?: string;
minute?: string;
second?: string;
};
/**
* @description 组件选择值改变时是否需要动画过度效果
* @version 2.2.0
* @default true
*/
changeAnimation?: boolean;
/**
* @description 字符串替换
* @version 2.2.0
*/
formatterMap?: Partial<Record<'year' | 'month' | 'day' | 'hour' | 'minute' | 'second', string | Record<string, string>>>;
/**
* @description 当设置 type: 'time' 时,此属性可开启12小时选择模式
* @version 2.2.0
* @default false
*/
is12HourClock?: boolean;
/**
* @description 12小时选择模式时上午的文案
* @version 2.2.0
* @default 'AM'
*/
amText?: string;
/**
* @description 12小时选择模式时下午的文案
* @version 2.2.0
* @default 'PM'
*/
pmText?: string;
/**
* @description 设置列的顺序,同`flex order`属性,只是从样式角度修改列的顺序,逻辑还是不变
* @version 2.2.0
* @default []
*/
columnsOrder?: number[];
}
/**
* @deprecated
*/
export interface SmartDateTimePickerBaseEvent extends WechatMiniprogram.BaseEvent {
detail: number;
}
export interface SmartDateTimePickerEvents {
/**
* 当值变化时触发的事件
*/
onInput?: SmartEventHandler<number>;
/**
* 当值变化时触发的事件
*/
onChange?: SmartEventHandler<Record<string, any>>;
/**
* 点击完成按钮时触发的事件
*/
onConfirm?: SmartEventHandler<number>;
/**
* 点击取消按钮时触发的事件
*/
onCancel?: SmartEventHandler;
/**
* 继承picker动画开始事件
*/
onAnimationStart?: () => void;
/**
* 继承picker动画结束事件
*/
onAnimationEnd?: () => void;
}
export interface SmartDateTimePickerExternalClassName {
/**
* 选中项样式类
*/
activeClass?: string;
/**
* 顶部栏样式类
*/
toolbarClass?: string;
/**
* 列样式类
*/
columnClass?: string;
}
export type SmartDateTimePicker = SmartComponent<SmartDateTimePickerProps, SmartDateTimePickerEvents, SmartDateTimePickerExternalClassName>;
export {};