@tplc/wot
Version:
144 lines (143 loc) • 3.46 kB
TypeScript
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>