UNPKG

uview-plus

Version:

零云®uview-plus已兼容vue3支持多语言,120+全面的组件和便捷的工具会让您信手拈来。近期新增拖动排序、条码、图片裁剪、下拉刷新、虚拟列表、签名、Markdown等。

318 lines (287 loc) 10.1 kB
export interface RouteParam { type: "navigateTo" | "redirect" | "switchTab" | "reLaunch" | "navigateBack"; /** 路由地址 */ url: string; /** navigateBack页面后退时,回退的层数 */ delta?: number; /** 传递的参数 */ params?: {}; /** 窗口动画,只在APP有效 */ animationType?: string; /** 窗口动画持续时间,单位毫秒,只在APP有效 */ animationDuration?: number; /** 是否需要拦截 */ intercept?: boolean; } export interface test { /** 邮箱格式校验 */ email(email: string): boolean; /** 手机号校验 */ mobile(phone: number): boolean; /** url路径验证 */ url(value: string): boolean; /** 验证日期格式 */ date(value: string | number): boolean; /** 验证ISO类型的日期格式 YYYY-MM-DD | YYYY/MM/DD */ dateISO(value: string): boolean; /** 验证十进制数字 */ number(value: number): boolean; /** 验证字符串 */ string(value: string): boolean; /** 验证整数 */ digits(value: number): boolean; /** 验证身份证号码 */ idCard(value: string | number): boolean; /** 是否车牌号 */ carNo(value: string): boolean; /** 金额,只允许2位小数 */ amount(value: string | number): boolean; /** 校验是否是中文 */ chinese(value: any): boolean; /** 校验是否是字母 */ letter(value: any): boolean; /** 校验字母或者数字 */ enOrNum(value: any): boolean; /** 验证是否包含某个值 */ contains(source: string, value: string): boolean; /** 验证一个值范围[min, max] */ range(value: string, between: number[]): boolean; /** 验证一个长度范围[min, max] */ rangeLength(value: string, between: number[]): boolean; /** 是否固定电话 */ landline(value: string | number): boolean; /** 判断是否为空 */ empty(value: string | number | undefined | boolean | object | null): boolean; /** 是否json字符串 */ jsonString(value: string): boolean; /** 是否数组 */ array(value: any): boolean; /** 是否对象 */ object(value: any): boolean; /** 是否短信验证码 */ code(value: any, len: number): boolean; /** 是否函数方法 */ func(value: any): boolean; /** 是否promise对象 */ promise(value: any): boolean; /** 是否图片格式 */ image(value: string): boolean; /** 是否视频格式 */ video(value: string): boolean; /** 是否为正则对象 */ regExp(value: any): boolean; } export interface Func { /** * 此方法用于限制value的大小 * - 如果其在min和max之间,则不变; * - 如果其小于min,则取min值; * - 如果其大于max,则取max值。 * @param min 最小值,默认 0 * @param max 最大值,默认 0 * @param value 当前值,默认 0 */ range(min?: number, max?: number, value?: number): number; /** * 用于获取用户传递值的px值 * - 如果用户传递了number,直接返回 * - 如果用户传递了"xxpx"或者"xxrpx",取出其数值部分 * - 如果是"xxxrpx"还需要用过uni.rpx2px进行转换 * @param value 数值或带单位的字符串 * @param unit 是否返回带 px 的字符串 */ getPx(value: number | string, unit?: boolean): number | string; /** * 用于统一rpx2px方法,因uni-app现有API未统一。 * @param value rpx 值 */ rpx2px(value: number): number; /** * 进行延时,以达到可以简写代码的目的 比如: await uni.$u.sleep(20)将会阻塞20ms * @param value 延时时间(ms),默认 30 */ sleep(value?: number): Promise<void>; /** * 运行期判断平台 * @returns 平台名称(小写) * @link 运行期判断平台 https://uniapp.dcloud.io/frame?id=判断平台 */ os(): string; /** * 获取系统信息(同步) * @link 获取系统信息同步接口 https://uniapp.dcloud.io/api/system/info?id=getsysteminfosync */ sys(): UniApp.GetSystemInfoResult; /** * 获取一个区间内的随机整数 * @param min 最小值 * @param max 最大值 */ random(min: number, max: number): number; /** * 生成 uuid * @param len uuid 长度,默认 32 * @param firstU 是否以 u 开头,默认 true * @param radix 生成uuid的基数(意味着返回的字符串都是这个基数),2-二进制,8-八进制,10-十进制,16-十六进制 */ guid(len?: number, firstU?: boolean, radix?: number | null): string; /** * 获取父组件的参数,因为支付宝小程序不支持provide/inject的写法 * this.$parent在非H5中,可以准确获取到父组件,但是在H5中,需要多次this.$parent.$parent.xxx * 这里默认值等于undefined有它的含义,因为最顶层元素(组件)的$parent就是undefined,意味着不传name * 值(默认为undefined),就是查找最顶层的$parent * @param name 父组件 name */ $parent(this: any, name?: string): any | false; /** * 样式转换 * - string → object * - object → string * @param customStyle 样式字符串或对象 * @param target 转换的目的,object-转为对象,string-转为字符串 */ addStyle( customStyle: Record<string, any> | string, target?: "object" | "string" ): Record<string, any> | string; /** * 添加单位,如果有rpx,upx,%,px等单位结尾或者值为auto,直接返回,否则加上px单位结尾 * @param value 值(数字 / auto / 字符串) * @param unit 单位,默认使用 config.unit */ addUnit(value?: string | number, unit?: string): string; /** * 深度克隆 * @param obj 需要深度克隆的对象 */ deepClone<T extends object>(obj: T): T; /** * 深度合并对象 * @param target 需要拷贝的对象 * @param source 拷贝的来源对象 * @returns {object|boolean} 深度合并后的对象或者false(入参有不是对象) */ deepMerge<T extends object, U extends object>( target: T, source: U ): (T & U) | false; /** * JS对象深度合并 * @param {object} target 需要拷贝的对象 * @param {object} source 拷贝的来源对象 * @returns {object|boolean} 深度合并后的对象或者false(入参有不是对象) */ shallowMerge<T extends object, U extends object>( target: T, source: U ): (T & U) | false; /** * 打乱数组 * @param array 原数组 */ randomArray<T>(array: T[]): T[]; /** * 时间格式化 * @param dateTime 时间戳 / 字符串 * @param formatStr fmt 格式化规则 yyyy:mm:dd|yyyy:mm|yyyy年mm月dd日|yyyy年mm月dd日 hh时MM分等,可自定义组合 默认yyyy-mm-dd */ timeFormat(dateTime?: string | number | null, formatStr?: string): string; /** * 时间转“多久之前” * @param timestamp 时间戳 * @param format 格式化规则如果为时间格式字符串,超出一定时间范围,返回固定的时间格式;如果为布尔值false,无论什么时间,都返回多久以前的格式 */ timeFrom(timestamp?: string | number | null, format?: string | false): string; /** * 去除空格 * @param str 原字符串 * @param pos 去除位置 */ trim(str: string, pos?: "both" | "left" | "right" | "all"): string; /** * 对象转 URL 参数 * @param data 参数对象 * @param isPrefix 是否自动加上"?" * @param arrayFormat 数组格式 */ queryParams( data?: Record<string, any>, isPrefix?: boolean, arrayFormat?: "indices" | "brackets" | "repeat" | "comma" ): string; /** * 显示消息提示框 * @param title 提示内容 * @param duration 持续时间 */ toast(title: string, duration?: number): void; /** * 数字格式化 * @param number 要格式化的数字 * @param decimals 保留几位小数 * @param decimalPoint 小数点符号 * @param thousandsSeparator 千分位符号 * @returns 格式化后的数字 */ priceFormat( number: string | number, decimals?: number, decimalPoint?: string, thousandsSeparator?: string ): string; /** * 生成同色系浅色背景 * @param textColor 文本颜色 * @param lightness 亮度百分比 */ genLightColor(textColor: string, lightness?: number): string; /** * 防抖函数 * @param func 触发回调执行的函数 * @param wait 时间间隔,单位ms * @param immediate 在开始还是结束处触发,如非特殊情况,一般默认为false即可 */ debounce( func: (...rest: any[]) => any, wait?: number, immediate?: boolean ): void; /** * 节流函数 * @param func 触发回调执行的函数 * @param wait 时间间隔,单位ms * @param immediate 在开始还是结束处触发,如非特殊情况,一般默认为false即可 */ throttle( func: (...rest: any[]) => any, wait?: number, immediate?: boolean ): void; /** * 求两个颜色之间的渐变值 * @param {string} startColor 开始的颜色 * @param {string} endColor 结束的颜色 * @param {number} step 颜色等分的份额 */ colorGradient(startColor: string, endColor: string, step: number): any[]; /** * 将hex表示方式转换为rgb * @param color "#000000"-> "rgb(0,0,0)" | "rgb(0,0,0)" -> "#000000" * @param str 是否返回颜色数组 true -> 不返回 * @returns */ hexToRgb(color: string, str?: boolean): any[]; /** * 将rgb表示方式转换为hex */ rgbToHex(color: string): string; /** * 十六进制转换为rgb或rgba * @param color * @param alpha 透明度 * @returns rgba(255,255,255,0.5)字符串 */ colorToRgba(color: string, alpha: number): string; /** 路由跳转 */ route(url: string | RouteParam): void; }