@allahjs/utils 1.10.0 → 1.12.0

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 (88) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/core/arrayUtils/index.cjs +327 -3
  3. package/dist/core/arrayUtils/index.cjs.map +1 -1
  4. package/dist/core/arrayUtils/index.d.ts +137 -3
  5. package/dist/core/constants/asyncTaskScheduleVo.d.ts +1 -1
  6. package/dist/core/constants/comm.cjs +8 -8
  7. package/dist/core/constants/comm.cjs.map +1 -1
  8. package/dist/core/constants/comm.d.ts +4 -4
  9. package/dist/core/constants/index.cjs +2 -2
  10. package/dist/core/constants/index.d.ts +1 -1
  11. package/dist/core/diffUtils/index.cjs +219 -0
  12. package/dist/core/diffUtils/index.cjs.map +1 -0
  13. package/dist/core/diffUtils/index.d.ts +32 -0
  14. package/dist/core/fileUtils/index.cjs +21 -0
  15. package/dist/core/fileUtils/index.cjs.map +1 -0
  16. package/dist/core/fileUtils/index.d.ts +10 -0
  17. package/dist/core/index.cjs +20 -10
  18. package/dist/core/index.cjs.map +1 -1
  19. package/dist/core/index.d.ts +69 -1
  20. package/dist/core/pageUtils/index.cjs +21 -1
  21. package/dist/core/pageUtils/index.cjs.map +1 -1
  22. package/dist/core/pageUtils/index.d.ts +1 -0
  23. package/dist/esm/core/arrayUtils/index.d.ts +137 -3
  24. package/dist/esm/core/arrayUtils/index.js +327 -3
  25. package/dist/esm/core/arrayUtils/index.js.map +1 -1
  26. package/dist/esm/core/constants/asyncTaskScheduleVo.d.ts +1 -1
  27. package/dist/esm/core/constants/comm.d.ts +4 -4
  28. package/dist/esm/core/constants/comm.js +9 -9
  29. package/dist/esm/core/constants/comm.js.map +1 -1
  30. package/dist/esm/core/constants/index.d.ts +1 -1
  31. package/dist/esm/core/constants/index.js +1 -1
  32. package/dist/esm/core/diffUtils/index.d.ts +32 -0
  33. package/dist/esm/core/diffUtils/index.js +215 -0
  34. package/dist/esm/core/diffUtils/index.js.map +1 -0
  35. package/dist/esm/core/fileUtils/index.d.ts +10 -0
  36. package/dist/esm/core/fileUtils/index.js +16 -0
  37. package/dist/esm/core/fileUtils/index.js.map +1 -0
  38. package/dist/esm/core/index.d.ts +69 -1
  39. package/dist/esm/core/index.js +10 -0
  40. package/dist/esm/core/index.js.map +1 -1
  41. package/dist/esm/core/pageUtils/index.d.ts +1 -0
  42. package/dist/esm/core/pageUtils/index.js +21 -2
  43. package/dist/esm/core/pageUtils/index.js.map +1 -1
  44. package/dist/esm/form/attributes.d.ts +32 -0
  45. package/dist/esm/form/formItem.d.ts +163 -0
  46. package/dist/esm/form/index.d.ts +4 -1
  47. package/dist/esm/form/rule.d.ts +37 -0
  48. package/dist/esm/form/types.d.ts +12 -213
  49. package/dist/esm/index.d.ts +11 -2
  50. package/dist/esm/index.js +5 -0
  51. package/dist/esm/index.js.map +1 -1
  52. package/dist/esm/node_modules/.pnpm/diff@8.0.3/node_modules/diff/libesm/diff/array.js +20 -0
  53. package/dist/esm/node_modules/.pnpm/diff@8.0.3/node_modules/diff/libesm/diff/array.js.map +1 -0
  54. package/dist/esm/node_modules/.pnpm/diff@8.0.3/node_modules/diff/libesm/diff/base.js +256 -0
  55. package/dist/esm/node_modules/.pnpm/diff@8.0.3/node_modules/diff/libesm/diff/base.js.map +1 -0
  56. package/dist/esm/node_modules/.pnpm/diff@8.0.3/node_modules/diff/libesm/diff/character.js +11 -0
  57. package/dist/esm/node_modules/.pnpm/diff@8.0.3/node_modules/diff/libesm/diff/character.js.map +1 -0
  58. package/dist/esm/request/ReqQueue/index.d.ts +25 -0
  59. package/dist/esm/request/httpCode/index.d.ts +9 -0
  60. package/dist/esm/request/index.d.ts +6 -3
  61. package/dist/esm/request/index.js +4 -2
  62. package/dist/esm/request/index.js.map +1 -1
  63. package/dist/esm/request/uniRequest/index.d.ts +5 -0
  64. package/dist/esm/types/dbData/index.d.ts +83 -0
  65. package/dist/esm/types/index.d.ts +1 -0
  66. package/dist/form/attributes.d.ts +32 -0
  67. package/dist/form/formItem.d.ts +163 -0
  68. package/dist/form/index.d.ts +4 -1
  69. package/dist/form/rule.d.ts +37 -0
  70. package/dist/form/types.d.ts +12 -213
  71. package/dist/index.cjs +61 -50
  72. package/dist/index.cjs.map +1 -1
  73. package/dist/index.d.ts +11 -2
  74. package/dist/node_modules/.pnpm/diff@8.0.3/node_modules/diff/libesm/diff/array.cjs +23 -0
  75. package/dist/node_modules/.pnpm/diff@8.0.3/node_modules/diff/libesm/diff/array.cjs.map +1 -0
  76. package/dist/node_modules/.pnpm/diff@8.0.3/node_modules/diff/libesm/diff/base.cjs +260 -0
  77. package/dist/node_modules/.pnpm/diff@8.0.3/node_modules/diff/libesm/diff/base.cjs.map +1 -0
  78. package/dist/node_modules/.pnpm/diff@8.0.3/node_modules/diff/libesm/diff/character.cjs +14 -0
  79. package/dist/node_modules/.pnpm/diff@8.0.3/node_modules/diff/libesm/diff/character.cjs.map +1 -0
  80. package/dist/request/ReqQueue/index.d.ts +25 -0
  81. package/dist/request/httpCode/index.d.ts +9 -0
  82. package/dist/request/index.cjs +25 -20
  83. package/dist/request/index.cjs.map +1 -1
  84. package/dist/request/index.d.ts +6 -3
  85. package/dist/request/uniRequest/index.d.ts +5 -0
  86. package/dist/types/dbData/index.d.ts +83 -0
  87. package/dist/types/index.d.ts +1 -0
  88. package/package.json +28 -5
