@bestime/utils_base 1.0.9 → 1.0.11

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.
@@ -1,1102 +0,0 @@
1
- /**
2
- * 强制转化数据为字符串
3
- * @param data - 处理的值
4
- * @returns 实际值2
5
- */
6
- declare function _String(data: any): string;
7
-
8
- /**
9
- * 获取数据类型
10
- *
11
- * @param data - 需要判断的数据
12
- * @return 数据类型字符串
13
- */
14
- declare function getType(data: any): string;
15
-
16
- /**
17
- * 判断数据是否为数组
18
- * @param arg - 判断的值
19
- * @returns 真假值
20
- */
21
- declare function isArray(arg: any): arg is any[];
22
-
23
- /**
24
- * 递归将所有属性改为可选
25
- */
26
- type BTDeepPartial<T = any> = {
27
- [P in keyof T]?: T[P] extends Function ? T[P] : T[P] extends object ? BTDeepPartial<T[P]> : T[P];
28
- };
29
- /**
30
- * 键值对格式的数据
31
- * */
32
- type TKvPair = Record<string | number | symbol, any>;
33
- type TValueOf<T> = T[keyof T];
34
-
35
- /**
36
- * 判断数据是否为对象
37
- * @param data - 判断的值
38
- * @returns 真假值
39
- */
40
- declare function isKvPair(arg: any): arg is TKvPair;
41
-
42
- declare function isString(data: any): data is string;
43
-
44
- /**
45
- * 强制转换数据为键值对数据,如果是json字符串,会尝试解析,如果失败,则返回一个空Map
46
- * @param data - 转换的数据
47
- * @returns 键值对数据
48
- *
49
- * @example
50
- * ```javascript
51
- * // => {}
52
- * const data = _KvPair('abc')
53
- *
54
- * // => {}
55
- * const data2 = _KvPair([])
56
- *
57
- * // => {name: 'a'}
58
- * const data3 = _KvPair({name: 'a'})
59
- * ```
60
- */
61
- declare function _KvPair(data: any): TKvPair;
62
-
63
- /**
64
- * 判断是否为空[null, undefined, '']
65
- * @params data - 判断的数据
66
- * @returns 判断结果
67
- */
68
- declare function isEmpty(data: any): boolean;
69
-
70
- /**
71
- * 判断数据是否为函数
72
- * @param data - 判断的值
73
- * @returns 真假值
74
- */
75
- declare function isFunction(data: any): data is Function;
76
-
77
- /**
78
- * 对象序列化为字符串, 用于URL查询字符串或AJAX请求
79
- * @param data - 需要转化的数据
80
- * @returns 转换后的字符串
81
- */
82
- declare function param(data: TKvPair): string;
83
-
84
- /**
85
- * 为url链接拼接参数
86
- * @param url - url地址。可带查询参数由 ”{{包裹}}”
87
- * @param searchString - 查询参数
88
- * @returns string 拼接后的url地址
89
- * @example
90
- * ```js
91
- * urlToGet('/parent_{{ pid }}/info/{{ uid }}/detail?c=5&', {
92
- * name: '张三',
93
- * skill: [1, 2, 3, 4, 5]
94
- * })
95
- * urlToGet('1111111111', 'a=0&b=2')
96
- * urlToGet('2222222222', 'a=0&b=2')
97
- * urlToGet('333333333?c=5&', 'a=0&b=2')
98
- * ```
99
- *
100
- */
101
- declare function urlToGet(url: string, data: string | TKvPair): string;
102
-
103
- /**
104
- * 移除空字符串。不清空 "\u200e"
105
- * @param data - 需要处理的数据
106
- * @param pos - 移除位置。默认:两侧,1:左侧,-1右侧,* 所有
107
- * @returns 字符串
108
- */
109
- declare function trim(data: any, pos?: 1 | -1 | '*'): string;
110
-
111
- type TargetData = Record<string, any> | any[];
112
- interface Options {
113
- /**
114
- * 是否移除空字符串。默认true
115
- */
116
- string?: Boolean;
117
- /**
118
- * 是否移除空数组。默认true
119
- */
120
- array?: Boolean;
121
- /**
122
- * 是否移除空键值对。默认true
123
- */
124
- kvPair?: Boolean;
125
- }
126
- /**
127
- * 移除无效数据,包括:空字符串,空对象,空数组。
128
- * 注:数组中的值不做处理,会影响数组长度
129
- *
130
- * @param data - 将数据进行树摇
131
- * @param options - 配置参数
132
- * @returns 树摇后的数据
133
- */
134
- declare function shake<T extends TargetData>(data: T, options?: Options): BTDeepPartial<T>;
135
-
136
- /**
137
- * 强制转换数据为数组,如果是json字符串,会尝试解析,如果失败,则返回一个空[]
138
- *
139
- * @param data - 待转换的数据
140
- * @returns 数组
141
- *
142
- * @example
143
- * ```javascript
144
- * // => []
145
- * const data = _Array('abc')
146
- *
147
- * // => []
148
- * const data3 = _Array({name: 'a'})
149
- * ```
150
- */
151
- declare function _Array<T>(data: any): T[];
152
-
153
- /**
154
- * 检测一个数据是否存在
155
- *
156
- * @param handler - 每一次检测的回调, 返回值为Boolean,表示是否检测到数据
157
- * @param callback - 成功回调
158
- * @param sleepTime - 间隔时间
159
- */
160
- declare function variableHasValue(
161
- handler: () => boolean | undefined,
162
- callback: () => void,
163
- sleepTime?: number
164
- ): void;
165
- declare namespace variableHasValue {
166
- var async: (
167
- handler: () => boolean | undefined,
168
- sleepTime?: number | undefined
169
- ) => Promise<unknown>;
170
- }
171
-
172
- /**
173
- * 查找某个元素所在树的所有父链
174
- * @param tree - 数据
175
- * @param handler - 验证回调
176
- * @param config - 字段映射配置。
177
- * @returns 查找的结果
178
- */
179
- declare function deepFindTreePath(
180
- tree: any[],
181
- handler: (item: any) => boolean,
182
- config: {
183
- id: string;
184
- children: string;
185
- }
186
- ): undefined | any[];
187
-
188
- /**
189
- * 强制转换数据为字符串。支持百分号、千分位
190
- * @param data - 值
191
- * @returns 数字
192
- */
193
- declare function _Number(data?: any): number;
194
-
195
- type TNull = undefined | null | '';
196
- declare function isNull(data: any): data is TNull;
197
-
198
- /**
199
- * 匹配数字的正则
200
- * @returns
201
- */
202
- declare function getLikeNumberRegExp(): string;
203
- /**
204
- *
205
- * @param value 看起来是否像一个数字。可识别百分号、千分位
206
- * @example
207
- * ```
208
- * isLikeNumber('-123,456,789') => true
209
- * isLikeNumber('1,4,5.912%') => true
210
- * isLickNumber(1) => true
211
- * isLickNumber('2.36884') => true
212
- * isLickNumber(1/0) => false
213
- * isLickNumber(0/0) => false
214
- * isLickNumber('') => false
215
- * isLickNumber() => false
216
- * isLickNumber(null) => false
217
- * isLickNumber(true) => false
218
- * isLickNumber(false) => false
219
- * isLickNumber([]) => false
220
- * isLickNumber(function () {}) => false
221
- * ```
222
- * @returns
223
- */
224
- declare function isLikeNumber(value: any): boolean;
225
-
226
- /**
227
- * 循环复制字符串
228
- * @param data - 复制目标
229
- * @param count - 复制几次
230
- * @returns 结果
231
- */
232
- declare function repeatString(target: string | number, count: number): string;
233
-
234
- /**
235
- * 向前填充字符串
236
- * @param data - 原始目标
237
- * @param len - 需要填充的总长度
238
- * @param target - 填充的字符串
239
- * @returns 结果
240
- */
241
- declare function padStart(data: string | number, len: number, target: string): string;
242
-
243
- /**
244
- * 向后填充字符串
245
- * @param data - 原始目标
246
- * @param len - 需要填充的总长度
247
- * @param target - 填充的字符串
248
- * @returns 结果
249
- */
250
- declare function padEnd(data: string | number, len: number, target: string): string;
251
-
252
- /**
253
- * 保留几位小数并直接舍去后面的数(不进行四舍五入)
254
- * @param data - 长得像数字的字符串或数字
255
- * @param fractionDigits - 保留的小数位
256
- * @param rejection - 是否删除末尾所有的 "0"
257
- * @returns 结果
258
- */
259
- declare function floorFixed(
260
- data: number | string,
261
- fractionDigits: number,
262
- rejection?: boolean
263
- ): string;
264
-
265
- /**
266
- * 保留几位小数四舍五入
267
- * toFixed优化版,原生toFixed对于 (3.335).toFixed(2) 结果为:3.33,理想结果为3.34
268
- * @param data - 长得像数字的字符串或数字
269
- * @param fractionDigits - 保留的小数位
270
- * @param rejection - 是否删除末尾所有的 "0"
271
- * @returns 结果
272
- */
273
- declare function roundFixed(
274
- data: number | string,
275
- fractionDigits: number,
276
- rejection?: boolean
277
- ): string;
278
-
279
- /**
280
- * 基于原生split优化版,使空字符传结果为 "[]"
281
- * @param data - 原始目标
282
- * @param symbol - 分割
283
- * @returns 结果
284
- */
285
- declare function split(data: string, symbol: string): string[];
286
-
287
- /**
288
- * 查询树接口中的某一项
289
- * @param list - 原始数组
290
- * @param handle - 遍历的回调函数
291
- * @param children - 子项字段
292
- * @returns 结果
293
- */
294
- declare function deepFindItem<T>(
295
- list: T[],
296
- handle: (data: T) => void,
297
- children?: string
298
- ): T | undefined;
299
-
300
- /**
301
- * 一维数组转树结构
302
- * @param list - 待转数组
303
- * @param props - 生成数据的配置项
304
- * @param props.id - ID字段
305
- * @param props.pid - 父ID字段
306
- * @param props.children - 子项字段
307
- * @returns 结果
308
- */
309
- declare function flatArrayToTree(
310
- list: any[],
311
- props?: {
312
- id?: string;
313
- pid?: string;
314
- children?: string;
315
- }
316
- ): any[];
317
-
318
- /**
319
- * 在给定索引范围内,增减当前索引,如果超出范围,则按当前方向重新循环取值。
320
- * @param maxIndex - 最大索引
321
- * @param currentIndex - 当前索引
322
- * @param increase - 调整多少索引,可为负数
323
- * @returns 改变后的索引
324
- */
325
- declare function changeIndex(maxIndex: number, currentIndex: number, increase: number): number;
326
-
327
- /**
328
- * 生成唯一ID
329
- * @param length - id长度
330
- * @returns 生成的ID字符串
331
- */
332
- declare function uuid(length: number): string;
333
-
334
- /**
335
- * 生成指定范围随机数
336
- * @param min - 最小值
337
- * @param max - 最大值
338
- * @param int - 是否生成整数. 默认true
339
- * @returns 随机数
340
- */
341
- declare function getRandom(min: number, max: number, isInt?: boolean): number;
342
-
343
- /**
344
- * 强制转换数据为boolean
345
- *
346
- * @param data - 转换的数据
347
- * @returns 真假
348
- *
349
- * @example
350
- * ```javascript
351
- * // => true
352
- * const data1 = _Boolean('true')
353
- *
354
- * // => true
355
- * const data2 = _Boolean(true)
356
- *
357
- * // => true
358
- * const data4 = _Boolean(1)
359
- *
360
- * // => true
361
- * const data3 = _Boolean('1')
362
- * ```
363
- */
364
- declare function _Boolean(data: any): boolean;
365
-
366
- /**
367
- * 简易版深度克隆。(仅处理数组、键值对、方法的可克隆)
368
- *
369
- * @param data - 克隆对象
370
- * @returns
371
- */
372
- declare function cloneEasy<T extends [] | Record<any, any> | Function>(data: T): T;
373
-
374
- /**
375
- * 树形结构map新数据
376
- * @param data - 原始树
377
- * @param childKeyTo - 转换的孩子键
378
- * @param handle - 迭代方法。这里不用返回子节点
379
- * @param childKeyFrom - 原始数据的孩子键
380
- * @returns 转变后的新数据
381
- */
382
- declare function main<T extends TKvPair, K extends TKvPair, C extends keyof T>(
383
- data: K[],
384
- childKeyTo: C,
385
- handle: (data: K) => Omit<T, C> | undefined,
386
- childKeyFrom?: keyof K
387
- ): T[];
388
-
389
- type EventHander$2 = (...args: any[]) => void;
390
- /**
391
- * 事件订阅,可获得TS类型推导支持
392
- * @param eventName - 订阅名
393
- * @returns 订阅实例
394
- * @example
395
- * ```typescript
396
- * // 初始化
397
- * const useUpdateDataBus = defineEventBus<(dataId: number, back: boolean) => void>('UPDATE-DATA')
398
- *
399
- * // 开启订阅
400
- * function busCallback (id: number, isBack: boolean) {}
401
- * useUpdateDataBus.on(busCallback)
402
- *
403
- * // 执行订阅
404
- * useUpdateDataBus.emit(12, true)
405
- *
406
- * // 取消订阅
407
- * useUpdateDataBus.off(busCallback)
408
- *
409
- * // 销毁所有订阅
410
- * useUpdateDataBus.dispose()
411
- * ```
412
- */
413
- declare function defineEventBus<T extends EventHander$2>(
414
- eventName: string
415
- ): {
416
- /** 追加订阅 */
417
- on: (hander: T) => void;
418
- /** 执行所有订阅 */
419
- emit: (...args: Parameters<T>) => void;
420
- /** 取消一个订阅 */
421
- off: (hander: T) => void;
422
- /** 销毁所有订阅 */
423
- dispose: () => void;
424
- eventList: () => EventHander$2[];
425
- };
426
-
427
- /**
428
- * 树形结构迭代
429
- * @param data - 原始树
430
- * @param handle - 迭代方法。这里不用返回子节点
431
- * @param childKey - 子节点字段。默认值:children
432
- */
433
- declare function forEachTree<T extends TKvPair>(
434
- data: T[],
435
- handle: (data: T, parents: T[]) => void,
436
- childKey?: keyof T
437
- ): void;
438
-
439
- declare function forEach<T>(
440
- data: T[],
441
- callback: (item: T, index: number, array: T[]) => void
442
- ): void;
443
-
444
- /**
445
- * 获取随机颜色
446
- */
447
- declare function randomColor(): string;
448
-
449
- type VoidFunc = () => void;
450
- interface PollingOption {
451
- interval: number;
452
- timeout: number;
453
- onMessage?: (remainTime: number) => void;
454
- handler: (next: VoidFunc, done: VoidFunc) => void;
455
- }
456
- /**
457
- * 轮询
458
- *
459
- * @example
460
- * ```
461
- * let count = 0
462
- * const pol = new bestime.Polling({
463
- * interval: 1000,
464
- * timeout: 6 * 1000,
465
- * handler: function (next, done) {
466
- * count++
467
- * if(count>=4) {
468
- * done()
469
- * } else {
470
- * next()
471
- * }
472
- * },
473
- * onMessage: function (remainTime) {
474
- * console.log("剩余", remainTime)
475
- * }
476
- * })
477
- *
478
- * pol.start()
479
- * ```
480
- *
481
- * */
482
- declare class Polling {
483
- private _timer;
484
- private _timer_info;
485
- private _stamp;
486
- private _passStamp;
487
- private _option;
488
- constructor(setting: Partial<PollingOption>);
489
- private _next;
490
- private _doOnce;
491
- /** 开始 */
492
- start(): this;
493
- /** 完成 */
494
- done(): this;
495
- /** 销毁 */
496
- dispose(): this;
497
- }
498
-
499
- /**
500
- * 前端将数组进行模拟分页处理
501
- * @param data - 所有数据
502
- * @param pageSize - 每页多少条
503
- * @param pageCurrent - 当前页
504
- * @returns 分页数据
505
- */
506
- declare function dataPage<T>(
507
- data: T[],
508
- pageSize: number,
509
- pageCurrent: number
510
- ): {
511
- current: number;
512
- total: number;
513
- size: number;
514
- pages: number;
515
- data: T[];
516
- };
517
-
518
- /**
519
- * 解析序列化字符参数为Map格式数据
520
- * @param str - url 查询参数
521
- * @returns 键值对
522
- */
523
- declare function parseQuery(str?: string): TKvPair;
524
-
525
- declare const fieldCheck: {
526
- /**
527
- * 验证传入的数据是否是数字
528
- * @param title - 标题
529
- * @param value - 值
530
- * @param required - 是否必填
531
- * @returns
532
- */
533
- number(title: string, value: any, required?: boolean): number;
534
- /**
535
- * 验证传入的数据是否是字符串
536
- * @param title - 标题
537
- * @param value - 值
538
- * @param required - 是否必填
539
- * @returns
540
- */
541
- string(title: string, value: any, required?: boolean): string;
542
- };
543
-
544
- interface ISummary {
545
- /** 值 */
546
- value: number;
547
- /** 增长率 */
548
- riseRatio?: number;
549
- /** 比重 */
550
- proportion: number;
551
- }
552
- interface IARTResultItem<T> {
553
- name: string;
554
- value: T;
555
- data: Record<string, T[]>;
556
- summary: Record<string, ISummary>;
557
- }
558
- type TArrayRowToColumnColumnSort = (a: string, b: string) => number;
559
- /**
560
- * 数字中某个字段由 行转列
561
- * @param originData - 原始数组
562
- * @param options - 配置项
563
- * @returns 转换后的数据
564
- */
565
- declare function arrayRowToColumn<T extends Record<string, any>>(
566
- originData: T[],
567
- options: {
568
- /** 唯一行的ID生成器 */
569
- uniqueRowId: Array<keyof T>;
570
- /** 将此字段转为列 */
571
- colField: keyof T;
572
- /** 列的排序方法 */
573
- colSort?: TArrayRowToColumnColumnSort;
574
- /** 生成列信息 */
575
- colCreate: (key: string) => {
576
- label: string;
577
- field: string;
578
- };
579
- summaryConfig?: IConfig;
580
- }
581
- ): {
582
- columns: {
583
- value: string;
584
- label: string;
585
- field: string;
586
- }[];
587
- data: IARTResultItem<T>[];
588
- colSummary: Record<string, Record<string, ISummary>>;
589
- getExtRow: <T_1 extends keyof ISummary>(
590
- groupName: string,
591
- field: T_1,
592
- formatter: (data: ISummary[T_1]) => string
593
- ) => Record<string, string>;
594
- };
595
- type TArrayRowToColumnCalculateRow = {
596
- proportionBaseField?: string;
597
- count:
598
- | number
599
- | {
600
- field: string;
601
- mode: 'length' | 'uniqLength' | 'notZeroValue';
602
- };
603
- value: {
604
- field: string;
605
- mode: 'sum' | 'uniqLength' | 'avg';
606
- };
607
- };
608
- interface IConfig {
609
- averageField: string;
610
- row?: Record<string, TArrayRowToColumnCalculateRow>;
611
- column?: TColSumaryConfig;
612
- }
613
- type TColSumaryConfig = Record<
614
- string,
615
- {
616
- field: string;
617
- mode: 'uniqLength' | 'avg' | 'notZeroLength' | 'sum';
618
- }
619
- >;
620
-
621
- type ISpanTableItem<T extends TKvPair> = T & {
622
- $rowSpan: Record<string, number>;
623
- $colField: Record<string | number, number>;
624
- };
625
- /**
626
- * 合并单元格。不改变原数组
627
- * @param data - 一维数组
628
- * @param fields - 合并的字段
629
- * @returns 合并后的数据。会在每一项中添加两个字段 "$rowSpan" "$colField"
630
- */
631
- declare function spanTable<T extends TKvPair>(data: T[], fields: string[]): ISpanTableItem<T>[];
632
-
633
- /**
634
- * 正则千分位转换,支持小数(任意字符串按位数相隔)
635
- *
636
- * @param data 需要转换的字符
637
- * @param len 按多少位分隔一次,默认3
638
- * @param symbol 千分位替换符号,默认逗号
639
- */
640
- declare function thousands(data: number | string, len?: number, symbol?: string): string;
641
-
642
- /**
643
- * 键值对的map实现方法
644
- * @param data - 元数据
645
- * @param handler - 自定义处理函数
646
- * @returns
647
- */
648
- declare function mapKvPair<T extends TKvPair, U>(
649
- data: T,
650
- handler: (data: TValueOf<T>, key: string) => U
651
- ): Record<string | number | symbol, U>;
652
-
653
- /**
654
- * 模糊搜索,例如 a4 可匹配 a3645
655
- * @param search - 输入的值,如果为空,则表示无筛选条件,直接返回true
656
- * @param data - 源数据的值
657
- * @param regFlags - 与 RegExp 第二个参数相同,指定是否全局、区分大小写等
658
- * @return
659
- */
660
- declare function isFuzzyMatch(search: string, data: string, regFlags?: string): boolean;
661
-
662
- /**
663
- * 向字符串中添加零宽字符。(暂时用于排除同名表格单元格合并)
664
- * @param data - 需要处理的数据
665
- * @returns
666
- */
667
- declare function mixInZeroWidthUnicode(data: string): string;
668
-
669
- /**
670
- * 键值对的forEach实现方法
671
- * @param data - 元数据
672
- * @param handler - 自定义处理函数
673
- * @returns
674
- */
675
- declare function forEachKvPair<T extends TKvPair, U>(
676
- data: T,
677
- handler: (data: TValueOf<T>, key: string, index: number) => U
678
- ): Record<string | number | symbol, U>;
679
-
680
- /**
681
- * 获取排序后的索引列表。如 [2,1,3] 排序为 [1,2,3] 索引为 [1,0,2]
682
- *
683
- * @param data - 原始数据
684
- * @param sortHandler 排序处理函数,与原生排序使用方式一致
685
- * @returns 索引列表
686
- *
687
- */
688
- declare function getSortIndex<T>(data: T[], sortHandler: (a: T, b: T) => number): number[];
689
-
690
- /**
691
- * 按索引顺序对数组进行排序
692
- * @param data 需要排序的数据
693
- * @param index 索引列表
694
- * @returns 新数据
695
- */
696
- declare function sortWithIndex<T>(data: T[], index: ReturnType<typeof getSortIndex>): T[];
697
-
698
- type TListGroupKey<T extends TKvPair> = {
699
- field: string | string[];
700
- sort?: (a: TInnerGroupListItem<T>, b: TInnerGroupListItem<T>) => number;
701
- };
702
- type TGetValueField = string;
703
- interface ICellSummary {
704
- denominator?: number | [string, 'length' | 'uniqLength'];
705
- /**
706
- * sum 求和
707
- * length 长度
708
- * uniqLength 去重长度
709
- */
710
- numerator: [string, 'sum' | 'length' | 'uniqLength'];
711
- }
712
- type TColCustomWay = {
713
- /** 计算方式 */
714
- 0: 'sum' | 'max' | 'diff';
715
- /** 参与计算的列(就是被转为列的那些值) */
716
- 1: string[] | '*';
717
- /** 获取值的方式 */
718
- 2?: 'value' | 'length' | 'uniqLength';
719
- /** 原始数据中的字段 */
720
- 3?: string;
721
- };
722
- interface IListGroupOption<T extends TKvPair> {
723
- /**
724
- * 按字段值组装树形结构数据
725
- */
726
- path: TListGroupKey<T>[];
727
- /**
728
- * 将此字段转为列,并做一些基础统计
729
- */
730
- colField?: keyof T;
731
- /**
732
- * 组装后数据的计算方法
733
- */
734
- cellSummary?: ICellSummary;
735
- /**
736
- * 自定义列。分子➗分母
737
- */
738
- colCustom?: Record<
739
- string,
740
- {
741
- numerator: TColCustomWay;
742
- denominator?: TColCustomWay;
743
- riseRatio?: boolean;
744
- }
745
- >;
746
- }
747
- interface TInnerColumnsSummaryItem<T> extends TKvPair {
748
- data: T[];
749
- summary: number | undefined;
750
- _collect: any[];
751
- }
752
- type TInnerGroupListItem<T extends TKvPair> = {
753
- uid: string;
754
- uidPath: string[];
755
- data: T[];
756
- _columns: Record<string, TInnerColumnsSummaryItem<T>>;
757
- _columnRiseRatio: Record<string, number | undefined>;
758
- _columnTotal: Record<string, number>;
759
- _columnProportion: Record<string, number>;
760
- isLeaf: boolean;
761
- children: TInnerGroupListItem<T>[];
762
- };
763
- declare function listGroup<T extends TKvPair>(
764
- data: T[],
765
- options: IListGroupOption<T>
766
- ): {
767
- /** 树形分组数据 */
768
- data: TInnerGroupListItem<T>[];
769
- /** 获取单元格:值 */
770
- getCellValue: (
771
- uidPath: string[],
772
- field: TGetValueField,
773
- formatter: (value: number, list: T[]) => string,
774
- defaultData?: string
775
- ) => string;
776
- /** 获取单元格:纵向增长率 */
777
- getCellVerticalRiseRatio: (
778
- uidPath: string[],
779
- field: TGetValueField,
780
- formatter: (value: number) => string,
781
- defaultData?: string
782
- ) => string;
783
- /** 获取单元格:纵向累计 */
784
- getCellVerticalTotal: (
785
- uidPath: string[] | '*',
786
- field: TGetValueField,
787
- formatter: (value: number) => string,
788
- defaultData?: string
789
- ) => string;
790
- /** 获取单元格:纵向比重 */
791
- getCellVerticalProportion: (
792
- uidPath: string[],
793
- field: TGetValueField,
794
- formatter: (value: number) => string,
795
- defaultData?: string
796
- ) => string;
797
- /** 获取一行:值 */
798
- getRowCellValue: (
799
- uidPath: string[],
800
- fieldList: {
801
- id: string;
802
- field: TGetValueField;
803
- }[],
804
- formatter: (value: number) => string,
805
- defaultData?: string
806
- ) => Record<string, string>;
807
- /** 获取一行:纵向比重 */
808
- getRowVerticalProportion: (
809
- uidPath: string[],
810
- fieldList: {
811
- id: string;
812
- field: TGetValueField;
813
- }[],
814
- formatter: (value: number) => string,
815
- defaultData?: string
816
- ) => Record<string, string>;
817
- /** 获取一个分组的所有原始数据,用于使用者自行计算 */
818
- getOriginGroupData: (uidPath: string[], field: TGetValueField) => T[];
819
- getOriginAllData: () => T[];
820
- };
821
-
822
- declare function union<T extends TKvPair>(...args: T[]): T[];
823
-
824
- declare function getRatio(value: number | undefined, base: number | undefined): number;
825
-
826
- /**
827
- * 计算一个数据变化的增长率
828
- * @param from
829
- * @param to
830
- * @returns
831
- */
832
- declare function getRiseRatio(from?: number, to?: number): number;
833
-
834
- /**
835
- * 筛选并从原始数组移除符合条件的数据
836
- * @param data - 原始数据
837
- * @param predicate - 迭代回调
838
- * @returns 筛选的结果
839
- */
840
- declare function filterWithMove<T, S extends T>(
841
- data: T[],
842
- predicate: (value: T, index: number, array: T[]) => value is S
843
- ): S[];
844
-
845
- type TUnits = [number, string];
846
- /**
847
- * 数字格式化为简称
848
- * @param data - 数字
849
- * @param formatter - 格式化数字(不包括单位)
850
- * @param units - 格式化规则,可自定义
851
- * @returns 数字简写
852
- */
853
- declare function export_default(
854
- data: number,
855
- formatter: (data: number) => string,
856
- units?: TUnits[]
857
- ): {
858
- value: number;
859
- fmtValue: string;
860
- unit: string;
861
- };
862
-
863
- declare function formatTime(millisecond: number): string;
864
-
865
- interface IInputHeaderItem {
866
- field: string;
867
- title: string;
868
- children: IInputHeaderItem[];
869
- }
870
- interface IParsedHeaderInfoItem extends IInputHeaderItem {
871
- count: number;
872
- children: IParsedHeaderInfoItem[];
873
- }
874
- interface IParsedHeaderDataItem extends Omit<IParsedHeaderInfoItem, 'children'> {
875
- colStart: number;
876
- colEnd: number;
877
- colSpan: number;
878
- rowSpan: number;
879
- }
880
- /**
881
- * 将树形数据转换为二维数组,并包含合并行列信息
882
- * @param header 树形列表
883
- * @returns
884
- */
885
- declare function parseTreeToTableHeader(header: IInputHeaderItem[]): {
886
- columns: string[];
887
- data: (IParsedHeaderDataItem | undefined)[][];
888
- };
889
-
890
- type TEcharts = Record<string, any>;
891
- interface IConnectConfigItem {
892
- onXAxisCtegoryClick?: (xAxisData: any[], tickIndex: number, chart: TEcharts) => void;
893
- }
894
- interface IListItem {
895
- config?: IConnectConfigItem;
896
- instence: TEcharts;
897
- onAxxisCategoryClick?: (ev: { tickIndex: number; needEmit?: boolean }) => void;
898
- onAxxisSeriesClick?: (ev: any) => void;
899
- timer_01: any;
900
- }
901
- declare class ConnectEcharts {
902
- _list: Record<string, IListItem[]>;
903
- constructor();
904
- _resetGroupClickXAxisCategory(chartList: IListItem[]): void;
905
- clickXAsisCategory(chart: TEcharts, index: number, notEmit?: boolean): void;
906
- add(i: TEcharts, config: IConnectConfigItem): this;
907
- remove(chart?: TEcharts): void;
908
- }
909
- declare const _default: ConnectEcharts;
910
-
911
- interface IRuleItem {
912
- min: number;
913
- max: number;
914
- color: string;
915
- }
916
- interface IResItem {
917
- gte: number;
918
- lt: number;
919
- color: string;
920
- }
921
- /**
922
- * 对数据进行分段处理
923
- * @param list
924
- * @param rules
925
- * @returns
926
- */
927
- declare function getPiecesWithIndex(list: number[], rules: IRuleItem[]): IResItem[];
928
-
929
- declare function difference<T extends TKvPair | string | number | Date>(
930
- a: T[],
931
- b: T[],
932
- compareFn: (a: T, b: T) => boolean
933
- ): T[];
934
-
935
- type TreeItem<T extends TKvPair> = T & {
936
- children?: TreeItem<T>[];
937
- };
938
- /**
939
- * 获取树形结构的叶子节点
940
- * @param list - 树形结构数据
941
- * @returns 叶子节点组装的一维数组
942
- */
943
- declare function treeLeafs<T extends TKvPair>(list: TreeItem<T>[]): TreeItem<T>[];
944
-
945
- /**
946
- * 默认数据处理
947
- * @param placeValue - 无值时返回什么数据
948
- * @param value - 需要处理的数据
949
- * @param formatter - 数据格式化
950
- * @returns
951
- */
952
- declare function defualtFormatter<T, R>(
953
- placeValue: R,
954
- value: T,
955
- formatter?: (value: NonNullable<T>) => R
956
- ): R;
957
-
958
- type TEasingHandler = (
959
- passTime: number,
960
- fromValue: number,
961
- changeValue: number,
962
- duration: number
963
- ) => number;
964
- type TChangeCallack<T> = (data: T, progress: number) => void;
965
- interface IAnimateOptions<T> {
966
- /** 原始值 */
967
- from: T;
968
- /** 最终值 */
969
- to: T;
970
- /** 缓动函数 */
971
- easing: TEasingHandler;
972
- /** 持续时间:毫秒 */
973
- duration: number;
974
- /** 每次值更新的回调 */
975
- onChange: TChangeCallack<T>;
976
- }
977
- declare class Animate<T extends TKvPair> {
978
- _timer: any;
979
- _passTime: number;
980
- _options: IAnimateOptions<T>;
981
- _middleData: T;
982
- constructor(options: IAnimateOptions<T>);
983
- start(): this;
984
- stop(): this;
985
- dispose(): void;
986
- }
987
-
988
- type EventHander$1 = (...args: any[]) => void;
989
- /**
990
- * 防抖函数。默认执行条件范围内最后一次
991
- * @param handler - 处理回调
992
- * @param interval - 频率(毫秒)
993
- * @param options - 配置项
994
- * @param options.leading - 立即执行
995
- * @param options.trailing - 延后执行
996
- * @returns
997
- */
998
- declare function debounce<T extends EventHander$1>(
999
- handler: T,
1000
- interval?: number,
1001
- options?: {
1002
- leading?: boolean;
1003
- trailing?: boolean;
1004
- }
1005
- ): {
1006
- (this: any, ...v: Parameters<T>): void;
1007
- cancel(): void;
1008
- dispose(): void;
1009
- };
1010
-
1011
- type EventHander = (...args: any[]) => void;
1012
- declare function throttle<T extends EventHander>(
1013
- handler: T,
1014
- interval?: number,
1015
- options?: {
1016
- leading?: boolean;
1017
- trailing?: boolean;
1018
- }
1019
- ): {
1020
- (this: any, ...v: Parameters<T>): void;
1021
- cancel(): void;
1022
- dispose(): void;
1023
- };
1024
-
1025
- declare global {
1026
- /**
1027
- * 该声明文件用于全局声明(不用npm安装时拷贝到项目中直接使用)
1028
- */
1029
- namespace jUtilsBase {
1030
- export {
1031
- Animate,
1032
- Polling,
1033
- TArrayRowToColumnCalculateRow,
1034
- _Array,
1035
- _Boolean,
1036
- _KvPair,
1037
- _Number,
1038
- _String,
1039
- arrayRowToColumn,
1040
- changeIndex,
1041
- cloneEasy,
1042
- _default as connectEcharts,
1043
- dataPage,
1044
- debounce,
1045
- deepFindItem,
1046
- deepFindTreePath,
1047
- defineEventBus,
1048
- defualtFormatter,
1049
- difference,
1050
- fieldCheck,
1051
- filterWithMove,
1052
- floorFixed,
1053
- forEach,
1054
- forEachKvPair,
1055
- forEachTree,
1056
- formatTime,
1057
- getLikeNumberRegExp,
1058
- getPiecesWithIndex,
1059
- getRandom,
1060
- getRatio,
1061
- getRiseRatio,
1062
- getSortIndex,
1063
- getType,
1064
- isArray,
1065
- isEmpty,
1066
- isFunction,
1067
- isFuzzyMatch,
1068
- isKvPair,
1069
- isLikeNumber,
1070
- isNull,
1071
- isString,
1072
- listGroup,
1073
- mapKvPair,
1074
- main as mapTree,
1075
- mixInZeroWidthUnicode,
1076
- padEnd,
1077
- padStart,
1078
- param,
1079
- parseQuery,
1080
- parseTreeToTableHeader,
1081
- randomColor,
1082
- repeatString,
1083
- roundFixed,
1084
- shake,
1085
- export_default as shortNumber,
1086
- sortWithIndex,
1087
- spanTable,
1088
- split,
1089
- thousands,
1090
- throttle,
1091
- flatArrayToTree as tree,
1092
- treeLeafs,
1093
- trim,
1094
- union,
1095
- urlToGet,
1096
- uuid,
1097
- variableHasValue
1098
- };
1099
- }
1100
- }
1101
-
1102
- export default undefined;