@otts/uv-ui-types
Version:
为 uv-ui 组件提供 TypeScript 类型
2,555 lines (2,506 loc) • 216 kB
text/typescript
interface AllowedComponentProps {
/**
* 小程序下不支持,请用 `view` 包裹
*/
class?: unknown;
/**
* 小程序下请用 `customStyle` 配置自定义样式
*/
style?: unknown;
}
interface VNodeProps {
key?: string | number | symbol;
ref?: unknown;
}
interface BaseComponent<T, K = any> {
new (): {
$props: AllowedComponentProps & VNodeProps & T;
$slots: K;
};
}
type Lang = "zh_CN" | "zh_TW" | "en";
type ColorType = "warning" | "success" | "primary" | "error" | "info";
type Effect = "light" | "dark";
type LoadingMode = "spinner" | "circle" | "semicircle";
type Shape = "circle" | "square";
type ImageMode = "scaleToFill" | "aspectFit" | "aspectFill" | "widthFix" | "heightFix" | "top" | "bottom" | "center" | "left" | "right" | "top left" | "top right" | "bottom left" | "bottom right";
type LinkType = "navigateTo" | "redirectTo" | "reLaunch" | "switchTab";
type Direction = "row" | "column";
type LabelPosition = "top" | "left";
type IconPlacement = "left" | "right";
type ButtonSize = "normal" | "large" | "mini";
type ButtonShape = "square" | "circle";
type ButtonFormType = "submit" | "rest";
type ButtonOpenType = "feedback" | "share" | "getUserInfo" | "contact" | "getPhoneNumber" | "launchApp" | "openSetting" | "chooseAvatar" | "uploadDouyinVideo" | "im" | "getAuthorize" | "lifestyle" | "contactShare" | "openGroupProfile" | "openGuildProfile" | "openPublicProfile" | "shareMessageToFriend" | "addFriend" | "addColorSign" | "addGroupApp" | "addToFavorites" | "chooseAddress" | "chooseInvoiceTitle" | "login" | "subscribe" | "favorite" | "watchLater" | "openProfile" | "agreePrivacyAuthorization";
interface ButtonProps {
/**
* 是否显示按钮的细边框
* @default true
*/
hairline?: boolean;
/**
* 按钮的样式类型
* @default "info"
*/
type?: ColorType;
/**
* 按钮的大小
* @default "normal"
*/
size?: ButtonSize;
/**
* 按钮外观形状
* @default "square"
*/
shape?: ButtonShape;
/**
* 按钮是否镂空,背景色透明
* @default false
*/
plain?: boolean;
/**
* 是否禁用
* @default false
*/
disabled?: boolean;
/**
* 按钮名称前是否带 loading 图标
* @default false
*/
loading?: boolean;
/**
* 加载中提示文字
* @default ""
*/
loadingText?: string;
/**
* 加载状态图标类型
* @default "spinner"
*/
loadingMode?: string;
/**
* 加载图标大小
* @default 15
*/
loadingSize?: string | number;
/**
* 开放能力
* @default ""
*/
openType?: ButtonOpenType;
/**
* 用于 <form> 组件,点击分别会触发 <form> 组件的 submit/reset 事件
* @default ""
*/
formType?: ButtonFormType;
/**
* 打开 APP 时,向 APP 传递的参数,open-type=launchApp时有效 (注:只微信小程序、QQ小程序有效)
* @default ""
*/
appParameter?: string;
/**
* 指定是否阻止本节点的祖先节点出现点击态,微信小程序有效(默认 true)
* @default true
*/
hoverStopPropagation?: boolean;
/**
* 指定返回用户信息的语言
* @default "en"
*/
lang?: Lang;
/**
* 会话来源,openType="contact"时有效
* @default ""
*/
sessionFrom?: string;
/**
* 会话内消息卡片标题,openType="contact"时有效
* @default ""
*/
sendMessageTitle?: string;
/**
* 会话内消息卡片点击跳转小程序路径,openType="contact"时有效
* @default ""
*/
sendMessagePath?: string;
/**
* 会话内消息卡片图片,openType="contact"时有效
* @default ""
*/
sendMessageImg?: string;
/**
* 是否显示会话内消息卡片,设置此参数为 true,用户进入客服会话会在右下角显示"可能要发送的小程序"提示,用户点击后可以快速发送小程序消息,openType="contact"时有效
* @default false
*/
showMessageCard?: boolean;
/**
* 额外传参参数,用于小程序的data-xxx属性,通过target.dataset.name获取
* @default ""
*/
dataName?: string;
/**
* 节流,一定时间内只能触发一次,单位毫秒
* @default 0
*/
throttleTime?: string | number;
/**
* 按住后多久出现点击态,单位毫秒
* @default 0
*/
hoverStartTime?: string | number;
/**
* 手指松开后点击态保留时间,单位毫秒
* @default 200
*/
hoverStayTime?: string | number;
/**
* 按钮文字,之所以通过props传入,是因为slot传入的话(注:nvue中无法控制文字的样式)
* @default ""
*/
text?: string | number;
/**
* 按钮图标
* @default ""
*/
icon?: string;
/**
* 按钮图大小
* @version `1.0.9`
* @default ""
*/
iconSize?: string | number;
/**
* 按钮颜色
* @default ""
*/
iconColor?: string;
/**
* 按钮颜色,支持传入linear-gradient渐变色
* @default ""
*/
color?: string;
/**
* 自定义按钮文字的样式,避免设置customStyle设置覆盖不了样式的情况
* @default ""
*/
customTextStyle?: Record<string, any>;
/**
* 定义需要用到的外部样式
* @default ""
*/
customStyle?: string | Record<string, any>;
}
interface ButtonEvents {
/**
* 按钮点击,请勿使用@tap点击事件,微信小程序无效,返回值为点击事件及参数
* @description 阻止事件冒泡:vue2 使用 `@click.native.stop`, vue3 使用 view 包裹按钮,在 view 写 `@click.stop`
*/
["onClick"]?: (...args: any[]) => any;
/**
* 获取用户手机号回调,open-type="getPhoneNumber"生效
*/
["onGetphonenumber"]?: (...args: any[]) => any;
/**
* 用户点击该按钮时,会返回获取到的用户信息,从返回参数的detail中获取到的值同uni.getUserInfo,open-type="getUserInfo"生效
*/
["onGetuserinfo"]?: (...args: any[]) => any;
/**
* 当使用开放能力时,发生错误的回调 ,open-type="launchApp"生效
*/
["onError"]?: (...args: any[]) => any;
/**
* 从小程序打开 App 成功的回调,open-type="launchApp"生效
*/
["onOpensetting"]?: (...args: any[]) => any;
/**
* 打开 APP 成功的回调,open-type="launchApp"生效
*/
["onLaunchapp"]?: (...args: any[]) => any;
/**
* 客服消息回调,open-type="contact"生效
*/
["onContact"]?: (...args: any[]) => any;
/**
* 获取用户头像回调,open-type="chooseAvatar"生效
*/
["onChooseavatar"]?: (...args: any[]) => any;
/**
* 添加群应用的回调,open-type="addGroupApp"生效
*/
["onAddgroupapp"]?: (...args: any[]) => any;
/**
* 调起用户编辑并选择收货地址的回调,open-type="chooseAddress"生效
*/
["onChooseaddress"]?: (...args: any[]) => any;
/**
* 用户选择发票抬头的回调,open-type="chooseInvoiceTitle"生效
*/
["onChooseinvoicetitle"]?: (...args: any[]) => any;
/**
* 订阅消息授权回调,open-type="subscribe"生效
*/
["onSubscribe"]?: (...args: any[]) => any;
/**
* 登录回调,open-type="login"生效
*/
["onLogin"]?: (...args: any[]) => any;
/**
* 监听跳转IM的成功回调,open-type="im"生效
*/
["onIm"]?: (...args: any[]) => any;
}
interface ButtonSlots {
/**
* 默认插槽,按钮文本,建议统一使用text参数,保证样式的统一性
*/
["default"]?: () => any;
/**
* 后置插槽,方便在按钮文字后面增加图标等
*/
["suffix"]?: () => any;
}
interface _Button extends BaseComponent<ButtonProps & ButtonEvents, ButtonSlots> {
}
declare global {
namespace UniHelper {
type UvButtonOpenType = ButtonOpenType;
type UvButtonProps = ButtonProps;
type UvButtonEvents = ButtonEvents;
type UvButton = _Button;
}
}
declare module "vue" {
interface GlobalComponents {
UvButton: _Button;
}
}
interface Action {
/**
* 小程序的打开方式
* @default ""
*/
openType?: ButtonOpenType;
/**
* 该菜单是否禁用
* @default false
*/
disabled?: boolean;
/**
* 该菜单是否处于加载状态
* @default false
*/
loading?: boolean;
/**
* 该菜单的标题
* @default ""
*/
name?: string;
/**
* 该菜单的描述
* @default ""
*/
subname?: string;
/**
* 该菜单name文字的大小,单位px(rpx)
* @default "16px"
*/
fontSize?: string;
/**
* 该菜单name文字的颜色
* @default "#303133"
*/
color?: string;
}
interface ActionSheetProps {
/**
* 设置标题
* @default ""
*/
title?: string;
/**
* 选项上方的描述信息
* @default ""
*/
description?: string;
/**
* 按钮的文字数组
* @default []
*/
actions?: Action[];
/**
* 取消按钮的文字,不为空时显示按钮
* @default ""
*/
cancelText?: string;
/**
* 是否开启底部安全区适配
* @default false
*/
safeAreaInsetBottom?: boolean;
/**
* 点击遮罩是否允许关闭组件
* @default true
*/
closeOnClickOverlay?: boolean;
/**
* 点击某个菜单项时是否关闭组件
* @default true
*/
closeOnClickAction?: boolean;
/**
* 圆角值,默认无圆角
* @default 0
*/
round?: string | number;
/**
* 指定返回用户信息的语言
* @default "en"
*/
lang?: Lang;
/**
* 会话来源,open-type="contact"时有效。只微信小程序有效
* @default ""
*/
sessionFrom?: string;
/**
* 会话内消息卡片标题,openType="contact"时有效
* @default ""
*/
sendMessageTitle?: string;
/**
* 会话内消息卡片点击跳转小程序路径,openType="contact"时有效
* @default ""
*/
sendMessagePath?: string;
/**
* 会话内消息卡片图片,openType="contact"时有效
* @default ""
*/
sendMessageImg?: string;
/**
* 是否显示会话内消息卡片,设置此参数为 true,用户进入客服会话会在右下角显示"可能要发送的小程序"提示,用户点击后可以快速发送小程序消息,openType="contact"时有效
* @default false
*/
showMessageCard?: boolean;
/**
* 打开 APP 时,向 APP 传递的参数,openType=launchApp 时有效
* @default ""
*/
appParameter?: string;
}
interface ActionSheetEvents {
/**
* 点击ActionSheet列表项时触发
*/
["onSelect"]?: (e: any) => any;
/**
* 点击取消按钮时触发。点击遮罩触发该事件需要设置:closeOnClickOverlay="true"
*/
["onClose"]?: () => any;
/**
* 用户点击该按钮时,会返回获取到的用户信息,回调的 detail 数据与 wx.getUserInfo 返回的一致,openType="getUserInfo"时有效
*/
["onGetuserinfo"]?: (...args: any[]) => any;
/**
* 获取用户手机号回调,openType="getPhoneNumber"时有效
*/
["onGetphonenumber"]?: (...args: any[]) => any;
/**
* 当使用开放能力时,发生错误的回调,openType="error"时有效
*/
["onError"]?: (...args: any[]) => any;
/**
* 打开 APP 成功的回调,openType="launchApp"时有效
*/
["onLaunchapp"]?: (...args: any[]) => any;
/**
* 在打开授权设置页后回调,openType="openSetting"时有效
*/
["onOpensetting"]?: (...args: any[]) => any;
}
interface _ActionSheet extends BaseComponent<ActionSheetProps & ActionSheetEvents> {
}
interface ActionSheetInstance {
/**
* 弹出操作菜单组件
*/
open: () => any;
/**
* 关闭操作菜单组件
*/
close: () => any;
}
declare global {
namespace UniHelper {
type UvActionSheetActionItem = Action;
type UvActionSheetProps = ActionSheetProps;
type UvActionSheetEvents = ActionSheetEvents;
type UvActionSheet = _ActionSheet;
type UvActionSheetInstance = ActionSheetInstance;
}
}
declare module "vue" {
interface GlobalComponents {
UvActionSheet: _ActionSheet;
}
}
interface AlbumProps {
/**
* 图片地址列表
* @description 支持 Array<String> | Array<Object>形式
* @default ""
*/
urls?: (string | Record<string, any>)[];
/**
* 指定从数组的对象元素中读取哪个属性作为图片地址
* @default ""
*/
keyName?: string;
/**
* 单图时,图片长边的长度
* @default 180
*/
singleSize?: string | number;
/**
* 多图时,图片边长
* @default 70
*/
multipleSize?: string | number;
/**
* 多图时,图片水平和垂直之间的间隔
* @default 6
*/
space?: string | number;
/**
* 单图时,图片缩放裁剪的模式
* @default "scaleToFill"
*/
singleMode?: ImageMode;
/**
* 多图时,图片缩放裁剪的模式
* @default "aspectFill"
*/
multipleMode?: ImageMode;
/**
* 最多展示的图片数量,超出时最后一个位置将会显示剩余图片数量
* @default 9
*/
maxCount?: string | number;
/**
* 是否可以预览图片
* @default true
*/
previewFullImage?: boolean;
/**
* 每行展示图片数量,如设置,singleSize和multipleSize将会无效
* @default 3
*/
rowCount?: string | number;
/**
* 超出maxCount时是否显示查看更多的提示
* @default true
*/
showMore?: boolean;
}
interface AlbumEvents {
/**
* 某些特殊的情况下,需要让文字与相册的宽度相等,这里事件的形式对外发送
*/
onAlbumWidth?: (width: string | number) => any;
}
interface _Album extends BaseComponent<AlbumProps & AlbumEvents> {
}
declare global {
namespace UniHelper {
type UvAlbumProps = AlbumProps;
type UvAlbumEvents = AlbumEvents;
type UvAlbum = _Album;
}
}
declare module "vue" {
interface GlobalComponents {
UvAlbum: _Album;
}
}
interface AlertProps {
/**
* 显示的文字
* @default ""
*/
title?: string;
/**
* 使用预设的颜色
* @default "warning"
*/
type?: ColorType;
/**
* 辅助性文字,颜色比title浅一点,字号也小一点,可选
* @default ""
*/
description?: string;
/**
* 关闭按钮(默认为叉号icon图标)
* @default false
*/
closable?: boolean;
/**
* 是否显示左边的辅助图标
* @default false
*/
showIcon?: boolean;
/**
* 主题
*/
effect?: Effect;
/**
* 文字是否居中
* @default false
*/
center?: boolean;
/**
* 字体大小,单位rpx或px
* @default 14
*/
fontSize?: string | number;
/**
* 自定义外部样式
* @default ""
*/
customStyle?: string | Record<string, any>;
}
interface AlertEvents {
/**
* 点击组件时触发
*/
["onClick"]?: () => any;
}
interface _Alert extends BaseComponent<AlertProps & AlertEvents> {
}
declare global {
namespace UniHelper {
type UvAlertProps = AlertProps;
type UvAlertEvents = AlertEvents;
type UvAlert = _Alert;
}
}
declare module "vue" {
interface GlobalComponents {
UvAlert: _Alert;
}
}
interface AvatarProps {
/**
* 头像路径,如加载失败,将会显示默认头像(不能为相对路径)
* @default ""
*/
src?: string;
/**
* 头像形状
* @default "circle"
*/
shape?: Shape;
/**
* 头像尺寸,可以为指定字符串(large, default, mini),或者数值
* @default 40
*/
size?: string | number;
/**
* 头像图片的裁剪类型,与uni的image组件的mode参数一致,如效果达不到需求,可尝试传widthFix值
* @default "scaleToFill"
*/
mode?: ImageMode;
/**
* 用文字替代图片,级别优先于src
* @default ""
*/
text?: string;
/**
* 背景颜色,一般显示文字时用
* @default "#c0c4cc"
*/
bgColor?: string;
/**
* 文字颜色
* @default "#ffffff"
*/
color?: string;
/**
* 文字大小
* @default 18
*/
fontSize?: string | number;
/**
* 显示的图标
* @default ""
*/
icon?: string;
/**
* 显示小程序头像,只对百度,微信,QQ小程序有效
* @default false
*/
mpAvatar?: boolean;
/**
* 是否使用随机背景色
* @default false
*/
randomBgColor?: boolean;
/**
* 加载失败的默认头像(组件有内置默认图片)
* @default ""
*/
defaultUrl?: string;
/**
* 如果配置了randomBgColor为true,且配置了此值,则从默认的背景色数组中取出对应索引的颜色值,取值0-19之间
* @default ""
*/
colorIndex?: string | number;
/**
* 组件标识符
* @default "level"
*/
name?: string;
/**
* 自定义外部样式
* @default ""
*/
customStyle?: string | Record<string, any>;
}
interface AvatarEvents {
/**
* 头像被点击
* @param {string} index 用户传递的标识符
*/
["onClick"]?: (index: string) => any;
}
interface _Avatar extends BaseComponent<AvatarProps & AvatarEvents> {
}
declare global {
namespace UniHelper {
type UvAvatarProps = AvatarProps;
type UvAvatarEvents = AvatarEvents;
type UvAvatar = _Avatar;
}
}
declare module "vue" {
interface GlobalComponents {
UvAvatar: _Avatar;
}
}
interface AvatarGroupProps {
/**
* 头像图片组
* @default []
*/
urls?: string[];
/**
* 最多展示的头像数量
* @default 5
*/
maxCount?: string | number;
/**
* 头像形状
* @default "circle"
*/
shape?: Shape;
/**
* 图片裁剪模式
* @default "aspectFill"
*/
mode?: ImageMode;
/**
* 超出maxCount时是否显示查看更多的提示
* @default true
*/
showMore?: boolean;
/**
* 头像大小
* @default 40
*/
size?: string | number;
/**
* 指定从数组的对象元素中读取哪个属性作为图片地址
* @default ""
*/
keyName?: string;
/**
* 头像之间的遮挡比例(0.4代表遮挡40%)
* @default 0.5
*/
gap?: string | number;
/**
* 需额外显示的值,如设置则优先于内部的urls.length - maxCount值
* @default ""
*/
extraValue?: string | number;
}
interface AvatarGroupEvents {
/**
* 头像组更多点击
*/
["onShowMore"]?: () => any;
}
interface _AvatarGroup extends BaseComponent<AvatarGroupProps & AvatarGroupEvents> {
}
declare global {
namespace UniHelper {
type UvAvatarGroupProps = AvatarGroupProps;
type UvAvatarGroupEvents = AvatarGroupEvents;
type UvAvatarGroup = _AvatarGroup;
}
}
declare module "vue" {
interface GlobalComponents {
UvAvatarGroup: _AvatarGroup;
}
}
interface BackTopProps {
/**
* 按钮形状
* @default "circle"
*/
mode?: Shape;
/**
* uv-ui内置图标名称,或图片路径
* @default "arrow-upward"
*/
icon?: string;
/**
* 返回顶部按钮的提示文字
* @default ""
*/
text?: string;
/**
* 返回顶部过程中的过渡时间,单位ms
* @default 100
*/
duration?: string | number;
/**
* 页面的滚动距离,通过onPageScroll生命周期获取
* @default 0
*/
scrollTop?: string | number;
/**
* 滚动条滑动多少距离时显示,单位px(rpx)
* @default 400
*/
top?: string | number;
/**
* 返回按钮位置到屏幕底部的距离,单位px(rpx)
* @default 100
*/
bottom?: string | number;
/**
* 返回按钮位置到屏幕右边的距离,单位px(rpx)
* @default 20
*/
right?: string | number;
/**
* 返回顶部按钮的层级
* @default 9
*/
zIndex?: string | number;
/**
* 图标的样式,对象形式
* @default ""
*/
iconStyle?: Record<string, any>;
/**
* 按钮外层的自定义样式
*/
customStyle?: string | Record<string, any>;
}
interface BackTopSlots {
/**
* 自定义返回按钮的所有内容
*/
["default"]?: () => any;
}
interface _BackTop extends BaseComponent<BackTopProps, BackTopSlots> {
}
interface BackTopInstance {
/**
* 自定义内容的时,可以调用此方法返回顶部
*/
backToTop: () => any;
}
declare global {
namespace UniHelper {
type UvBackTopProps = BackTopProps;
type UvBackTop = _BackTop;
type UvBackTopInstance = BackTopInstance;
}
}
declare module "vue" {
interface GlobalComponents {
UvBackTop: _BackTop;
}
}
type BadgeShape = "circle" | "horn";
type BadgeNumberType = "overflow" | "ellipsis" | "limit";
interface BadgeProps {
/**
* 展示的数字,大于 max 时显示为 ${max}+;为0且show-zero为false时隐藏
* @default ""
*/
value?: string | number;
/**
* 不展示数字,只有一个小点
* @default false
*/
isDot?: boolean;
/**
* 组件是否显示
* @default true
*/
show?: boolean;
/**
* 最大值,超过最大值会显示 '{max}+'
* @default 99
*/
max?: string | number;
/**
* 主题类型
* @default "error"
*/
type?: ColorType;
/**
* 当数值为 0 时,是否展示 Badge
* @default false
*/
showZero?: boolean;
/**
* 背景颜色,优先级比type高。如设置该属性,type参数就会失效
* @default ""
*/
bgColor?: string;
/**
* 字体颜色
* @default "#ffffff"
*/
color?: string;
/**
* 徽标形状
* @default "circle"
*/
shape?: BadgeShape;
/**
* 置数字的显示方式
* @default "overflow"
*/
numberType?: BadgeNumberType;
/**
* 是否反转背景和字体颜色
* @default false
*/
inverted?: boolean;
/**
* 组件是否绝对定位,为true时,offset参数才有效
* @default false
*/
absolute?: boolean;
/**
* 设置badge的位置偏移,格式为 [x, y],也即设置的为top和right的值,absolute为true时有效
* @default ""
*/
offset?: (string | number)[];
/**
* 自定义外部样式
* @default ""
*/
customStyle?: string | Record<string, any>;
}
interface _Badge extends BaseComponent<BadgeProps> {
}
declare global {
namespace UniHelper {
type UvBadgeProps = BadgeProps;
type UvBadge = _Badge;
}
}
declare module "vue" {
interface GlobalComponents {
UvBadge: _Badge;
}
}
type CalendarMode = "single" | "multiple" | "range";
interface Day {
bottomInfo?: string;
/**
* 日期
*/
date?: Date;
/**
* 天数
*/
day?: number;
/**
* 是否禁止点击该日期
*/
disabled?: boolean;
/**
* 是否显示右上角红点
*/
dot?: boolean;
/**
* 月份
*/
month?: number;
/**
* 头部文案
*/
topInfo?: string;
/**
* 星期几
*/
week?: number;
}
interface CalendarProps {
/**
* 标题内容
* @default "日期选择"
*/
title?: string;
/**
* 是否显示标题
* @default true
*/
showTitle?: boolean;
/**
* 是否显示副标题
* @default true
*/
showSubtitle?: boolean;
/**
* 日期类型选择
* @description multiple-可以选择多个日期,range-选择日期范围(多个月需配合monthNum属性使用)
* @default "single"
*/
mode?: CalendarMode;
/**
* mode=range时,第一个日期底部的提示文字
* @default "开始"
*/
startText?: string;
/**
* mode=range时,最后一个日期底部的提示文字
* @default "结束"
*/
endText?: string;
/**
* 自定义列表
* @default []
*/
customList?: string[];
/**
* 主题色,对底部按钮和选中日期有效
* @default "#3c9cff"
*/
color?: string;
/**
* 最小的可选日期
* @default 0
*/
minDate?: string | number;
/**
* 最大可选日期
* @default 0
*/
maxDate?: string | number;
/**
* 默认选中的日期,mode为multiple或range是必须为数组格式
* @default null
*/
defaultDate?: string | Date | (string | Date)[];
/**
* mode=multiple时,最多可选多少个日期
* @default Number.MAX_SAFE_INTEGER
*/
maxCount?: string | number;
/**
* 日期行高
* @default 56
*/
rowHeight?: string | number;
/**
* 是否显示农历
* @default false
*/
showLunar?: boolean;
/**
* 是否显示月份背景色
* @default true
*/
showMark?: boolean;
/**
* 确定按钮的文字
* @default "确定"
*/
confirmText?: string;
/**
* 确认按钮处于禁用状态时的文字
* @default "确定"
*/
confirmDisabledText?: string;
/**
* 是否允许点击遮罩关闭日历
* @description (注意:关闭事件需要自行处理,只会在开启closeOnClickOverlay后点击遮罩层执行close回调)
* @default false
*/
closeOnClickOverlay?: boolean;
/**
* 是否允许点击确认按钮关闭日历
* @description 设置为false不影响confirm事件返回
* @default true
*/
closeOnClickConfirm?: boolean;
/**
* 是否为只读状态
* @description 只读状态下禁止选择日期
* @default false
*/
readonly?: boolean;
/**
* 日期区间最多可选天数
* @description 默认无限制,mode = range时有效
* @default 无限制
*/
maxRange?: string | number;
/**
* 范围选择超过最多可选天数时的提示文案
* @description mode = range时有效
* @default "选择天数不能超过 xx 天"
*/
rangePrompt?: string;
/**
* 范围选择超过最多可选天数时,是否展示提示文案
* @description mode = range时有效
* @default true
*/
showRangePrompt?: boolean;
/**
* 是否允许日期范围的起止时间为同一天
* @description mode = range时有效
* @default false
*/
allowSameDay?: boolean;
/**
* 圆角值
* @description 默认无圆角
* @default 0
*/
round?: string | number;
/**
* 最大展示的月份数量
* @default 3
*/
monthNum?: string | number;
}
interface CalendarEvents {
/**
* 日期选择完成后触发,若show-confirm为true,则点击确认按钮后触发
*/
["onConfirm"]?: (...args: any[]) => any;
/**
* 日历关闭时触发
*/
["onClose"]?: (...args: any[]) => any;
/**
* 点击日期触发
*/
["onChange"]?: (...args: any[]) => any;
}
interface _Calendar extends BaseComponent<CalendarProps & CalendarEvents> {
}
interface CalendarInstance {
/**
* 弹出日历组件
*/
open: () => any;
/**
* 关闭日历组件,可能在:confirmClosePopup = "false"用到
*/
close: () => any;
/**
* 日期格式化函数
*/
setFormatter: (formatter: (day: Day) => Day) => any;
}
declare global {
namespace UniHelper {
type UvCalendarProps = CalendarProps;
type UvCalendarEvents = CalendarEvents;
type UvCalendar = _Calendar;
type UvCalendarInstance = CalendarInstance;
}
}
declare module "vue" {
interface GlobalComponents {
UvCalendar: _Calendar;
}
}
type CalendarsMode = "multiple" | "range";
interface SelectedItem {
/**
* 日期,格式:YYYY-mm-dd
*/
date?: string;
/**
* 底部文案
*/
info?: string;
/**
* 底部文案颜色
*/
infoColor?: string;
/**
* 头部文案
*/
topinfo?: string;
/**
* 头部文案颜色
*/
topinfoColor?: string;
/**
* 是否显示右上角红点
*/
badge?: boolean;
/**
* 是否禁止点击该日期
*/
disable?: boolean;
}
interface CalendarsProps {
/**
* 自定义默认选中日期
* @description 不传默认为今天。mode="multiple"或mode="range"时,该值为数组,例 ['2023-08-26','2023-08-29']。mode不传或字符串,例如2023-08-26,即为单日期模式
* @default new Date()
*/
date?: string;
/**
* 显示农历
* @default false
*/
lunar?: boolean;
/**
* 日期类型选择
* @description 可选值:不填 | multiple | range,分别为单日期选择,多日期选择,范围选择
* @default ""
*/
mode?: CalendarsMode;
/**
* 插入模式
* @description 可选值,true:插入模式;false:弹窗模式;默认为插入模式
* @default false
*/
insert?: boolean;
/**
* 弹窗模式是否清空上次选择内容
* @default true
*/
clearDate?: boolean;
/**
* 打点
* @description 期待格式[{date: '2019-06-27', info: '签到', disable: false}]
* @default ""
*/
selected?: SelectedItem[];
/**
* 日期选择范围-开始日期
* @description 格式如:"2023-01-01"
* @default ""
*/
startDate?: string;
/**
* 日期选择范围-结束日期
* @description 格式如:"2023-02-01"
* @default ""
*/
endDate?: string;
/**
* 是否显示月份为背景
* @default true
*/
showMonth?: boolean;
/**
* 弹窗模式,圆角
* @default "8px"
*/
round?: string | number;
/**
* 主题颜色
* @default "#3c9cff"
*/
color?: string;
/**
* 确认按钮颜色
* @default "#3c9cff"
*/
confirmColor?: string;
/**
* 取消按钮颜色
* @default "#909193"
*/
cancelColor?: string;
/**
* 点击遮罩是否关闭弹窗
* @default true
*/
closeOnClickOverlay?: boolean;
/**
* range为true时,第一个日期底部的提示文字
* @default "开始"
*/
startText?: string;
/**
* range为true时,最后一个日期底部的提示文字
* @default "结束"
*/
endText?: string;
/**
* 是否允许日期范围的起止时间为同一天,mode = range时有效
* @version `1.0.11`
* @default false
*/
allowSameDay?: boolean;
/**
* 是否为只读状态,只读状态下禁止选择日期
* @version `1.0.15`
* @default false
*/
readonly?: boolean;
}
interface CalendarsEvents {
/**
* 点击确定按钮触发,返回日期相关参数
*/
["onConfirm"]?: (...args: any[]) => any;
/**
* 关闭日历时触发
*/
["onClose"]?: () => any;
/**
* 点击日期时触发,返回日期相关参数
*/
["onChange"]?: (...args: any[]) => any;
/**
* 选择年月确认时触发,参数格式 `{ year: 2030, month: '08' }`
*/
["onMonthSwitch"]?: (...args: any[]) => any;
}
interface _Calendars extends BaseComponent<CalendarsProps & CalendarsEvents> {
}
interface CalendarsInstance {
/**
* `insert` 为 `false` 时,调用此方法弹出日历组件
*/
open: () => any;
}
declare global {
namespace UniHelper {
type UvCalendarsMode = CalendarsMode;
type UvCalendarsSelectedItem = SelectedItem;
type UvCalendarsProps = CalendarsProps;
type UvCalendarsEvents = CalendarsEvents;
type UvCalendarsInstance = CalendarsInstance;
type UvCalendars = _Calendars;
}
}
declare module "vue" {
interface GlobalComponents {
UvCalendars: _Calendars;
}
}
type CellArrowDirection = "left" | "right" | "up" | "down";
type CellSize = "large" | "normal";
interface CellProps {
/**
* 左侧标题
* @default ""
*/
title?: string | number;
/**
* 标题下方的描述信息
* @default ""
*/
label?: string | number;
/**
* 右侧的内容
* @default ""
*/
value?: string | number;
/**
* 左侧图标名称,或者图片链接(本地文件建议使用绝对地址)
* @default ""
*/
icon?: string;
/**
* 是否禁用cell
* @default false
*/
disabled?: boolean;
/**
* 是否显示下边框
* @default true
*/
border?: boolean;
/**
* 内容是否垂直居中(主要是针对右侧的value部分)
* @default false
*/
center?: boolean;
/**
* 点击后跳转的URL地址
* @default ""
*/
url?: string;
/**
* 链接跳转的方式,内部使用的是uv-ui封装的route方法,可能会进行拦截操作
* @default "navigateTo"
*/
linkType?: LinkType;
/**
* 是否开启点击反馈(表现为点击时加上灰色背景)
* @default false
*/
clickable?: boolean;
/**
* 是否展示右侧箭头并开启点击反馈
* @default false
*/
isLink?: boolean;
/**
* 是否显示表单状态下的必填星号(此组件可能会内嵌入input组件)
* @default false
*/
required?: boolean;
/**
* 右侧的图标箭头
* @default "arrow-right"
*/
rightIcon?: string;
/**
* 右侧箭头的方向
* @default "right"
*/
arrowDirection?: CellArrowDirection;
/**
* 左侧图标样式
* @default ""
*/
iconStyle?: string | Record<string, any>;
/**
* 右侧箭头图标的样式
* @default ""
*/
rightIconStyle?: string | Record<string, any>;
/**
* 标题的样式
* @default ""
*/
titleStyle?: string | Record<string, any>;
/**
* 单位元的大小
* @default ""
*/
size?: CellSize;
/**
* 点击cell是否阻止事件传播
* @default true
*/
stop?: boolean;
/**
* 标识符,用于在click事件中进行返回
* @default ""
*/
name?: string | number;
/**
* 自定义单元格样式,如:设置padding等样式。如果想在isLink为true状态下不表现出点击态,可以使用此属性设置背景颜色
* @default ""
*/
cellStyle?: string | Record<string, any>;
/**
* 自定义外部样式,如:设置边框等样式
* @default ""
*/
customStyle?: string | Record<string, any>;
}
interface CellEvents {
/**
* 点击cell列表时触发
* @param {string|number} name props的name参数标识符
*/
["onClick"]?: (name: string | number) => any;
}
interface CellSlots {
/**
* 自定义左侧标题部分的内容,如需使用,请勿定义title参数,或赋值null即可
*/
["title"]?: () => any;
/**
* 自定义右侧内容,如需使用,请勿定义value参数,或赋值null即可
*/
["value"]?: () => any;
/**
* 自定义左侧的图标
*/
["icon"]?: () => any;
/**
* 自定义右侧图标内容,需设置arrow为false才起作用
*/
["right-icon"]?: () => any;
/**
* 自定义标题下方的描述内容
*/
["label"]?: () => any;
}
interface _Cell extends BaseComponent<CellProps & CellEvents, CellSlots> {
}
declare global {
namespace UniHelper {
type UvCellProps = CellProps;
type UvCellEvents = CellEvents;
type UvCell = _Cell;
}
}
declare module "vue" {
interface GlobalComponents {
UvCell: _Cell;
}
}
interface CellGroupProps {
/**
* 分组标题
* @default ""
*/
title?: string;
/**
* 是否显示分组标题的下边框
* @default true
*/
border?: boolean;
/**
* 用户自定义外部样式
* @default ""
*/
customStyle?: string | Record<string, any>;
}
interface _CellGroup extends BaseComponent<CellGroupProps> {
}
declare global {
namespace UniHelper {
type UvCellGroupProps = CellGroupProps;
type UvCellGroup = _CellGroup;
}
}
declare module "vue" {
interface GlobalComponents {
UvCellGroup: _CellGroup;
}
}
interface CheckboxProps {
/**
* checkbox的名称
* @default ""
*/
name?: string | number | boolean;
/**
* 形状
* @default "square"
*/
shape?: Shape;
/**
* 整体的大小
* @default ""
*/
size?: string | number;
/**
* 是否默认选中
* @default false
*/
checked?: boolean;
/**
* 是否禁用
* @default false
*/
disabled?: boolean;
/**
* 选中状态下的颜色,如设置此值,将会覆盖parent的activeColor值
* @default ""
*/
activeColor?: string;
/**
* 未选中的颜色
* @default ""
*/
inactiveColor?: string;
/**
* 图标的大小,单位px
* @default ""
*/
iconSize?: string | number;
/**
* 图标颜色
* @default ""
*/
iconColor?: string;
/**
* label提示文字
* @default ""
*/
label?: string;
/**
* label的字体大小,px单位
* @default ""
*/
labelSize?: string | number;
/**
* label的颜色
* @default ""
*/
labelColor?: string;
/**
* 是否禁止点击提示语选中复选框
* @default false
*/
labelDisabled?: boolean;
}
interface CheckboxEvents {
/**
* 某个checkbox状态发生变化时触发(选中状态)
* @param {string|number|boolean} name 通过props传递的name参数
*/
["onChange"]?: (name: string | number | boolean) => any;
}
interface CheckboxSlots {
/**
* 自定义label内容,自定义后,labelDisabled设置将会失效
*/
["default"]?: () => any;
/**
* 自定义选中图标
*/
["icon"]?: () => any;
}
interface _Checkbox extends BaseComponent<CheckboxProps & CheckboxEvents, CheckboxSlots> {
}
declare global {
namespace UniHelper {
type UvCheckboxProps = CheckboxProps;
type UvCheckboxEvents = CheckboxEvents;
type UvCheckbox = _Checkbox;
}
}
declare module "vue" {
interface GlobalComponents {
UvCheckbox: _Checkbox;
}
}
type CheckboxGroupIconPlacement = "left" | "right";
interface CheckboxGroupProps {
/**
* 选中name的值,eg:['a','b']
* @default []
*/
value?: string[];
/**
* 形状
* @default "square"
*/
shape?: Shape;
/**
* 是否禁用全部checkbox
* @default false
*/
disabled?: boolean;
/**
* 选中状态下的颜色,如子Checkbox组件设置此值,将会覆盖本值
* @default "#2979ff"
*/
activeColor?: string;
/**
* 未选中的颜色
* @default "#c8c9cc"
*/
inactiveColor?: string;
/**
* 整个组件的尺寸,默认px。**注意:该参数和iconSize应该同步设置,才能改变选框大小**
* @default 18
*/
size?: string | number;
/**
* 布局方式
* @default "row"
*/
placement?: Direction;
/**
* label的字体大小,px单位
* @default 14
*/
labelSize?: string | number;
/**
* label的字体颜色
* @default "#303133"
*/
labelColor?: string;
/**
* 是否禁止点击文本操作
* @default false
*/
labelDisabled?: boolean;
/**
* 图标颜色
* @default "#ffffff"
*/
iconColor?: string;
/**
* 图标的大小,单位px
* @default 12
*/
iconSize?: string | number;
/**
* 勾选图标的对齐方式
* @default "left"
*/
iconPlacement?: CheckboxGroupIconPlacement;
/**
* 竖向配列时,是否显示下划线
* @default false
*/
borderBottom?: boolean;
/**
* 自定义样式,某些事件需要用到调整位置等作用
* @default ""
*/
customStyle?: string | Record<string, any>;
}
interface CheckGroupEvents {
/**
* 任一个checkbox状态发生变化时触发,回调为一个对象
*/
["onChange"]?: (...args: any[]) => any;
}
interface _CheckGroup extends BaseComponent<CheckboxGroupProps & CheckGroupEvents> {
}
declare global {
namespace UniHelper {
type UvCheckboxGroupProps = CheckboxGroupProps;
type UvCheckboxGroupEvents = CheckGroupEvents;
type UvCheckboxGroup = _CheckGroup;
}
}
declare module "vue" {
interface GlobalComponents {
UvCheckboxGroup: _CheckGroup;
}
}
interface CodeProps {
/**
* 倒计时所需的秒数
* @default 60
*/
seconds?: string | number;
/**
* 开始前的提示语
* @default "获取验证码"
*/
startText?: string;
/**
* 倒计时期间的提示语,必须带有字母"x"
* @default "X秒重新获取"
*/
changeText?: string;
/**
* 倒计结束的提示语
* @default "重新获取"
*/
endText?: string;
/**
* 是否在H5刷新或各端返回再进入时继续倒计时
* @default false
*/
keepRunning?: boolean;
/**
* 多个组件之间继续倒计时的区分key,见上方说明
* @default ""
*/
uniqueKey?: string;
}
interface CodeEvents {
/**
* 倒计时期间,每秒触发一次
* @param {string} text 当前剩余多少秒的状态
*/
["onChange"]?: (text: string) => any;
/**
* 开始倒计时触发
*/
["onStart"]?: () => any;
/**
* 结束倒计时触发
*/
["onEnd"]?: () => any;
}
interface _Code extends BaseComponent<CodeProps & CodeEvents> {
}
interface CodeInstance {
/**
* 开始倒计时
*/
start: () => any;
/**
* 结束当前正在进行中的倒计时,设置组件为可以重新获取验证码的状态
*/
reset: () => any;
/**
* 获取当前倒计时状态
*/
canGetCode: boolean;
}
declare global {
namespace UniHelper {
type UvCodeProps = CodeProps;
type UvCodeEvents = CodeEvents;
type UvCode = _Code;
type UvCodeInstance = CodeInstance;
}
}
declare module "vue" {
interface GlobalComponents {
UvCode: _Code;
}
}
type CodeInputMode = "box" | "line";
interface CodeInputProps {
/**
* 预置值
* @default ""
*/
value?: string | number;
/**
* 键盘弹起时,是否自动上推页面
* @default true
*/
adjustPosition?: boolean;
/**
* 输入字符个数
*/
maxlength?: string | number;
/**
* 是否用圆点填充
* @default false
*/
dot?: boolean;
/**
* 模式选择
* @default "box"
*/
mode?: CodeInputMode;
/**
* 是否细边框
* @default false
*/
hairline?: boolean;
/**
* 字符间的距离
* @default 10
*/
space?: string | number;
/**
* 是否自动获取焦点
* @default false
*/
focus?: boolean;
/**
* 字体和输入横线是否加粗
* @default false
*/
bold?: boolean;
/**
* 字体颜色
* @default "#606266"
*/
color?: string;
/**
* 字体大小,单位rpx
* @default 18
*/
fontSize?: string | number;
/**
* 输入框的大小,宽等于高
* @default 35
*/
size?: string | number;
/**
* 禁止点击输入框唤起系统键盘,自定义键盘改值必须为true
* @default false
*/
disabledKeyboard?: boolean;
/**
* 边框和线条颜色
* @default "#c9cacc"
*/
borderColor?: string;
/**
* 是否禁止输入"."符号
* @default true
*/
disabledDot?: boolean;
}
interface CodeInputEvents {
/**
* 输入内容发生改变时触发
* @param {string} value 当前输入的值
*/
["onChange"]?: (value: string) => any;
/**
* 输入字符个数达maxlength值时触发
* @param {string} value 当前输入的值
*/
["onFinish"]?: (value: string) => any;
}
interface _CodeInput extends BaseComponent<CodeInputProps & CodeInputEvents> {
}
declare global {
namespace UniHelper {
type UvCodeInputProps = CodeInputProps;
type UvCodeInputEvents = CodeInputEvents;
type UvCodeInput = _CodeInput;
}
}
declare module "vue" {
interface GlobalComponents {
UvCodeInput: _CodeInput;
}
}
type RowJustify = "start" | "flex-start" | "end" | "flex-end" | "center" | "around" | "space-around" | "between" | "space-between";
type RowAlign = "top" | "center" | "bottom";
interface RowProps {
/**
* 栅格间隔,左右各为此值的一半,单位任意
* @default 0
*/
gutter?: string | number;
/**
* 水平排列方式(微信小程序暂不支持)
* @default "start"
*/
justify?: RowJustify;
/**
* 垂直对齐方式
* @default "center"
*/
align?: RowAlign;
}
interface RowEvents {
/**
* 点击触发事件
*/
["onClick"]?: () => any;
}
interface _Row extends BaseComponent<RowProps & RowEvents> {
}
declare global {
namespace UniHelper {
type UvRowJustify = RowJustify;
type UvRowProps = RowProps;
type UvRowEvents = RowEvents;
type UvRow = _Row;
}
}
declare module "vue" {
interface GlobalComponents {
UvRow: _Row;
}
}
type ColAlign = "top" | "center" | "bottom" | "stretch";
type ColTextAlign = "left" | "center" | "right";
interface ColProps {
/**
* 栅格占据的列数,总12等分
* @default 0
*/
span?: string | number;
/**
* 分栏左边偏移,计算方式与span相同
* @default 0
*/
offset?: string | number;
/**
* 水平排列方式
* @default "start"
*/
justify?: RowJustify;
/**
* 垂直对齐方式
* @default "stretch"
*/
align?: ColAlign;
/**
* 文字水平对齐方式
* @default "left"
*/
textAlign?: ColTextAlign;
}
interface ColEvents {
/**
* col被点击,会阻止事件冒泡到row
*/
["onClick"]?: () => any;
}
interface _Col extends BaseComponent<ColProps & ColEvents> {
}
declare global {
namespace UniHelper {
type UvColProps = ColProps;
type UvColEvents = ColEvents;
type UvCol = _Col;
}
}
declare module "vue" {
interface GlobalComponents {
UvCol: _Col;
}
}
interface CollapseProps {
/**
* 当前展开面板uv-collapse-item属性name,非手风琴模式必须为数组,eg:['2']。手风琴模式为字符串或数字。
* @default ""
*/
value?: string | number | string[];
/**
* 是否手风琴模式
* @default false
*/
accordion?: boolean;
/**
* 是否显示外边框
* @default true
*/
border?: boolean;
}
interface CollapseEvents {
/**
* 当前激活面板展开/关闭时触发
* @param {string|string[]} activeNames 如果是手风琴模式,类型为String,否则为Array
*/
["onChange"]?: (activeNames: string | string[]) => any;
/**
* 当前激活面板展开时触发
* @param {string|string[]} activeNames 如果是手风琴模式,类型为String,否则为Array
*/
["onOpen"]?: (activeNames: string | string[]) => any;
/**
* 当前激活面板关闭时触发
* @param {string|string[]} activeNames 如果是手风琴模式,类型为String,否则为Array
*/
["onClose"]?: (activeNames: string | string[]) => any;
}
interface _Collapse extends BaseComponent<CollapseProps & CollapseEvents> {
}
interface CollapseInstance {
/**
* 重新初始化内部高度计算,用于异步获取内容的情形,请结合this.$nextTick()使用
*/
init: () => any;
}
declare global {
namespace UniHelper {
type UvCollapseProps = CollapseProps;
type UvCollapseEvents = CollapseEvents;
type UvCollapse = _Collapse;
type UvCollapseInstance = CollapseInstance;
}
}
declare module "vue" {
interface GlobalComponents {
UvCollapse: _Collapse;
}
}
interface CollapseItemProps {
/**
* 面板标题
* @default ""
*/
title?: string;
/**
* 标题右侧内容
* @default ""
*/
value?: string;
/**
* 是否禁止面板的展开和收起
* @default false
*/
disabled?: boolean;
/**
* 是否展示右侧箭头并开启点击反馈
* @default true
*/
isLink?: boolean;
/**
* 是否开启点击反馈
* @default true
*/
clickable?: boolean;
/**
* 是否显示内边框
* @default true
*/
border?: boolean;
/**
* 唯一标识符。如不设置,默认用当前collapse-item的索引值
* @default ""
*/
name?: string | number;
/**
* 标题左侧图标,可为绝对路径的图片或内置图标
* @default ""
*/
icon?: string;
/**
* 面板展开收起的过渡时间,单位ms
* @default 300
*/
duration?: number;
}
interface CollapseItemSlots {
/**
* 主体部分的内容
*/
["default"]?: () => any;
/**
* 标题内容
*/
["title"]?: () => any;
/**
* 左侧icon
*/
["icon"]?: () => any;
/**
* 右侧value
*/
["value"]?: () => any;
/**
* 右侧icon
*/
["right-icon"]?: () => any;
}
interface _CollapseItem extends BaseComponent<CollapseItemProps, CollapseItemSlots> {
}
declare global {
namespace UniHelper {
type UvCollapseItemProps = CollapseItemProps;
type UvCollapseItem = _CollapseItem;
}
}
declare module "vue" {
interface GlobalComponents {
UvCollapseItem: _CollapseItem;
}
}
interface CountDownProps {
/**
* 倒计时时长,单位ms
* @default 0
*/
time?: string | number;
/**
* 时间格式
* @default "HH:mm:ss"
*/
format?: string;
/**
* 是否自动开始倒计时
* @default true
*/
autoStart?: boolean;
/**
* 是否展示毫秒倒计时
* @default false
*/
millisecond?: boolean;
/**
* 自定义外部样式
* @default ""
*/
customStyle?: string | Record<string, any>;
}
interface CountDownEvents {
/**
* 过程中,倒计时变化时触发
* @param {any} time 剩余的时间
*/
["onChange"]?: (time: any) => any;
/**
* 倒计时结束
*/
["onFinish"]?: () => any;
}
interface _CountDown extends BaseComponent<CountDownProps & CountDownEvents> {
}
interface CountDownInstance {
/**
* 开始倒计时
*/
start: () => any;
/**
* 暂停倒计时
*/
pause: () => any;
/**
* 重置倒计时
*/
reset: () => any;
}
declare global {
namespace UniHelper {
type UvCountDownProps = CountDownProps;
type UvCountDownEvents = CountDownEvents;
type UvCountDownInstance = CountDownInstance;
type UvCountDown = _CountDown;
}
}
declare module "vue" {
interface GlobalComponents {
UvCountDown: _CountDown;
}
}
interface CountToProps {
/**
* 开始值
* @default 0
*/
startVal?: string | number;
/**
* 结束值
* @default 0
*/
endVal?: string | number;
/**
* 滚动过程所需的时间,单位ms
* @default 2000
*/
duration?: string | number;
/**
* 是否自动开始滚动
* @default true
*/
autoplay?: boolean;
/**
* 要显示的小数位数
* @default 0
*/
decimals?: string | number;
/**
* 小数位分割符号
* @default "."
*/
decimal?: string;
/**
* 滚动结束时,是否缓动结尾
* @default true
*/
useEasing?: boolean;
/**
* 字体颜色
* @default "#606266"
*/
color?: string;
/**
* 字体大小,单位默认px
* @default 22
*/
fontSize?: string | number;
/**
* 字体是否加粗
* @default false
*/
bold?: boolean;
/**
* 千位分隔符
* @default ""
*/
separator?: string;
/**
* 自定义外部样式
* @default ""
*/
customStyle?: string | Record<string, any>;
}
interface CountToEvents {
/**
* 数值滚动到目标值时触发
*/
["onEnd"]?: () => any;
}
interface _CountTo extends BaseComponent<CountToProps & CountToEvents> {
}
interface CountToInstance {
/**
* autoplay为false时,通过此方法启动滚动,调用即从头开始滚动
*/
start: () => any;
/**
* 暂定状态,从暂停状态开始滚动;或者滚动状态下,暂停
*/
restart: () => any;
/**
* 暂停滚动
*/
stop: () => any;
}
declare global {
namespace UniHelper {
type UvCountToProps = CountToProps;
type UvCountToEvents = CountToEvents;
type UvCountTo = _CountTo;
type UvCountToInstance = CountToInstance;
}
}
declare module "vue" {
interface GlobalComponents {
UvCountTo: _CountTo;
}
}
type DatetimePickerMode = "datetime" | "date" | "time" | "year-month" | "year";
interface DatetimePickerProps {
/**
* 绑定值
* @default ""
*/
modelValue: string | number;
/**
* 是否显示顶部的操作栏
* @default true
*/
showToolbar?: boolean;
/**
* 顶部标题
* @default ""
*/
title?: string;
/**
* 弹窗圆角
* @version `1.0.12`
* @default 0
*/
round?: string | number;
/**
* 展示格式
* @default "datetime"
*/
mode?: DatetimePickerMode;
/**
* 可选的最大时间(时间戳毫秒)
* @default 最大默认值为后10年
*/
maxDate?: number;
/**
* 是否清空上次选择
* @default false
*/
clearDate?: boolean;
/**
* 可选的最小时间(时间戳毫秒)
* @default 最小默认值为前10年
*/
minDate?: number;
/**
* 可选的最小小时,仅mode=time有效
* @default 0
*/
minHour?: number;
/**
* 可选的最大小时,仅mode=time有效
* @default 23
*/
maxHour?: number;
/**
* 可选的最小分钟,仅mode=time有效
* @default 0
*/
minMinute?: number;
/**
* 可选的最大分钟,仅mode=time有效
* @default 59
*/
maxMinute?: number;
/**
* 选项过滤函数
* @default null
*/
filter?: (type: "year" | "month" | "day", options: any[]) => any;
/**
* 输入过滤或格式化函数(如需兼容微信小程序,则只能通过setFormatter方法),上方示例有具体用法
* @default null
*/
formatter?: (type: "year" | "month" | "day", value: number) => any;
/**
* 是否显示加载中状态
* @default false
*/
loading?: boolean;
/**
* 各列中,单个选项的高度
* @default 44
*/
itemHeight?: string | number;
/**
* 取消按钮的文
* @default "取消"
*/
cancelText?: string;
/**
* 确认按钮的文字
* @default "确认"
*/
confirmText?: string;
/**
* 取消按钮的颜色
* @default "#909193"
*/
cancelColor?: string;
/**
* 确认按钮的颜色
* @default "#3c9cff"
*/
confirmColor?: string;
/**
* 每列中可见选项的数量
* @default 5
*/
visibleItemCount?: string | number;
/**
* 是否允许点击遮罩关闭时间选择器
* @default true
*/
closeOnClickOverlay?: boolean;
/**
* 是否允许点击确认关闭时间选择器
* @default true
*/
closeOnClickConfirm?: boolean;
}
interface DatetimePickerEvents {
/**
* 点击确定按钮时触发
* @param {number} value 所选时间戳
* @param {DatetimePickerMode} mode 当前模式
*/
["onConfirm"]?: (value: number, mode: DatetimePickerMode) => any;
/**
* 当选择值变化时触发
* @param {number} value 所选时间戳
* @param {DatetimePickerMode} mode 当前模式
*/
["onChange"]?: (value: number, mode: DatetimePickerMode) => any;
/**
* 点击取消按钮
*/
["onCancel"]?: () => any;
/**
* 关闭选择器时触发
*/
["onClose"]?: () => any;
}
interface _DatetimePicker extends BaseComponent<DatetimePickerProps & DatetimePickerEvents> {
}
interface DatetimePickerInstance {
/**
* 弹出时间选择器组件
*/
open: () => any;
/**
* 关闭时间选择器组件
*/
close: () => any;
/**
* 格式化函数
*/
setFormatter: (formatter: DatetimePickerProps["formatter"]) => any;
}
declare global {
namespace UniHelper {
type UvDatetimePickerMode = DatetimePickerMode;
type UvDatetimePickerProps = DatetimePickerProps;
type UvDatetimePickerEvents = DatetimePickerEvents;
type UvDatetimePicker = _DatetimePicker;
type UvDatetimePickerInstance = DatetimePickerInstance;
}
}
declare module "vue" {
interface GlobalComponents {
UvDatetimePicker: _DatetimePicker;
}
}
type DividerTextPosition = "center" | "left" | "right";
interface DividerProps {
/**
* 是否虚线
* @default false
*/
dashed?: boolean;
/**
* 是否细线
* @default true
*/
hairline?: boolean;
/**
* 是否以点替代文字,优先于text字段起作用
* @default false
*/
dot?: boolean;
/**
* 内容文本的位置
* @default "center"
*/
textPosition?: DividerTextPosition;
/**
* 文本内容
* @default ""
*/
text?: string | number;
/**
* 文本大小
* @default 14
*/
textSize?: string | number;
/**
* 文本颜色
* @default "#909399"
*/
textColor?: string;
/**
* 线条颜色
* @default "#dcdfe6"
*/
lineColor?: string;
}
interface DividerEvents {
/**
* divider组件被点击时触发
*/
["onClick"]?: () => any;
}
interface _Divider extends BaseComponent<DividerProps & DividerEvents> {
}
declare global {
namespace UniHelper {
type UvDividerProps = DividerProps;
type UvDividerEvents = DividerEvents;
type UvDivider = _Divider;
}
}
declare module "vue" {
interface GlobalComponents {
UvDivider: _Divider;
}
}
interface DropDownProps {
/**
* 组件唯一标识,需要手动传
* @default "UVDROPDOWN"
*/
sign?: string | number;
/**
* 默认值,表示参数value属于这里面的值,就说明是未选中即是默认展示的值。eg:上面示例中的{label: '全部',value: 'al