@@ -0,0 +1,219 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var character = require('../../node_modules/.pnpm/diff@8.0.3/node_modules/diff/libesm/diff/character.cjs');
6
+ var array = require('../../node_modules/.pnpm/diff@8.0.3/node_modules/diff/libesm/diff/array.cjs');
7
+ var index = require('../arrayUtils/index.cjs');
8
+
9
+ var _a;
10
+ class DiffUtils {
11
+ }
12
+ _a = DiffUtils;
13
+ /**
14
+ * 生成对象对数据
15
+ * @param oldObj 旧的对象
16
+ * @param newObj 新的对象
17
+ */
18
+ DiffUtils.buildDiffObj = (oldObj, newObj) => {
19
+ const diffObj = {};
20
+ const keys = Object.keys(newObj);
21
+ for (let i = 0; i < keys.length; i++) {
22
+ const key = keys[i];
23
+ // 如果两个相等
24
+ if (oldObj[key] === newObj[key]) {
25
+ continue;
26
+ }
27
+ // 都是null
28
+ if (oldObj[key] === null && newObj[key] === null) {
29
+ continue;
30
+ }
31
+ // 都是undefined
32
+ if (oldObj[key] === undefined && newObj[key] === undefined) {
33
+ continue;
34
+ }
35
+ if (typeof oldObj[key] === 'string') {
36
+ // 如果是空字符串和null或者undefined
37
+ if (oldObj[key] === '' && (newObj[key] === null || newObj[key] === undefined)) {
38
+ continue;
39
+ }
40
+ diffObj[key] = character.diffChars(oldObj[key], newObj[key] || '');
41
+ }
42
+ else if (typeof newObj[key] === 'number') {
43
+ diffObj[key] = [
44
+ {
45
+ count: 1,
46
+ removed: true,
47
+ value: oldObj[key]
48
+ },
49
+ {
50
+ count: 1,
51
+ added: true,
52
+ value: newObj[key]
53
+ }
54
+ ];
55
+ }
56
+ else if ((oldObj[key] === undefined || oldObj[key] === null) &&
57
+ typeof newObj[key] === 'string') {
58
+ diffObj[key] = character.diffChars('', newObj[key]);
59
+ }
60
+ else if (Array.isArray(oldObj[key]) || Array.isArray(newObj[key])) {
61
+ // 比较两个数组是否相同
62
+ const b = index.default.isEqual(oldObj[key], newObj[key]);
63
+ if (b) {
64
+ continue;
65
+ }
66
+ if (!oldObj?.[key]) {
67
+ oldObj[key] = [];
68
+ }
69
+ if (typeof oldObj[key][0] === 'string' || typeof newObj[key][0] === 'string') {
70
+ diffObj[key] = _a.buildDiffArray(oldObj[key], newObj[key]);
71
+ }
72
+ else {
73
+ // 智能对比对象数组:基于唯一标识字段判断新增、删除、修改
74
+ diffObj[key] = _a.buildDiffObjectArray(oldObj[key], newObj[key]);
75
+ }
76
+ }
77
+ }
78
+ return diffObj;
79
+ };
80
+ /**
81
+ * 构建全是添加的数据
82
+ * @param obj 操作的对象
83
+ */
84
+ DiffUtils.buildNewDiffObj = (obj) => {
85
+ const changeDate = {};
86
+ Object.keys(obj).forEach(key => {
87
+ if (Array.isArray(obj[key])) {
88
+ changeDate[key] = {
89
+ added: obj[key],
90
+ removed: [],
91
+ noed: []
92
+ };
93
+ }
94
+ else {
95
+ changeDate[key] = [
96
+ {
97
+ count: 1,
98
+ added: true,
99
+ value: obj[key]
100
+ }
101
+ ];
102
+ }
103
+ });
104
+ return changeDate;
105
+ };
106
+ DiffUtils.buildDiffArray = (oldArray, newArray) => {
107
+ const diffList = array.diffArrays(oldArray, newArray);
108
+ const diffObj = {
109
+ added: [],
110
+ removed: [],
111
+ noed: [],
112
+ change: false
113
+ };
114
+ diffList.forEach((item) => {
115
+ if (item.added) {
116
+ if (Array.isArray(item.value)) {
117
+ diffObj.added.push(...item.value);
118
+ }
119
+ else {
120
+ diffObj.added.push(item.value);
121
+ }
122
+ }
123
+ else if (item.removed) {
124
+ diffObj.change = true;
125
+ if (Array.isArray(item.value)) {
126
+ diffObj.removed.push(...item.value);
127
+ }
128
+ else {
129
+ diffObj.removed.push(item.value);
130
+ }
131
+ }
132
+ else {
133
+ diffObj.change = true;
134
+ if (Array.isArray(item.value)) {
135
+ diffObj.noed.push(...item.value);
136
+ }
137
+ else {
138
+ diffObj.noed.push(item.value);
139
+ }
140
+ }
141
+ });
142
+ return diffObj;
143
+ };
144
+ /**
145
+ * 比较对象数组,基于唯一标识字段判断新增、删除、无变化,,老的会存在同一组数据被误判为"删除+新增"
146
+ * @param oldArray 旧的对象数组
147
+ * @param newArray 新的对象数组
148
+ * @returns 包含added(新增)、removed(删除)、noed(无变化)的对象
149
+ */
150
+ DiffUtils.buildDiffObjectArray = (oldArray, newArray) => {
151
+ // 常见的唯一标识字段名
152
+ const idFields = ['id', 'code', 'adminCode', 'disId', 'key', '_id'];
153
+ // 自动识别唯一标识字段
154
+ let idField = '';
155
+ if (newArray.length > 0) {
156
+ for (const field of idFields) {
157
+ if (newArray[0]?.[field] !== undefined) {
158
+ idField = field;
159
+ break;
160
+ }
161
+ }
162
+ }
163
+ // 如果没有找到唯一标识字段,降级为简单的 JSON 字符串比较
164
+ if (!idField) {
165
+ const oldStrList = oldArray.map((item) => JSON.stringify(item));
166
+ const newStrList = newArray.map((item) => JSON.stringify(item));
167
+ const diffList = array.diffArrays(oldStrList, newStrList);
168
+ const result = {
169
+ added: [],
170
+ removed: [],
171
+ noed: []
172
+ };
173
+ diffList.forEach(item => {
174
+ if (item.added) {
175
+ result.added.push(item.value.map((item2) => JSON.parse(item2)));
176
+ }
177
+ else if (item.removed) {
178
+ result.removed.push(item.value.map((item2) => JSON.parse(item2)));
179
+ }
180
+ else {
181
+ result.noed.push(item.value.map((item2) => JSON.parse(item2)));
182
+ }
183
+ });
184
+ return result;
185
+ }
186
+ // 基于唯一标识字段进行智能比较
187
+ const oldMap = new Map(oldArray.map(item => [item[idField], item]));
188
+ const newMap = new Map(newArray.map(item => [item[idField], item]));
189
+ const result = {
190
+ added: [],
191
+ removed: [],
192
+ noed: []
193
+ };
194
+ // 找出新增和无变化的记录
195
+ newArray.forEach(newItem => {
196
+ const idValue = newItem[idField];
197
+ const oldItem = oldMap.get(idValue);
198
+ if (!oldItem) {
199
+ // 新增的记录
200
+ result.added.push([newItem]);
201
+ }
202
+ else {
203
+ // 唯一标识相同即认为无变化(忽略字段值的变化)
204
+ result.noed.push([newItem]);
205
+ }
206
+ });
207
+ // 找出删除的记录
208
+ oldArray.forEach(oldItem => {
209
+ const idValue = oldItem[idField];
210
+ if (!newMap.has(idValue)) {
211
+ // 删除的记录
212
+ result.removed.push([oldItem]);
213
+ }
214
+ });
215
+ return result;
216
+ };
217
+
218
+ exports.default = DiffUtils;
219
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/core/diffUtils/index.ts"],"sourcesContent":[null],"names":["diffChars","arrayUtils","diffArrays"],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ declare class DiffUtils {
2
+ /**
3
+ * 生成对象对数据
4
+ * @param oldObj 旧的对象
5
+ * @param newObj 新的对象
6
+ */
7
+ static buildDiffObj: (oldObj: any, newObj: any) => any;
8
+ /**
9
+ * 构建全是添加的数据
10
+ * @param obj 操作的对象
11
+ */
12
+ static buildNewDiffObj: (obj: any) => any;
13
+ static buildDiffArray: (oldArray: any[], newArray: any[]) => {
14
+ added: any[];
15
+ removed: any[];
16
+ noed: any[];
17
+ change: boolean;
18
+ };
19
+ /**
20
+ * 比较对象数组,基于唯一标识字段判断新增、删除、无变化,,老的会存在同一组数据被误判为"删除+新增"
21
+ * @param oldArray 旧的对象数组
22
+ * @param newArray 新的对象数组
23
+ * @returns 包含added(新增)、removed(删除)、noed(无变化)的对象
24
+ */
25
+ static buildDiffObjectArray: (oldArray: any[], newArray: any[]) => {
26
+ added: any[][];
27
+ removed: any[][];
28
+ noed: any[][];
29
+ };
30
+ }
31
+
32
+ export { DiffUtils as default };
@@ -0,0 +1,21 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const fileUtils = {
6
+ /**
7
+ * 判断是否为图片文件
8
+ * @param filename 文件名
9
+ * @returns 是否为图片文件
10
+ */
11
+ isImageFile(filename) {
12
+ const rgx = '(JPEG|jpeg|JPG|jpg|gif|GIF|HEIC|heic|BMP|bmp|PNG|png)$';
13
+ const re = new RegExp(rgx, 'i');
14
+ const fileExt = filename.replace(/.+\./, '');
15
+ return re.test(fileExt);
16
+ }
17
+ };
18
+
19
+ exports.default = fileUtils;
20
+ exports.fileUtils = fileUtils;
21
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/core/fileUtils/index.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAAO,MAAM,SAAS,GAAG;AACvB;;;;AAIG;AACH,IAAA,WAAW,CAAC,QAAgB,EAAA;QAC1B,MAAM,GAAG,GAAG,wDAAwD;QACpE,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC;QAC/B,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;AAC5C,QAAA,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;IACzB;;;;;;"}
@@ -0,0 +1,10 @@
1
+ declare const fileUtils: {
2
+ /**
3
+ * 判断是否为图片文件
4
+ * @param filename 文件名
5
+ * @returns 是否为图片文件
6
+ */
7
+ isImageFile(filename: string): boolean;
8
+ };
9
+
10
+ export { fileUtils as default, fileUtils };
@@ -2,12 +2,17 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var index$9 = require('./arrayUtils/index.cjs');
6
- var index$8 = require('./stringUtils/index.cjs');
7
- var index$7 = require('./objectUtils/index.cjs');
8
- var index$6 = require('./numberUtils/index.cjs');
5
+ var index$e = require('./arrayUtils/index.cjs');
6
+ var index$d = require('./stringUtils/index.cjs');
7
+ var index$c = require('./objectUtils/index.cjs');
8
+ var index$b = require('./numberUtils/index.cjs');
9
9
  var index$4 = require('./colorUtils/index.cjs');
