@easyv/config 1.1.9 → 1.1.10

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/src/label.js CHANGED
@@ -1,722 +1,722 @@
1
- import { translate, font, extent, showRule } from '.';
2
-
3
- const defaultFont = font();
4
-
5
- const defaultLabel = {
6
- show: false,
7
- font: {
8
- fontFamily: 'Mircosoft Yahei',
9
- fontSize: 12,
10
- color: '#fff',
11
- bold: false,
12
- italic: false,
13
- letterSpacing: 0,
14
- },
15
- translate: {
16
- x: 0,
17
- y: 0,
18
- },
19
- };
20
- export default ({
21
- show = defaultLabel.show,
22
- font: {
23
- fontFamily = defaultLabel.font.fontFamily,
24
- fontSize = defaultLabel.font.fontSize,
25
- color = defaultLabel.font.color,
26
- bold = defaultLabel.font.bold,
27
- italic = defaultLabel.font.italic,
28
- letterSpacing = defaultLabel.font.letterSpacing,
29
- } = defaultLabel.font,
30
- position,
31
- translate: { x, y } = defaultLabel.translate,
32
- } = defaultLabel) => ({
33
- name: 'label',
34
- displayName: '数值标签',
35
- value: [
36
- {
37
- name: 'show',
38
- displayName: '显示',
39
- value: show,
40
- type: 'boolean',
41
- },
42
- {
43
- _rule: [['show', '$eq', true]],
44
- name: 'font',
45
- displayName: '文本样式',
46
- value: {
47
- fontFamily,
48
- fontSize,
49
- color,
50
- bold,
51
- italic,
52
- letterSpacing,
53
- },
54
- type: 'textStyle',
55
- markColorType: 'textColor',
56
- },
57
- position !== undefined && {
58
- name: 'position',
59
- displayName: '位置',
60
- value: position,
61
- type: 'select',
62
- config: {
63
- options: [
64
- { name: '起点', value: 'start' },
65
- { name: '居中', value: 'middle' },
66
- { name: '终点', value: 'end' },
67
- { name: '终点外', value: 'outerStart' },
68
- { name: '图表外', value: 'chartStart' },
69
- ],
70
- },
71
- },
72
- {
73
- _rule: [['show', '$eq', true]],
74
- ...translate(x, y),
75
- },
76
- ].filter((item) => !!item),
77
- });
78
-
79
- const defaultLabelOfPie = {
80
- show: true,
81
- distance: 30,
82
- lineLength: 10,
83
- mode: 'horizontal',
84
- translate: { x: 0, y: 0 },
85
- name: { show: true, font: defaultFont },
86
- percent: { show: true, precision: 0, font: defaultFont },
87
- value: {
88
- show: true,
89
- suffix: {
90
- show: false,
91
- text: '',
92
- fontSize: 12,
93
- translate: { x: 0, y: 0 },
94
- },
95
- font: defaultFont,
96
- },
97
- };
98
- export const labelOfPie = ({
99
- show = defaultLabelOfPie.show,
100
- distance = defaultLabelOfPie.distance,
101
- lineLength = defaultLabelOfPie.lineLength,
102
- lineColor, //这个是可选项,如果不在main.js里赋值,就不会出现
103
- mode = defaultLabelOfPie.mode,
104
- translate: { x, y } = defaultLabelOfPie.show,
105
- name: {
106
- show: showName = defaultLabelOfPie.name.show,
107
- font: nameFont = defaultLabelOfPie.name.font,
108
- } = defaultLabelOfPie.name,
109
- percent: {
110
- show: showPercent = defaultLabelOfPie.percent.show,
111
- precision = defaultLabelOfPie.percent.precision,
112
- font: percentFont = defaultLabelOfPie.percent.font,
113
- } = defaultLabelOfPie.percent,
114
- value: {
115
- show: showValue = defaultLabelOfPie.value.show,
116
- suffix: {
117
- show: showSuffix = defaultLabelOfPie.value.suffix.show,
118
- text: suffixText = defaultLabelOfPie.value.suffix.text,
119
- fontSize: suffixFontSize = defaultLabelOfPie.value.suffix.fontSize,
120
- translate: {
121
- x: suffixTranslateX = defaultLabelOfPie.value.suffix.translate.x,
122
- y: suffixTranslateY = defaultLabelOfPie.value.suffix.translate.y,
123
- } = defaultLabelOfPie.value.suffix.translate,
124
- } = defaultLabelOfPie.value.suffix,
125
- font: valueFont = defaultLabelOfPie.value.font,
126
- } = defaultLabelOfPie.value,
127
- } = defaultLabelOfPie) => ({
128
- name: 'label',
129
- displayName: '数值标签',
130
- value: [
131
- {
132
- name: 'show',
133
- displayName: '显示',
134
- value: show,
135
- type: 'boolean',
136
- },
137
- {
138
- rule: [['show', '$eq', true]],
139
- name: 'distance',
140
- displayName: '偏移距离',
141
- value: distance,
142
- type: 'number',
143
- config: {
144
- suffix: 'px',
145
- },
146
- },
147
- {
148
- rule: [['show', '$eq', true]],
149
- name: 'lineLength',
150
- displayName: '线长',
151
- value: lineLength,
152
- type: 'number',
153
- config: {
154
- suffix: 'px',
155
- min: 0,
156
- step: 1,
157
- },
158
- },
159
- lineColor !== undefined && {
160
- name: 'lineColor',
161
- displayName: '线颜色',
162
- value: lineColor,
163
- type: 'color',
164
- },
165
- {
166
- rule: [['show', '$eq', true]],
167
- name: 'mode',
168
- displayName: '布局',
169
- value: mode,
170
- type: 'radio',
171
- config: {
172
- options: [
173
- {
174
- name: '上下',
175
- value: 'vertical',
176
- },
177
- {
178
- name: '水平',
179
- value: 'horizontal',
180
- },
181
- ],
182
- },
183
- },
184
- {
185
- rule: [['show', '$eq', true]],
186
- ...translate(x, y),
187
- },
188
- {
189
- rule: [['show', '$eq', true]],
190
- name: 'name',
191
- displayName: '类目',
192
- value: [
193
- {
194
- name: 'show',
195
- displayName: '显示',
196
- value: showName,
197
- type: 'boolean',
198
- },
199
- {
200
- rule: [['show', '$eq', true]],
201
- name: 'font',
202
- displayName: '文本样式',
203
- value: nameFont,
204
- type: 'textStyle',
205
- markColorType: 'textColor',
206
- },
207
- ],
208
- },
209
- {
210
- rule: [['show', '$eq', true]],
211
- name: 'percent',
212
- displayName: '占比值',
213
- value: [
214
- {
215
- name: 'show',
216
- displayName: '显示',
217
- value: showPercent,
218
- type: 'boolean',
219
- },
220
- {
221
- rule: [['show', '$eq', true]],
222
- name: 'precision',
223
- displayName: '小数位数',
224
- value: precision,
225
- type: 'number',
226
- config: {
227
- min: 0,
228
- },
229
- },
230
- {
231
- rule: [['show', '$eq', true]],
232
- name: 'font',
233
- displayName: '文本样式',
234
- value: percentFont,
235
- type: 'textStyle',
236
- markColorType: 'textColor',
237
- },
238
- ],
239
- },
240
- {
241
- name: 'value',
242
- displayName: '真实值',
243
- value: [
244
- {
245
- name: 'show',
246
- displayName: '显示',
247
- value: showValue,
248
- type: 'boolean',
249
- },
250
- {
251
- rule: [['show', '$eq', true]],
252
- name: 'suffix',
253
- displayName: '后缀',
254
- value: [
255
- {
256
- name: 'show',
257
- displayName: '显示',
258
- value: showSuffix,
259
- type: 'boolean',
260
- },
261
- {
262
- rule: [['show', '$eq', true]],
263
- name: 'text',
264
- displayName: '内容',
265
- value: suffixText,
266
- type: 'input',
267
- },
268
- {
269
- rule: [['show', '$eq', true]],
270
- name: 'fontSize',
271
- displayName: '字号',
272
- value: suffixFontSize,
273
- type: 'number',
274
- },
275
- {
276
- rule: [['show', '$eq', true]],
277
- ...translate(suffixTranslateX, suffixTranslateY),
278
- },
279
- ],
280
- config: {
281
- defaultOpen: true,
282
- },
283
- },
284
- {
285
- rule: [['show', '$eq', true]],
286
- name: 'font',
287
- displayName: '文本样式',
288
- value: valueFont,
289
- type: 'textStyle',
290
- markColorType: 'textColor',
291
- },
292
- ],
293
- },
294
- ].filter((item) => !!item),
295
- });
296
-
297
- const defaultLabelOfRose = {
298
- show: true,
299
- font: defaultFont,
300
- gap: 10,
301
- };
302
- export const labelOfRose = ({
303
- show = defaultLabelOfRose.show,
304
- font: labelFont = defaultLabelOfRose.font,
305
- gap = defaultLabelOfRose.gap,
306
- } = defaultLabelOfRose) => ({
307
- name: 'label',
308
- displayName: '数值标签',
309
- value: [
310
- {
311
- name: 'show',
312
- displayName: '显示',
313
- value: show,
314
- type: 'boolean',
315
- },
316
- {
317
- ...showRule(),
318
- name: 'font',
319
- displayName: '文本样式',
320
- value: font(labelFont),
321
- type: 'textStyle',
322
- markColorType: 'textColor',
323
- },
324
- {
325
- ...showRule(),
326
- name: 'gap',
327
- displayName: '间距',
328
- value: gap,
329
- type: 'number',
330
- config: {
331
- suffix: 'px',
332
- },
333
- },
334
- ],
335
- });
336
-
337
- const defaultAxisLabel = {
338
- show: true,
339
- format: { type: 'date', showType: 'MM月' },
340
- appearance: { count: 3, angle: 0, wordBreak: 'keep-all' },
341
- showLast: false,
342
- translate: { x: 0, y: 0 },
343
- font: font({ color: 'rgba(230, 247, 255, 1)' }),
344
- };
345
- export const axisLabel = ({
346
- show: showLabel = defaultAxisLabel.show,
347
- format: {
348
- type: labelType = defaultAxisLabel.format.type,
349
- showType: labelShowType = defaultAxisLabel.format.showType,
350
- } = defaultAxisLabel.format,
351
- appearance: {
352
- count = defaultAxisLabel.appearance.count,
353
- angle = defaultAxisLabel.appearance.angle,
354
- wordBreak = defaultAxisLabel.appearance.wordBreak,
355
- } = defaultAxisLabel.appearance,
356
- showLast = defaultAxisLabel.showLast,
357
- translate: {
358
- x: labelTranslateX = defaultAxisLabel.translate.x,
359
- y: labelTranslateY = defaultAxisLabel.translate.y,
360
- } = defaultAxisLabel.translate,
361
- font = defaultAxisLabel.font,
362
- } = defaultAxisLabel) => ({
363
- name: 'label',
364
- displayName: '轴标签',
365
- value: [
366
- {
367
- name: 'show',
368
- displayName: '显示',
369
- value: showLabel,
370
- type: 'boolean',
371
- },
372
- {
373
- rule: [['show', '$eq', true]],
374
- name: 'format',
375
- displayName: '格式',
376
- value: [
377
- {
378
- name: 'type',
379
- displayName: '',
380
- value: labelType,
381
- type: 'radio',
382
- config: {
383
- options: [
384
- {
385
- name: '类目型',
386
- value: 'category',
387
- },
388
- {
389
- name: '时间型',
390
- value: 'date',
391
- },
392
- ],
393
- span: 24,
394
- },
395
- },
396
- {
397
- rule: [['type', '$eq', 'date']],
398
- name: 'showType',
399
- displayName: '',
400
- value: labelShowType,
401
- type: 'select',
402
- config: {
403
- options: [
404
- {
405
- name: '2017年1月1日 08:00:00',
406
- value: 'YYYY年M月D日 HH:mm:ss',
407
- },
408
- {
409
- name: '2017年01月01日 08:00:00',
410
- value: 'YYYY年MM月DD日 HH:mm:ss',
411
- },
412
- {
413
- name: '2017-1-1 08:00:00',
414
- value: 'YYYY-M-D HH:mm:ss',
415
- },
416
- {
417
- name: '2017-01-01 08:00:00',
418
- value: 'YYYY-MM-DD HH:mm:ss',
419
- },
420
- {
421
- name: '2017.1.1 08:00:00',
422
- value: 'YYYY.M.D HH:mm:ss',
423
- },
424
- {
425
- name: '2017.01.01 08:00:00',
426
- value: 'YYYY.MM.DD HH:mm:ss',
427
- },
428
- {
429
- name: '2017年1月1日',
430
- value: 'YYYY年M月D日',
431
- },
432
- {
433
- name: '2017年01月01日',
434
- value: 'YYYY年MM月DD日',
435
- },
436
- {
437
- name: '2017年01月',
438
- value: 'YYYY年MM月',
439
- },
440
- {
441
- name: '2017-1-1',
442
- value: 'YYYY-M-D',
443
- },
444
- {
445
- name: '2017-01-01',
446
- value: 'YYYY-MM-DD',
447
- },
448
- {
449
- name: '2017.1.1',
450
- value: 'YYYY.M.D',
451
- },
452
- {
453
- name: '2017.01.01',
454
- value: 'YYYY.MM.DD',
455
- },
456
- {
457
- name: '1月1日',
458
- value: 'M月D日',
459
- },
460
- {
461
- name: '01月01日',
462
- value: 'MM月DD日',
463
- },
464
- {
465
- name: '01月01日01时',
466
- value: 'MM月DD日HH时',
467
- },
468
- {
469
- name: '1-1',
470
- value: 'M-D',
471
- },
472
- {
473
- name: '01-01',
474
- value: 'MM-DD',
475
- },
476
- {
477
- name: '1.1',
478
- value: 'M.D',
479
- },
480
- {
481
- name: '01.01',
482
- value: 'MM.DD',
483
- },
484
- {
485
- name: '1月',
486
- value: 'M月',
487
- },
488
- {
489
- name: '01月',
490
- value: 'MM月',
491
- },
492
- {
493
- name: '1(月)',
494
- value: 'M',
495
- },
496
- {
497
- name: '01(月)',
498
- value: 'MM',
499
- },
500
- {
501
- name: '1日',
502
- value: 'D日',
503
- },
504
- {
505
- name: '01日',
506
- value: 'DD日',
507
- },
508
- {
509
- name: '1(日)',
510
- value: 'D',
511
- },
512
- {
513
- name: '01(日)',
514
- value: 'DD',
515
- },
516
- {
517
- name: '08:00:00',
518
- value: 'HH:mm:ss',
519
- },
520
- {
521
- name: '08:00',
522
- value: 'HH:mm',
523
- },
524
- {
525
- name: '星期一',
526
- value: 'X',
527
- },
528
- {
529
- name: 'Monday',
530
- value: 'W',
531
- },
532
- {
533
- name: 'Mon',
534
- value: 'w',
535
- },
536
- ],
537
- span: 24,
538
- },
539
- },
540
- ],
541
- type: 'group',
542
- },
543
- {
544
- rule: [['show', '$eq', true]],
545
- name: 'appearance',
546
- displayName: '展示',
547
- value: [
548
- {
549
- name: 'count',
550
- displayName: '标签数量',
551
- value: count,
552
- type: 'number',
553
- config: {
554
- min: 2,
555
- span: 12,
556
- },
557
- },
558
- {
559
- name: 'angle',
560
- displayName: '文字角度',
561
- value: angle,
562
- type: 'number',
563
- config: {
564
- span: 12,
565
- suffix: '°',
566
- },
567
- },
568
- {
569
- name: 'wordBreak',
570
- displayName: '行字数限制',
571
- value: wordBreak,
572
- type: 'select',
573
- config: {
574
- options: [{ name: '不限制', value: 'keep-all' }],
575
- allowInput: true,
576
- span: 12,
577
- },
578
- },
579
- ],
580
- type: 'group',
581
- },
582
- {
583
- name: 'showLast',
584
- displayName: '显示最新',
585
- value: showLast,
586
- type: 'boolean',
587
- tip: '显示返回最新数据的轴标签',
588
- },
589
- {
590
- rule: [['show', '$eq', true]],
591
- ...translate(labelTranslateX, labelTranslateY),
592
- },
593
- {
594
- rule: [['show', '$eq', true]],
595
- name: 'font',
596
- displayName: '文本样式',
597
- value: font,
598
- type: 'textStyle',
599
- markColorType: 'textColor',
600
- },
601
- ],
602
- });
603
-
604
- const defaultValueAxisLabel = {
605
- show: true,
606
- extent: { min: '0', max: '' },
607
- auto: false,
608
- mode: 'count',
609
- count: 3,
610
- step: 100,
611
- decimal: 0,
612
- suffix: '',
613
- translate: { x: 6, y: 0 },
614
- font: defaultFont,
615
- };
616
- export const valueAsixLabel = ({
617
- show: showLabel = defaultValueAxisLabel.show,
618
- extent: {
619
- min = defaultValueAxisLabel.extent.min,
620
- max = defaultValueAxisLabel.extent.max,
621
- } = defaultValueAxisLabel.extent,
622
- auto = defaultValueAxisLabel.auto,
623
- mode = defaultValueAxisLabel.mode,
624
- count = defaultValueAxisLabel.count,
625
- step = defaultValueAxisLabel.step,
626
- decimal = defaultValueAxisLabel.decimal,
627
- suffix = defaultValueAxisLabel.suffix,
628
- translate: {
629
- x: labelTranslateX = defaultValueAxisLabel.translate.x,
630
- y: labelTranslateY = defaultValueAxisLabel.translate.y,
631
- } = defaultValueAxisLabel.translate,
632
- font: labelFont = defaultValueAxisLabel.font,
633
- } = defaultValueAxisLabel) => ({
634
- name: 'label',
635
- displayName: '轴标签',
636
- value: [
637
- {
638
- name: 'show',
639
- displayName: '显示',
640
- value: showLabel,
641
- type: 'boolean',
642
- },
643
- {
644
- rule: [['show', '$eq', true]],
645
- ...extent({ min, max }),
646
- },
647
- {
648
- rule: [['show', '$eq', true]],
649
- name: 'auto',
650
- displayName: '刻度自适应',
651
- value: auto,
652
- type: 'boolean',
653
- },
654
- {
655
- rule: [
656
- ['show', '$eq', true],
657
- ['auto', '$eq', false],
658
- ],
659
- name: 'mode',
660
- displayName: '模式',
661
- value: mode,
662
- type: 'radio',
663
- config: {
664
- options: [
665
- { name: '数量强制', value: 'count' },
666
- { name: '步长强制', value: 'step' },
667
- ],
668
- },
669
- },
670
- {
671
- rule: [
672
- ['show', '$eq', true],
673
- ['auto', '$eq', false],
674
- ['mode', '$eq', 'count'],
675
- ],
676
- name: 'count',
677
- displayName: '标签数量',
678
- value: count,
679
- min: 2,
680
- type: 'number',
681
- },
682
- {
683
- rule: [
684
- ['show', '$eq', true],
685
- ['auto', '$eq', false],
686
- ['mode', '$eq', 'step'],
687
- ],
688
- name: 'step',
689
- displayName: '步长',
690
- value: step,
691
- type: 'number',
692
- },
693
- {
694
- rule: [
695
- ['show', '$eq', true],
696
- ['auto', '$eq', false],
697
- ],
698
- name: 'decimal',
699
- displayName: '小数位数',
700
- value: decimal,
701
- type: 'number',
702
- },
703
- {
704
- rule: [['show', '$eq', true]],
705
- name: 'suffix',
706
- displayName: '后缀内容',
707
- value: suffix,
708
- type: 'input',
709
- },
710
- {
711
- rule: [['show', '$eq', true]],
712
- ...translate(labelTranslateX, labelTranslateY),
713
- },
714
- {
715
- rule: [['show', '$eq', true]],
716
- name: 'font',
717
- displayName: '文本样式',
718
- value: labelFont,
719
- type: 'textStyle',
720
- },
721
- ],
722
- });
1
+ import { translate, font, extent, showRule } from '.';
2
+
3
+ const defaultFont = font();
4
+
5
+ const defaultLabel = {
6
+ show: false,
7
+ font: {
8
+ fontFamily: 'Mircosoft Yahei',
9
+ fontSize: 12,
10
+ color: '#fff',
11
+ bold: false,
12
+ italic: false,
13
+ letterSpacing: 0,
14
+ },
15
+ translate: {
16
+ x: 0,
17
+ y: 0,
18
+ },
19
+ };
20
+ export default ({
21
+ show = defaultLabel.show,
22
+ font: {
23
+ fontFamily = defaultLabel.font.fontFamily,
24
+ fontSize = defaultLabel.font.fontSize,
25
+ color = defaultLabel.font.color,
26
+ bold = defaultLabel.font.bold,
27
+ italic = defaultLabel.font.italic,
28
+ letterSpacing = defaultLabel.font.letterSpacing,
29
+ } = defaultLabel.font,
30
+ position,
31
+ translate: { x, y } = defaultLabel.translate,
32
+ } = defaultLabel) => ({
33
+ name: 'label',
34
+ displayName: '数值标签',
35
+ value: [
36
+ {
37
+ name: 'show',
38
+ displayName: '显示',
39
+ value: show,
40
+ type: 'boolean',
41
+ },
42
+ {
43
+ _rule: [['show', '$eq', true]],
44
+ name: 'font',
45
+ displayName: '文本样式',
46
+ value: {
47
+ fontFamily,
48
+ fontSize,
49
+ color,
50
+ bold,
51
+ italic,
52
+ letterSpacing,
53
+ },
54
+ type: 'textStyle',
55
+ markColorType: 'textColor',
56
+ },
57
+ position !== undefined && {
58
+ name: 'position',
59
+ displayName: '位置',
60
+ value: position,
61
+ type: 'select',
62
+ config: {
63
+ options: [
64
+ { name: '起点', value: 'start' },
65
+ { name: '居中', value: 'middle' },
66
+ { name: '终点', value: 'end' },
67
+ { name: '终点外', value: 'outerStart' },
68
+ { name: '图表外', value: 'chartStart' },
69
+ ],
70
+ },
71
+ },
72
+ {
73
+ _rule: [['show', '$eq', true]],
74
+ ...translate(x, y),
75
+ },
76
+ ].filter((item) => !!item),
77
+ });
78
+
79
+ const defaultLabelOfPie = {
80
+ show: true,
81
+ distance: 30,
82
+ lineLength: 10,
83
+ mode: 'horizontal',
84
+ translate: { x: 0, y: 0 },
85
+ name: { show: true, font: defaultFont },
86
+ percent: { show: true, precision: 0, font: defaultFont },
87
+ value: {
88
+ show: true,
89
+ suffix: {
90
+ show: false,
91
+ text: '',
92
+ fontSize: 12,
93
+ translate: { x: 0, y: 0 },
94
+ },
95
+ font: defaultFont,
96
+ },
97
+ };
98
+ export const labelOfPie = ({
99
+ show = defaultLabelOfPie.show,
100
+ distance = defaultLabelOfPie.distance,
101
+ lineLength = defaultLabelOfPie.lineLength,
102
+ lineColor, //这个是可选项,如果不在main.js里赋值,就不会出现
103
+ mode = defaultLabelOfPie.mode,
104
+ translate: { x, y } = defaultLabelOfPie.show,
105
+ name: {
106
+ show: showName = defaultLabelOfPie.name.show,
107
+ font: nameFont = defaultLabelOfPie.name.font,
108
+ } = defaultLabelOfPie.name,
109
+ percent: {
110
+ show: showPercent = defaultLabelOfPie.percent.show,
111
+ precision = defaultLabelOfPie.percent.precision,
112
+ font: percentFont = defaultLabelOfPie.percent.font,
113
+ } = defaultLabelOfPie.percent,
114
+ value: {
115
+ show: showValue = defaultLabelOfPie.value.show,
116
+ suffix: {
117
+ show: showSuffix = defaultLabelOfPie.value.suffix.show,
118
+ text: suffixText = defaultLabelOfPie.value.suffix.text,
119
+ fontSize: suffixFontSize = defaultLabelOfPie.value.suffix.fontSize,
120
+ translate: {
121
+ x: suffixTranslateX = defaultLabelOfPie.value.suffix.translate.x,
122
+ y: suffixTranslateY = defaultLabelOfPie.value.suffix.translate.y,
123
+ } = defaultLabelOfPie.value.suffix.translate,
124
+ } = defaultLabelOfPie.value.suffix,
125
+ font: valueFont = defaultLabelOfPie.value.font,
126
+ } = defaultLabelOfPie.value,
127
+ } = defaultLabelOfPie) => ({
128
+ name: 'label',
129
+ displayName: '数值标签',
130
+ value: [
131
+ {
132
+ name: 'show',
133
+ displayName: '显示',
134
+ value: show,
135
+ type: 'boolean',
136
+ },
137
+ {
138
+ rule: [['show', '$eq', true]],
139
+ name: 'distance',
140
+ displayName: '偏移距离',
141
+ value: distance,
142
+ type: 'number',
143
+ config: {
144
+ suffix: 'px',
145
+ },
146
+ },
147
+ {
148
+ rule: [['show', '$eq', true]],
149
+ name: 'lineLength',
150
+ displayName: '线长',
151
+ value: lineLength,
152
+ type: 'number',
153
+ config: {
154
+ suffix: 'px',
155
+ min: 0,
156
+ step: 1,
157
+ },
158
+ },
159
+ lineColor !== undefined && {
160
+ name: 'lineColor',
161
+ displayName: '线颜色',
162
+ value: lineColor,
163
+ type: 'color',
164
+ },
165
+ {
166
+ rule: [['show', '$eq', true]],
167
+ name: 'mode',
168
+ displayName: '布局',
169
+ value: mode,
170
+ type: 'radio',
171
+ config: {
172
+ options: [
173
+ {
174
+ name: '上下',
175
+ value: 'vertical',
176
+ },
177
+ {
178
+ name: '水平',
179
+ value: 'horizontal',
180
+ },
181
+ ],
182
+ },
183
+ },
184
+ {
185
+ rule: [['show', '$eq', true]],
186
+ ...translate(x, y),
187
+ },
188
+ {
189
+ rule: [['show', '$eq', true]],
190
+ name: 'name',
191
+ displayName: '类目',
192
+ value: [
193
+ {
194
+ name: 'show',
195
+ displayName: '显示',
196
+ value: showName,
197
+ type: 'boolean',
198
+ },
199
+ {
200
+ rule: [['show', '$eq', true]],
201
+ name: 'font',
202
+ displayName: '文本样式',
203
+ value: nameFont,
204
+ type: 'textStyle',
205
+ markColorType: 'textColor',
206
+ },
207
+ ],
208
+ },
209
+ {
210
+ rule: [['show', '$eq', true]],
211
+ name: 'percent',
212
+ displayName: '占比值',
213
+ value: [
214
+ {
215
+ name: 'show',
216
+ displayName: '显示',
217
+ value: showPercent,
218
+ type: 'boolean',
219
+ },
220
+ {
221
+ rule: [['show', '$eq', true]],
222
+ name: 'precision',
223
+ displayName: '小数位数',
224
+ value: precision,
225
+ type: 'number',
226
+ config: {
227
+ min: 0,
228
+ },
229
+ },
230
+ {
231
+ rule: [['show', '$eq', true]],
232
+ name: 'font',
233
+ displayName: '文本样式',
234
+ value: percentFont,
235
+ type: 'textStyle',
236
+ markColorType: 'textColor',
237
+ },
238
+ ],
239
+ },
240
+ {
241
+ name: 'value',
242
+ displayName: '真实值',
243
+ value: [
244
+ {
245
+ name: 'show',
246
+ displayName: '显示',
247
+ value: showValue,
248
+ type: 'boolean',
249
+ },
250
+ {
251
+ rule: [['show', '$eq', true]],
252
+ name: 'suffix',
253
+ displayName: '后缀',
254
+ value: [
255
+ {
256
+ name: 'show',
257
+ displayName: '显示',
258
+ value: showSuffix,
259
+ type: 'boolean',
260
+ },
261
+ {
262
+ rule: [['show', '$eq', true]],
263
+ name: 'text',
264
+ displayName: '内容',
265
+ value: suffixText,
266
+ type: 'input',
267
+ },
268
+ {
269
+ rule: [['show', '$eq', true]],
270
+ name: 'fontSize',
271
+ displayName: '字号',
272
+ value: suffixFontSize,
273
+ type: 'number',
274
+ },
275
+ {
276
+ rule: [['show', '$eq', true]],
277
+ ...translate(suffixTranslateX, suffixTranslateY),
278
+ },
279
+ ],
280
+ config: {
281
+ defaultOpen: true,
282
+ },
283
+ },
284
+ {
285
+ rule: [['show', '$eq', true]],
286
+ name: 'font',
287
+ displayName: '文本样式',
288
+ value: valueFont,
289
+ type: 'textStyle',
290
+ markColorType: 'textColor',
291
+ },
292
+ ],
293
+ },
294
+ ].filter((item) => !!item),
295
+ });
296
+
297
+ const defaultLabelOfRose = {
298
+ show: true,
299
+ font: defaultFont,
300
+ gap: 10,
301
+ };
302
+ export const labelOfRose = ({
303
+ show = defaultLabelOfRose.show,
304
+ font: labelFont = defaultLabelOfRose.font,
305
+ gap = defaultLabelOfRose.gap,
306
+ } = defaultLabelOfRose) => ({
307
+ name: 'label',
308
+ displayName: '数值标签',
309
+ value: [
310
+ {
311
+ name: 'show',
312
+ displayName: '显示',
313
+ value: show,
314
+ type: 'boolean',
315
+ },
316
+ {
317
+ ...showRule(),
318
+ name: 'font',
319
+ displayName: '文本样式',
320
+ value: font(labelFont),
321
+ type: 'textStyle',
322
+ markColorType: 'textColor',
323
+ },
324
+ {
325
+ ...showRule(),
326
+ name: 'gap',
327
+ displayName: '间距',
328
+ value: gap,
329
+ type: 'number',
330
+ config: {
331
+ suffix: 'px',
332
+ },
333
+ },
334
+ ],
335
+ });
336
+
337
+ const defaultAxisLabel = {
338
+ show: true,
339
+ format: { type: 'date', showType: 'MM月' },
340
+ appearance: { count: 3, angle: 0, wordBreak: 'keep-all' },
341
+ showLast: false,
342
+ translate: { x: 0, y: 0 },
343
+ font: font({ color: 'rgba(230, 247, 255, 1)' }),
344
+ };
345
+ export const axisLabel = ({
346
+ show: showLabel = defaultAxisLabel.show,
347
+ format: {
348
+ type: labelType = defaultAxisLabel.format.type,
349
+ showType: labelShowType = defaultAxisLabel.format.showType,
350
+ } = defaultAxisLabel.format,
351
+ appearance: {
352
+ count = defaultAxisLabel.appearance.count,
353
+ angle = defaultAxisLabel.appearance.angle,
354
+ wordBreak = defaultAxisLabel.appearance.wordBreak,
355
+ } = defaultAxisLabel.appearance,
356
+ showLast = defaultAxisLabel.showLast,
357
+ translate: {
358
+ x: labelTranslateX = defaultAxisLabel.translate.x,
359
+ y: labelTranslateY = defaultAxisLabel.translate.y,
360
+ } = defaultAxisLabel.translate,
361
+ font = defaultAxisLabel.font,
362
+ } = defaultAxisLabel) => ({
363
+ name: 'label',
364
+ displayName: '轴标签',
365
+ value: [
366
+ {
367
+ name: 'show',
368
+ displayName: '显示',
369
+ value: showLabel,
370
+ type: 'boolean',
371
+ },
372
+ {
373
+ rule: [['show', '$eq', true]],
374
+ name: 'format',
375
+ displayName: '格式',
376
+ value: [
377
+ {
378
+ name: 'type',
379
+ displayName: '',
380
+ value: labelType,
381
+ type: 'radio',
382
+ config: {
383
+ options: [
384
+ {
385
+ name: '类目型',
386
+ value: 'category',
387
+ },
388
+ {
389
+ name: '时间型',
390
+ value: 'date',
391
+ },
392
+ ],
393
+ span: 24,
394
+ },
395
+ },
396
+ {
397
+ rule: [['type', '$eq', 'date']],
398
+ name: 'showType',
399
+ displayName: '',
400
+ value: labelShowType,
401
+ type: 'select',
402
+ config: {
403
+ options: [
404
+ {
405
+ name: '2017年1月1日 08:00:00',
406
+ value: 'YYYY年M月D日 HH:mm:ss',
407
+ },
408
+ {
409
+ name: '2017年01月01日 08:00:00',
410
+ value: 'YYYY年MM月DD日 HH:mm:ss',
411
+ },
412
+ {
413
+ name: '2017-1-1 08:00:00',
414
+ value: 'YYYY-M-D HH:mm:ss',
415
+ },
416
+ {
417
+ name: '2017-01-01 08:00:00',
418
+ value: 'YYYY-MM-DD HH:mm:ss',
419
+ },
420
+ {
421
+ name: '2017.1.1 08:00:00',
422
+ value: 'YYYY.M.D HH:mm:ss',
423
+ },
424
+ {
425
+ name: '2017.01.01 08:00:00',
426
+ value: 'YYYY.MM.DD HH:mm:ss',
427
+ },
428
+ {
429
+ name: '2017年1月1日',
430
+ value: 'YYYY年M月D日',
431
+ },
432
+ {
433
+ name: '2017年01月01日',
434
+ value: 'YYYY年MM月DD日',
435
+ },
436
+ {
437
+ name: '2017年01月',
438
+ value: 'YYYY年MM月',
439
+ },
440
+ {
441
+ name: '2017-1-1',
442
+ value: 'YYYY-M-D',
443
+ },
444
+ {
445
+ name: '2017-01-01',
446
+ value: 'YYYY-MM-DD',
447
+ },
448
+ {
449
+ name: '2017.1.1',
450
+ value: 'YYYY.M.D',
451
+ },
452
+ {
453
+ name: '2017.01.01',
454
+ value: 'YYYY.MM.DD',
455
+ },
456
+ {
457
+ name: '1月1日',
458
+ value: 'M月D日',
459
+ },
460
+ {
461
+ name: '01月01日',
462
+ value: 'MM月DD日',
463
+ },
464
+ {
465
+ name: '01月01日01时',
466
+ value: 'MM月DD日HH时',
467
+ },
468
+ {
469
+ name: '1-1',
470
+ value: 'M-D',
471
+ },
472
+ {
473
+ name: '01-01',
474
+ value: 'MM-DD',
475
+ },
476
+ {
477
+ name: '1.1',
478
+ value: 'M.D',
479
+ },
480
+ {
481
+ name: '01.01',
482
+ value: 'MM.DD',
483
+ },
484
+ {
485
+ name: '1月',
486
+ value: 'M月',
487
+ },
488
+ {
489
+ name: '01月',
490
+ value: 'MM月',
491
+ },
492
+ {
493
+ name: '1(月)',
494
+ value: 'M',
495
+ },
496
+ {
497
+ name: '01(月)',
498
+ value: 'MM',
499
+ },
500
+ {
501
+ name: '1日',
502
+ value: 'D日',
503
+ },
504
+ {
505
+ name: '01日',
506
+ value: 'DD日',
507
+ },
508
+ {
509
+ name: '1(日)',
510
+ value: 'D',
511
+ },
512
+ {
513
+ name: '01(日)',
514
+ value: 'DD',
515
+ },
516
+ {
517
+ name: '08:00:00',
518
+ value: 'HH:mm:ss',
519
+ },
520
+ {
521
+ name: '08:00',
522
+ value: 'HH:mm',
523
+ },
524
+ {
525
+ name: '星期一',
526
+ value: 'X',
527
+ },
528
+ {
529
+ name: 'Monday',
530
+ value: 'W',
531
+ },
532
+ {
533
+ name: 'Mon',
534
+ value: 'w',
535
+ },
536
+ ],
537
+ span: 24,
538
+ },
539
+ },
540
+ ],
541
+ type: 'group',
542
+ },
543
+ {
544
+ rule: [['show', '$eq', true]],
545
+ name: 'appearance',
546
+ displayName: '展示',
547
+ value: [
548
+ {
549
+ name: 'count',
550
+ displayName: '标签数量',
551
+ value: count,
552
+ type: 'number',
553
+ config: {
554
+ min: 2,
555
+ span: 12,
556
+ },
557
+ },
558
+ {
559
+ name: 'angle',
560
+ displayName: '文字角度',
561
+ value: angle,
562
+ type: 'number',
563
+ config: {
564
+ span: 12,
565
+ suffix: '°',
566
+ },
567
+ },
568
+ {
569
+ name: 'wordBreak',
570
+ displayName: '行字数限制',
571
+ value: wordBreak,
572
+ type: 'select',
573
+ config: {
574
+ options: [{ name: '不限制', value: 'keep-all' }],
575
+ allowInput: true,
576
+ span: 12,
577
+ },
578
+ },
579
+ ],
580
+ type: 'group',
581
+ },
582
+ {
583
+ name: 'showLast',
584
+ displayName: '显示最新',
585
+ value: showLast,
586
+ type: 'boolean',
587
+ tip: '显示返回最新数据的轴标签',
588
+ },
589
+ {
590
+ rule: [['show', '$eq', true]],
591
+ ...translate(labelTranslateX, labelTranslateY),
592
+ },
593
+ {
594
+ rule: [['show', '$eq', true]],
595
+ name: 'font',
596
+ displayName: '文本样式',
597
+ value: font,
598
+ type: 'textStyle',
599
+ markColorType: 'textColor',
600
+ },
601
+ ],
602
+ });
603
+
604
+ const defaultValueAxisLabel = {
605
+ show: true,
606
+ extent: { min: '0', max: '' },
607
+ auto: false,
608
+ mode: 'count',
609
+ count: 3,
610
+ step: 100,
611
+ decimal: 0,
612
+ suffix: '',
613
+ translate: { x: 6, y: 0 },
614
+ font: defaultFont,
615
+ };
616
+ export const valueAsixLabel = ({
617
+ show: showLabel = defaultValueAxisLabel.show,
618
+ extent: {
619
+ min = defaultValueAxisLabel.extent.min,
620
+ max = defaultValueAxisLabel.extent.max,
621
+ } = defaultValueAxisLabel.extent,
622
+ auto = defaultValueAxisLabel.auto,
623
+ mode = defaultValueAxisLabel.mode,
624
+ count = defaultValueAxisLabel.count,
625
+ step = defaultValueAxisLabel.step,
626
+ decimal = defaultValueAxisLabel.decimal,
627
+ suffix = defaultValueAxisLabel.suffix,
628
+ translate: {
629
+ x: labelTranslateX = defaultValueAxisLabel.translate.x,
630
+ y: labelTranslateY = defaultValueAxisLabel.translate.y,
631
+ } = defaultValueAxisLabel.translate,
632
+ font: labelFont = defaultValueAxisLabel.font,
633
+ } = defaultValueAxisLabel) => ({
634
+ name: 'label',
635
+ displayName: '轴标签',
636
+ value: [
637
+ {
638
+ name: 'show',
639
+ displayName: '显示',
640
+ value: showLabel,
641
+ type: 'boolean',
642
+ },
643
+ {
644
+ rule: [['show', '$eq', true]],
645
+ ...extent({ min, max }),
646
+ },
647
+ {
648
+ rule: [['show', '$eq', true]],
649
+ name: 'auto',
650
+ displayName: '刻度自适应',
651
+ value: auto,
652
+ type: 'boolean',
653
+ },
654
+ {
655
+ rule: [
656
+ ['show', '$eq', true],
657
+ ['auto', '$eq', false],
658
+ ],
659
+ name: 'mode',
660
+ displayName: '模式',
661
+ value: mode,
662
+ type: 'radio',
663
+ config: {
664
+ options: [
665
+ { name: '数量强制', value: 'count' },
666
+ { name: '步长强制', value: 'step' },
667
+ ],
668
+ },
669
+ },
670
+ {
671
+ rule: [
672
+ ['show', '$eq', true],
673
+ ['auto', '$eq', false],
674
+ ['mode', '$eq', 'count'],
675
+ ],
676
+ name: 'count',
677
+ displayName: '标签数量',
678
+ value: count,
679
+ min: 2,
680
+ type: 'number',
681
+ },
682
+ {
683
+ rule: [
684
+ ['show', '$eq', true],
685
+ ['auto', '$eq', false],
686
+ ['mode', '$eq', 'step'],
687
+ ],
688
+ name: 'step',
689
+ displayName: '步长',
690
+ value: step,
691
+ type: 'number',
692
+ },
693
+ {
694
+ rule: [
695
+ ['show', '$eq', true],
696
+ ['auto', '$eq', false],
697
+ ],
698
+ name: 'decimal',
699
+ displayName: '小数位数',
700
+ value: decimal,
701
+ type: 'number',
702
+ },
703
+ {
704
+ rule: [['show', '$eq', true]],
705
+ name: 'suffix',
706
+ displayName: '后缀内容',
707
+ value: suffix,
708
+ type: 'input',
709
+ },
710
+ {
711
+ rule: [['show', '$eq', true]],
712
+ ...translate(labelTranslateX, labelTranslateY),
713
+ },
714
+ {
715
+ rule: [['show', '$eq', true]],
716
+ name: 'font',
717
+ displayName: '文本样式',
718
+ value: labelFont,
719
+ type: 'textStyle',
720
+ },
721
+ ],
722
+ });