@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.
Files changed (160) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +244 -0
  3. package/dist/.tsbuildinfo +1 -0
  4. package/dist/browser/cookieUtils/index.cjs +100 -0
  5. package/dist/browser/cookieUtils/index.cjs.map +1 -0
  6. package/dist/browser/cookieUtils/index.d.ts +55 -0
  7. package/dist/browser/domUtils/index.cjs +237 -0
  8. package/dist/browser/domUtils/index.cjs.map +1 -0
  9. package/dist/browser/domUtils/index.d.ts +116 -0
  10. package/dist/browser/index.cjs +12 -0
  11. package/dist/browser/index.cjs.map +1 -0
  12. package/dist/browser/index.d.ts +3 -0
  13. package/dist/browser/urlUtils/index.cjs +262 -0
  14. package/dist/browser/urlUtils/index.cjs.map +1 -0
  15. package/dist/browser/urlUtils/index.d.ts +72 -0
  16. package/dist/core/arrayUtils/index.cjs +109 -0
  17. package/dist/core/arrayUtils/index.cjs.map +1 -0
  18. package/dist/core/arrayUtils/index.d.ts +67 -0
  19. package/dist/core/asyncUtils/index.cjs +180 -0
  20. package/dist/core/asyncUtils/index.cjs.map +1 -0
  21. package/dist/core/asyncUtils/index.d.ts +80 -0
  22. package/dist/core/colorUtils/index.cjs +38 -0
  23. package/dist/core/colorUtils/index.cjs.map +1 -0
  24. package/dist/core/colorUtils/index.d.ts +10 -0
  25. package/dist/core/cryptoUtils/index.cjs +428 -0
  26. package/dist/core/cryptoUtils/index.cjs.map +1 -0
  27. package/dist/core/cryptoUtils/index.d.ts +132 -0
  28. package/dist/core/dateUtils/index.cjs +245 -0
  29. package/dist/core/dateUtils/index.cjs.map +1 -0
  30. package/dist/core/dateUtils/index.d.ts +117 -0
  31. package/dist/core/index.cjs +34 -0
  32. package/dist/core/index.cjs.map +1 -0
  33. package/dist/core/index.d.ts +118 -0
  34. package/dist/core/numberUtils/index.cjs +126 -0
  35. package/dist/core/numberUtils/index.cjs.map +1 -0
  36. package/dist/core/numberUtils/index.d.ts +91 -0
  37. package/dist/core/objectUtils/index.cjs +249 -0
  38. package/dist/core/objectUtils/index.cjs.map +1 -0
  39. package/dist/core/objectUtils/index.d.ts +91 -0
  40. package/dist/core/pageUtils/index.cjs +74 -0
  41. package/dist/core/pageUtils/index.cjs.map +1 -0
  42. package/dist/core/pageUtils/index.d.ts +52 -0
  43. package/dist/core/stringUtils/index.cjs +163 -0
  44. package/dist/core/stringUtils/index.cjs.map +1 -0
  45. package/dist/core/stringUtils/index.d.ts +69 -0
  46. package/dist/core/validationUtils/index.cjs +154 -0
  47. package/dist/core/validationUtils/index.cjs.map +1 -0
  48. package/dist/core/validationUtils/index.d.ts +87 -0
  49. package/dist/esm/browser/cookieUtils/index.d.ts +55 -0
  50. package/dist/esm/browser/cookieUtils/index.js +96 -0
  51. package/dist/esm/browser/cookieUtils/index.js.map +1 -0
  52. package/dist/esm/browser/domUtils/index.d.ts +116 -0
  53. package/dist/esm/browser/domUtils/index.js +233 -0
  54. package/dist/esm/browser/domUtils/index.js.map +1 -0
  55. package/dist/esm/browser/index.d.ts +3 -0
  56. package/dist/esm/browser/index.js +4 -0
  57. package/dist/esm/browser/index.js.map +1 -0
  58. package/dist/esm/browser/urlUtils/index.d.ts +72 -0
  59. package/dist/esm/browser/urlUtils/index.js +248 -0
  60. package/dist/esm/browser/urlUtils/index.js.map +1 -0
  61. package/dist/esm/core/arrayUtils/index.d.ts +67 -0
  62. package/dist/esm/core/arrayUtils/index.js +105 -0
  63. package/dist/esm/core/arrayUtils/index.js.map +1 -0
  64. package/dist/esm/core/asyncUtils/index.d.ts +80 -0
  65. package/dist/esm/core/asyncUtils/index.js +175 -0
  66. package/dist/esm/core/asyncUtils/index.js.map +1 -0
  67. package/dist/esm/core/colorUtils/index.d.ts +10 -0
  68. package/dist/esm/core/colorUtils/index.js +34 -0
  69. package/dist/esm/core/colorUtils/index.js.map +1 -0
  70. package/dist/esm/core/cryptoUtils/index.d.ts +132 -0
  71. package/dist/esm/core/cryptoUtils/index.js +424 -0
  72. package/dist/esm/core/cryptoUtils/index.js.map +1 -0
  73. package/dist/esm/core/dateUtils/index.d.ts +117 -0
  74. package/dist/esm/core/dateUtils/index.js +241 -0
  75. package/dist/esm/core/dateUtils/index.js.map +1 -0
  76. package/dist/esm/core/index.d.ts +118 -0
  77. package/dist/esm/core/index.js +30 -0
  78. package/dist/esm/core/index.js.map +1 -0
  79. package/dist/esm/core/numberUtils/index.d.ts +91 -0
  80. package/dist/esm/core/numberUtils/index.js +122 -0
  81. package/dist/esm/core/numberUtils/index.js.map +1 -0
  82. package/dist/esm/core/objectUtils/index.d.ts +91 -0
  83. package/dist/esm/core/objectUtils/index.js +245 -0
  84. package/dist/esm/core/objectUtils/index.js.map +1 -0
  85. package/dist/esm/core/pageUtils/index.d.ts +52 -0
  86. package/dist/esm/core/pageUtils/index.js +66 -0
  87. package/dist/esm/core/pageUtils/index.js.map +1 -0
  88. package/dist/esm/core/stringUtils/index.d.ts +69 -0
  89. package/dist/esm/core/stringUtils/index.js +159 -0
  90. package/dist/esm/core/stringUtils/index.js.map +1 -0
  91. package/dist/esm/core/validationUtils/index.d.ts +87 -0
  92. package/dist/esm/core/validationUtils/index.js +150 -0
  93. package/dist/esm/core/validationUtils/index.js.map +1 -0
  94. package/dist/esm/index.d.ts +22 -0
  95. package/dist/esm/index.js +26 -0
  96. package/dist/esm/index.js.map +1 -0
  97. package/dist/esm/request/ReqQueue/index.js +59 -0
  98. package/dist/esm/request/ReqQueue/index.js.map +1 -0
  99. package/dist/esm/request/httpCode/index.js +49 -0
  100. package/dist/esm/request/httpCode/index.js.map +1 -0
  101. package/dist/esm/request/httpUtils/index.js +359 -0
  102. package/dist/esm/request/httpUtils/index.js.map +1 -0
  103. package/dist/esm/request/index.d.ts +15 -0
  104. package/dist/esm/request/index.js +166 -0
  105. package/dist/esm/request/index.js.map +1 -0
  106. package/dist/esm/request/typings/index.d.ts +184 -0
  107. package/dist/esm/request/uniRequest/index.js +62 -0
  108. package/dist/esm/request/uniRequest/index.js.map +1 -0
  109. package/dist/esm/types/data/index.d.ts +188 -0
  110. package/dist/esm/types/data/index.js +13 -0
  111. package/dist/esm/types/data/index.js.map +1 -0
  112. package/dist/esm/types/index.d.ts +1 -0
  113. package/dist/esm/types/index.js +2 -0
  114. package/dist/esm/types/index.js.map +1 -0
  115. package/dist/esm/uniapp/Tips/index.d.ts +295 -0
  116. package/dist/esm/uniapp/Tips/index.js +498 -0
  117. package/dist/esm/uniapp/Tips/index.js.map +1 -0
  118. package/dist/esm/uniapp/cloudUtils/index.d.ts +56 -0
  119. package/dist/esm/uniapp/cloudUtils/index.js +90 -0
  120. package/dist/esm/uniapp/cloudUtils/index.js.map +1 -0
  121. package/dist/esm/uniapp/index.d.ts +3 -0
  122. package/dist/esm/uniapp/index.js +4 -0
  123. package/dist/esm/uniapp/index.js.map +1 -0
  124. package/dist/esm/uniapp/uniUtils/index.d.ts +113 -0
  125. package/dist/esm/uniapp/uniUtils/index.js +199 -0
  126. package/dist/esm/uniapp/uniUtils/index.js.map +1 -0
  127. package/dist/index.cjs +88 -0
  128. package/dist/index.cjs.map +1 -0
  129. package/dist/index.d.ts +22 -0
  130. package/dist/request/ReqQueue/index.cjs +63 -0
  131. package/dist/request/ReqQueue/index.cjs.map +1 -0
  132. package/dist/request/httpCode/index.cjs +52 -0
  133. package/dist/request/httpCode/index.cjs.map +1 -0
  134. package/dist/request/httpUtils/index.cjs +365 -0
  135. package/dist/request/httpUtils/index.cjs.map +1 -0
  136. package/dist/request/index.cjs +170 -0
  137. package/dist/request/index.cjs.map +1 -0
  138. package/dist/request/index.d.ts +15 -0
  139. package/dist/request/typings/index.d.ts +184 -0
  140. package/dist/request/uniRequest/index.cjs +66 -0
  141. package/dist/request/uniRequest/index.cjs.map +1 -0
  142. package/dist/types/data/index.cjs +15 -0
  143. package/dist/types/data/index.cjs.map +1 -0
  144. package/dist/types/data/index.d.ts +188 -0
  145. package/dist/types/index.cjs +8 -0
  146. package/dist/types/index.cjs.map +1 -0
  147. package/dist/types/index.d.ts +1 -0
  148. package/dist/uniapp/Tips/index.cjs +521 -0
  149. package/dist/uniapp/Tips/index.cjs.map +1 -0
  150. package/dist/uniapp/Tips/index.d.ts +295 -0
  151. package/dist/uniapp/cloudUtils/index.cjs +92 -0
  152. package/dist/uniapp/cloudUtils/index.cjs.map +1 -0
  153. package/dist/uniapp/cloudUtils/index.d.ts +56 -0
  154. package/dist/uniapp/index.cjs +53 -0
  155. package/dist/uniapp/index.cjs.map +1 -0
  156. package/dist/uniapp/index.d.ts +3 -0
  157. package/dist/uniapp/uniUtils/index.cjs +213 -0
  158. package/dist/uniapp/uniUtils/index.cjs.map +1 -0
  159. package/dist/uniapp/uniUtils/index.d.ts +113 -0
  160. 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