10
- var index$5 = require('./dateUtils/index.cjs');
10
+ var index$a = require('./dateUtils/index.cjs');
11
+ var index$9 = require('./diffUtils/index.cjs');
12
+ var index$8 = require('./fileUtils/index.cjs');
13
+ var index$7 = require('./cryptoUtils/index.cjs');
14
+ var index$6 = require('./pageUtils/index.cjs');
15
+ var index$5 = require('./storageUtils/index.cjs');
11
16
  var index$2 = require('./asyncUtils/index.cjs');
12
17
  var index$1 = require('./constants/index.cjs');
13
18
  var index$3 = require('./validationUtils/index.cjs');
@@ -20,11 +25,16 @@ var index$3 = require('./validationUtils/index.cjs');
20
25
  * 默认导出所有工具对象的集合
21
26
  */
22
27
  var index = {
23
- arrayUtils: index$9.default,
24
- stringUtils: index$8.default,
25
- objectUtils: index$7.default,
26
- numberUtils: index$6.default,
27
- dateUtils: index$5.default,
28
+ arrayUtils: index$e.default,
29
+ stringUtils: index$d.default,
30
+ objectUtils: index$c.default,
31
+ numberUtils: index$b.default,
32
+ dateUtils: index$a.default,
33
+ diffUtils: index$9.default,
34
+ fileUtils: index$8.default,
35
+ cryptoUtils: index$7.default,
36
+ pageUtils: index$6.default,
37
+ storageUtils: index$5.default,
28
38
  asyncUtils: index$2.default,
29
39
  colorUtils: index$4.default,
30
40
  validationUtils: index$3.default,
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../src/core/index.ts"],"sourcesContent":[null],"names":["arrayUtils","stringUtils","objectUtils","numberUtils","dateUtils","asyncUtils","colorUtils","validationUtils","AsyncQueue","constants"],"mappings":";;;;;;;;;;;;;;AAAA;;;AAGG;AAYH;;AAEG;AACH,YAAe;gBACbA,eAAU;iBACVC,eAAW;iBACXC,eAAW;iBACXC,eAAW;eACXC,eAAS;gBACTC,eAAU;gBACVC,eAAU;qBACVC,eAAe;gBACfC,kBAAU;eACVC;CACD;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":["../../src/core/index.ts"],"sourcesContent":[null],"names":["arrayUtils","stringUtils","objectUtils","numberUtils","dateUtils","diffUtils","fileUtils","cryptoUtils","pageUtils","storageUtils","asyncUtils","colorUtils","validationUtils","AsyncQueue","constants"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;;AAGG;AAiBH;;AAEG;AACH,YAAe;gBACbA,eAAU;iBACVC,eAAW;iBACXC,eAAW;iBACXC,eAAW;eACXC,eAAS;eACTC,eAAS;eACTC,eAAS;iBACTC,eAAW;eACXC,eAAS;kBACTC,eAAY;gBACZC,eAAU;gBACVC,eAAU;qBACVC,eAAe;gBACfC,kBAAU;eACVC;CACD;;;;"}
@@ -1,5 +1,9 @@
1
+ import { ITablePage } from './pageUtils/index.js';
1
2
  import * as dayjs from 'dayjs';
