UNPKG

@tplc/wot

Version:

144 lines (143 loc) 3.46 kB
import type { ComponentPublicInstance, ExtractPropTypes, PropType } from 'vue' export type CalendarType = | 'date' | 'dates' | 'datetime' | 'week' | 'month' | 'daterange' | 'datetimerange' | 'weekrange' | 'monthrange' export declare const calendarViewProps: { /** * 选中值,为 13 位时间戳或时间戳数组 */ modelValue: { type: PropType<number | number[] | null> required: true } /** * 日期类型 */ type: { type: PropType<CalendarType> default: CalendarType } /** * 最小日期,为 13 位时间戳 */ minDate: { type: NumberConstructor default: number } /** * 最大日期,为 13 位时间戳 */ maxDate: { type: NumberConstructor default: number } /** * 周起始天 */ firstDayOfWeek: { type: NumberConstructor default: number } /** * 日期格式化函数 */ formatter: PropType<CalendarFormatter> /** * type 为范围选择时有效,最大日期范围 */ maxRange: NumberConstructor /** * type 为范围选择时有效,选择超出最大日期范围时的错误提示文案 */ rangePrompt: StringConstructor /** * type 为范围选择时有效,是否允许选择同一天 */ allowSameDay: { type: BooleanConstructor default: boolean } showPanelTitle: { type: BooleanConstructor default: boolean } /** * 选中日期所使用的当日内具体时刻 */ defaultTime: { type: PropType<string | string[]> default: string } /** * 可滚动面板的高度 */ panelHeight: { type: NumberConstructor default: number } /** * type 为 'datetime' 或 'datetimerange' 时有效,用于过滤时间选择器的数据 */ timeFilter: PropType<CalendarTimeFilter> /** * type 为 'datetime' 或 'datetimerange' 时有效,是否不展示秒修改 */ hideSecond: { type: BooleanConstructor default: boolean } /** * 是否在手指松开时立即触发picker-view的 change 事件。若不开启则会在滚动动画结束后触发 change 事件,1.2.25版本起提供,仅微信小程序和支付宝小程序支持。 */ immediateChange: { type: BooleanConstructor default: boolean } customStyle: { type: PropType<string> default: string } customClass: { type: PropType<string> default: string } } export type CalendarViewProps = ExtractPropTypes<typeof calendarViewProps> export type CalendarDayType = '' | 'start' | 'middle' | 'end' | 'selected' | 'same' | 'current' export type CalendarDayItem = { date: number text?: number | string restFlag?: boolean topInfo?: string bottomInfo?: string floorText?: string type?: CalendarDayType disabled?: boolean day?: number | string } export type CalendarFormatter = (day: CalendarDayItem) => CalendarDayItem export type CalendarTimeFilterOptionType = 'hour' | 'minute' | 'second' export type CalendarTimeFilterOption = { type: CalendarTimeFilterOptionType values: CalendarItem[] } export type CalendarTimeFilter = (option: CalendarTimeFilterOption) => CalendarItem[] export type CalendarItem = { label: string value: number disabled: boolean } export type CalendarViewExpose = { /** * 使当前日期或者选中日期滚动到可视区域 */ scrollIntoView: () => void } export type CalendarViewInstance = ComponentPublicInstance<CalendarViewExpose, CalendarViewProps>