318 lines
9.5 KiB
TypeScript
318 lines
9.5 KiB
TypeScript
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;
|
||
}
|