2
- import { IOptions2 } from '../types/data/index.js';
3
+ import { IListChangeVo } from './arrayUtils/index.js';
4
+ import { IEnumObj } from '../form/types.js';
5
+ import { IOptions2, ITreeNode, IOptions } from '../types/data/index.js';
6
+ import DiffUtils from './diffUtils/index.js';
3
7
  import { AsyncQueue } from './asyncUtils/index.js';
4
8
  import * as index from './constants/index.js';
5
9
 
@@ -16,6 +20,29 @@ declare const _default: {
16
20
  difference<T>(arr1: T[], arr2: T[]): T[];
17
21
  groupBy<T, K extends string | number | symbol>(arr: T[], keyFn: (item: T) => K): Record<K, T[]>;
18
22
  getListId(s: string, optList: IOptions2[], key: string): any;
23
+ uniqueBy: (arr: any[], key: string) => any[];
24
+ updateArray: <T = any>(array: T[], item: T) => void;
25
+ remove: (array: any[], item: any, id: any) => any[] | undefined;
26
+ isEqual: (arr1?: any[], arr2?: any[]) => boolean;
27
+ clone: (from: any[]) => any[];
28
+ subSet: (arr1: any[], arr2: any[]) => any[];
29
+ getItemByKey: <T = any>(itemList: T[], v: any, k?: string) => T;
30
+ dimTreeReduction: (treeData: ITreeNode[], nodeKeys: string[], nodes: ITreeNode[]) => void;
31
+ dimTreeReduction2: (treeData: ITreeNode[]) => {
32
+ nodes: ITreeNode[];
33
+ nodeKeys: string[];
34
+ };
35
+ removePNode: (nodeList: any[]) => any[];
36
+ toEnum: (arr: IOptions<string>[]) => IEnumObj;
37
+ toArrayByKeys: (obj: Record<string, any>, keys: string[]) => void;
38
+ toNumArrayByKeys: (obj: Record<string, any>, keys: string[]) => void;
39
+ toStringByKeys: (obj: Record<string, any>, keys: string[], str?: string, joinAll?: boolean) => void;
40
+ joinAll: (obj: Record<string, any>, keys: string[]) => void;
41
+ join: (obj: Record<string, any>, keys: string[]) => void;
42
+ findChangeData: (oldData: string[], newData: string[], key: string) => IListChangeVo;
43
+ toArray: (str: string | string[] | undefined | null, splitStr?: string) => string[] | null;
44
+ isChangeArray: (oldObj: Record<string, any[]>, newObj: Record<string, any[]>) => boolean;
45
+ arrayMove<T>(array: T[], from: number, to: number): T[];
19
46
  };
