amis-formula 1.2.3 → 1.2.4

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/dist/doc.md ADDED
@@ -0,0 +1,658 @@
1
+ ## 逻辑函数
2
+
3
+ ### IF
4
+
5
+ 用法:`IF(condition, consequent, alternate)`
6
+
7
+ * `condition:expression` 条件表达式.
8
+ * `consequent:any` 条件判断通过的返回结果
9
+ * `alternate:any` 条件判断不通过的返回结果
10
+
11
+ 返回:`any` 根据条件返回不同的结果
12
+
13
+ 示例:IF(A, B, C)
14
+
15
+ 如果满足条件A,则返回B,否则返回C,支持多层嵌套IF函数。
16
+
17
+ 也可以用表达式如:A ? B : C
18
+
19
+ ### AND
20
+
21
+ 用法:`AND(expression1, expression2, ...expressionN)`
22
+
23
+ * `conditions:...expression` 条件表达式.
24
+
25
+ 返回:`boolean`
26
+
27
+ 条件全部符合,返回 true,否则返回 false
28
+
29
+ 示例:AND(语文成绩>80, 数学成绩>80)
30
+
31
+ 语文成绩和数学成绩都大于 80,则返回 true,否则返回 false
32
+
33
+ 也可以直接用表达式如:语文成绩>80 && 数学成绩>80
34
+
35
+ ### OR
36
+
37
+ 用法:`OR(expression1, expression2, ...expressionN)`
38
+
39
+ * `conditions:...expression` 条件表达式.
40
+
41
+ 返回:`boolean`
42
+
43
+ 条件任意一个满足条件,返回 true,否则返回 false
44
+
45
+ 示例:OR(语文成绩>80, 数学成绩>80)
46
+
47
+ 语文成绩和数学成绩任意一个大于 80,则返回 true,否则返回 false
48
+
49
+ 也可以直接用表达式如:语文成绩>80 || 数学成绩>80
50
+
51
+ ### XOR
52
+
53
+ 用法:`XOR(condition1, condition2)`
54
+
55
+ * `condition1:expression` 条件表达式1
56
+ * `condition2:expression` 条件表达式2
57
+
58
+ 返回:`boolean`
59
+
60
+ 异或处理,两个表达式同时为「真」,或者同时为「假」,则结果返回为「真」
61
+
62
+ ## 其他
63
+
64
+ ### IFS
65
+
66
+ 用法:`IFS(condition1, result1, condition2, result2,...conditionN, resultN)`
67
+
68
+ * `args:...any` 条件,返回值集合
69
+
70
+ 返回:`any` 返回第一个满足条件的结果,没有命中的返回 false。
71
+
72
+ 判断函数集合,相当于多个 else if 合并成一个。
73
+
74
+ 示例:IFS(语文成绩 > 80, "优秀", 语文成绩 > 60, "良", "继续努力")
75
+
76
+ 如果语文成绩大于 80,则返回优秀,否则判断大于 60 分,则返回良,否则返回继续努力。
77
+
78
+ ### COUNT
79
+
80
+ 用法:`COUNT(arr)`
81
+
82
+ * `arr:Array<any>` 数组
83
+
84
+ 返回:`boolean` 返回结果
85
+
86
+ 返回数组的长度
87
+
88
+ ## 数学函数
89
+
90
+ ### ABS
91
+
92
+ 用法:`ABS(num)`
93
+
94
+ * `num:number` 数值
95
+
96
+ 返回:`number` 返回传入数值的绝对值
97
+
98
+ 返回传入数字的绝对值
99
+
100
+ ### MAX
101
+
102
+ 用法:`MAX(num1, num2, ...numN)`
103
+
104
+ * `num:...number` 数值
105
+
106
+ 返回:`number` 返回所有传入值中最大的那个
107
+
108
+ 获取最大值
109
+
110
+ ### MIN
111
+
112
+ 用法:`MIN(num1, num2, ...numN)`
113
+
114
+ * `num:...number` 数值
115
+
116
+ 返回:`number` 返回所有传入值中最小的那个
117
+
118
+ 获取最小值
119
+
120
+ ### SUM
121
+
122
+ 用法:`SUM(num1, num2, ...numN)`
123
+
124
+ * `num:...number` 数值
125
+
126
+ 返回:`number` 返回所有传入数值的总和
127
+
128
+ 求和
129
+
130
+ ### INT
131
+
132
+ 用法:`INT(num)`
133
+
134
+ * `num:number` 数值
135
+
136
+ 返回:`number` 返回数值对应的整形
137
+
138
+ 将数值向下取整为最接近的整数
139
+
140
+ ### MOD
141
+
142
+ 用法:`MOD(num, divisor)`
143
+
144
+ * `num:number` 被除数
145
+ * `divisor:number` 除数
146
+
147
+ 返回:`number` 返回两数相除的余数
148
+
149
+ 返回两数相除的余数,参数 number 是被除数,divisor 是除数
150
+
151
+ ### PI
152
+
153
+ 用法:`PI()`
154
+
155
+ 圆周率 3.1415...
156
+
157
+ ### ROUND
158
+
159
+ 用法:`ROUND(num[, numDigits = 2])`
160
+
161
+ * `num:number` 要处理的数字
162
+ * `numDigits:number` 小数位数
163
+
164
+ 返回:`number` 返回传入数值四舍五入后的结果
165
+
166
+ 将数字四舍五入到指定的位数,可以设置小数位。
167
+
168
+ ### FLOOR
169
+
170
+ 用法:`FLOOR(num[, numDigits=2])`
171
+
172
+ * `num:number` 要处理的数字
173
+ * `numDigits:number` 小数位数
174
+
175
+ 返回:`number` 返回传入数值向下取整后的结果
176
+
177
+ 将数字向下取整到指定的位数,可以设置小数位。
178
+
179
+ ### CEIL
180
+
181
+ 用法:`CEIL(num[, numDigits=2])`
182
+
183
+ * `num:number` 要处理的数字
184
+ * `numDigits:number` 小数位数
185
+
186
+ 返回:`number` 返回传入数值向上取整后的结果
187
+
188
+ 将数字向上取整到指定的位数,可以设置小数位。
189
+
190
+ ### SQRT
191
+
192
+ 用法:`SQRT(num)`
193
+
194
+ * `num:number` 要处理的数字
195
+
196
+ 返回:`number` 返回开平方的结果
197
+
198
+ 开平方,参数 number 为非负数
199
+
200
+ ### AVG
201
+
202
+ 用法:`AVG(num1, num2, ...numN)`
203
+
204
+ * `num:...number` 要处理的数字
205
+
206
+ 返回:`number` 返回所有数值的平均值
207
+
208
+ 返回所有参数的平均值
209
+
210
+ ### UPPERMONEY
211
+
212
+ 用法:`UPPERMONEY(num)`
213
+
214
+ * `num:number` 要处理的数字
215
+
216
+ 返回:`string` 返回数值中文大写字符
217
+
218
+ 将数值转为中文大写金额
219
+
220
+ ### RAND
221
+
222
+ 用法:`RAND()`
223
+
224
+ 返回大于等于 0 且小于 1 的均匀分布随机实数。每一次触发计算都会变化。
225
+
226
+ 示例:`RAND()*100`
227
+
228
+ 返回 0-100 之间的随机数
229
+
230
+ ## 文本函数
231
+
232
+ ### LEFT
233
+
234
+ 用法:`LEFT(text, len)`
235
+
236
+ * `text:string` 要处理的文本
237
+ * `len:number` 要处理的长度
238
+
239
+ 返回:`string` 对应字符串
240
+
241
+ 返回传入文本左侧的指定长度字符串。
242
+
243
+ ### RIGHT
244
+
245
+ 用法:`RIGHT(text, len)`
246
+
247
+ * `text:string` 要处理的文本
248
+ * `len:number` 要处理的长度
249
+
250
+ 返回:`string` 对应字符串
251
+
252
+ 返回传入文本右侧的指定长度字符串。
253
+
254
+ ### LEN
255
+
256
+ 用法:`LEN(text)`
257
+
258
+ * `text:string` 要处理的文本
259
+
260
+ 返回:`number` 长度
261
+
262
+ 计算文本的长度
263
+
264
+ ### LENGTH
265
+
266
+ 用法:`LENGTH(textArr)`
267
+
268
+ * `textArr:Array<string>` 要处理的文本集合
269
+
270
+ 返回:`Array<number>` 返回长度集合
271
+
272
+ 计算文本集合中所有文本的长度
273
+
274
+ ### ISEMPTY
275
+
276
+ 用法:`ISEMPTY(text)`
277
+
278
+ * `text:string` 要处理的文本
279
+
280
+ 返回:`boolean` 返回判断结果
281
+
282
+ 判断文本是否为空
283
+
284
+ ### CONCATENATE
285
+
286
+ 用法:`CONCATENATE(text1, text2, ...textN)`
287
+
288
+ * `text:...string` 文本集合
289
+
290
+ 返回:`string` 返回连接后的文本
291
+
292
+ 将多个传入值连接成文本
293
+
294
+ ### CHAR
295
+
296
+ 用法:`CHAR(code)`
297
+
298
+ * `code:number` 编码值
299
+
300
+ 返回:`string` 返回指定位置的字符
301
+
302
+ 返回计算机字符集的数字代码所对应的字符。
303
+
304
+ `CHAR(97)` 等价于 "a"
305
+
306
+ ### LOWER
307
+
308
+ 用法:`LOWER(text)`
309
+
310
+ * `text:string` 文本
311
+
312
+ 返回:`string` 返回结果文本
313
+
314
+ 将传入文本转成小写
315
+
316
+ ### UPPER
317
+
318
+ 用法:`UPPER(text)`
319
+
320
+ * `text:string` 文本
321
+
322
+ 返回:`string` 返回结果文本
323
+
324
+ 将传入文本转成大写
325
+
326
+ ### SPLIT
327
+
328
+ 用法:`SPLIT(text, ',')`
329
+
330
+ * `text:string` 文本
331
+ * `delimiter:string` 文本片段
332
+
333
+ 返回:`Array<string>` 返回文本集
334
+
335
+ 将文本根据指定片段分割成数组
336
+
337
+ 示例:`SPLIT("a,b,c", ",")`
338
+
339
+ 返回 `["a", "b", "c"]`
340
+
341
+ ### TRIM
342
+
343
+ 用法:`TRIM(text)`
344
+
345
+ * `text:string` 文本
346
+
347
+ 返回:`string` 返回处理后的文本
348
+
349
+ 将文本去除前后空格
350
+
351
+ ### STARTSWITH
352
+
353
+ 用法:`STARTSWITH(text, '片段')`
354
+
355
+ * `text:string` 文本
356
+ * `startString:string` 起始文本
357
+
358
+ 返回:`string` 返回判断结果
359
+
360
+ 判断字符串(text)是否以特定字符串(startString)开始,是则返回 True,否则返回 False
361
+
362
+ ### CONTAINS
363
+
364
+ 用法:`CONTAINS(text, searchText)`
365
+
366
+ * `text:string` 文本
367
+ * `searchText:string` 搜索文本
368
+
369
+ 返回:`string` 返回判断结果
370
+
371
+ 判断参数 1 中的文本是否包含参数 2 中的文本。
372
+
373
+ ### REPLACE
374
+
375
+ 用法:`REPLACE(text, search, replace)`
376
+
377
+ * `text:string` 要处理的文本
378
+ * `search:string` 要被替换的文本
379
+ * `replace:string` 要替换的文本
380
+
381
+ 返回:`string` 返回处理结果
382
+
383
+ 对文本进行全量替换。
384
+
385
+ ### SEARCH
386
+
387
+ 用法:`SEARCH(text, search, 0)`
388
+
389
+ * `text:string` 要处理的文本
390
+ * `search:string` 用来搜索的文本
391
+ * `start:number` 起始位置
392
+
393
+ 返回:`number` 返回命中的位置
394
+
395
+ 对文本进行搜索,返回命中的位置
396
+
397
+ ### MID
398
+
399
+ 用法:`MID(text, from, len)`
400
+
401
+ * `text:string` 要处理的文本
402
+ * `from:number` 起始位置
403
+ * `len:number` 处理长度
404
+
405
+ 返回:`number` 返回命中的位置
406
+
407
+ 返回文本字符串中从指定位置开始的特定数目的字符
408
+
409
+ ## 日期函数
410
+
411
+ ### DATE
412
+
413
+ 用法:`DATE('2021-12-06 08:20:00')`
414
+
415
+ 创建日期对象,可以通过特定格式的字符串,或者数值。
416
+
417
+ 需要注意的是,其中月份的数值是从0开始的,也就是说,
418
+ 如果是12月份,你应该传入数值11。
419
+
420
+ ### TIMESTAMP
421
+
422
+ 用法:`TIMESTAMP(date[, format = "X"])`
423
+
424
+ * `date:date` 日期对象
425
+ * `format:string` 时间戳格式,带毫秒传入 'x'。默认为 'X' 不带毫秒的。
426
+
427
+ 返回:`number` 返回时间戳
428
+
429
+ 返回时间的时间戳
430
+
431
+ ### TODAY
432
+
433
+ 用法:`TODAY()`
434
+
435
+ 返回今天的日期
436
+
437
+ ### NOW
438
+
439
+ 用法:`NOW()`
440
+
441
+ 返回现在的日期
442
+
443
+ ### DATETOSTR
444
+
445
+ 用法:`DATETOSTR(date[, format="YYYY-MM-DD HH:mm:ss"])`
446
+
447
+ * `date:date` 日期对象
448
+ * `format:string` 日期格式,默认为 "YYYY-MM-DD HH:mm:ss"
449
+
450
+ 返回:`number` 返回日期字符串
451
+
452
+ 将日期转成日期字符串
453
+
454
+ ### STARTOF
455
+
456
+ 用法:`STARTOF(date[unit = "day"])`
457
+
458
+ * `date:date` 日期对象
459
+ * `unit:string` 比如可以传入 'day'、'month'、'year' 或者 `week` 等等
460
+
461
+ 返回:`date` 新的日期对象
462
+
463
+ 返回日期的指定范围的开端
464
+
465
+ ### ENDOF
466
+
467
+ 用法:`ENDOF(date[unit = "day"])`
468
+
469
+ * `date:date` 日期对象
470
+ * `unit:string` 比如可以传入 'day'、'month'、'year' 或者 `week` 等等
471
+
472
+ 返回:`date` 新的日期对象
473
+
474
+ 返回日期的指定范围的末尾
475
+
476
+ ### YEAR
477
+
478
+ 用法:`YEAR(date)`
479
+
480
+ * `date:date` 日期对象
481
+
482
+ 返回:`number` 返回数值
483
+
484
+ 返回日期的年份
485
+
486
+ ### MONTH
487
+
488
+ 用法:`MONTH(date)`
489
+
490
+ * `date:date` 日期对象
491
+
492
+ 返回:`number` 返回数值
493
+
494
+ 返回日期的月份,这里就是自然月份。
495
+
496
+ ### DAY
497
+
498
+ 用法:`DAY(date)`
499
+
500
+ * `date:date` 日期对象
501
+
502
+ 返回:`number` 返回数值
503
+
504
+ 返回日期的天
505
+
506
+ ### HOUR
507
+
508
+ 用法:`HOUR(date)`
509
+
510
+ * `date:date` 日期对象
511
+
512
+ 返回:`number` 返回数值
513
+
514
+ 返回日期的小时
515
+
516
+ ### MINUTE
517
+
518
+ 用法:`MINUTE(date)`
519
+
520
+ * `date:date` 日期对象
521
+
522
+ 返回:`number` 返回数值
523
+
524
+ 返回日期的分
525
+
526
+ ### SECOND
527
+
528
+ 用法:`SECOND(date)`
529
+
530
+ * `date:date` 日期对象
531
+
532
+ 返回:`number` 返回数值
533
+
534
+ 返回日期的秒
535
+
536
+ ### YEARS
537
+
538
+ 用法:`YEARS(endDate, startDate)`
539
+
540
+ * `endDate:date` 日期对象
541
+ * `startDate:date` 日期对象
542
+
543
+ 返回:`number` 返回数值
544
+
545
+ 返回两个日期相差多少年
546
+
547
+ ### MINUTES
548
+
549
+ 用法:`MINUTES(endDate, startDate)`
550
+
551
+ * `endDate:date` 日期对象
552
+ * `startDate:date` 日期对象
553
+
554
+ 返回:`number` 返回数值
555
+
556
+ 返回两个日期相差多少分钟
557
+
558
+ ### DAYS
559
+
560
+ 用法:`DAYS(endDate, startDate)`
561
+
562
+ * `endDate:date` 日期对象
563
+ * `startDate:date` 日期对象
564
+
565
+ 返回:`number` 返回数值
566
+
567
+ 返回两个日期相差多少天
568
+
569
+ ### HOURS
570
+
571
+ 用法:`HOURS(endDate, startDate)`
572
+
573
+ * `endDate:date` 日期对象
574
+ * `startDate:date` 日期对象
575
+
576
+ 返回:`number` 返回数值
577
+
578
+ 返回两个日期相差多少小时
579
+
580
+ ### DATEMODIFY
581
+
582
+ 用法:`DATEMODIFY(date, 2, 'days')`
583
+
584
+ * `date:date` 日期对象
585
+ * `num:number` 数值
586
+ * `unit:string` 单位:支持年、月、天等等
587
+
588
+ 返回:`date` 返回日期对象
589
+
590
+ 修改日期,对日期进行加减天、月份、年等操作
591
+
592
+ 示例:
593
+
594
+ DATEMODIFY(A, -2, 'month')
595
+
596
+ 对日期 A 进行往前减2月的操作。
597
+
598
+ ### STRTODATE
599
+
600
+ 用法:`STRTODATE(value[, format=""])`
601
+
602
+ * `value:string` 日期字符
603
+ * `format:string` 日期格式
604
+
605
+ 返回:`date` 返回日期对象
606
+
607
+ 将字符日期转成日期对象,可以指定日期格式。
608
+
609
+ 示例:STRTODATE('2021/12/6', 'YYYY/MM/DD')
610
+
611
+ ### ISBEFORE
612
+
613
+ 用法:`ISBEFORE(a, b)`
614
+
615
+ * `a:date` 第一个日期
616
+ * `b:date` 第二个日期
617
+ * `unit:string` 单位,默认是 'day', 即之比较到天
618
+
619
+ 返回:`boolean` } 返回判断结果
620
+
621
+ 判断两个日期,是否第一个日期在第二个日期的前面
622
+
623
+ ### ISAFTER
624
+
625
+ 用法:`ISAFTER(a, b)`
626
+
627
+ * `a:date` 第一个日期
628
+ * `b:date` 第二个日期
629
+ * `unit:string` 单位,默认是 'day', 即之比较到天
630
+
631
+ 返回:`boolean` } 返回判断结果
632
+
633
+ 判断两个日期,是否第一个日期在第二个日期的后面
634
+
635
+ ### ISSAMEORBEFORE
636
+
637
+ 用法:`ISSAMEORBEFORE(a, b)`
638
+
639
+ * `a:date` 第一个日期
640
+ * `b:date` 第二个日期
641
+ * `unit:string` 单位,默认是 'day', 即之比较到天
642
+
643
+ 返回:`boolean` } 返回判断结果
644
+
645
+ 判断两个日期,是否第一个日期在第二个日期的前面或者相等
646
+
647
+ ### ISSAMEORAFTER
648
+
649
+ 用法:`ISSAMEORAFTER(a, b)`
650
+
651
+ * `a:date` 第一个日期
652
+ * `b:date` 第二个日期
653
+ * `unit:string` 单位,默认是 'day', 即之比较到天
654
+
655
+ 返回:`boolean` } 返回判断结果
656
+
657
+ 判断两个日期,是否第一个日期在第二个日期的后面或者相等
658
+