@kjts20/tool
Version:
wkj
1,481 lines (1,438 loc) • 41.8 kB
TypeScript
/**
* 是否调试模式
* @returns
*/
declare const globalVar: {
debug: boolean;
};
/**
* 使用debug模式
*/
declare const setDebug: (status?: boolean) => void;
/**
* 多语言
*/
declare const i18n: {
validate: {
required: string;
valueErr: string;
formatErr: string;
urlErr: string;
gtZero: string;
gteZero: string;
isInteger: string;
startDateFormatErr: string;
endDateFormatErr: string;
dateFormatErr: string;
emailFormatErr: string;
phoneFormatErr: string;
telFormatErr: string;
mustBeNum: string;
mustBeInt: string;
};
httpServer: {
responseUnknown: string;
systemErrTip: string;
apiFormatErrTip: string;
arraybufferSuccessTip: string;
};
system: {
success: string;
fail: string;
error: string;
};
};
/**
* 设置语言
*/
declare const setI18n: (newI18n: any) => void;
interface IResultProps<TData = any> {
code?: number;
msg?: string;
data?: TData;
}
interface IResultData<TData = any> {
code: number;
msg: string;
data: TData;
}
interface IResultParse<TData = any> extends IResultData<TData> {
success: boolean;
fail: boolean;
error: boolean;
timeout: boolean;
}
declare const result: {
success<TData = any>(res?: IResultProps<TData>): IResultData<TData>;
error<TData_1 = any>(res?: IResultProps<TData_1>): IResultData<TData_1>;
parse<TData_2 = any>(res?: IResultProps<TData_2>): IResultParse<TData_2>;
};
declare enum EMethodType {
GET = "GET",
POST = "POST",
DELETE = "DELETE",
PUT = "PUT"
}
interface IResponse<DataType = any> {
msg: string;
errcode?: 0 | 1;
code: number;
data: DataType;
other?: any;
}
interface IStatus {
success: boolean;
fail: boolean;
error: boolean;
timeout: boolean;
}
type HttpResponse<DataType = any> = IResponse<DataType> & IStatus;
interface IPageDataType<Item = any> {
pageSize: number;
current: number;
total: number;
pageNum: number;
data: Array<Item>;
extension?: any;
}
declare const unifiedResponse: (response?: IResponse) => IResultParse<any>;
declare const successResponse: (msg: string, data?: any, other?: any) => IResultParse<any>;
declare const errResponse: (msg: string, data?: any) => IResultParse<any>;
interface IRequestOptions {
url: string;
data: object;
header?: object;
timeout?: number;
method: EMethodType;
success: (data: object) => void;
error: (err: any) => void;
complete: (err: any) => void;
}
interface IRequestFileOptions {
url: string;
formData: object;
name: string;
filePath: string;
header?: object;
timeout?: number;
method: EMethodType;
success: (data: object) => void;
error: (err: any) => void;
complete: (err: any) => void;
}
interface IHttpServerOptions {
host?: string;
apiPrefix?: string;
setHeader?: () => object;
request: (res: IRequestOptions) => any;
uploadFile: (res: IRequestFileOptions) => any;
responseIntercept?: (response: HttpResponse) => HttpResponse;
setForm?: () => object;
}
declare class HttpServer {
constructor(options: IHttpServerOptions);
apiPrefix: string;
host: string;
private setHeader;
private setForm;
private request;
private uploadFile;
private responseIntercept;
getRequestUrl(url: any): any;
setHeaderFunc(setHeader: IHttpServerOptions['setHeader']): void;
setFormFunc(setForm: IHttpServerOptions['setForm']): void;
ajax(url: string, data: object | null, method: EMethodType, header?: {}, options?: any): Promise<HttpResponse<any>>;
private toRequestResultFunc;
/**
* 上传文件
* @param url 上传的地址
* @param filePath 文件路径
* @param data 额外数据
* @param header 请求头
* @param options 请求参数
*/
upload(url: string, file: any, data: object | null, header?: {}, options?: any): Promise<HttpResponse<any>>;
get(url: any, data?: {}, options?: any, header?: {}): Promise<HttpResponse<any>>;
put(url: any, data?: {}, options?: any, header?: {}): Promise<HttpResponse<any>>;
del(url: any, data?: {}, options?: any, header?: {}): Promise<HttpResponse<any>>;
post(url: any, data?: {}, options?: any, header?: {}): Promise<HttpResponse<any>>;
postJson(url: any, data?: {}, options?: any, header?: {}): Promise<HttpResponse<any>>;
file(url: any, data?: {}, options?: any, header?: {}): Promise<HttpResponse<any>>;
}
type TErrFunc = (errMsg: string | number, data: any) => void;
interface IResultPaging<IDateItem = any> {
paging: Omit<IPageDataType, 'data'> & {
success: boolean;
error: boolean;
fail: boolean;
msg: string;
hasMore: boolean;
init: boolean;
empty: boolean;
};
data: IPageDataType<IDateItem>['data'];
pageExtension?: any;
}
interface IHttpServerFilter {
error: TErrFunc;
}
/**
* 默认分页数据
*/
declare const defaultPaging: {
pageSize: number;
pageNum: number;
total: number;
current: number;
hasMore: boolean;
init: boolean;
success: boolean;
error: boolean;
fail: boolean;
empty: boolean;
msg: string;
};
/**
* 请求分页数据修饰
* @param pageData
* @returns
*/
declare const pageDecorate: <ItemType = any>(success: boolean, fail: boolean, error: boolean, msg: string, pageData: IPageDataType<ItemType>) => IResultPaging<ItemType>;
declare class ResponseFilter {
constructor(options: IHttpServerFilter);
private error;
/**
* 设置错误函数
*
* @param errorFunc
*/
setErrorFunc(errorFunc: IHttpServerFilter['error']): void;
/**
* 对响应数据进行过滤,得到过滤的数据
*
* @param responsePromise
* @param filterHanlder
* @returns
*/
filter<TData = any, RData = TData>(responsePromise: Promise<HttpResponse<TData>>, filterHanlder?: (data: TData) => RData, showTip?: boolean): Promise<RData>;
/**
* 响应装饰(返回响应格式)
*
* @param responsePromise 响应promise
* @param decorateHanlder 装饰器
* @returns
*/
responseDecorate<TData = any, RData = TData>(responsePromise: Promise<HttpResponse<TData>>, decorateHanlder?: (data: TData) => RData): Promise<HttpResponse<RData>>;
/**
* 对分页数据进行过滤
*
* @param getPagingService
* @param filterHanlder
* @returns
*/
pageFilter<ItemType = any, RItemType = ItemType>(getPagingService: Promise<HttpResponse<IPageDataType<ItemType>>>, filterHanlder?: (data: IPageDataType<ItemType>) => IPageDataType<RItemType>): Promise<IResultPaging<RItemType>>;
/**
* 列表数据转分页数据并过滤
*
* @param getListService
* @param filterHanlder
* @returns
*/
list2PageFilter<ItemType = any, RItemType = ItemType>(getListService: Promise<HttpResponse<Array<ItemType>>>, filterHanlder?: (data: IPageDataType<ItemType>) => IPageDataType<RItemType>): Promise<IResultPaging<RItemType>>;
/**
* 响应统一处理(对于响应的错误进行统一处理)
*
* @param responsePromise
* @param filterHanlder
* @param showTip
* @returns
*/
unifyRemind<TData = any, RData = TData>(responsePromise: Promise<HttpResponse<TData>>, filterHanlder?: (data: TData) => RData, showTip?: boolean): Promise<RData>;
}
/**
* 检查保存的key
* @param key
* @returns
*/
declare const checkKey: (key: string | number) => Promise<string | number>;
/**
* 检查保存的key(同步)
* @param key
* @returns
*/
declare const checkKeySync: (key: string | number) => boolean;
interface ISetStorageOptions {
key: string | number;
data: any;
success?: (res: {
errMsg?: string;
[key: string]: any;
}) => void;
fail?: (res: any) => void;
}
interface IGetStorageOptions<T = any> {
key: string | number;
success?: (res: {
errMsg?: string;
[key: string]: any;
data: T;
}) => void;
fail?: (res: any) => void;
}
interface IRemoveStorageOptions {
key: string | number;
success?: (res: {
errMsg?: string;
[key: string]: any;
}) => void;
fail?: (res: any) => void;
}
interface IClearStorageOptions {
success?: (res: {
errMsg?: string;
[key: string]: any;
}) => void;
fail?: (res: any) => void;
}
interface IStorageApi {
setStorage: (options: ISetStorageOptions) => void;
setStorageSync: <T = any>(key: string, data: T) => void;
getStorage: <T = any>(options: IGetStorageOptions<T>) => void;
getStorageSync: <T = any>(key: string) => T | null;
removeStorage: (options: IRemoveStorageOptions) => void;
clearStorage: (options?: IClearStorageOptions) => void;
}
declare class CommonStorage {
constructor(api: IStorageApi, unifyErrFunc?: TErrFunc);
storageApi: IStorageApi;
error: TErrFunc;
setStorage(key: string, data: any): Promise<any>;
setStorageSync<T = any>(key: string, data: T): T;
getStorage<T = any>(key: string | number): Promise<any>;
getStorageSync<T = any>(key: string): T;
/**
* 删除一个键
* @param key 键
* @returns
*/
removeStorage(key: string | number): Promise<boolean>;
/**
* 清空仓库
* @returns
*/
clearStorage(): Promise<unknown>;
}
declare enum EMedium {
PAGE = 0,
CLASS = 1
}
declare class Event {
constructor(medium?: EMedium);
private medium;
private _eventListenerDict;
private _broadcastChannelDict;
private addBroadcastChannel;
private removeBroadcastChannel;
private sendBroadcastMsg;
/**
* 订阅事件
* @param event 事件名
* @param fn 回调函数
*/
on(event: string, listener: Function): string;
/**
* emit 触发方法
* @param event 事件名
* @param args 所有参数
*/
emit(event: any, ...args: any[]): void;
protected sendMessage2Listeners(event: any, ...args: any[]): void;
/**
* 解除绑定
* @param event 事件名
* @param listener 监听者
*/
off(event: any, ...uuidOrFuncs: any[]): void;
}
declare class Store {
private store;
event: Event;
constructor();
toKey: any;
set(key: any, value: any): void;
sets(dataDict: object): void;
get(key: any): any;
gets(): {};
delete(key: any): boolean;
clear(): void;
has(key: any): boolean;
}
/**
* 平台兼容性
*/
declare const platformPolyfill: () => void;
/**
* 字符串转 ArrayBuffer
*
* @param str
* @returns
*/
declare const str2ArrayBuffer: (str: any) => ArrayBufferLike;
/**
* ArrayBuffer转16进度字符串
* @param buffer
* @returns
*/
declare const ab2hex: (buffer: any) => any;
/**
* Base64 编码
* @param str
* @returns
*/
declare const base64Encode: (str: string) => string;
/**
* Base64 解码
* @param encodedStr
* @returns
*/
declare const base64Decode: (encodedStr: any) => string;
/**
* base64转hex
* @param base64String
* @returns
*/
declare const base64ToHex: (base64String: any) => any;
/**
* hex 转 base64
* @param hexString 16进制字符串
*/
declare const hex2Base64: (hexString: any) => string;
/**
* 16进制转ArrayBuffer
* @param hex 16进制字符串
*/
declare const hex2ArrayBuffer: (hex: any) => ArrayBufferLike;
/**
* Hex(16进制)转int
* @param str
*/
declare const hex2Int: (hexString: string) => number;
/**
* Hex(16进制)转float
* @param hex 16进制字符串
* @param radixPoint 保留小数点
* @returns
*/
declare const hex2Float: (hexString: string, radixPoint?: number) => number;
/**
* Hex(16进制)转ASCII
* @param str
*/
declare const hex2Ascii: (hexString: string) => string;
/**
* 数字转16进制
* @param num
*/
declare const int2Hex: (num: number, bitNum?: number) => string;
/**
* Hex(16进制)转float
* @param floatNum
* @returns
*/
declare const float2Hex: (floatNum: number) => string;
/**
* ASCII转Hex(16进制)
* @param str
* @param bitNum 字节数(字节长度,不够长度进行补位)
*/
declare const ascii2Hex: (str: any, bitNum?: number) => string;
/**
* arrayBuffer 转换16进制
* @param arrayBuffer
*/
declare const arrayBuffer2Hex: (arrayBuffer: ArrayBuffer) => string;
/**
* arrayBuffer 转换 ascii
* @param arrayBuffer
*/
declare const arrayBuffer2Ascii: (arrayBuffer: ArrayBuffer) => string;
/**
* ascii 转换 arrayBuffer
* @param str
* @returns
*/
declare const ascii2ArrayBuffer: (str: string) => Uint8Array;
/**
* 电总协议中数据的CHKSUM计算
* @param data 数据
*/
declare const dataChksum: (dataFrame: any) => number;
/**
* [电总协议] 获取数据长度
* 在JavaScript中,我们使用`&`表示按位与操作,`>>`表示右移操作。另外,JavaScript中的字符串索引从0开始,因此在计算`length`时不需要使用切片操作。最后,JavaScript中的十六进制表示方法是使用`toString(16)`函数将数字转换为十六进制字符串。
* @param info
*/
declare const getDataLTH: (info: string, len?: number) => string;
/**
* [电总协议]获取数据的帧校验
* @param data
*/
declare const getDataChkSum: (data: any) => string;
declare var toBool: (data: any) => boolean;
declare const toFunction: (val: any, context?: {}) => any;
/**
* 生成全局单例
* @param generator
* @param funcName
* @returns
*/
declare const genGlobalSingleton: (storageName: string, generator: () => any) => any;
/**
* 深度克隆(对象)
* @param obj 克隆对象
*/
declare const deepCopy: (obj: any) => any;
/**
* json字符串转对象
* @param josnStr
* @param debug
* @returns
*/
declare const jsonParse: (josnStr: any, debug?: boolean) => any;
/**
* 求数组和
* @param arr
* @param itemCb
* @returns
*/
declare const arrSum: (arr: any[], itemCb?: any) => number;
/**
* 求数组平均数
* @param arr
* @returns
*/
declare const arrAverage: (arr: number[]) => number;
declare const getLen: (data: any) => any;
/**
* 根据背景颜色生成字体颜色(只有黑白色)
*
* @param bgColor 16进制颜色、rgb颜色
* @param luminanceCondition 亮度判断值
* @returns
*/
declare const getFontColorFromBgColor: (bgColor: any, luminanceCondition?: number) => "black" | "white";
/**
* 将金额转换为带逗号格式
* @param num 金额
* @param decimal 小数点位数
*/
declare const moneyFormt: (num: any, decimal?: number) => string;
/**
* 分转化为元(将金额转换为带逗号格式)
*
* @param num 金额
* @param decimal 小数点位数
*/
declare const fee2yuan: (fee: any, decimal?: number) => string;
/**
* 元转分
*
* @param yuan
* @returns
*/
declare const yuan2fee: (yuan: any) => number;
declare const fee2Money: (fee: any, decimal?: number) => string;
/**
* 过万处理
* @param num
* @returns
*/
declare const overTenThousand: (num: any) => string | number;
/**
* 字符串转数字
* @param str 数字字符串
* @param maxDigit
* @returns
*/
declare const str2Num: (str: any, maxDigit?: number) => number;
/**
* 切割为数字数组
* @param str
* @param splitter
* @returns
*/
declare const split2NumArr: (str: any, splitter?: string, maxDigit?: number) => Array<number>;
type TMapKeyType = string | number;
interface IKeyVal {
[key: TMapKeyType]: any;
}
type Optional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
interface ISelectOption {
label: string;
value: any;
}
/**
* 获取字段的值
* @param data 值来源
* @param name 名字
* @param defaultValue 默认值
* @returns
*/
declare const getColumnValue: (data: any, name: any, defaultValue?: any) => any;
/**
* 设置值
* @param goalObj
* @param keys
* @param value
*/
declare const setColumnValue: <T extends IKeyVal>(goalObj: T, keys: Array<any>, value: any) => {};
/**
* 设置字段的值
* @param data 赋值对象
* @param name 名字(可以是:user.name)
* @param value 值
* @returns
*/
declare const setDictValue: <TData>(data: TData, name: any, value: any) => TData;
declare const getColumnValueAndRenderByName: (name: any, data: any, render?: any) => any;
/**
* 深度克隆
* @param obj 原值
* @param debug
* @returns
*/
declare const deepClone: <T>(obj: T, debug?: boolean) => T;
/**
* 字符串转json (保护转义)
* @param str 格式化的正则
* @param debug 是否调试
* @returns
*/
declare const toJson: (str: any, debug?: boolean) => any;
/**
* 获取数组
* @param length 长度
* @param fillOrFillFunc 添加内容/添加内容函数
* @returns
*/
declare const getArray: <T = any>(length: number, fillOrFillFunc?: T | ((index: number) => T)) => T[];
/**
* 对象值过滤
* @param obj
* @param valHandler
* @returns
*/
declare const objFilter: <TData>(obj: TData, valHandler?: (val: any) => boolean) => TData;
/**
* 对象装饰
* @param obj
* @param valHandler
* @returns
*/
declare const objDecorate: <TData>(obj: TData, valHandler?: (val: any) => any, keyHandler?: (key: any) => string | number) => TData;
/**
* 数组转换为对象
* @param data 列表数据
* @param column 键的字段
* @param itMapHandler
* @returns
*/
declare const list2Dict: <TData = any>(data: TData[], column?: keyof TData | "id", valHandler?: (it: TData) => any) => any;
/**
* 数组转换为对象
* @param data 列表数据
* @param keyHandler 键操作
* @param valHandler 值操作
* @returns
*/
declare const biList2Dict: <TData = any>(data: TData[], keyHandler: (it: TData) => number | string, valHandler?: (it: TData) => any) => any;
declare const biDict2List: <T = any, R = any>(data: any, itMapHandler?: (it: T, key: string) => R) => R[];
/**
* 字典转数组
* @param data
* @param keyColumn
* @returns
*/
declare const dict2List: <TData = any>(data: any, keyColumn?: string) => TData[];
/**
* 转换列表
* @param param
* @param separator
* @returns
*/
declare const toList: <TData = any>(param: any, separator?: string | RegExp) => TData[];
declare const objEq: (obj1: any, obj2: any) => boolean;
declare const jsonEq: (o1: any, o2: any) => boolean;
declare const json2Obj: (str: any) => any;
declare const getListIndex: <T>(list: T[], predicate: (it: T) => boolean) => number;
declare const listRemoveRepeat: <T>(data: T[], column?: "id" | keyof T, filter?: (it: T) => T) => any[];
declare const mergeObj: <T>(baseConfig: T, ...configs: any[]) => T;
declare const removeObjColumns: <T>(obj: T, ...columns: (keyof T)[]) => T;
declare const removeObjectUndefined: <T = any>(obj: T) => T;
/**
* 是否相同
* @param arg1 第一个参数
* @param arg2 第二个参数
*/
declare const isSame: (arg1: any, arg2: any) => boolean;
/**
* 获取更新数据
* @param before 修改之前
* @param after 修改之后
*/
declare const getChangeData: (before: object, after: object) => {};
/**
* 分组
* @param list 需要分组的数组
* @param keyName 分组的键名
* @returns
*/
interface IDictArrItem<T> {
[key: string]: Array<T>;
[key: number]: Array<T>;
}
declare const listGroupBy: <T extends {}>(list: T[], keyName: keyof T) => IDictArrItem<T>;
/**
* 加强版的数组分组
* @param list
* @param keyGen
* @returns
*/
declare const biListGroupBy: <T extends {}>(list: T[], keyGen: (it: T) => TMapKeyType | null) => IDictArrItem<T>;
/**
* 获取列表和
* @param list 列表
* @param getNumFunc 获取数字 函数
*/
declare const getListSum: <T>(list: T[], getNumFunc: (it: T) => number) => number;
/**
* 获取列表中最大值
* @param list 列表
* @param getNumFunc 获取数字函数
*/
declare const getListMax: <T>(list: T[], getNumFunc: (it: T) => number) => number;
/**
* 数组合并
* @param list
* @param itemList
* @returns
*/
declare const listConcat: <T>(list: T[], itemList: T[]) => T[];
/**
* 生成对象
* @param key
* @param val
* @returns
*/
declare const toObj: (key: any, val: any) => {};
/**
* 获取数组中某个对象的位置
* @param listData
* @param findHandler
* @returns
*/
declare const getValueIndex: (listData: any, findHandler: (it: any) => boolean) => number;
/**
* 生成递增或者递减数组
* @param start 开始值
* @param end 结束值
* @param type 类型 add:递增 reduce:递减
* @returns
*/
declare const createArr: (start: number, end: number, type?: string) => number[];
/**
* 列表加法运算
* @param list
* @param addNum
* @returns
*/
declare const listAddition: (list: Array<number>, addNum: Array<number> | number) => number[];
interface IList2TreeOptions {
idColumn?: string;
pidColumn?: string;
childrenColumn?: string;
startIndex?: string | number;
childCanNull?: boolean;
}
/**
* 列表转树
* @param list
* @param options
* @returns
*/
declare const list2Tree: <T = any>(list: T[], options?: IList2TreeOptions) => any;
/**
* 查找索引
* @param list
* @param findHandler
* @param defaultValue
* @returns 索引值
*/
declare const findIndex: <T = any>(list: T[], findHandler: (item: T) => boolean, defaultValue?: number) => number;
/**
* 替换空格
* @param str
* @param replaceText
* @returns
*/
declare const replaceSpace: (str: any, replaceText?: string) => any;
/**
* 替换前后空格获取特定的字符串
* @param str
* @param patternStr
* @param replaceStr
* @returns
*/
declare const trim: (str: any, patternStr?: string, replaceStr?: string) => any;
declare const md5: (str: any) => string;
/**
* 获取随机字符串
* @param len 长度
* @param seed
* @returns
*/
declare const generateRandomStr: (len?: number, seed?: string[]) => string;
/**
* 生成命名
* @param len
* @param firstSeed 首字母生成种子
* @param otherSeed 其他字母生成种子
* @returns
*/
declare const genName: (len?: number, firstSeed?: string[], otherSeed?: any) => string;
/**
* 获取UUID
* @returns
*/
declare const generateUUID: () => string;
/**
* 通过种子与编码位数获取UUID
* @param seed
* @param codingBits
* @returns
*/
declare const generateUnique: (seed?: number | string, codingBits?: number) => string;
declare const camelToKebab: (camelStr: string) => string;
declare const firstUpperCase: (str: any) => any;
declare const firstLowerCase: (str: any) => any;
declare const lineToCamel: (str: any) => any;
declare const lineToUpCamel: (str: any) => any;
declare const camelToLine: (str: any) => any;
declare const toUrlParams: (obj: IKeyVal) => IKeyVal;
declare const toStyleStr: (styleObj: any, unit?: string) => any;
declare const toStyleObj: (styleStr: any) => {};
declare const fixContainer: (parentWidth: any, parentHeight: any, childWidth: any, childHeight: any) => any;
declare const toDate: (date: any) => Date;
declare const toDateTime: (date: any, time?: any, format?: string) => string;
declare const date2str: (date: any, format?: string) => string;
declare const now: (format?: string) => string;
declare const getCurrentTimeStr: (format?: string) => string;
declare const getCurrentStamp: () => number;
declare const timestamp2str: (timestamp: any, format: any) => string;
declare const timestamp2dateStr: (timestamp: any) => string;
declare const timestamp2datetimeStr: (timestamp: any) => string;
/**
* 时间字符串转日期
* @param timeStr
* @returns
*/
declare const timeStr2dateStr: (timeStr: any) => string;
/**
* 字符串转时间戳
* @param timeStr 任意格式(字符串、时间格式)
*/
declare const toTimestamp: (timeStr: string | number | Date) => number;
/**
* 字符串转时间戳
* @param timeStr 任意格式(字符串、时间格式)
* @deprecated 请使用toTimestamp替换
*/
declare const dateStr2Timestamp: (timeStr: any) => number;
declare const timeStr2datetimeStr: (time2str: any) => string;
declare const personalize2DateStr: (timeStr: any, format?: string) => string;
declare const toCurrentSeconds: (timeStr: any) => number;
declare const getDayRange: (day?: number, startDate?: Date) => string[];
/**
* 生成日范围
* @param startTime 开始日期
* @param endTime 开始日期
*/
declare const genDayRange: (startYmd: any, endYmd: any) => string[];
declare const isFunction: (func: any) => boolean;
declare const isUndefined: (...args: any[]) => boolean;
declare const isUndefinedOrNull: (...args: any[]) => boolean;
declare const isObj: (obj: any) => boolean;
declare const isStr: (str: any) => boolean;
declare const isNum: (num: any) => boolean;
declare const isNumStr: (num: any) => boolean;
declare const isInitStr: (num: any) => boolean;
declare const isFunc: (func: any) => boolean;
declare const isArr: (arr: any) => boolean;
declare const isBool: (bool: any) => boolean;
declare const requestStr2Obj: (requestUrl: any, valAutoDecode?: boolean, autoChangeVal?: boolean) => {
[key: string]: any;
};
declare const urlEncode: (str: any) => string | ((encodeStr: any) => any);
declare const urlDecode: (str: any) => any;
declare const obj2RequestUrl: (obj: any) => string;
/**
* URL合并
* @param mainUrl 主url(可以包含域名部分)
* @param param 参数
*/
declare const mergeUrl: (mainUrl: any, ...param: object[]) => string;
declare const isEmail: (str: any) => boolean;
/**
* 语言+地区
*/
declare const languageAndRegion: ({
short: string;
lText: string;
regionText: string;
region: string;
text?: undefined;
} | {
short: string;
text: string;
regionText: string;
region: string;
lText?: undefined;
})[];
declare const isPhone: (str: any) => boolean;
declare const isTwPhone: (str: any) => boolean;
declare const isMoPhone: (str: any) => boolean;
declare const isHkPhone: (str: any) => boolean;
declare const isTel: (str: any) => boolean;
declare const isUrl: (str: any) => boolean;
declare const isPublicUrl: (str: any) => boolean;
declare const isDate: (value: any) => boolean;
declare const isDateStr: (str: any) => boolean;
declare const isDateISO: (value: any) => boolean;
declare const isIdcard: (value: any) => boolean;
interface IObject {
[key: string]: any;
[key: number]: any;
}
type TValidate = (val: any, row: IObject, column: IColumn) => string | null;
interface IColumn {
title: string;
column: string;
validate?: Array<TValidate> | TValidate;
}
/**
* 表单校验
* @param columns 字段
* @param formData
* @deprecated 请使用formValidator替换
*/
declare const validateForm: (columns: Array<IColumn>, formData: any) => {};
/**
* 表单校验器
* @param columns 校验的字段
* @param formData 表单的内容(一个对象)
* @returns
*/
declare const formValidator: (columns: Array<IColumn>, formData: any) => {
validateResult: boolean;
fields: any;
firstError: string;
errDict: {
[key: string]: string;
};
};
declare const validateRequired: (val: any, row: IObject, column: IColumn) => string;
declare const validateGtZero: (val: any, row: IObject, column: IColumn) => string;
declare const validateGteZero: (val: any, row: IObject, column: IColumn) => string;
declare const validateInt: (val: any, row: IObject, column: IColumn) => string;
declare const validateNum: (val: any, row: IObject, column: IColumn) => string;
/**
* 电话号校验
* @param val 字段的值
* @param row 行的值
* @param column 字段定义
* @returns
*/
declare const validateTel: (val: any, row: IObject, column: IColumn) => string;
/**
* 手机号验证
* @param val 字段的值
* @param row 行的值
* @param column
* @returns
*/
declare const validatePhone: (val: any, row: IObject, column: IColumn) => string;
declare const validateEmail: (val: any, row: IObject, column: IColumn) => string;
declare const validateDate: (val: any, row: IObject, column: IColumn) => string;
declare const validateDateRange: (val: any, row: IObject, column: IColumn) => string;
declare const validateIntArr: (val: any, row: IObject, column: IColumn) => string;
declare const validateArrRequired: (val: any, row: IObject, column: IColumn) => string;
declare const validateUrl: (val: any, row: IObject, column: IColumn) => string;
declare const validateIdCard: (val: any, row: IObject, column: IColumn) => string;
/**
* 对promise进行过滤
* @param responsePromise promise对象
* @param filterHanlder 过滤函数
* @returns
*/
declare const promiseFilter: <T = any, R = any>(responsePromise: Promise<T>, filterHanlder?: (data: T) => R) => Promise<R>;
/**
* 统一为成功返回
* @param responsePromise
* @param filterHanlder
* @returns
*/
interface Ipromise2ResolveData<D> {
data: D;
err: any;
}
declare const promise2Resolve: <T = any, R = any>(responsePromise: Promise<T>, filterHanlder: (data: Ipromise2ResolveData<T>) => R) => Promise<R>;
declare const Assert: {
isTrue(expression: any, msg: any, err?: any, ...args: any[]): void;
isFalse(expression: any, msg: any, ...args: any[]): void;
error(msg: any, ...args: any[]): void;
notNull(expression: any, msg: any, ...args: any[]): void;
isNull(expression: any, msg: any, ...args: any[]): void;
isObj(obj: any, msg: any, ...args: any[]): void;
try(sandbox: () => any, msg: any): Promise<any>;
};
declare const sleep: (ms: any) => Promise<unknown>;
/**
* 多级转一级
* 用法:一般对象转form表单
* {user: {name: "wkj"}, test: {status: true}} => {"user.name": "wkj", "test.status": true}
* @params obj 一般对象
*/
declare const toFormData: (obj: any) => {};
/**
* 一级转多级
* 用法: form表单转对象
* {"user.name": "wkj", "test.status": true} => {user: {name: "wkj"}, test: {status: true}}
* @params formData 表单数据
*/
declare const formData2Obj: (souceFormData: any) => {
[key: string]: any;
};
/**
* 生成className
* @param classNames 使用的class
* @returns
*/
declare const toClassName: (...classNames: any[]) => string;
/**
* @author: wkj
* @description: 忽略工具类
*/
declare class IgnoreTool {
constructor(...rules: Array<string>);
/**
* 添加规则
* @param {Array<string>} rules 规则
* @returns this
*/
addRules(...rules: Array<string>): this;
/**
* 过滤规则
* @param {Function} filter 过滤函数
* @returns this
*/
filiterRules(filter: (rules: Array<string>) => Array<string>): this;
private _rules;
private rulePatterns;
private set rules(value);
private debug;
/**
* 设置调试模式
* @param {boolean} debug 调试
* @returns boolean
*/
setDebug(debug: boolean): this;
/**
* 规则解析
* @param {Array<string>} rules 元素规则
*/
private rulesParseToPatterns;
/**
* 是否忽略
* @param {string} str 判断字符串
* @returns boolean
*/
isIgnore(str: string): boolean;
}
/**
* 响应工具类(规则定义)
*/
declare class ResponseTool {
private response;
constructor(res: HttpResponse);
/**
* 成功code列表
*/
successCodeList: {
code: number;
message: string;
}[];
/**
* 客户端错误列表
*/
clientErrCodeList: {
code: number;
message: string;
}[];
/**
* 重新定向code列表
*/
redirectCodeList: {
code: number;
message: string;
}[];
/**
* 是否重定向
* @returns boolean
*/
isRedirect(): boolean;
/**
* 是否成功
* @returns boolean
*/
isSuccess(): boolean;
/**
* 是否客户端错误
* @returns boolean
*/
isClientErr(): boolean;
}
/**
* 响应是否重定向
*
* @param response 响应
* @returns boolean
*/
declare const responseIsRedirect: (response: HttpResponse) => boolean;
/**
* 请求工具类
*/
declare class RequestTool {
/**
* 请求任务
*/
private requestTask;
/**
* 中断请求任务
*/
abortRequestTask(): void;
/**
* 添加请求任务
* @param task 任务
*/
addRequestTask(task: any): this;
/**
* 清空请求任务
*/
clearRequestTask(): this;
}
declare const strConst: {
AMPERSAND: string;
AND: string;
AT: string;
ASTERISK: string;
STAR: string;
BACK_SLASH: string;
COLON: string;
COLON_CN: string;
COMMA: string;
COMMA_CN: string;
DASH: string;
DOLLAR: string;
DOT: string;
DOTDOT: string;
DOT_CLASS: string;
DOT_JAVA: string;
DOT_XML: string;
FILE: string;
EMPTY: string;
EQUALS: string;
FALSE: string;
SLASH: string;
HASH: string;
HAT: string;
LEFT_BRACE: string;
LEFT_BRACKET: string;
LEFT_CHEV: string;
DOT_NEWLINE: string;
NEWLINE: string;
N: string;
NO: string;
NULL: string;
OFF: string;
ON: string;
PERCENT: string;
PIPE: string;
PLUS: string;
QUESTION_MARK: string;
EXCLAMATION_MARK: string;
QUOTE: string;
RETURN: string;
TAB: string;
RIGHT_BRACE: string;
RIGHT_BRACKET: string;
RIGHT_CHEV: string;
SEMICOLON: string;
SINGLE_QUOTE: string;
BACKTICK: string;
SPACE: string;
FULL_SPACE: string;
TILDA: string;
LEFT_SQ_BRACKET: string;
RIGHT_SQ_BRACKET: string;
TRUE: string;
UNDERSCORE: string;
UTF_8: string;
US_ASCII: string;
ISO_8859_1: string;
Y: string;
YES: string;
ONE: string;
ZERO: string;
DOLLAR_LEFT_BRACE: string;
HASH_LEFT_BRACE: string;
CRLF: string;
HTML_NBSP: string;
HTML_AMP: string;
HTML_QUOTE: string;
HTML_LT: string;
HTML_GT: string;
GET: string;
IS: string;
};
/**
* 0-9的字符串数组
*/
declare const numList: string[];
/**
* A-Z字符串数组
*/
declare const letterUpperList: string[];
/**
* a-z字符串数组
*/
declare const letterLowerList: string[];
/**
* 日期格式化
* @param date
* @param formatStr
* @param defaultFill
* @returns
*/
declare const dateFormat: (date: any, formatStr?: string, defaultFill?: string) => string;
/**
* 时间格式化
* @param date
* @param formatStr
* @param defaultFill
* @returns
*/
declare const timeFormat: (date: any, formatStr?: string, defaultFill?: string) => string;
declare class Notifier {
private _listenerList;
addListener(callback: any, options?: any): string;
removeListener(uuid: any): void;
notify(...args: any[]): void;
}
interface INotifyer {
uuid?: string;
callback: Function;
options?: Object;
}
declare class RestrictorMode {
private time;
private notifyers;
private messages;
private timer;
constructor(callback?: any);
addNotifyer(it: INotifyer): string;
removeNotifyer(uuid: string): void;
start(time: any): void;
stop(isSendData?: boolean): void;
private trySendMessage;
push(...args: any[]): void;
}
interface IWaiter {
uuid?: string;
callback: Function;
options?: Object;
}
declare class WaiterMode {
private time;
private Waiters;
private timer;
constructor(callback?: Function, waitTime?: number);
/**
* 等待执行任务中
*/
isWaitExecTask(): boolean;
/**
* 停止任务(有任务返回状态true,否则false)
*/
stopTask(): Promise<boolean>;
addWaiter(it: IWaiter): string;
removeWaiter(uuid: string): void;
send(...messages: any[]): void;
}
declare class WatcherMode {
private notifyer;
private watchTime;
constructor(cb: any, time?: number);
private watcherTimer;
private watcherLongpressTimer;
start(...args: any[]): this;
stop(): this;
startLongpress(...args: any[]): this;
stopLongPress(): this;
private notifyLongPress;
}
interface IConsumerProps {
channel: string;
target?: string;
[key: string]: any;
}
type TConsumerCallback = (options: IConsumerProps, ...args: any[]) => void;
interface IConsumer {
uuid?: string;
callback: TConsumerCallback;
options: IConsumerProps;
}
declare class QueueManager {
private time;
private consumers;
private messages;
private timer;
addConsumer(it: IConsumer): string;
removeConsumer(uuid: string): void;
start(time?: number): void;
stop(): void;
private sendMessage;
push(presetOptions: IConsumerProps, ...args: any[]): void;
}
/**
* 基础用户
*/
interface IBaseUser {
id: number | string;
username: string;
}
interface ICommonAuthOptions<TUser extends IBaseUser> {
storage: CommonStorage;
checkTokenFunc: (getRequestTask: (task: any) => void, token: string, user: TUser) => Promise<any>;
logoutFunc: (token: string, user: TUser) => Promise<any>;
}
/**
* 公共鉴权
*/
declare class CommonAuth<TUser extends IBaseUser> {
constructor(options: ICommonAuthOptions<TUser>);
/**
* 保存登录的键
*/
private keepLoginKey;
/**
* checkToken函数
*/
private checkTokenFunc;
/**
* logout函数
*/
private logoutFunc;
/**
* 使用的存储
*/
private storage;
/**
* 登录的用户
*/
private token;
/**
* 登录的用户
*/
private user;
/**
* 更新鉴权信息
*
* @param token token
* @param user 登录用户
* @returns
*/
updateAuthStatus(token: string, user: TUser): this;
/**
* 更新token
* @param token
*/
updateToken(token: string): void;
/**
* 更新token
* @param token
*/
updateUser(user: TUser): void;
/**
* 获取登录信息
* @returns
*/
protected getLoginInfo(): {
token: string | null;
user: TUser | null;
};
/**
* 是否登录
*
* @returns boolean
*/
isLogin(): boolean;
/**
* 登录状态清除
*/
clear(): void;
/**
* 注销登录
*/
logout(): Promise<any>;
/**
* 获取用户
* @returns 用户
*/
getUser(): TUser;
/**
* 获取token
* @returns string
*/
getToken(): string;
/**
* checkToken请求工具
*/
private checkTokenRequestTool;
/**
* 检查token
*
* @param unifiedTask 统一任务
* @returns
*/
checkToken(unifiedTask?: boolean): Promise<any>;
/**
* 生成保存的key
* @param key
* @returns
*/
protected genKey(key: string): string;
/**
* 设置其他值
* @param key 保存的键
* @param val 值
*/
setOther(key: string, val: any): any;
/**
* 获取其他值
* @param key 保存的键
* @param defaultVal 默认值
* @returns
*/
getOther(key: string, defaultVal?: any): any;
}
export { Assert, CommonAuth, CommonStorage, EMedium, Event, HttpResponse, HttpServer, IBaseUser, IClearStorageOptions, IColumn, ICommonAuthOptions, IConsumerProps, IGetStorageOptions, IHttpServerFilter, IHttpServerOptions, IKeyVal, IList2TreeOptions, IObject, IPageDataType, IRemoveStorageOptions, IRequestFileOptions, IRequestOptions, IResponse, IResultData, IResultPaging, IResultParse, IResultProps, ISelectOption, ISetStorageOptions, IStatus, IStorageApi, IgnoreTool, Ipromise2ResolveData, Notifier, Optional, QueueManager, RequestTool, ResponseFilter, ResponseTool, RestrictorMode, Store, TValidate, WaiterMode, WatcherMode, ab2hex, arrAverage, arrSum, arrayBuffer2Ascii, arrayBuffer2Hex, ascii2ArrayBuffer, ascii2Hex, base64Decode, base64Encode, base64ToHex, biDict2List, biList2Dict, biListGroupBy, camelToKebab, camelToLine, checkKey, checkKeySync, createArr, dataChksum, date2str, dateFormat, dateStr2Timestamp, deepClone, deepCopy, defaultPaging, dict2List, errResponse, fee2Money, fee2yuan, findIndex, firstLowerCase, firstUpperCase, fixContainer, float2Hex, formData2Obj, formValidator, genDayRange, genGlobalSingleton, genName, generateRandomStr, generateUUID, generateUnique, getArray, getChangeData, getColumnValue, getColumnValueAndRenderByName, getCurrentStamp, getCurrentTimeStr, getDataChkSum, getDataLTH, getDayRange, getFontColorFromBgColor, getLen, getListIndex, getListMax, getListSum, getValueIndex, globalVar, hex2ArrayBuffer, hex2Ascii, hex2Base64, hex2Float, hex2Int, i18n, int2Hex, isArr, isBool, isDate, isDateISO, isDateStr, isEmail, isFunc, isFunction, isHkPhone, isIdcard, isInitStr, isMoPhone, isNum, isNumStr, isObj, isPhone, isPublicUrl, isSame, isStr, isTel, isTwPhone, isUndefined, isUndefinedOrNull, isUrl, json2Obj, jsonEq, jsonParse, languageAndRegion, letterLowerList, letterUpperList, lineToCamel, lineToUpCamel, list2Dict, list2Tree, listAddition, listConcat, listGroupBy, listRemoveRepeat, md5, mergeObj, mergeUrl, moneyFormt, now, numList, obj2RequestUrl, objDecorate, objEq, objFilter, overTenThousand, pageDecorate, personalize2DateStr, platformPolyfill, promise2Resolve, promiseFilter, removeObjColumns, removeObjectUndefined, replaceSpace, requestStr2Obj, responseIsRedirect, result, setColumnValue, setDebug, setDictValue, setI18n, sleep, split2NumArr, str2ArrayBuffer, str2Num, strConst, successResponse, timeFormat, timeStr2dateStr, timeStr2datetimeStr, timestamp2dateStr, timestamp2datetimeStr, timestamp2str, toBool, toClassName, toCurrentSeconds, toDate, toDateTime, toFormData, toFunction, toJson, toList, toObj, toStyleObj, toStyleStr, toTimestamp, toUrlParams, trim, unifiedResponse, urlDecode, urlEncode, validateArrRequired, validateDate, validateDateRange, validateEmail, validateForm, validateGtZero, validateGteZero, validateIdCard, validateInt, validateIntArr, validateNum, validatePhone, validateRequired, validateTel, validateUrl, yuan2fee };