20
47
  stringUtils: {
21
48
  capitalize(str: string): string;
@@ -89,6 +116,47 @@ declare const _default: {
89
116
  endDay: number | undefined;
90
117
  };
91
118
  };
119
+ diffUtils: typeof DiffUtils;
120
+ fileUtils: {
121
+ isImageFile(filename: string): boolean;
122
+ };
123
+ cryptoUtils: {
124
+ uuid(): Promise<string>;
125
+ md5(input: string, salt?: string): string;
126
+ miniUuid(): string;
127
+ isValidUUID(uuid: string): Promise<boolean>;
128
+ rsaEncrypt(text: string, publicKey: string): Promise<string | false>;
129
+ rsaDecrypt(encryptedText: string, privateKey: string): Promise<string | false>;
130
+ generateRSAKeyPair(keySize?: number): Promise<{
131
+ publicKey: string;
132
+ privateKey: string;
133
+ } | null>;
134
+ aesEncrypt(text: string, key: string): string;
135
+ aesDecrypt(encryptedText: string, key: string): string;
136
+ };
137
+ pageUtils: {
138
+ isLastPageData: (data: ITablePage<any>) => boolean;
139
+ buildPageConfig: (data?: ITablePage<any>) => {
140
+ current: number;
141
+ pageSize: number;
142
+ total: number;
143
+ showQuickJumper: boolean;
144
+ showSizeChanger: boolean;
145
+ showTotal: (total: number, range: number[]) => string;
146
+ };
147
+ defaultTableData: ITablePage<any>;
148
+ handleReqListParams: (v: any, sort: any) => any;
149
+ };
150
+ storageUtils: {
151
+ getItem: <T = any>(key: string, cacheType?: "local" | "session") => T;
152
+ getSItem: <T = any>(key: string) => T;
153
+ setItem: (key: string, value: any, cacheType?: "local" | "session") => void;
154
+ setSItem: (key: string, value: any) => void;
155
+ removeItem: (key: string, cacheType?: "local" | "session") => void;
156
+ removeSItem: (key: string) => void;
157
+ existsItem: (key: string, cacheType?: "local" | "session") => boolean;
158
+ existsSItem: (key: string) => boolean;
159
+ };
92
160
  asyncUtils: {
93
161
  delay(ms: number): Promise<void>;
94
162
  withTimeout<T>(promise: Promise<T>, timeout: number, timeoutMessage?: string): Promise<T>;
@@ -57,18 +57,38 @@ const defaultTableData = {
57
57
  size: 0,
58
58
  total: 0
59
59
  };
60
+ /**
61
+ * 处理请求列表的参数 - 分页和排序参数
62
+ * @param v 参数
63
+ * @param sort 排序
64
+ */
65
+ const handleReqListParams = (v, sort) => {
66
+ if (v.current) {
67
+ v.pageNum = v.current;
68
+ }
69
+ if (sort && Object.keys(sort).length > 0) {
70
+ const newSort = {};
71
+ Object.keys(sort).forEach(key => {
72
+ newSort[key] = sort[key] === 'ascend';
73
+ });
74
+ v.sort = newSort;
75
+ }
76
+ return v;
77
+ };
60
78
  /**
61
79
  * 页面工具对象
62
80
  */
63
81
  const pageUtils = {
64
82
  isLastPageData,
65
83
  buildPageConfig,
66
- defaultTableData
84
+ defaultTableData,
85
+ handleReqListParams
67
86
  };
68
87
 
69
88
  exports.buildPageConfig = buildPageConfig;
70
89
  exports.defTableData = defTableData;
71
90
  exports.default = pageUtils;
72
91
  exports.defaultTableData = defaultTableData;
92
+ exports.handleReqListParams = handleReqListParams;
73
93
  exports.isLastPageData = isLastPageData;
74
94
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","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;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs","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;;AAIT;;;;AAIG;MACU,mBAAmB,GAAG,CAAC,CAAM,EAAE,IAAS,KAAI;AACvD,IAAA,IAAI,CAAC,CAAC,OAAO,EAAE;AACb,QAAA,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO;IACvB;AACA,IAAA,IAAI,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;QACxC,MAAM,OAAO,GAAQ,EAAE;QACvB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,IAAG;YAC9B,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,QAAQ;AACvC,QAAA,CAAC,CAAC;AACF,QAAA,CAAC,CAAC,IAAI,GAAG,OAAO;IAClB;AACA,IAAA,OAAO,CAAC;AACV;AAEA;;AAEG;AACH,MAAM,SAAS,GAAG;IAChB,cAAc;IACd,eAAe;IACf,gBAAgB;IAChB;;;;;;;;;;"}
@@ -46,6 +46,7 @@ declare const pageUtils: {
46
46
  showTotal: (total: number, range: number[]) => string;
47
47
  };
48
48
  defaultTableData: ITablePage<any>;
49
+ handleReqListParams: (v: any, sort: any) => any;
49
50
  };
