@allahjs/utils 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +244 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/browser/cookieUtils/index.cjs +100 -0
- package/dist/browser/cookieUtils/index.cjs.map +1 -0
- package/dist/browser/cookieUtils/index.d.ts +55 -0
- package/dist/browser/domUtils/index.cjs +237 -0
- package/dist/browser/domUtils/index.cjs.map +1 -0
- package/dist/browser/domUtils/index.d.ts +116 -0
- package/dist/browser/index.cjs +12 -0
- package/dist/browser/index.cjs.map +1 -0
- package/dist/browser/index.d.ts +3 -0
- package/dist/browser/urlUtils/index.cjs +262 -0
- package/dist/browser/urlUtils/index.cjs.map +1 -0
- package/dist/browser/urlUtils/index.d.ts +72 -0
- package/dist/core/arrayUtils/index.cjs +109 -0
- package/dist/core/arrayUtils/index.cjs.map +1 -0
- package/dist/core/arrayUtils/index.d.ts +67 -0
- package/dist/core/asyncUtils/index.cjs +180 -0
- package/dist/core/asyncUtils/index.cjs.map +1 -0
- package/dist/core/asyncUtils/index.d.ts +80 -0
- package/dist/core/colorUtils/index.cjs +38 -0
- package/dist/core/colorUtils/index.cjs.map +1 -0
- package/dist/core/colorUtils/index.d.ts +10 -0
- package/dist/core/cryptoUtils/index.cjs +428 -0
- package/dist/core/cryptoUtils/index.cjs.map +1 -0
- package/dist/core/cryptoUtils/index.d.ts +132 -0
- package/dist/core/dateUtils/index.cjs +245 -0
- package/dist/core/dateUtils/index.cjs.map +1 -0
- package/dist/core/dateUtils/index.d.ts +117 -0
- package/dist/core/index.cjs +34 -0
- package/dist/core/index.cjs.map +1 -0
- package/dist/core/index.d.ts +118 -0
- package/dist/core/numberUtils/index.cjs +126 -0
- package/dist/core/numberUtils/index.cjs.map +1 -0
- package/dist/core/numberUtils/index.d.ts +91 -0
- package/dist/core/objectUtils/index.cjs +249 -0
- package/dist/core/objectUtils/index.cjs.map +1 -0
- package/dist/core/objectUtils/index.d.ts +91 -0
- package/dist/core/pageUtils/index.cjs +74 -0
- package/dist/core/pageUtils/index.cjs.map +1 -0
- package/dist/core/pageUtils/index.d.ts +52 -0
- package/dist/core/stringUtils/index.cjs +163 -0
- package/dist/core/stringUtils/index.cjs.map +1 -0
- package/dist/core/stringUtils/index.d.ts +69 -0
- package/dist/core/validationUtils/index.cjs +154 -0
- package/dist/core/validationUtils/index.cjs.map +1 -0
- package/dist/core/validationUtils/index.d.ts +87 -0
- package/dist/esm/browser/cookieUtils/index.d.ts +55 -0
- package/dist/esm/browser/cookieUtils/index.js +96 -0
- package/dist/esm/browser/cookieUtils/index.js.map +1 -0
- package/dist/esm/browser/domUtils/index.d.ts +116 -0
- package/dist/esm/browser/domUtils/index.js +233 -0
- package/dist/esm/browser/domUtils/index.js.map +1 -0
- package/dist/esm/browser/index.d.ts +3 -0
- package/dist/esm/browser/index.js +4 -0
- package/dist/esm/browser/index.js.map +1 -0
- package/dist/esm/browser/urlUtils/index.d.ts +72 -0
- package/dist/esm/browser/urlUtils/index.js +248 -0
- package/dist/esm/browser/urlUtils/index.js.map +1 -0
- package/dist/esm/core/arrayUtils/index.d.ts +67 -0
- package/dist/esm/core/arrayUtils/index.js +105 -0
- package/dist/esm/core/arrayUtils/index.js.map +1 -0
- package/dist/esm/core/asyncUtils/index.d.ts +80 -0
- package/dist/esm/core/asyncUtils/index.js +175 -0
- package/dist/esm/core/asyncUtils/index.js.map +1 -0
- package/dist/esm/core/colorUtils/index.d.ts +10 -0
- package/dist/esm/core/colorUtils/index.js +34 -0
- package/dist/esm/core/colorUtils/index.js.map +1 -0
- package/dist/esm/core/cryptoUtils/index.d.ts +132 -0
- package/dist/esm/core/cryptoUtils/index.js +424 -0
- package/dist/esm/core/cryptoUtils/index.js.map +1 -0
- package/dist/esm/core/dateUtils/index.d.ts +117 -0
- package/dist/esm/core/dateUtils/index.js +241 -0
- package/dist/esm/core/dateUtils/index.js.map +1 -0
- package/dist/esm/core/index.d.ts +118 -0
- package/dist/esm/core/index.js +30 -0
- package/dist/esm/core/index.js.map +1 -0
- package/dist/esm/core/numberUtils/index.d.ts +91 -0
- package/dist/esm/core/numberUtils/index.js +122 -0
- package/dist/esm/core/numberUtils/index.js.map +1 -0
- package/dist/esm/core/objectUtils/index.d.ts +91 -0
- package/dist/esm/core/objectUtils/index.js +245 -0
- package/dist/esm/core/objectUtils/index.js.map +1 -0
- package/dist/esm/core/pageUtils/index.d.ts +52 -0
- package/dist/esm/core/pageUtils/index.js +66 -0
- package/dist/esm/core/pageUtils/index.js.map +1 -0
- package/dist/esm/core/stringUtils/index.d.ts +69 -0
- package/dist/esm/core/stringUtils/index.js +159 -0
- package/dist/esm/core/stringUtils/index.js.map +1 -0
- package/dist/esm/core/validationUtils/index.d.ts +87 -0
- package/dist/esm/core/validationUtils/index.js +150 -0
- package/dist/esm/core/validationUtils/index.js.map +1 -0
- package/dist/esm/index.d.ts +22 -0
- package/dist/esm/index.js +26 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/request/ReqQueue/index.js +59 -0
- package/dist/esm/request/ReqQueue/index.js.map +1 -0
- package/dist/esm/request/httpCode/index.js +49 -0
- package/dist/esm/request/httpCode/index.js.map +1 -0
- package/dist/esm/request/httpUtils/index.js +359 -0
- package/dist/esm/request/httpUtils/index.js.map +1 -0
- package/dist/esm/request/index.d.ts +15 -0
- package/dist/esm/request/index.js +166 -0
- package/dist/esm/request/index.js.map +1 -0
- package/dist/esm/request/typings/index.d.ts +184 -0
- package/dist/esm/request/uniRequest/index.js +62 -0
- package/dist/esm/request/uniRequest/index.js.map +1 -0
- package/dist/esm/types/data/index.d.ts +188 -0
- package/dist/esm/types/data/index.js +13 -0
- package/dist/esm/types/data/index.js.map +1 -0
- package/dist/esm/types/index.d.ts +1 -0
- package/dist/esm/types/index.js +2 -0
- package/dist/esm/types/index.js.map +1 -0
- package/dist/esm/uniapp/Tips/index.d.ts +295 -0
- package/dist/esm/uniapp/Tips/index.js +498 -0
- package/dist/esm/uniapp/Tips/index.js.map +1 -0
- package/dist/esm/uniapp/cloudUtils/index.d.ts +56 -0
- package/dist/esm/uniapp/cloudUtils/index.js +90 -0
- package/dist/esm/uniapp/cloudUtils/index.js.map +1 -0
- package/dist/esm/uniapp/index.d.ts +3 -0
- package/dist/esm/uniapp/index.js +4 -0
- package/dist/esm/uniapp/index.js.map +1 -0
- package/dist/esm/uniapp/uniUtils/index.d.ts +113 -0
- package/dist/esm/uniapp/uniUtils/index.js +199 -0
- package/dist/esm/uniapp/uniUtils/index.js.map +1 -0
- package/dist/index.cjs +88 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +22 -0
- package/dist/request/ReqQueue/index.cjs +63 -0
- package/dist/request/ReqQueue/index.cjs.map +1 -0
- package/dist/request/httpCode/index.cjs +52 -0
- package/dist/request/httpCode/index.cjs.map +1 -0
- package/dist/request/httpUtils/index.cjs +365 -0
- package/dist/request/httpUtils/index.cjs.map +1 -0
- package/dist/request/index.cjs +170 -0
- package/dist/request/index.cjs.map +1 -0
- package/dist/request/index.d.ts +15 -0
- package/dist/request/typings/index.d.ts +184 -0
- package/dist/request/uniRequest/index.cjs +66 -0
- package/dist/request/uniRequest/index.cjs.map +1 -0
- package/dist/types/data/index.cjs +15 -0
- package/dist/types/data/index.cjs.map +1 -0
- package/dist/types/data/index.d.ts +188 -0
- package/dist/types/index.cjs +8 -0
- package/dist/types/index.cjs.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/uniapp/Tips/index.cjs +521 -0
- package/dist/uniapp/Tips/index.cjs.map +1 -0
- package/dist/uniapp/Tips/index.d.ts +295 -0
- package/dist/uniapp/cloudUtils/index.cjs +92 -0
- package/dist/uniapp/cloudUtils/index.cjs.map +1 -0
- package/dist/uniapp/cloudUtils/index.d.ts +56 -0
- package/dist/uniapp/index.cjs +53 -0
- package/dist/uniapp/index.cjs.map +1 -0
- package/dist/uniapp/index.d.ts +3 -0
- package/dist/uniapp/uniUtils/index.cjs +213 -0
- package/dist/uniapp/uniUtils/index.cjs.map +1 -0
- package/dist/uniapp/uniUtils/index.d.ts +113 -0
- package/package.json +129 -0
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 对象工具函数
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* 对象工具对象
|
|
6
|
+
*/
|
|
7
|
+
declare const objectUtils: {
|
|
8
|
+
/**
|
|
9
|
+
* 深度克隆对象
|
|
10
|
+
* @param obj - 要克隆的对象
|
|
11
|
+
* @returns 克隆后的对象
|
|
12
|
+
*/
|
|
13
|
+
deepClone<T>(obj: T): T;
|
|
14
|
+
/**
|
|
15
|
+
* 合并多个对象
|
|
16
|
+
* @param target - 目标对象
|
|
17
|
+
* @param sources - 源对象数组
|
|
18
|
+
* @returns 合并后的对象
|
|
19
|
+
*/
|
|
20
|
+
merge<T extends Record<string, any>>(target: T, ...sources: Partial<T>[]): T;
|
|
21
|
+
/**
|
|
22
|
+
* 根据路径获取对象属性值
|
|
23
|
+
* @param obj - 目标对象
|
|
24
|
+
* @param path - 属性路径
|
|
25
|
+
* @param defaultValue - 默认值
|
|
26
|
+
* @returns 属性值
|
|
27
|
+
*/
|
|
28
|
+
get<T = any>(obj: Record<string, any>, path: string, defaultValue?: T): T;
|
|
29
|
+
/**
|
|
30
|
+
* 根据路径设置对象属性值
|
|
31
|
+
* @param obj - 目标对象
|
|
32
|
+
* @param path - 属性路径
|
|
33
|
+
* @param value - 要设置的值
|
|
34
|
+
*/
|
|
35
|
+
set(obj: Record<string, any>, path: string, value: any): void;
|
|
36
|
+
/**
|
|
37
|
+
* 根据路径删除对象属性
|
|
38
|
+
* @param obj - 目标对象
|
|
39
|
+
* @param path - 属性路径
|
|
40
|
+
* @returns 是否删除成功
|
|
41
|
+
*/
|
|
42
|
+
unset(obj: Record<string, any>, path: string): boolean;
|
|
43
|
+
/**
|
|
44
|
+
* 获取对象的所有路径
|
|
45
|
+
* @param obj - 目标对象
|
|
46
|
+
* @param prefix - 路径前缀
|
|
47
|
+
* @returns 路径数组
|
|
48
|
+
*/
|
|
49
|
+
paths(obj: Record<string, any>, prefix?: string): string[];
|
|
50
|
+
/**
|
|
51
|
+
* 将数据中的''转换成指定的字符串
|
|
52
|
+
* @param obj - 需要转换的对象
|
|
53
|
+
* @param str - 需要转换的字符串,默认是无
|
|
54
|
+
* @returns 转换后的对象
|
|
55
|
+
*/
|
|
56
|
+
buildNullStr<T = any>(obj: any, str?: string): T;
|
|
57
|
+
/**
|
|
58
|
+
* 将对象的key变成数字
|
|
59
|
+
* @param obj - 需要转换的对象
|
|
60
|
+
* @returns 转换后的对象
|
|
61
|
+
*/
|
|
62
|
+
objToNum(obj: any): any;
|
|
63
|
+
/**
|
|
64
|
+
* 给vuex进行刷新的方法
|
|
65
|
+
* @param state - 状态对象
|
|
66
|
+
* @param payload - 载荷数据
|
|
67
|
+
*/
|
|
68
|
+
refreshState(state: any, payload: any): void;
|
|
69
|
+
/**
|
|
70
|
+
* 删除对象里面的时间字段
|
|
71
|
+
* @param obj - 需要处理的对象
|
|
72
|
+
* @param keys - 额外需要删除的字段
|
|
73
|
+
* @returns 处理后的对象
|
|
74
|
+
*/
|
|
75
|
+
deleteTime(obj: any, keys?: string[]): any;
|
|
76
|
+
/**
|
|
77
|
+
* 枚举转option的函数
|
|
78
|
+
* @param enumObj - 枚举对象
|
|
79
|
+
* @returns 选项数组
|
|
80
|
+
*/
|
|
81
|
+
enumToOptions(enumObj: any): any[];
|
|
82
|
+
/**
|
|
83
|
+
* 比较两个对象是否相同
|
|
84
|
+
* @param obj1 - 第一个对象
|
|
85
|
+
* @param obj2 - 第二个对象
|
|
86
|
+
* @returns 是否相同
|
|
87
|
+
*/
|
|
88
|
+
isSameObj(obj1: any, obj2: any): boolean;
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
export { objectUtils as default };
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 对象工具函数
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* 判断是否为对象
|
|
6
|
+
* @param item - 要判断的项
|
|
7
|
+
* @returns 是否为对象
|
|
8
|
+
*/
|
|
9
|
+
function isObject(item) {
|
|
10
|
+
return item && typeof item === 'object' && !Array.isArray(item);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* 对象工具对象
|
|
14
|
+
*/
|
|
15
|
+
const objectUtils = {
|
|
16
|
+
/**
|
|
17
|
+
* 深度克隆对象
|
|
18
|
+
* @param obj - 要克隆的对象
|
|
19
|
+
* @returns 克隆后的对象
|
|
20
|
+
*/
|
|
21
|
+
deepClone(obj) {
|
|
22
|
+
if (obj === null || typeof obj !== 'object') {
|
|
23
|
+
return obj;
|
|
24
|
+
}
|
|
25
|
+
if (obj instanceof Date) {
|
|
26
|
+
return new Date(obj.getTime());
|
|
27
|
+
}
|
|
28
|
+
if (obj instanceof Array) {
|
|
29
|
+
return obj.map(item => objectUtils.deepClone(item));
|
|
30
|
+
}
|
|
31
|
+
if (typeof obj === 'object') {
|
|
32
|
+
const cloned = {};
|
|
33
|
+
for (const key in obj) {
|
|
34
|
+
if (Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
35
|
+
cloned[key] = objectUtils.deepClone(obj[key]);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return cloned;
|
|
39
|
+
}
|
|
40
|
+
return obj;
|
|
41
|
+
},
|
|
42
|
+
/**
|
|
43
|
+
* 合并多个对象
|
|
44
|
+
* @param target - 目标对象
|
|
45
|
+
* @param sources - 源对象数组
|
|
46
|
+
* @returns 合并后的对象
|
|
47
|
+
*/
|
|
48
|
+
merge(target, ...sources) {
|
|
49
|
+
if (!sources.length)
|
|
50
|
+
return target;
|
|
51
|
+
const source = sources.shift();
|
|
52
|
+
if (isObject(target) && isObject(source)) {
|
|
53
|
+
for (const key in source) {
|
|
54
|
+
if (isObject(source[key])) {
|
|
55
|
+
if (!target[key])
|
|
56
|
+
Object.assign(target, { [key]: {} });
|
|
57
|
+
objectUtils.merge(target[key], source[key]);
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
Object.assign(target, { [key]: source[key] });
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return objectUtils.merge(target, ...sources);
|
|
65
|
+
},
|
|
66
|
+
/**
|
|
67
|
+
* 根据路径获取对象属性值
|
|
68
|
+
* @param obj - 目标对象
|
|
69
|
+
* @param path - 属性路径
|
|
70
|
+
* @param defaultValue - 默认值
|
|
71
|
+
* @returns 属性值
|
|
72
|
+
*/
|
|
73
|
+
get(obj, path, defaultValue) {
|
|
74
|
+
const keys = path.split('.');
|
|
75
|
+
let result = obj;
|
|
76
|
+
for (const key of keys) {
|
|
77
|
+
if (result === null || typeof result !== 'object') {
|
|
78
|
+
return defaultValue;
|
|
79
|
+
}
|
|
80
|
+
result = result[key];
|
|
81
|
+
}
|
|
82
|
+
return result === undefined ? defaultValue : result;
|
|
83
|
+
},
|
|
84
|
+
/**
|
|
85
|
+
* 根据路径设置对象属性值
|
|
86
|
+
* @param obj - 目标对象
|
|
87
|
+
* @param path - 属性路径
|
|
88
|
+
* @param value - 要设置的值
|
|
89
|
+
*/
|
|
90
|
+
set(obj, path, value) {
|
|
91
|
+
const keys = path.split('.');
|
|
92
|
+
let current = obj;
|
|
93
|
+
for (let i = 0; i < keys.length - 1; i++) {
|
|
94
|
+
const key = keys[i];
|
|
95
|
+
if (!(key in current) || typeof current[key] !== 'object') {
|
|
96
|
+
current[key] = {};
|
|
97
|
+
}
|
|
98
|
+
current = current[key];
|
|
99
|
+
}
|
|
100
|
+
current[keys[keys.length - 1]] = value;
|
|
101
|
+
},
|
|
102
|
+
/**
|
|
103
|
+
* 根据路径删除对象属性
|
|
104
|
+
* @param obj - 目标对象
|
|
105
|
+
* @param path - 属性路径
|
|
106
|
+
* @returns 是否删除成功
|
|
107
|
+
*/
|
|
108
|
+
unset(obj, path) {
|
|
109
|
+
const keys = path.split('.');
|
|
110
|
+
let current = obj;
|
|
111
|
+
for (let i = 0; i < keys.length - 1; i++) {
|
|
112
|
+
const key = keys[i];
|
|
113
|
+
if (!(key in current) || typeof current[key] !== 'object') {
|
|
114
|
+
return false;
|
|
115
|
+
}
|
|
116
|
+
current = current[key];
|
|
117
|
+
}
|
|
118
|
+
const lastKey = keys[keys.length - 1];
|
|
119
|
+
if (lastKey in current) {
|
|
120
|
+
delete current[lastKey];
|
|
121
|
+
return true;
|
|
122
|
+
}
|
|
123
|
+
return false;
|
|
124
|
+
},
|
|
125
|
+
/**
|
|
126
|
+
* 获取对象的所有路径
|
|
127
|
+
* @param obj - 目标对象
|
|
128
|
+
* @param prefix - 路径前缀
|
|
129
|
+
* @returns 路径数组
|
|
130
|
+
*/
|
|
131
|
+
paths(obj, prefix = '') {
|
|
132
|
+
const result = [];
|
|
133
|
+
for (const key in obj) {
|
|
134
|
+
if (Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
135
|
+
const currentPath = prefix ? `${prefix}.${key}` : key;
|
|
136
|
+
if (typeof obj[key] === 'object' && obj[key] !== null && !Array.isArray(obj[key])) {
|
|
137
|
+
result.push(...objectUtils.paths(obj[key], currentPath));
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
result.push(currentPath);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
return result;
|
|
145
|
+
},
|
|
146
|
+
/**
|
|
147
|
+
* 将数据中的''转换成指定的字符串
|
|
148
|
+
* @param obj - 需要转换的对象
|
|
149
|
+
* @param str - 需要转换的字符串,默认是无
|
|
150
|
+
* @returns 转换后的对象
|
|
151
|
+
*/
|
|
152
|
+
buildNullStr(obj, str = '无') {
|
|
153
|
+
const newObj = obj;
|
|
154
|
+
Object.keys(obj).forEach((key) => {
|
|
155
|
+
if (obj[key] === '') {
|
|
156
|
+
newObj[key] = str;
|
|
157
|
+
}
|
|
158
|
+
});
|
|
159
|
+
return newObj;
|
|
160
|
+
},
|
|
161
|
+
/**
|
|
162
|
+
* 将对象的key变成数字
|
|
163
|
+
* @param obj - 需要转换的对象
|
|
164
|
+
* @returns 转换后的对象
|
|
165
|
+
*/
|
|
166
|
+
objToNum(obj) {
|
|
167
|
+
const newObj = {};
|
|
168
|
+
Object.keys(obj).forEach(key => {
|
|
169
|
+
newObj[Number(key)] = obj[key];
|
|
170
|
+
});
|
|
171
|
+
return newObj;
|
|
172
|
+
},
|
|
173
|
+
/**
|
|
174
|
+
* 给vuex进行刷新的方法
|
|
175
|
+
* @param state - 状态对象
|
|
176
|
+
* @param payload - 载荷数据
|
|
177
|
+
*/
|
|
178
|
+
refreshState(state, payload) {
|
|
179
|
+
Object.keys(payload).forEach(key => {
|
|
180
|
+
if (Array.isArray(payload[key])) {
|
|
181
|
+
// 这里需要引入ArrayUtil,暂时使用简单的克隆
|
|
182
|
+
state[key] = [...payload[key]];
|
|
183
|
+
}
|
|
184
|
+
else if (typeof payload[key] === 'object') {
|
|
185
|
+
Object.keys(payload[key]).forEach(key2 => {
|
|
186
|
+
state[key][key2] = payload[key][key2];
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
state[key] = payload[key];
|
|
191
|
+
}
|
|
192
|
+
});
|
|
193
|
+
},
|
|
194
|
+
/**
|
|
195
|
+
* 删除对象里面的时间字段
|
|
196
|
+
* @param obj - 需要处理的对象
|
|
197
|
+
* @param keys - 额外需要删除的字段
|
|
198
|
+
* @returns 处理后的对象
|
|
199
|
+
*/
|
|
200
|
+
deleteTime(obj, keys = []) {
|
|
201
|
+
const defKeys = ['createTime', 'updateTime', 'createDate', 'updateDate', ...keys];
|
|
202
|
+
const newObj = { ...obj };
|
|
203
|
+
defKeys.forEach(key => {
|
|
204
|
+
if (newObj[key]) {
|
|
205
|
+
delete newObj[key];
|
|
206
|
+
}
|
|
207
|
+
});
|
|
208
|
+
return newObj;
|
|
209
|
+
},
|
|
210
|
+
/**
|
|
211
|
+
* 枚举转option的函数
|
|
212
|
+
* @param enumObj - 枚举对象
|
|
213
|
+
* @returns 选项数组
|
|
214
|
+
*/
|
|
215
|
+
enumToOptions(enumObj) {
|
|
216
|
+
const keys = Object.keys(enumObj);
|
|
217
|
+
return keys.map(key => ({
|
|
218
|
+
...enumObj[key],
|
|
219
|
+
label: enumObj[key].text,
|
|
220
|
+
value: key
|
|
221
|
+
}));
|
|
222
|
+
},
|
|
223
|
+
/**
|
|
224
|
+
* 比较两个对象是否相同
|
|
225
|
+
* @param obj1 - 第一个对象
|
|
226
|
+
* @param obj2 - 第二个对象
|
|
227
|
+
* @returns 是否相同
|
|
228
|
+
*/
|
|
229
|
+
isSameObj(obj1, obj2) {
|
|
230
|
+
const keys1 = Object.keys(obj1);
|
|
231
|
+
const keys2 = Object.keys(obj2);
|
|
232
|
+
if (keys1.length !== keys2.length) {
|
|
233
|
+
return false;
|
|
234
|
+
}
|
|
235
|
+
for (let i = 0; i < keys1.length; i++) {
|
|
236
|
+
if (obj1[keys1[i]] !== obj2[keys2[i]]) {
|
|
237
|
+
return false;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
return true;
|
|
241
|
+
}
|
|
242
|
+
};
|
|
243
|
+
|
|
244
|
+
export { objectUtils as default };
|
|
245
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/core/objectUtils/index.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 分页的数据
|
|
3
|
+
*/
|
|
4
|
+
interface ITablePage<T> {
|
|
5
|
+
/**
|
|
6
|
+
* 列表数据
|
|
7
|
+
*/
|
|
8
|
+
records: T[];
|
|
9
|
+
/**
|
|
10
|
+
* 列表数据-确保不为空
|
|
11
|
+
*/
|
|
12
|
+
list: T[];
|
|
13
|
+
/**
|
|
14
|
+
* 单页大小
|
|
15
|
+
*/
|
|
16
|
+
size: number;
|
|
17
|
+
/**
|
|
18
|
+
* 当前页数
|
|
19
|
+
*/
|
|
20
|
+
current: number;
|
|
21
|
+
/**
|
|
22
|
+
* 总页数
|
|
23
|
+
*/
|
|
24
|
+
pages: number;
|
|
25
|
+
/**
|
|
26
|
+
* 总条数
|
|
27
|
+
*/
|
|
28
|
+
total: number;
|
|
29
|
+
/**
|
|
30
|
+
* 是否升序
|
|
31
|
+
*/
|
|
32
|
+
asc?: boolean;
|
|
33
|
+
}
|
|
34
|
+
declare const defTableData: ITablePage<any>;
|
|
35
|
+
/**
|
|
36
|
+
* 页面工具对象
|
|
37
|
+
*/
|
|
38
|
+
declare const pageUtils: {
|
|
39
|
+
isLastPageData: (data: ITablePage<any>) => boolean;
|
|
40
|
+
buildPageConfig: (data?: ITablePage<any>) => {
|
|
41
|
+
current: number;
|
|
42
|
+
pageSize: number;
|
|
43
|
+
total: number;
|
|
44
|
+
showQuickJumper: boolean;
|
|
45
|
+
showSizeChanger: boolean;
|
|
46
|
+
showTotal: (total: number, range: number[]) => string;
|
|
47
|
+
};
|
|
48
|
+
defaultTableData: ITablePage<any>;
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
export { defTableData, pageUtils as default };
|
|
52
|
+
export type { ITablePage };
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
const defTableData = {
|
|
2
|
+
current: 0,
|
|
3
|
+
pages: 0,
|
|
4
|
+
records: [],
|
|
5
|
+
list: [],
|
|
6
|
+
size: 0,
|
|
7
|
+
total: 0
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* 页面工具函数
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* 当前页是否是最后一页
|
|
14
|
+
* @param data - 分页数据
|
|
15
|
+
* @returns 是否为最后一页
|
|
16
|
+
*/
|
|
17
|
+
const isLastPageData = (data) => {
|
|
18
|
+
if (Object.keys(data).length > 0) {
|
|
19
|
+
// 判断当前数据是否是最后一条
|
|
20
|
+
const { records, current } = data;
|
|
21
|
+
// 如果当前只有一条数据了并且当前页数大于一页
|
|
22
|
+
return records.length === 1 && current > 1;
|
|
23
|
+
}
|
|
24
|
+
return false;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* 生成翻页配置数据
|
|
28
|
+
* @param data - 后台传递的数据
|
|
29
|
+
* @returns 翻页配置对象
|
|
30
|
+
*/
|
|
31
|
+
const buildPageConfig = (data) => ({
|
|
32
|
+
// 设置第几页
|
|
33
|
+
current: data?.current || 0,
|
|
34
|
+
// 设置每页条数
|
|
35
|
+
pageSize: data?.size || 0,
|
|
36
|
+
// 设置总页数
|
|
37
|
+
total: data?.total || 0,
|
|
38
|
+
// 页数跳转
|
|
39
|
+
showQuickJumper: true,
|
|
40
|
+
//是否支持切换每页的大小
|
|
41
|
+
showSizeChanger: false,
|
|
42
|
+
// 总页数显示
|
|
43
|
+
showTotal: (total, range) => `${Number(total).toLocaleString('en-US')} 条数据中的第${range[0]}-${range[1]}条 `
|
|
44
|
+
});
|
|
45
|
+
/**
|
|
46
|
+
* 默认的表格数据
|
|
47
|
+
*/
|
|
48
|
+
const defaultTableData = {
|
|
49
|
+
current: 0,
|
|
50
|
+
pages: 0,
|
|
51
|
+
records: [],
|
|
52
|
+
list: [],
|
|
53
|
+
size: 0,
|
|
54
|
+
total: 0
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* 页面工具对象
|
|
58
|
+
*/
|
|
59
|
+
const pageUtils = {
|
|
60
|
+
isLastPageData,
|
|
61
|
+
buildPageConfig,
|
|
62
|
+
defaultTableData
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
export { buildPageConfig, defTableData, pageUtils as default, defaultTableData, isLastPageData };
|
|
66
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/core/pageUtils/index.ts"],"sourcesContent":[null],"names":[],"mappings":"AAkCO,MAAM,YAAY,GAAoB;AAC3C,IAAA,OAAO,EAAE,CAAC;AACV,IAAA,KAAK,EAAE,CAAC;AACR,IAAA,OAAO,EAAE,EAAE;AACX,IAAA,IAAI,EAAE,EAAE;AACR,IAAA,IAAI,EAAE,CAAC;AACP,IAAA,KAAK,EAAE;;AAGT;;AAEG;AAEH;;;;AAIG;AACI,MAAM,cAAc,GAAG,CAAC,IAAqB,KAAa;IAC/D,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;;AAEhC,QAAA,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI;;QAEjC,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,GAAG,CAAC;IAC5C;AACA,IAAA,OAAO,KAAK;AACd;AAEA;;;;AAIG;MACU,eAAe,GAAG,CAAC,IAAsB,MAAM;;AAE1D,IAAA,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,CAAC;;AAE3B,IAAA,QAAQ,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;;AAEzB,IAAA,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;;AAEvB,IAAA,eAAe,EAAE,IAAI;;AAErB,IAAA,eAAe,EAAE,KAAK;;AAEtB,IAAA,SAAS,EAAE,CAAC,KAAa,EAAE,KAAe,KACxC,CAAA,EAAG,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA,OAAA,EAAU,KAAK,CAAC,CAAC,CAAC,CAAA,CAAA,EAAI,KAAK,CAAC,CAAC,CAAC,CAAA,EAAA;AACzE,CAAA;AAED;;AAEG;AACI,MAAM,gBAAgB,GAAoB;AAC/C,IAAA,OAAO,EAAE,CAAC;AACV,IAAA,KAAK,EAAE,CAAC;AACR,IAAA,OAAO,EAAE,EAAE;AACX,IAAA,IAAI,EAAE,EAAE;AACR,IAAA,IAAI,EAAE,CAAC;AACP,IAAA,KAAK,EAAE;;AAGT;;AAEG;AACH,MAAM,SAAS,GAAG;IAChB,cAAc;IACd,eAAe;IACf;;;;;"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 字符串工具函数
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* 字符串工具对象
|
|
6
|
+
*/
|
|
7
|
+
declare const stringUtils: {
|
|
8
|
+
/**
|
|
9
|
+
* 首字母大写
|
|
10
|
+
* @param str 输入字符串
|
|
11
|
+
* @returns 首字母大写的字符串
|
|
12
|
+
*/
|
|
13
|
+
capitalize(str: string): string;
|
|
14
|
+
/**
|
|
15
|
+
* 驼峰命名转换
|
|
16
|
+
* @param str 输入字符串
|
|
17
|
+
* @returns 驼峰命名的字符串
|
|
18
|
+
*/
|
|
19
|
+
toCamelCase(str: string): string;
|
|
20
|
+
/**
|
|
21
|
+
* 短横线命名转换
|
|
22
|
+
* @param str 输入字符串
|
|
23
|
+
* @returns 短横线命名的字符串
|
|
24
|
+
*/
|
|
25
|
+
toKebabCase(str: string): string;
|
|
26
|
+
/**
|
|
27
|
+
* 下划线命名转换
|
|
28
|
+
* @param str 输入字符串
|
|
29
|
+
* @returns 下划线命名的字符串
|
|
30
|
+
*/
|
|
31
|
+
toSnakeCase(str: string): string;
|
|
32
|
+
/**
|
|
33
|
+
* 截断字符串
|
|
34
|
+
* @param str 输入字符串
|
|
35
|
+
* @param length 最大长度
|
|
36
|
+
* @param suffix 后缀,默认为 '...'
|
|
37
|
+
* @returns 截断后的字符串
|
|
38
|
+
*/
|
|
39
|
+
truncate(str: string, length: number, suffix?: string): string;
|
|
40
|
+
/**
|
|
41
|
+
* 移除字符串两端空白字符
|
|
42
|
+
* @param str 输入字符串
|
|
43
|
+
* @returns 处理后的字符串
|
|
44
|
+
*/
|
|
45
|
+
trim(str: string): string;
|
|
46
|
+
/**
|
|
47
|
+
* 生成随机字符串
|
|
48
|
+
* @param length 长度
|
|
49
|
+
* @param chars 字符集,默认为字母数字
|
|
50
|
+
* @returns 随机字符串
|
|
51
|
+
*/
|
|
52
|
+
randomString(length: number, chars?: string): string;
|
|
53
|
+
/**
|
|
54
|
+
* 构建金额字符串
|
|
55
|
+
* @param num 金额数值
|
|
56
|
+
* @returns 金额字符串
|
|
57
|
+
*/
|
|
58
|
+
buildMoneyStr(str: number | string): string;
|
|
59
|
+
/**
|
|
60
|
+
* 替换对象或者数组中的空值
|
|
61
|
+
*/
|
|
62
|
+
replaceEmpty: (data: any, replaceStr?: string) => any;
|
|
63
|
+
/**
|
|
64
|
+
* 替换指定的字段为 -
|
|
65
|
+
*/
|
|
66
|
+
replaceFieldsEmpty: (data: any, fields: string[], replaceStr?: string) => any;
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
export { stringUtils as default };
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import dateUtils from '../dateUtils/index.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* 字符串工具函数
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* 字符串工具对象
|
|
8
|
+
*/
|
|
9
|
+
const stringUtils = {
|
|
10
|
+
/**
|
|
11
|
+
* 首字母大写
|
|
12
|
+
* @param str 输入字符串
|
|
13
|
+
* @returns 首字母大写的字符串
|
|
14
|
+
*/
|
|
15
|
+
capitalize(str) {
|
|
16
|
+
if (!str)
|
|
17
|
+
return str;
|
|
18
|
+
return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();
|
|
19
|
+
},
|
|
20
|
+
/**
|
|
21
|
+
* 驼峰命名转换
|
|
22
|
+
* @param str 输入字符串
|
|
23
|
+
* @returns 驼峰命名的字符串
|
|
24
|
+
*/
|
|
25
|
+
toCamelCase(str) {
|
|
26
|
+
return str.replace(/[-_\s]+(.)?/g, (_, char) => char ? char.toUpperCase() : '');
|
|
27
|
+
},
|
|
28
|
+
/**
|
|
29
|
+
* 短横线命名转换
|
|
30
|
+
* @param str 输入字符串
|
|
31
|
+
* @returns 短横线命名的字符串
|
|
32
|
+
*/
|
|
33
|
+
toKebabCase(str) {
|
|
34
|
+
return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
|
|
35
|
+
},
|
|
36
|
+
/**
|
|
37
|
+
* 下划线命名转换
|
|
38
|
+
* @param str 输入字符串
|
|
39
|
+
* @returns 下划线命名的字符串
|
|
40
|
+
*/
|
|
41
|
+
toSnakeCase(str) {
|
|
42
|
+
return str.replace(/([a-z])([A-Z])/g, '$1_$2').toLowerCase();
|
|
43
|
+
},
|
|
44
|
+
/**
|
|
45
|
+
* 截断字符串
|
|
46
|
+
* @param str 输入字符串
|
|
47
|
+
* @param length 最大长度
|
|
48
|
+
* @param suffix 后缀,默认为 '...'
|
|
49
|
+
* @returns 截断后的字符串
|
|
50
|
+
*/
|
|
51
|
+
truncate(str, length, suffix = '...') {
|
|
52
|
+
if (str.length <= length)
|
|
53
|
+
return str;
|
|
54
|
+
return str.slice(0, length - suffix.length) + suffix;
|
|
55
|
+
},
|
|
56
|
+
/**
|
|
57
|
+
* 移除字符串两端空白字符
|
|
58
|
+
* @param str 输入字符串
|
|
59
|
+
* @returns 处理后的字符串
|
|
60
|
+
*/
|
|
61
|
+
trim(str) {
|
|
62
|
+
return str.replace(/^\s+|\s+$/g, '');
|
|
63
|
+
},
|
|
64
|
+
/**
|
|
65
|
+
* 生成随机字符串
|
|
66
|
+
* @param length 长度
|
|
67
|
+
* @param chars 字符集,默认为字母数字
|
|
68
|
+
* @returns 随机字符串
|
|
69
|
+
*/
|
|
70
|
+
randomString(length, chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789') {
|
|
71
|
+
let result = '';
|
|
72
|
+
for (let i = 0; i < length; i++) {
|
|
73
|
+
result += chars.charAt(Math.floor(Math.random() * chars.length));
|
|
74
|
+
}
|
|
75
|
+
return result;
|
|
76
|
+
},
|
|
77
|
+
/**
|
|
78
|
+
* 构建金额字符串
|
|
79
|
+
* @param num 金额数值
|
|
80
|
+
* @returns 金额字符串
|
|
81
|
+
*/
|
|
82
|
+
buildMoneyStr(str) {
|
|
83
|
+
if (!str)
|
|
84
|
+
return '0';
|
|
85
|
+
str = str.toString();
|
|
86
|
+
// 先找到小数点的位置
|
|
87
|
+
let smallMoney = '';
|
|
88
|
+
let money = '';
|
|
89
|
+
if (str.indexOf('.') > 0) {
|
|
90
|
+
smallMoney = str.substring(str.indexOf('.'));
|
|
91
|
+
// 计算前面那部分的钱
|
|
92
|
+
money = str.substring(0, str.indexOf('.'));
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
money = str;
|
|
96
|
+
}
|
|
97
|
+
let num = (money || 0).toString();
|
|
98
|
+
let result = '';
|
|
99
|
+
while (num.length > 3) {
|
|
100
|
+
result = `,${num.slice(-3)}${result}`;
|
|
101
|
+
num = num.slice(0, num.length - 3);
|
|
102
|
+
}
|
|
103
|
+
if (num) {
|
|
104
|
+
result = num + result + smallMoney;
|
|
105
|
+
}
|
|
106
|
+
return result;
|
|
107
|
+
},
|
|
108
|
+
/**
|
|
109
|
+
* 替换对象或者数组中的空值
|
|
110
|
+
*/
|
|
111
|
+
replaceEmpty: (data, replaceStr = '-') => {
|
|
112
|
+
if (data) {
|
|
113
|
+
if (Array.isArray(data)) {
|
|
114
|
+
data.forEach((item, index) => {
|
|
115
|
+
// 只对对象进行处理
|
|
116
|
+
if (typeof item === 'object') {
|
|
117
|
+
data[index] = stringUtils.replaceEmpty(item, replaceStr);
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
else if (typeof data === 'object') {
|
|
122
|
+
Object.keys(data).forEach(key => {
|
|
123
|
+
// 不对时间进行处理
|
|
124
|
+
if (key.includes('date') || key.includes('Date')) {
|
|
125
|
+
// 使用安全的时间格式化
|
|
126
|
+
data[key] = dateUtils.safeFormat(data[key]);
|
|
127
|
+
}
|
|
128
|
+
else if (key.includes('time') || key.includes('Time')) {
|
|
129
|
+
// 使用安全的时间格式化
|
|
130
|
+
data[key] = dateUtils.safeFormat(data[key], 'YYYY-MM-DD HH:mm:ss');
|
|
131
|
+
}
|
|
132
|
+
else if (data[key] === null || data[key] === undefined || data[key] === '') {
|
|
133
|
+
data[key] = replaceStr;
|
|
134
|
+
}
|
|
135
|
+
else if (typeof data[key] === 'object') {
|
|
136
|
+
data[key] = stringUtils.replaceEmpty(data[key], replaceStr);
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return data;
|
|
142
|
+
},
|
|
143
|
+
/**
|
|
144
|
+
* 替换指定的字段为 -
|
|
145
|
+
*/
|
|
146
|
+
replaceFieldsEmpty: (data, fields, replaceStr = '-') => {
|
|
147
|
+
if (data && fields && fields.length > 0) {
|
|
148
|
+
fields.forEach(field => {
|
|
149
|
+
if (data[field] === null || data[field] === undefined || data[field] === '') {
|
|
150
|
+
data[field] = replaceStr;
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
return data;
|
|
155
|
+
},
|
|
156
|
+
};
|
|
157
|
+
|
|
158
|
+
export { stringUtils as default };
|
|
159
|
+
//# sourceMappingURL=index.js.map
|