@dtinsight/dt-utils
Version:
353 lines (344 loc) • 11.8 kB
TypeScript
export declare const Cookie: {
/**
* 原生 JavaScript 获取 cookie 值
* @param name
*/
getCookie(name: string, cookiesStr?: string): string | null;
getAllCookies(): {
[x: string]: string;
};
deleteCookie(name: string, domain?: string | undefined, path?: string | undefined): void;
deleteAllCookies(domain: string, path: string): void;
setCookie(name: string, value: string | number | object | boolean, days?: number | undefined, domainStr?: string | undefined, path?: string): void;
};
/**
* Copy工具类
*
* 使用方法:
* import CopyUtils from 'copy.js';
* const instance = new CopyUtils();
* instance.copy(value, callback);
*/
export declare class CopyUtils {
fakeHandlerCallback: any;
fakeHandler: any;
fakeElem: any;
copy(value: any, callback?: Function): void;
removeFake(): void;
copyText(callback?: Function): void;
}
/**
* 时间处理
*/
export declare const DateTime: {
/**
* 返回 YYYY-MM-DD HH:mm:ss 格式化的字符串
* @param {string | number | Date} timeData
* @return {string}
*/
formatDateTime(timeData: string | number | Date): string;
/**
* 返回 YYYY-MM-DD 格式化的字符串
* @param {string | number | Date} timeData
* @return {string}
*/
formatDate(timeData: string | number | Date): string;
/**
* 返回 YYYY-MM-DD HH:mm 格式化的字符串
* @param {string | number | Date} timeData
* @return {string}
*/
formatDateHours(timeData: string | number | Date): string;
/**
* 返回 MM-DD HH:mm 格式化的字符串
* @param {string | number | Date} timeData
* @return {string}
*/
formatDayHours(timeData: string | number | Date): string;
/**
* 返回 HH:mm 格式化的字符串
* @param {string | number | Date} timeData
* @return {string}
*/
formatHours(timeData: string | number | Date): string;
/**
* 返回 HH:mm:ss 格式化的字符串
* @param {string | number | Date} timeData
* @return {string}
*/
formatMinute(timeData: string | number | Date): string;
/**
* 把秒转换成 HH[h]mm[m]ss[s] 的格式
* @param {number} secondTime 秒
* @return {string}
*/
formatSecond(secondTime?: number): string;
};
declare interface DownloadParams {
url: string;
fileName?: string;
payload?: object;
finallyCallback?: () => void;
successCallback?: (res: Response) => void;
errorCallback: (res: Response) => void;
}
/**
* 树形布局计算
*/
export declare const Layout: {
/**
* 获取页面宽度
* @return {[type]} [description]
*/
pageWidth(): number;
/**
* 获取页面高度
* @return {[type]} [description]
*/
pageHeight(): number;
};
/**
* 封装 localStorage
* 增加对 JSON 对象的转换
* @return {[type]} [description]
*/
export declare const LocalDB: {
/**
* 按 key 存贮数据 value 到 localStorage
* @param {String} key 存贮数据的唯一标识
* @param {String, Object} value 所要存贮的数据
*/
set(key: string | number, value: any): void;
/**
* 通过 key 从 localStorage 获取数据
* @param {String} key 获取数据的唯一标识
* @return {String, Object} 返回空、字符串或者对象
*/
get(key: string | number): any;
/**
* 通过 key 从 localStorage 删除数据
* @param {String} key 删除数据的唯一标识
*/
remove(key: string | number): void;
/**
* 清空 localStorage
* @return 无返回 NULL
*/
clear(): void;
};
/**
* Usage: https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API/Using_IndexedDB
* Compatibility: https://caniuse.com/#feat=indexeddb
*/
export declare class LocalIndexedDB {
private _db;
private _version;
private _database;
private _storeName;
private _openLog;
/**
* Constructor a new indexedDB object
* @param database database name
* @param version database version
* @param storeName store object name
* @param openLog - 是否打印 indexedDB 变化
*/
constructor(database: string, version: number, storeName: string, openLog?: boolean);
/**
* Open the database indicated in constructor function.
* This method return a Promise object which success will resolve db instance.
*/
open(): Promise<IDBDatabase>;
private getObjectStore;
add(value: any, key?: string): Promise<IDBRequest<any>>;
/**
* Set a value to store object by key
* @param key the key of store object
* @param value the value of store object
*/
set(key: string, value: any): Promise<IDBRequest<any>>;
/**
* Get the value with the given key
* @param key the key of store object
*/
get(key: string): Promise<IDBRequest<any>>;
/**
* Delete records in store with the given key
* @param key the key of store object
*/
delete(key: string): Promise<IDBRequest<any>>;
/**
* Delete all data in store object
*/
clear(): Promise<IDBRequest<any>>;
/**
* Get the store object
*/
getStore(): IDBObjectStore | null;
/**
* Wrap the database request result as promise object
* @param operate A function which operate store
*/
wrapStoreOperationPromise<T = IDBRequest>(operate: (store: IDBObjectStore) => IDBRequest): Promise<T>;
private log;
}
export declare const Utils: {
/**
* @description 浏览器类型和版本检测
* @returns {Boolean} `true`表示通过兼容性检测,`false`表示不通过兼容性检测
*/
browserCheck(): boolean;
checkExist(prop: any): boolean;
/**
* 转换 Byte 转换为小于1024值最大单位
* @param value 'B' | 'KB' | 'MB' | 'GB' | 'TB' | 'PB' 转换原始值
*/
convertBytes(value: number): string;
isMacOs(): boolean;
isWindows(): boolean;
isMobileDevice(): boolean;
/**
* 根据参数名获取URL数据
* @param {[type]} name [description]
* @param {[type]} url [description]
*/
getParameterByName(name: string, url?: string | undefined): string | null | undefined;
/**
*
* @param pathname 地址
* @param queryParams url参数
* @returns 两者生成的完整url地址
*/
generateFullUrlPath(pathname: string, queryParams?: {}): string;
/**
*
* @param search location.search
* @returns query 参数
*/
getQueryParameters(search: string): {
[k: string]: string;
};
/**
* 获取图片的Base64格式
* @param {[type]} img [description]
* @param {Function} callback [description]
*/
getBase64(img: any, callback: (img: any) => void): void;
/**
* 百分比转换
* @param {[type]} num [description]
* @param {[type]} precision [description]
*/
percent(num: number, precision?: number | undefined): string;
/**
*
*
* @param {Record<string, any>} [object={}]
* @returns
*/
getCssText(object?: Record<string, any>): string;
/**
* @description: 去除字符串前后空格
* @param: str 带有空格的字符串
* @returns: 返回去除前后空格的字符串
*/
trim(str: string): string;
/**
* @description: 去除字符串的所有空格
* @param: str 带有空格的字符串
* @returns: 返回去除所有空格的字符串
*/
trimAll(str: string): string;
getThousandth(num: string | number): string;
textOverflowExchange(text: string, length: number): string;
/**
* json格式化
* @param {格式化内容} text
* @param {格式化占位符} space
*/
jsonFormat(text: string, space?: number | undefined): string | null;
/**
* 多函数排序,匹配到0为止
*/
sortByCompareFunctions(arr: any[], ...compareFunctions: any[]): void;
/**
* 转换排序字段
*/
exchangeOrder(order: string): "asc" | "desc" | undefined;
/**
* 生成一个key
*/
generateAKey(): string;
/**
* 判断是否是JSON string
* @param {String} str 所要验证的字符串
* @return {Boolean} 是否是JSON字符串
*/
isJSONStr(str: string): boolean;
/**
*
* 校验手机
* @param {*} tel
* @returns
*/
isPhoneNumber(tel: string): boolean;
/**
* 判断是否是函数
*
* @param {*} arg
* @returns
*/
isFunction(arg: any): boolean;
/**
* 随机生成一串6位同时包含数字、大小写字母的字符串
* @param len number
*/
getRandomStr(len: number): string;
/**
* simply judge whether the array is equal
* @param arr1
* @param arr2
* @returns arr1 === arr2
*/
isEqualArr(arr1: string[], arr2: string[]): boolean;
/**
*
*
* @param {*} a
* @param {*} b
* @returns boolean
*/
isEqual(a: any, b: any): boolean;
/**
*
*
* @param {*} targetComponent
*/
shouldRender(targetComponent: any): void;
/**
*
* 计算字符串长度(英文占1个字符,中文汉字占2个字符)
* @param {*} str
* @returns number
*/
getStrlen(str: string): number;
transformArray<T>(arr: T[], num: number): T[][];
isEmpty(data?: any): boolean;
isObj(obj?: any): boolean;
removeEmpty(obj?: any): any;
mergeDeep(object1: Record<string, any>, object2: Record<string, any>): Record<string, any>;
/**
* 下载文件
* @param {string} url 请求地址
* @param {string} fileName 输出名字,如果不传就是后端写入文件名
* @param {object} payload 请求数据
* @param {function} successCallback 导出正确的回调函数,处理一些message展示
* @param {function} errorCallback 导出失败的回调函数
* @param {function} finallyCallback 成功/失败都会执行回调函数,例如控制一些visible显示隐藏
* */
downLoadData(params: DownloadParams): void;
isUtf8(s: string): boolean;
utf16to8(str: string): string;
base64Encode(value: string): string;
};
export { }