50
51
 
51
52
  export { defTableData, pageUtils as default };
@@ -1,9 +1,23 @@
1
- import { IOptions2 } from '../../types/data/index.js';
1
+ import { IEnumObj } from '../../form/types.js';
2
+ import { IOptions2, ITreeNode, IOptions } from '../../types/data/index.js';
2
3
 
3
4
  /**
4
- * 数组工具函数
5
+ * 列表变化的数据
5
6
  */
6
-
7
+ interface IListChangeVo {
8
+ /**
9
+ * 需要新增的数据
10
+ */
11
+ insertList: string[];
12
+ /**
13
+ * 需要删除的数据
14
+ */
15
+ deleteList: string[];
16
+ /**
17
+ * 没有变的数据
18
+ */
19
+ noChangeList: string[];
20
+ }
7
21
  /**
8
22
  * 数组工具对象
9
23
  */
@@ -62,6 +76,126 @@ declare const arrayUtils: {
62
76
  * @param key 数据的下标
63
77
  */
64
78
  getListId(s: string, optList: IOptions2[], key: string): any;
79
+ /**
80
+ * 根据指定的字段进行去重
81
+ * @param arr 数组
82
+ * @param key 去重字段
83
+ */
84
+ uniqueBy: (arr: any[], key: string) => any[];
85
+ /**
86
+ * 更新数组,若item已存在则将其从数组中删除,若不存在则将其添加到数组
87
+ * **/
88
+ updateArray: <T = any>(array: T[], item: T) => void;
89
+ /**
90
+ * 将数组中指定元素移除
91
+ * @param array
92
+ * @param item 要移除的item
93
+ * @param id 要对比的属性,缺省则比较地址
94
+ * @returns {*}
95
+ */
96
+ remove: (array: any[], item: any, id: any) => any[] | undefined;
97
+ /**
98
+ * 判断两个数组的是否相等
99
+ * @return boolean true 数组长度相等且对应元素相等
100
+ * */
101
+ isEqual: (arr1?: any[], arr2?: any[]) => boolean;
102
+ /**
103
+ * clone 数组
104
+ * @return Array 新的数组
105
+ * */
106
+ clone: (from: any[]) => any[];
107
+ /**
108
+ *获取两个数组的差集
109
+ * @param arr1
110
+ * @param arr2
111
+ */
112
+ subSet: (arr1: any[], arr2: any[]) => any[];
113
+ /**
114
+ * 获取数组中符合要求的项目
115
+ * @param itemList 条目数组
116
+ * @param v 比较值
117
+ * @param k 比较的字段
118
+ */
119
+ getItemByKey: <T = any>(itemList: T[], v: any, k?: string) => T;
120
+ /**
121
+ * 树形数据降维
122
+ */
123
+ dimTreeReduction: (treeData: ITreeNode[], nodeKeys: string[], nodes: ITreeNode[]) => void;
124
+ /**
125
+ * 树形数据降维 - 返回一个完整的数组
126
+ */
127
+ dimTreeReduction2: (treeData: ITreeNode[]) => {
128
+ nodes: ITreeNode[];
129
+ nodeKeys: string[];
130
+ };
131
+ /**
132
+ * 移除父节点
133
+ */
134
+ removePNode: (nodeList: any[]) => any[];
135
+ /**
136
+ * 数组转枚举
137
+ */
138
+ toEnum: (arr: IOptions<string>[]) => IEnumObj;
139
+ /**
140
+ * 把对象里面指定的属性转换成数组
141
+ * @param obj 原始数据
142
+ * @param keys 哪些字段要转换
143
+ */
144
+ toArrayByKeys: (obj: Record<string, any>, keys: string[]) => void;
145
+ /**
146
+ * 把对象里面指定的属性转换成数字数组
147
+ * @param obj 原始数据
148
+ * @param keys 哪些字段要转换
149
+ */
150
+ toNumArrayByKeys: (obj: Record<string, any>, keys: string[]) => void;
151
+ /**
152
+ * 把对象里面指定的属性转换成字符串
153
+ * @param obj 原始数据
154
+ * @param keys 哪些字段要转换
155
+ * @param str 分隔符
156
+ * @param joinAll 是否前后都加
157
+ */
158
+ toStringByKeys: (obj: Record<string, any>, keys: string[], str?: string, joinAll?: boolean) => void;
159
+ /**
160
+ * 把对象里面指定的属性转换成字符串 - 这个方法会在前后都补充对应的符号
161
+ * <p>
162
+ * ["a", "b"] => ";a;b;c;"
163
+ * @param obj 原始数据
164
+ * @param keys 哪些字段要转换
165
+ */
166
+ joinAll: (obj: Record<string, any>, keys: string[]) => void;
167
+ /**
168
+ * 把对象里面指定的属性转换成字符串
169
+ * <p>
170
+ * ["a", "b"] => "a;b;c"
171
+ * @param obj 原始数据
172
+ * @param keys 哪些字段要转换
173
+ */
174
+ join: (obj: Record<string, any>, keys: string[]) => void;
175
+ /**
176
+ * 查找出两个数组中需要删除的,需要更新的,没有变化的
177
+ */
178
+ findChangeData: (oldData: string[], newData: string[], key: string) => IListChangeVo;
179
+ /**
180
+ * 将字符串或者数组转成数组
181
+ * @param str 字符串或者数组
182
+ * @param splitStr 分隔符
183
+ */
184
+ toArray: (str: string | string[] | undefined | null, splitStr?: string) => string[] | null;
185
+ /**
186
+ * 判断对象里面的数组是否发生了变化
187
+ * <br />
188
+ * 一般来说,用在资源关联里面,比如判断下现在新的资源和旧的资源是否有变化,如果没有变化,就不需要重新请求接口
189
+ */
190
+ isChangeArray: (oldObj: Record<string, any[]>, newObj: Record<string, any[]>) => boolean;
191
+ /**
192
+ * 数组移动位置
193
+ * @param array 数组
194
+ * @param from 从哪个位置
195
+ * @param to 移动到哪个位置
196
+ */
197
+ arrayMove<T>(array: T[], from: number, to: number): T[];
65
198
  };
66
199
 
67
200
  export { arrayUtils as default };
201
+ export type { IListChangeVo };