@easyv/config 1.1.6 → 1.1.9

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/legend.js CHANGED
@@ -1,982 +1,982 @@
1
- const {
2
- translate: translateConfig,
3
- font,
4
- show: showConfig,
5
- showRule,
6
- } = require('.');
7
-
8
- const defaultFont = font({
9
- fontFamily: 'Mircosoft Yahei',
10
- fontSize: 12,
11
- color: 'rgba(230, 247, 255, 1)',
12
- bold: false,
13
- italic: false,
14
- letterSpacing: 0,
15
- });
16
-
17
- const defaultLegend = {
18
- show: true,
19
- font: defaultFont,
20
- iconSize: {
21
- width: 10,
22
- height: 10,
23
- },
24
- iconGap: 5,
25
- layout: {
26
- gridTemplateColumns: 3,
27
- gridGap: {
28
- gridRowGap: 0,
29
- gridColumnGap: 30,
30
- },
31
- alignment: 'center bottom',
32
- translate: { x: 0, y: 0 },
33
- },
34
- interactive: true,
35
- unselect: {
36
- opacity: 30,
37
- },
38
- };
39
- export default ({
40
- show = defaultLegend.show,
41
- font = defaultLegend.font,
42
- iconSize: {
43
- width = defaultLegend.iconSize.width,
44
- height = defaultLegend.iconSize.height,
45
- } = defaultLegend.iconSize,
46
- iconGap = defaultLegend.iconGap,
47
- layout: {
48
- gridTemplateColumns = defaultLegend.layout.gridTemplateColumns,
49
- gridGap: {
50
- gridRowGap = defaultLegend.layout.gridGap.gridRowGap,
51
- gridColumnGap = defaultLegend.layout.gridGap.gridColumnGap,
52
- } = defaultLegend.layout.gridGap,
53
- alignment = defaultLegend.layout.alignment,
54
- translate: {
55
- x = defaultLegend.layout.translate.x,
56
- y = defaultLegend.layout.translate.y,
57
- } = defaultLegend.layout.translate,
58
- } = defaultLegend.layout,
59
- interactive = defaultLegend.interactive,
60
- unselect: {
61
- opacity = defaultLegend.unselect.opacity,
62
- } = defaultLegend.unselect,
63
- } = defaultLegend) => ({
64
- name: 'legend',
65
- displayName: '图例',
66
- value: [
67
- showConfig(show),
68
- {
69
- rule: [['show', '$eq', true]],
70
- name: 'font',
71
- displayName: '文本样式',
72
- value: font,
73
- type: 'textStyle',
74
- markColorType: 'textColor',
75
- },
76
- {
77
- name: 'iconSize',
78
- displayName: '图标尺寸',
79
- value: [
80
- {
81
- name: 'width',
82
- displayName: '宽度',
83
- value: width,
84
- config: {
85
- span: 12,
86
- suffix: 'px',
87
- },
88
- },
89
- {
90
- name: 'height',
91
- displayName: '高度',
92
- value: height,
93
- config: {
94
- span: 12,
95
- suffix: 'px',
96
- },
97
- },
98
- ],
99
- type: 'group',
100
- },
101
- {
102
- name: 'iconGap',
103
- displayName: '间距',
104
- value: iconGap,
105
- config: {
106
- suffix: 'px',
107
- },
108
- },
109
- {
110
- rule: [['show', '$eq', true]],
111
- name: 'layout',
112
- displayName: '布局',
113
- value: [
114
- {
115
- name: 'gridTemplateColumns',
116
- displayName: '列数',
117
- value: gridTemplateColumns,
118
- type: 'number',
119
- },
120
- {
121
- name: 'gridGap',
122
- displayName: '间距',
123
- value: [
124
- {
125
- name: 'gridRowGap',
126
- displayName: '行距',
127
- value: gridRowGap,
128
- type: 'number',
129
- config: {
130
- span: 12,
131
- suffix: 'px',
132
- },
133
- },
134
- {
135
- name: 'gridColumnGap',
136
- displayName: '列距',
137
- value: gridColumnGap,
138
- type: 'number',
139
- config: {
140
- span: 12,
141
- suffix: 'px',
142
- },
143
- },
144
- ],
145
- type: 'group',
146
- },
147
- {
148
- type: 'grid',
149
- name: 'alignment',
150
- displayName: '位置',
151
- value: alignment,
152
- config: {
153
- options: [
154
- 'left top',
155
- 'center top',
156
- 'right top',
157
- 'center left',
158
- '',
159
- 'center right',
160
- 'left bottom',
161
- 'center bottom',
162
- 'right bottom',
163
- ],
164
- },
165
- },
166
- {
167
- ...translateConfig(x, y),
168
- },
169
- ],
170
- },
171
- {
172
- rule: [['show', '$eq', true]],
173
- name: 'interactive',
174
- displayName: '点击交互',
175
- value: interactive,
176
- type: 'boolean',
177
- },
178
- {
179
- rule: [
180
- ['show', '$eq', true],
181
- ['interactive', '$eq', true],
182
- ],
183
- name: 'unselect',
184
- displayName: '未选中样式',
185
- value: [
186
- {
187
- name: 'opacity',
188
- displayName: '透明度',
189
- value: opacity,
190
- type: 'range',
191
- config: {
192
- min: 0,
193
- max: 100,
194
- step: 1,
195
- suffix: '%',
196
- },
197
- },
198
- ],
199
- },
200
- ].filter((item) => !!item),
201
- config: {
202
- defaultOpen: true,
203
- },
204
- });
205
-
206
- const defaultLegendOfRose = {
207
- show: true,
208
- font: defaultFont,
209
- iconSize: {
210
- width: 10,
211
- height: 10,
212
- },
213
- iconGap: 5,
214
- layout: {
215
- gridTemplateColumns: 3,
216
- gridGap: {
217
- gridRowGap: 0,
218
- gridColumnGap: 30,
219
- },
220
- alignment: 'center bottom',
221
- translate: { x: 0, y: 0 },
222
- },
223
- };
224
- export const legendOfRose = ({
225
- show = defaultLegendOfRose.show,
226
- font = defaultLegendOfRose.font,
227
- iconSize: {
228
- width = defaultLegendOfRose.iconSize.width,
229
- height = defaultLegendOfRose.iconSize.height,
230
- } = defaultLegendOfRose.iconSize,
231
- iconGap = defaultLegendOfRose.iconGap,
232
- layout: {
233
- gridTemplateColumns = defaultLegendOfRose.layout.gridTemplateColumns,
234
- gridGap: {
235
- gridRowGap = defaultLegendOfRose.layout.gridGap.gridRowGap,
236
- gridColumnGap = defaultLegendOfRose.layout.gridGap.gridColumnGap,
237
- } = defaultLegendOfRose.layout.gridGap,
238
- alignment = defaultLegendOfRose.layout.alignment,
239
- translate: {
240
- x = defaultLegendOfRose.layout.translate.x,
241
- y = defaultLegendOfRose.layout.translate.y,
242
- } = defaultLegendOfRose.layout.translate,
243
- } = defaultLegendOfRose.layout,
244
- } = defaultLegendOfRose) => ({
245
- name: 'legend',
246
- displayName: '图例',
247
- value: [
248
- showConfig(show),
249
- {
250
- rule: [['show', '$eq', true]],
251
- name: 'font',
252
- displayName: '文本样式',
253
- value: font,
254
- type: 'textStyle',
255
- markColorType: 'textColor',
256
- },
257
- {
258
- name: 'iconSize',
259
- displayName: '图标尺寸',
260
- value: [
261
- {
262
- name: 'width',
263
- displayName: '宽度',
264
- value: width,
265
- config: {
266
- span: 12,
267
- suffix: 'px',
268
- },
269
- },
270
- {
271
- name: 'height',
272
- displayName: '高度',
273
- value: height,
274
- config: {
275
- span: 12,
276
- suffix: 'px',
277
- },
278
- },
279
- ],
280
- type: 'group',
281
- },
282
- {
283
- name: 'iconGap',
284
- displayName: '间距',
285
- value: iconGap,
286
- config: {
287
- suffix: 'px',
288
- },
289
- },
290
- {
291
- rule: [['show', '$eq', true]],
292
- name: 'layout',
293
- displayName: '布局',
294
- value: [
295
- {
296
- name: 'gridTemplateColumns',
297
- displayName: '列数',
298
- value: gridTemplateColumns,
299
- type: 'number',
300
- },
301
- {
302
- name: 'gridGap',
303
- displayName: '间距',
304
- value: [
305
- {
306
- name: 'gridRowGap',
307
- displayName: '行距',
308
- value: gridRowGap,
309
- type: 'number',
310
- config: {
311
- span: 12,
312
- suffix: 'px',
313
- },
314
- },
315
- {
316
- name: 'gridColumnGap',
317
- displayName: '列距',
318
- value: gridColumnGap,
319
- type: 'number',
320
- config: {
321
- span: 12,
322
- suffix: 'px',
323
- },
324
- },
325
- ],
326
- type: 'group',
327
- },
328
- {
329
- type: 'grid',
330
- name: 'alignment',
331
- displayName: '位置',
332
- value: alignment,
333
- config: {
334
- options: [
335
- 'left top',
336
- 'center top',
337
- 'right top',
338
- 'center left',
339
- '',
340
- 'center right',
341
- 'left bottom',
342
- 'center bottom',
343
- 'right bottom',
344
- ],
345
- },
346
- },
347
- {
348
- ...translateConfig(x, y),
349
- },
350
- ],
351
- },
352
- ],
353
- config: {
354
- defaultOpen: true,
355
- },
356
- });
357
-
358
- const defaultLegendOfPie = {
359
- show: true,
360
- order: '',
361
- iconSize: {
362
- width: 10,
363
- height: 10,
364
- },
365
- iconGap: 5,
366
- name: { show: true, font: defaultFont },
367
- percent: {
368
- show: true,
369
- precision: 0,
370
- sameColor: false,
371
- gap: 0,
372
- font: defaultFont,
373
- },
374
- value: {
375
- show: true,
376
- sameColor: false,
377
- gap: 0,
378
- font: defaultFont,
379
- suffix: {
380
- show: true,
381
- text: '',
382
- fontSize: 12,
383
- translate: { x: 0, y: 0 },
384
- },
385
- },
386
- layout: {
387
- gridTemplateColumns: 1,
388
- gridGap: { gridRowGap: 10, gridColumnGap: 10 },
389
- alignment: 'center right',
390
- translate: { x: 0, y: 0 },
391
- },
392
- };
393
- export const legendOfPie = ({
394
- show = defaultLegendOfPie.show,
395
- order = defaultLegendOfPie.order,
396
- iconSize: {
397
- width = defaultLegendOfPie.iconSize.width,
398
- height = defaultLegendOfPie.iconSize.height,
399
- } = defaultLegendOfPie.iconSize,
400
- iconGap = defaultLegendOfPie.iconGap,
401
- name: {
402
- show: showName = defaultLegendOfPie.name.show,
403
- font: nameFont = defaultLegendOfPie.name.font,
404
- } = defaultLegendOfPie.name,
405
- percent: {
406
- show: showPercent = defaultLegendOfPie.percent.show,
407
- precision = defaultLegendOfPie.percent.precision,
408
- sameColor: percentSameColor = defaultLegendOfPie.percent.sameColor,
409
- gap: percentGap = defaultLegendOfPie.percent.gap,
410
- font: percentFont = defaultLegendOfPie.percent.font,
411
- } = defaultLegendOfPie.percent,
412
- value: {
413
- show: showValue = defaultLegendOfPie.value.show,
414
- sameColor: valueSameColor = defaultLegendOfPie.value.sameColor,
415
- gap: valueGap = defaultLegendOfPie.value.gap,
416
- font: valueFont = defaultLegendOfPie.value.font,
417
- suffix: {
418
- show: showSuffix = defaultLegendOfPie.value.suffix.show,
419
- text = defaultLegendOfPie.value.suffix.text,
420
- fontSize = defaultLegendOfPie.value.suffix.fontSize,
421
- translate: {
422
- x: suffixTranslateX = defaultLegendOfPie.value.suffix.translate.x,
423
- y: suffixTranslateY = defaultLegendOfPie.value.suffix.translate.y,
424
- } = defaultLegendOfPie.value.suffix.translate,
425
- } = defaultLegendOfPie.value.suffix,
426
- } = defaultLegendOfPie.value,
427
- layout: {
428
- gridTemplateColumns = defaultLegendOfPie.layout.gridTemplateColumns,
429
- gridGap: {
430
- gridRowGap = defaultLegendOfPie.layout.gridGap.gridRowGap,
431
- gridColumnGap = defaultLegendOfPie.layout.gridGap.gridColumnGap,
432
- } = defaultLegendOfPie.layout.gridGap,
433
- alignment = defaultLegendOfPie.layout.alignment,
434
- translate: {
435
- x = defaultLegendOfPie.layout.translate.x,
436
- y = defaultLegendOfPie.layout.translate.y,
437
- } = defaultLegendOfPie.layout.translate,
438
- } = defaultLegendOfPie.layout,
439
- } = defaultLegendOfPie) => ({
440
- name: 'legend',
441
- displayName: '图例',
442
- value: [
443
- showConfig(show),
444
- {
445
- ...showRule(),
446
- name: 'order',
447
- displayName: '顺序',
448
- value: order,
449
- type: 'select',
450
- config: {
451
- options: [
452
- { name: '数据返回顺序', value: '' },
453
- { name: '从大到小', value: 'desc' },
454
- { name: '从小到大', value: 'asc' },
455
- ],
456
- },
457
- },
458
- {
459
- ...showRule(),
460
- name: 'iconSize',
461
- displayName: '图标尺寸',
462
- value: [
463
- {
464
- name: 'width',
465
- displayName: '宽度',
466
- value: width,
467
- config: {
468
- span: 12,
469
- },
470
- },
471
- {
472
- name: 'height',
473
- displayName: '高度',
474
- value: height,
475
- config: {
476
- span: 12,
477
- },
478
- },
479
- ],
480
- type: 'group',
481
- },
482
- {
483
- ...showRule(),
484
- name: 'iconGap',
485
- displayName: '间距',
486
- value: iconGap,
487
- config: {
488
- suffix: 'px',
489
- },
490
- },
491
- {
492
- ...showRule(),
493
- name: 'name',
494
- displayName: '类目',
495
- value: [
496
- showConfig(showName),
497
- {
498
- rule: [['show', '$eq', true]],
499
- name: 'font',
500
- displayName: '文本样式',
501
- value: nameFont,
502
- type: 'textStyle',
503
- markColorType: 'textColor',
504
- },
505
- ],
506
- },
507
- {
508
- ...showRule(),
509
- name: 'percent',
510
- displayName: '占比值',
511
- value: [
512
- showConfig(showPercent),
513
- {
514
- ...showRule(),
515
- name: 'precision',
516
- displayName: '小数位数',
517
- value: precision,
518
- type: 'number',
519
- config: {
520
- min: 0,
521
- },
522
- },
523
- {
524
- ...showRule(),
525
- name: 'gap',
526
- displayName: '间距',
527
- value: percentGap,
528
- type: 'number',
529
- config: {
530
- suffix: 'px',
531
- },
532
- },
533
- {
534
- ...showRule(),
535
- name: 'sameColor',
536
- displayName: '颜色跟随',
537
- value: percentSameColor,
538
- type: 'boolean',
539
- },
540
- {
541
- ...showRule(),
542
- name: 'font',
543
- displayName: '文本样式',
544
- value: percentFont,
545
- type: 'textStyle',
546
- markColorType: 'textColor',
547
- },
548
- ],
549
- },
550
- {
551
- ...showRule(),
552
- name: 'value',
553
- displayName: '真实值',
554
- value: [
555
- showConfig(showValue),
556
- {
557
- ...showRule(),
558
- name: 'suffix',
559
- displayName: '后缀',
560
- value: [
561
- {
562
- name: 'show',
563
- displayName: '显示',
564
- value: showSuffix,
565
- type: 'boolean',
566
- },
567
- {
568
- ...showRule(),
569
- name: 'text',
570
- displayName: '内容',
571
- value: text,
572
- type: 'input',
573
- },
574
- {
575
- ...showRule(),
576
- name: 'fontSize',
577
- displayName: '字号',
578
- value: fontSize,
579
- type: 'number',
580
- config: {
581
- suffix: 'px',
582
- },
583
- },
584
- {
585
- ...showRule(),
586
- ...translateConfig(suffixTranslateX, suffixTranslateY),
587
- },
588
- ],
589
- config: {
590
- defaultOpen: true,
591
- },
592
- },
593
- {
594
- ...showRule(),
595
- name: 'gap',
596
- displayName: '间距',
597
- value: valueGap,
598
- type: 'number',
599
- config: {
600
- suffix: 'px',
601
- },
602
- },
603
- {
604
- ...showRule(),
605
- name: 'sameColor',
606
- displayName: '颜色跟随',
607
- value: valueSameColor,
608
- type: 'boolean',
609
- },
610
- {
611
- ...showRule(),
612
- name: 'font',
613
- displayName: '文本样式',
614
- value: valueFont,
615
- type: 'textStyle',
616
- markColorType: 'textColor',
617
- },
618
- ],
619
- },
620
- {
621
- ...showRule(),
622
- name: 'layout',
623
- displayName: '布局',
624
- value: [
625
- {
626
- name: 'gridTemplateColumns',
627
- displayName: '列数',
628
- value: gridTemplateColumns,
629
- type: 'number',
630
- },
631
- {
632
- name: 'gridGap',
633
- displayName: '间距',
634
- value: [
635
- {
636
- name: 'gridRowGap',
637
- displayName: '行距',
638
- value: gridRowGap,
639
- type: 'number',
640
- config: {
641
- span: 12,
642
- suffix: 'px',
643
- },
644
- },
645
- {
646
- name: 'gridColumnGap',
647
- displayName: '列距',
648
- value: gridColumnGap,
649
- type: 'number',
650
- config: {
651
- span: 12,
652
- suffix: 'px',
653
- },
654
- },
655
- ],
656
- type: 'group',
657
- },
658
- {
659
- type: 'grid',
660
- name: 'alignment',
661
- displayName: '位置',
662
- value: alignment,
663
- config: {
664
- options: [
665
- 'left top',
666
- 'center top',
667
- 'right top',
668
- 'center left',
669
- '',
670
- 'center right',
671
- 'left bottom',
672
- 'center bottom',
673
- 'right bottom',
674
- ],
675
- },
676
- },
677
- translateConfig(x, y),
678
- ],
679
- },
680
- ],
681
- config: {
682
- defaultOpen: true,
683
- },
684
- });
685
-
686
- const defaultLegendOfDoublePie = {
687
- show: true,
688
- key: 'legend',
689
- displayName: '图例',
690
- iconSize: {
691
- width: 10,
692
- height: 10,
693
- },
694
- iconGap: 5,
695
- name: { show: true, font: defaultFont },
696
- percent: {
697
- show: true,
698
- precision: 0,
699
- sameColor: false,
700
- gap: 0,
701
- font: defaultFont,
702
- },
703
- value: {
704
- show: true,
705
- sameColor: false,
706
- gap: 0,
707
- font: defaultFont,
708
- suffix: {
709
- show: true,
710
- text: '',
711
- fontSize: 12,
712
- translate: { x: 0, y: 0 },
713
- },
714
- },
715
- layout: {
716
- gridTemplateColumns: 1,
717
- gridGap: { gridRowGap: 10, gridColumnGap: 10 },
718
- alignment: 'center right',
719
- translate: { x: 0, y: 0 },
720
- },
721
- };
722
- export const legendOfDoublePie = ({
723
- show = defaultLegendOfDoublePie.show,
724
- key = defaultLegendOfDoublePie.key,
725
- displayName = defaultLegendOfDoublePie.displayName,
726
- iconSize: {
727
- width = defaultLegendOfDoublePie.iconSize.width,
728
- height = defaultLegendOfDoublePie.iconSize.height,
729
- } = defaultLegendOfDoublePie.iconSize,
730
- iconGap = defaultLegendOfDoublePie.iconGap,
731
- name: {
732
- show: showName = defaultLegendOfDoublePie.name.show,
733
- font: nameFont = defaultLegendOfDoublePie.name.font,
734
- } = defaultLegendOfDoublePie.name,
735
- percent: {
736
- show: showPercent = defaultLegendOfDoublePie.percent.show,
737
- precision = defaultLegendOfDoublePie.percent.precision,
738
- sameColor: percentSameColor = defaultLegendOfDoublePie.percent.sameColor,
739
- gap: percentGap = defaultLegendOfDoublePie.percent.gap,
740
- font: percentFont = defaultLegendOfDoublePie.percent.font,
741
- } = defaultLegendOfDoublePie.percent,
742
- value: {
743
- show: showValue = defaultLegendOfDoublePie.value.show,
744
- sameColor: valueSameColor = defaultLegendOfDoublePie.value.sameColor,
745
- gap: valueGap = defaultLegendOfDoublePie.value.gap,
746
- font: valueFont = defaultLegendOfDoublePie.value.font,
747
- suffix: {
748
- show: showSuffix = defaultLegendOfDoublePie.value.suffix.show,
749
- text = defaultLegendOfDoublePie.value.suffix.text,
750
- fontSize = defaultLegendOfDoublePie.value.suffix.fontSize,
751
- translate: {
752
- x: suffixTranslateX = defaultLegendOfDoublePie.value.suffix.translate.x,
753
- y: suffixTranslateY = defaultLegendOfDoublePie.value.suffix.translate.y,
754
- } = defaultLegendOfDoublePie.value.suffix.translate,
755
- } = defaultLegendOfDoublePie.value.suffix,
756
- } = defaultLegendOfDoublePie.value,
757
- layout: {
758
- gridTemplateColumns = defaultLegendOfDoublePie.layout.gridTemplateColumns,
759
- gridGap: {
760
- gridRowGap = defaultLegendOfDoublePie.layout.gridGap.gridRowGap,
761
- gridColumnGap = defaultLegendOfDoublePie.layout.gridGap.gridColumnGap,
762
- } = defaultLegendOfDoublePie.layout.gridGap,
763
- alignment = defaultLegendOfDoublePie.layout.alignment,
764
- translate: {
765
- x = defaultLegendOfDoublePie.layout.translate.x,
766
- y = defaultLegendOfDoublePie.layout.translate.y,
767
- } = defaultLegendOfDoublePie.layout.translate,
768
- extraInput = [],
769
- } = defaultLegendOfDoublePie.layout,
770
- } = defaultLegendOfDoublePie) => ({
771
- name: key,
772
- displayName: displayName,
773
- value: [
774
- showConfig(show),
775
- {
776
- ...showRule(),
777
- name: 'iconSize',
778
- displayName: '图标尺寸',
779
- value: [
780
- {
781
- name: 'width',
782
- displayName: '宽度',
783
- value: width,
784
- config: {
785
- span: 12,
786
- },
787
- },
788
- {
789
- name: 'height',
790
- displayName: '高度',
791
- value: height,
792
- config: {
793
- span: 12,
794
- },
795
- },
796
- ],
797
- type: 'group',
798
- },
799
- {
800
- ...showRule(),
801
- name: 'iconGap',
802
- displayName: '间距',
803
- value: iconGap,
804
- config: {
805
- suffix: 'px',
806
- },
807
- },
808
- {
809
- rule: [['show', '$eq', true]],
810
- name: 'name',
811
- displayName: '类目',
812
- value: [
813
- showConfig(showName),
814
- {
815
- rule: [['show', '$eq', true]],
816
- name: 'font',
817
- displayName: '文本样式',
818
- value: nameFont,
819
- type: 'textStyle',
820
- markColorType: 'textColor',
821
- },
822
- ],
823
- },
824
- {
825
- rule: [['show', '$eq', true]],
826
- name: 'percent',
827
- displayName: '占比值',
828
- value: [
829
- showConfig(showPercent),
830
- {
831
- rule: [['show', '$eq', true]],
832
- name: 'precision',
833
- displayName: '小数位数',
834
- value: precision,
835
- type: 'number',
836
- config: {
837
- min: 0,
838
- },
839
- },
840
- {
841
- rule: [['show', '$eq', true]],
842
- name: 'gap',
843
- displayName: '间距',
844
- value: percentGap,
845
- type: 'number',
846
- config: {
847
- suffix: 'px',
848
- },
849
- },
850
- {
851
- rule: [['show', '$eq', true]],
852
- name: 'sameColor',
853
- displayName: '颜色跟随',
854
- value: percentSameColor,
855
- type: 'boolean',
856
- },
857
- {
858
- rule: [['show', '$eq', true]],
859
- name: 'font',
860
- displayName: '文本样式',
861
- value: percentFont,
862
- type: 'textStyle',
863
- markColorType: 'textColor',
864
- },
865
- ],
866
- },
867
- {
868
- rule: [['show', '$eq', true]],
869
- name: 'value',
870
- displayName: '真实值',
871
- value: [
872
- showConfig(showValue),
873
- {
874
- rule: [['show', '$eq', true]],
875
- name: 'suffix',
876
- displayName: '后缀',
877
- value: [
878
- {
879
- name: 'show',
880
- displayName: '显示',
881
- value: showSuffix,
882
- type: 'boolean',
883
- },
884
- {
885
- rule: [['show', '$eq', true]],
886
- name: 'text',
887
- displayName: '内容',
888
- value: text,
889
- type: 'input',
890
- },
891
- {
892
- rule: [['show', '$eq', true]],
893
- name: 'fontSize',
894
- displayName: '字号',
895
- value: fontSize,
896
- type: 'number',
897
- config: {
898
- suffix: 'px',
899
- },
900
- },
901
- {
902
- rule: [['show', '$eq', true]],
903
- ...translateConfig(suffixTranslateX, suffixTranslateY),
904
- },
905
- ],
906
- config: {
907
- defaultOpen: true,
908
- },
909
- },
910
- {
911
- rule: [['show', '$eq', true]],
912
- name: 'gap',
913
- displayName: '间距',
914
- value: valueGap,
915
- type: 'number',
916
- config: {
917
- suffix: 'px',
918
- },
919
- },
920
- {
921
- rule: [['show', '$eq', true]],
922
- name: 'sameColor',
923
- displayName: '颜色跟随',
924
- value: valueSameColor,
925
- type: 'boolean',
926
- },
927
- {
928
- rule: [['show', '$eq', true]],
929
- name: 'font',
930
- displayName: '文本样式',
931
- value: valueFont,
932
- type: 'textStyle',
933
- markColorType: 'textColor',
934
- },
935
- ],
936
- },
937
- {
938
- rule: [['show', '$eq', true]],
939
- name: 'layout',
940
- displayName: '布局',
941
- value: [
942
- {
943
- name: 'gridTemplateColumns',
944
- displayName: '列数',
945
- value: gridTemplateColumns,
946
- type: 'number',
947
- },
948
- {
949
- name: 'gridGap',
950
- displayName: '间距',
951
- value: [
952
- {
953
- name: 'gridRowGap',
954
- displayName: '行距',
955
- value: gridRowGap,
956
- type: 'number',
957
- config: {
958
- span: 12,
959
- suffix: 'px',
960
- },
961
- },
962
- {
963
- name: 'gridColumnGap',
964
- displayName: '列距',
965
- value: gridColumnGap,
966
- type: 'number',
967
- config: {
968
- span: 12,
969
- suffix: 'px',
970
- },
971
- },
972
- ],
973
- type: 'group',
974
- },
975
- ...extraInput,
976
- ].filter((item) => !!item),
977
- },
978
- ],
979
- config: {
980
- defaultOpen: true,
981
- },
982
- });
1
+ const {
2
+ translate: translateConfig,
3
+ font,
4
+ show: showConfig,
5
+ showRule,
6
+ } = require('.');
7
+
8
+ const defaultFont = font({
9
+ fontFamily: 'Mircosoft Yahei',
10
+ fontSize: 12,
11
+ color: 'rgba(230, 247, 255, 1)',
12
+ bold: false,
13
+ italic: false,
14
+ letterSpacing: 0,
15
+ });
16
+
17
+ const defaultLegend = {
18
+ show: true,
19
+ font: defaultFont,
20
+ iconSize: {
21
+ width: 10,
22
+ height: 10,
23
+ },
24
+ iconGap: 5,
25
+ layout: {
26
+ gridTemplateColumns: 3,
27
+ gridGap: {
28
+ gridRowGap: 0,
29
+ gridColumnGap: 30,
30
+ },
31
+ alignment: 'center bottom',
32
+ translate: { x: 0, y: 0 },
33
+ },
34
+ interactive: true,
35
+ unselect: {
36
+ opacity: 30,
37
+ },
38
+ };
39
+ export default ({
40
+ show = defaultLegend.show,
41
+ font = defaultLegend.font,
42
+ iconSize: {
43
+ width = defaultLegend.iconSize.width,
44
+ height = defaultLegend.iconSize.height,
45
+ } = defaultLegend.iconSize,
46
+ iconGap = defaultLegend.iconGap,
47
+ layout: {
48
+ gridTemplateColumns = defaultLegend.layout.gridTemplateColumns,
49
+ gridGap: {
50
+ gridRowGap = defaultLegend.layout.gridGap.gridRowGap,
51
+ gridColumnGap = defaultLegend.layout.gridGap.gridColumnGap,
52
+ } = defaultLegend.layout.gridGap,
53
+ alignment = defaultLegend.layout.alignment,
54
+ translate: {
55
+ x = defaultLegend.layout.translate.x,
56
+ y = defaultLegend.layout.translate.y,
57
+ } = defaultLegend.layout.translate,
58
+ } = defaultLegend.layout,
59
+ interactive = defaultLegend.interactive,
60
+ unselect: {
61
+ opacity = defaultLegend.unselect.opacity,
62
+ } = defaultLegend.unselect,
63
+ } = defaultLegend) => ({
64
+ name: 'legend',
65
+ displayName: '图例',
66
+ value: [
67
+ showConfig(show),
68
+ {
69
+ rule: [['show', '$eq', true]],
70
+ name: 'font',
71
+ displayName: '文本样式',
72
+ value: font,
73
+ type: 'textStyle',
74
+ markColorType: 'textColor',
75
+ },
76
+ {
77
+ name: 'iconSize',
78
+ displayName: '图标尺寸',
79
+ value: [
80
+ {
81
+ name: 'width',
82
+ displayName: '宽度',
83
+ value: width,
84
+ config: {
85
+ span: 12,
86
+ suffix: 'px',
87
+ },
88
+ },
89
+ {
90
+ name: 'height',
91
+ displayName: '高度',
92
+ value: height,
93
+ config: {
94
+ span: 12,
95
+ suffix: 'px',
96
+ },
97
+ },
98
+ ],
99
+ type: 'group',
100
+ },
101
+ {
102
+ name: 'iconGap',
103
+ displayName: '间距',
104
+ value: iconGap,
105
+ config: {
106
+ suffix: 'px',
107
+ },
108
+ },
109
+ {
110
+ rule: [['show', '$eq', true]],
111
+ name: 'layout',
112
+ displayName: '布局',
113
+ value: [
114
+ {
115
+ name: 'gridTemplateColumns',
116
+ displayName: '列数',
117
+ value: gridTemplateColumns,
118
+ type: 'number',
119
+ },
120
+ {
121
+ name: 'gridGap',
122
+ displayName: '间距',
123
+ value: [
124
+ {
125
+ name: 'gridRowGap',
126
+ displayName: '行距',
127
+ value: gridRowGap,
128
+ type: 'number',
129
+ config: {
130
+ span: 12,
131
+ suffix: 'px',
132
+ },
133
+ },
134
+ {
135
+ name: 'gridColumnGap',
136
+ displayName: '列距',
137
+ value: gridColumnGap,
138
+ type: 'number',
139
+ config: {
140
+ span: 12,
141
+ suffix: 'px',
142
+ },
143
+ },
144
+ ],
145
+ type: 'group',
146
+ },
147
+ {
148
+ type: 'grid',
149
+ name: 'alignment',
150
+ displayName: '位置',
151
+ value: alignment,
152
+ config: {
153
+ options: [
154
+ 'left top',
155
+ 'center top',
156
+ 'right top',
157
+ 'center left',
158
+ '',
159
+ 'center right',
160
+ 'left bottom',
161
+ 'center bottom',
162
+ 'right bottom',
163
+ ],
164
+ },
165
+ },
166
+ {
167
+ ...translateConfig(x, y),
168
+ },
169
+ ],
170
+ },
171
+ {
172
+ rule: [['show', '$eq', true]],
173
+ name: 'interactive',
174
+ displayName: '点击交互',
175
+ value: interactive,
176
+ type: 'boolean',
177
+ },
178
+ {
179
+ rule: [
180
+ ['show', '$eq', true],
181
+ ['interactive', '$eq', true],
182
+ ],
183
+ name: 'unselect',
184
+ displayName: '未选中样式',
185
+ value: [
186
+ {
187
+ name: 'opacity',
188
+ displayName: '透明度',
189
+ value: opacity,
190
+ type: 'range',
191
+ config: {
192
+ min: 0,
193
+ max: 100,
194
+ step: 1,
195
+ suffix: '%',
196
+ },
197
+ },
198
+ ],
199
+ },
200
+ ].filter((item) => !!item),
201
+ config: {
202
+ defaultOpen: true,
203
+ },
204
+ });
205
+
206
+ const defaultLegendOfRose = {
207
+ show: true,
208
+ font: defaultFont,
209
+ iconSize: {
210
+ width: 10,
211
+ height: 10,
212
+ },
213
+ iconGap: 5,
214
+ layout: {
215
+ gridTemplateColumns: 3,
216
+ gridGap: {
217
+ gridRowGap: 0,
218
+ gridColumnGap: 30,
219
+ },
220
+ alignment: 'center bottom',
221
+ translate: { x: 0, y: 0 },
222
+ },
223
+ };
224
+ export const legendOfRose = ({
225
+ show = defaultLegendOfRose.show,
226
+ font = defaultLegendOfRose.font,
227
+ iconSize: {
228
+ width = defaultLegendOfRose.iconSize.width,
229
+ height = defaultLegendOfRose.iconSize.height,
230
+ } = defaultLegendOfRose.iconSize,
231
+ iconGap = defaultLegendOfRose.iconGap,
232
+ layout: {
233
+ gridTemplateColumns = defaultLegendOfRose.layout.gridTemplateColumns,
234
+ gridGap: {
235
+ gridRowGap = defaultLegendOfRose.layout.gridGap.gridRowGap,
236
+ gridColumnGap = defaultLegendOfRose.layout.gridGap.gridColumnGap,
237
+ } = defaultLegendOfRose.layout.gridGap,
238
+ alignment = defaultLegendOfRose.layout.alignment,
239
+ translate: {
240
+ x = defaultLegendOfRose.layout.translate.x,
241
+ y = defaultLegendOfRose.layout.translate.y,
242
+ } = defaultLegendOfRose.layout.translate,
243
+ } = defaultLegendOfRose.layout,
244
+ } = defaultLegendOfRose) => ({
245
+ name: 'legend',
246
+ displayName: '图例',
247
+ value: [
248
+ showConfig(show),
249
+ {
250
+ rule: [['show', '$eq', true]],
251
+ name: 'font',
252
+ displayName: '文本样式',
253
+ value: font,
254
+ type: 'textStyle',
255
+ markColorType: 'textColor',
256
+ },
257
+ {
258
+ name: 'iconSize',
259
+ displayName: '图标尺寸',
260
+ value: [
261
+ {
262
+ name: 'width',
263
+ displayName: '宽度',
264
+ value: width,
265
+ config: {
266
+ span: 12,
267
+ suffix: 'px',
268
+ },
269
+ },
270
+ {
271
+ name: 'height',
272
+ displayName: '高度',
273
+ value: height,
274
+ config: {
275
+ span: 12,
276
+ suffix: 'px',
277
+ },
278
+ },
279
+ ],
280
+ type: 'group',
281
+ },
282
+ {
283
+ name: 'iconGap',
284
+ displayName: '间距',
285
+ value: iconGap,
286
+ config: {
287
+ suffix: 'px',
288
+ },
289
+ },
290
+ {
291
+ rule: [['show', '$eq', true]],
292
+ name: 'layout',
293
+ displayName: '布局',
294
+ value: [
295
+ {
296
+ name: 'gridTemplateColumns',
297
+ displayName: '列数',
298
+ value: gridTemplateColumns,
299
+ type: 'number',
300
+ },
301
+ {
302
+ name: 'gridGap',
303
+ displayName: '间距',
304
+ value: [
305
+ {
306
+ name: 'gridRowGap',
307
+ displayName: '行距',
308
+ value: gridRowGap,
309
+ type: 'number',
310
+ config: {
311
+ span: 12,
312
+ suffix: 'px',
313
+ },
314
+ },
315
+ {
316
+ name: 'gridColumnGap',
317
+ displayName: '列距',
318
+ value: gridColumnGap,
319
+ type: 'number',
320
+ config: {
321
+ span: 12,
322
+ suffix: 'px',
323
+ },
324
+ },
325
+ ],
326
+ type: 'group',
327
+ },
328
+ {
329
+ type: 'grid',
330
+ name: 'alignment',
331
+ displayName: '位置',
332
+ value: alignment,
333
+ config: {
334
+ options: [
335
+ 'left top',
336
+ 'center top',
337
+ 'right top',
338
+ 'center left',
339
+ '',
340
+ 'center right',
341
+ 'left bottom',
342
+ 'center bottom',
343
+ 'right bottom',
344
+ ],
345
+ },
346
+ },
347
+ {
348
+ ...translateConfig(x, y),
349
+ },
350
+ ],
351
+ },
352
+ ],
353
+ config: {
354
+ defaultOpen: true,
355
+ },
356
+ });
357
+
358
+ const defaultLegendOfPie = {
359
+ show: true,
360
+ order: '',
361
+ iconSize: {
362
+ width: 10,
363
+ height: 10,
364
+ },
365
+ iconGap: 5,
366
+ name: { show: true, font: defaultFont },
367
+ percent: {
368
+ show: true,
369
+ precision: 0,
370
+ sameColor: false,
371
+ gap: 0,
372
+ font: defaultFont,
373
+ },
374
+ value: {
375
+ show: true,
376
+ sameColor: false,
377
+ gap: 0,
378
+ font: defaultFont,
379
+ suffix: {
380
+ show: true,
381
+ text: '',
382
+ fontSize: 12,
383
+ translate: { x: 0, y: 0 },
384
+ },
385
+ },
386
+ layout: {
387
+ gridTemplateColumns: 1,
388
+ gridGap: { gridRowGap: 10, gridColumnGap: 10 },
389
+ alignment: 'center right',
390
+ translate: { x: 0, y: 0 },
391
+ },
392
+ };
393
+ export const legendOfPie = ({
394
+ show = defaultLegendOfPie.show,
395
+ order = defaultLegendOfPie.order,
396
+ iconSize: {
397
+ width = defaultLegendOfPie.iconSize.width,
398
+ height = defaultLegendOfPie.iconSize.height,
399
+ } = defaultLegendOfPie.iconSize,
400
+ iconGap = defaultLegendOfPie.iconGap,
401
+ name: {
402
+ show: showName = defaultLegendOfPie.name.show,
403
+ font: nameFont = defaultLegendOfPie.name.font,
404
+ } = defaultLegendOfPie.name,
405
+ percent: {
406
+ show: showPercent = defaultLegendOfPie.percent.show,
407
+ precision = defaultLegendOfPie.percent.precision,
408
+ sameColor: percentSameColor = defaultLegendOfPie.percent.sameColor,
409
+ gap: percentGap = defaultLegendOfPie.percent.gap,
410
+ font: percentFont = defaultLegendOfPie.percent.font,
411
+ } = defaultLegendOfPie.percent,
412
+ value: {
413
+ show: showValue = defaultLegendOfPie.value.show,
414
+ sameColor: valueSameColor = defaultLegendOfPie.value.sameColor,
415
+ gap: valueGap = defaultLegendOfPie.value.gap,
416
+ font: valueFont = defaultLegendOfPie.value.font,
417
+ suffix: {
418
+ show: showSuffix = defaultLegendOfPie.value.suffix.show,
419
+ text = defaultLegendOfPie.value.suffix.text,
420
+ fontSize = defaultLegendOfPie.value.suffix.fontSize,
421
+ translate: {
422
+ x: suffixTranslateX = defaultLegendOfPie.value.suffix.translate.x,
423
+ y: suffixTranslateY = defaultLegendOfPie.value.suffix.translate.y,
424
+ } = defaultLegendOfPie.value.suffix.translate,
425
+ } = defaultLegendOfPie.value.suffix,
426
+ } = defaultLegendOfPie.value,
427
+ layout: {
428
+ gridTemplateColumns = defaultLegendOfPie.layout.gridTemplateColumns,
429
+ gridGap: {
430
+ gridRowGap = defaultLegendOfPie.layout.gridGap.gridRowGap,
431
+ gridColumnGap = defaultLegendOfPie.layout.gridGap.gridColumnGap,
432
+ } = defaultLegendOfPie.layout.gridGap,
433
+ alignment = defaultLegendOfPie.layout.alignment,
434
+ translate: {
435
+ x = defaultLegendOfPie.layout.translate.x,
436
+ y = defaultLegendOfPie.layout.translate.y,
437
+ } = defaultLegendOfPie.layout.translate,
438
+ } = defaultLegendOfPie.layout,
439
+ } = defaultLegendOfPie) => ({
440
+ name: 'legend',
441
+ displayName: '图例',
442
+ value: [
443
+ showConfig(show),
444
+ {
445
+ ...showRule(),
446
+ name: 'order',
447
+ displayName: '顺序',
448
+ value: order,
449
+ type: 'select',
450
+ config: {
451
+ options: [
452
+ { name: '数据返回顺序', value: '' },
453
+ { name: '从大到小', value: 'desc' },
454
+ { name: '从小到大', value: 'asc' },
455
+ ],
456
+ },
457
+ },
458
+ {
459
+ ...showRule(),
460
+ name: 'iconSize',
461
+ displayName: '图标尺寸',
462
+ value: [
463
+ {
464
+ name: 'width',
465
+ displayName: '宽度',
466
+ value: width,
467
+ config: {
468
+ span: 12,
469
+ },
470
+ },
471
+ {
472
+ name: 'height',
473
+ displayName: '高度',
474
+ value: height,
475
+ config: {
476
+ span: 12,
477
+ },
478
+ },
479
+ ],
480
+ type: 'group',
481
+ },
482
+ {
483
+ ...showRule(),
484
+ name: 'iconGap',
485
+ displayName: '间距',
486
+ value: iconGap,
487
+ config: {
488
+ suffix: 'px',
489
+ },
490
+ },
491
+ {
492
+ ...showRule(),
493
+ name: 'name',
494
+ displayName: '类目',
495
+ value: [
496
+ showConfig(showName),
497
+ {
498
+ rule: [['show', '$eq', true]],
499
+ name: 'font',
500
+ displayName: '文本样式',
501
+ value: nameFont,
502
+ type: 'textStyle',
503
+ markColorType: 'textColor',
504
+ },
505
+ ],
506
+ },
507
+ {
508
+ ...showRule(),
509
+ name: 'percent',
510
+ displayName: '占比值',
511
+ value: [
512
+ showConfig(showPercent),
513
+ {
514
+ ...showRule(),
515
+ name: 'precision',
516
+ displayName: '小数位数',
517
+ value: precision,
518
+ type: 'number',
519
+ config: {
520
+ min: 0,
521
+ },
522
+ },
523
+ {
524
+ ...showRule(),
525
+ name: 'gap',
526
+ displayName: '间距',
527
+ value: percentGap,
528
+ type: 'number',
529
+ config: {
530
+ suffix: 'px',
531
+ },
532
+ },
533
+ {
534
+ ...showRule(),
535
+ name: 'sameColor',
536
+ displayName: '颜色跟随',
537
+ value: percentSameColor,
538
+ type: 'boolean',
539
+ },
540
+ {
541
+ ...showRule(),
542
+ name: 'font',
543
+ displayName: '文本样式',
544
+ value: percentFont,
545
+ type: 'textStyle',
546
+ markColorType: 'textColor',
547
+ },
548
+ ],
549
+ },
550
+ {
551
+ ...showRule(),
552
+ name: 'value',
553
+ displayName: '真实值',
554
+ value: [
555
+ showConfig(showValue),
556
+ {
557
+ ...showRule(),
558
+ name: 'suffix',
559
+ displayName: '后缀',
560
+ value: [
561
+ {
562
+ name: 'show',
563
+ displayName: '显示',
564
+ value: showSuffix,
565
+ type: 'boolean',
566
+ },
567
+ {
568
+ ...showRule(),
569
+ name: 'text',
570
+ displayName: '内容',
571
+ value: text,
572
+ type: 'input',
573
+ },
574
+ {
575
+ ...showRule(),
576
+ name: 'fontSize',
577
+ displayName: '字号',
578
+ value: fontSize,
579
+ type: 'number',
580
+ config: {
581
+ suffix: 'px',
582
+ },
583
+ },
584
+ {
585
+ ...showRule(),
586
+ ...translateConfig(suffixTranslateX, suffixTranslateY),
587
+ },
588
+ ],
589
+ config: {
590
+ defaultOpen: true,
591
+ },
592
+ },
593
+ {
594
+ ...showRule(),
595
+ name: 'gap',
596
+ displayName: '间距',
597
+ value: valueGap,
598
+ type: 'number',
599
+ config: {
600
+ suffix: 'px',
601
+ },
602
+ },
603
+ {
604
+ ...showRule(),
605
+ name: 'sameColor',
606
+ displayName: '颜色跟随',
607
+ value: valueSameColor,
608
+ type: 'boolean',
609
+ },
610
+ {
611
+ ...showRule(),
612
+ name: 'font',
613
+ displayName: '文本样式',
614
+ value: valueFont,
615
+ type: 'textStyle',
616
+ markColorType: 'textColor',
617
+ },
618
+ ],
619
+ },
620
+ {
621
+ ...showRule(),
622
+ name: 'layout',
623
+ displayName: '布局',
624
+ value: [
625
+ {
626
+ name: 'gridTemplateColumns',
627
+ displayName: '列数',
628
+ value: gridTemplateColumns,
629
+ type: 'number',
630
+ },
631
+ {
632
+ name: 'gridGap',
633
+ displayName: '间距',
634
+ value: [
635
+ {
636
+ name: 'gridRowGap',
637
+ displayName: '行距',
638
+ value: gridRowGap,
639
+ type: 'number',
640
+ config: {
641
+ span: 12,
642
+ suffix: 'px',
643
+ },
644
+ },
645
+ {
646
+ name: 'gridColumnGap',
647
+ displayName: '列距',
648
+ value: gridColumnGap,
649
+ type: 'number',
650
+ config: {
651
+ span: 12,
652
+ suffix: 'px',
653
+ },
654
+ },
655
+ ],
656
+ type: 'group',
657
+ },
658
+ {
659
+ type: 'grid',
660
+ name: 'alignment',
661
+ displayName: '位置',
662
+ value: alignment,
663
+ config: {
664
+ options: [
665
+ 'left top',
666
+ 'center top',
667
+ 'right top',
668
+ 'center left',
669
+ '',
670
+ 'center right',
671
+ 'left bottom',
672
+ 'center bottom',
673
+ 'right bottom',
674
+ ],
675
+ },
676
+ },
677
+ translateConfig(x, y),
678
+ ],
679
+ },
680
+ ],
681
+ config: {
682
+ defaultOpen: true,
683
+ },
684
+ });
685
+
686
+ const defaultLegendOfDoublePie = {
687
+ show: true,
688
+ key: 'legend',
689
+ displayName: '图例',
690
+ iconSize: {
691
+ width: 10,
692
+ height: 10,
693
+ },
694
+ iconGap: 5,
695
+ name: { show: true, font: defaultFont },
696
+ percent: {
697
+ show: true,
698
+ precision: 0,
699
+ sameColor: false,
700
+ gap: 0,
701
+ font: defaultFont,
702
+ },
703
+ value: {
704
+ show: true,
705
+ sameColor: false,
706
+ gap: 0,
707
+ font: defaultFont,
708
+ suffix: {
709
+ show: true,
710
+ text: '',
711
+ fontSize: 12,
712
+ translate: { x: 0, y: 0 },
713
+ },
714
+ },
715
+ layout: {
716
+ gridTemplateColumns: 1,
717
+ gridGap: { gridRowGap: 10, gridColumnGap: 10 },
718
+ alignment: 'center right',
719
+ translate: { x: 0, y: 0 },
720
+ },
721
+ };
722
+ export const legendOfDoublePie = ({
723
+ show = defaultLegendOfDoublePie.show,
724
+ key = defaultLegendOfDoublePie.key,
725
+ displayName = defaultLegendOfDoublePie.displayName,
726
+ iconSize: {
727
+ width = defaultLegendOfDoublePie.iconSize.width,
728
+ height = defaultLegendOfDoublePie.iconSize.height,
729
+ } = defaultLegendOfDoublePie.iconSize,
730
+ iconGap = defaultLegendOfDoublePie.iconGap,
731
+ name: {
732
+ show: showName = defaultLegendOfDoublePie.name.show,
733
+ font: nameFont = defaultLegendOfDoublePie.name.font,
734
+ } = defaultLegendOfDoublePie.name,
735
+ percent: {
736
+ show: showPercent = defaultLegendOfDoublePie.percent.show,
737
+ precision = defaultLegendOfDoublePie.percent.precision,
738
+ sameColor: percentSameColor = defaultLegendOfDoublePie.percent.sameColor,
739
+ gap: percentGap = defaultLegendOfDoublePie.percent.gap,
740
+ font: percentFont = defaultLegendOfDoublePie.percent.font,
741
+ } = defaultLegendOfDoublePie.percent,
742
+ value: {
743
+ show: showValue = defaultLegendOfDoublePie.value.show,
744
+ sameColor: valueSameColor = defaultLegendOfDoublePie.value.sameColor,
745
+ gap: valueGap = defaultLegendOfDoublePie.value.gap,
746
+ font: valueFont = defaultLegendOfDoublePie.value.font,
747
+ suffix: {
748
+ show: showSuffix = defaultLegendOfDoublePie.value.suffix.show,
749
+ text = defaultLegendOfDoublePie.value.suffix.text,
750
+ fontSize = defaultLegendOfDoublePie.value.suffix.fontSize,
751
+ translate: {
752
+ x: suffixTranslateX = defaultLegendOfDoublePie.value.suffix.translate.x,
753
+ y: suffixTranslateY = defaultLegendOfDoublePie.value.suffix.translate.y,
754
+ } = defaultLegendOfDoublePie.value.suffix.translate,
755
+ } = defaultLegendOfDoublePie.value.suffix,
756
+ } = defaultLegendOfDoublePie.value,
757
+ layout: {
758
+ gridTemplateColumns = defaultLegendOfDoublePie.layout.gridTemplateColumns,
759
+ gridGap: {
760
+ gridRowGap = defaultLegendOfDoublePie.layout.gridGap.gridRowGap,
761
+ gridColumnGap = defaultLegendOfDoublePie.layout.gridGap.gridColumnGap,
762
+ } = defaultLegendOfDoublePie.layout.gridGap,
763
+ alignment = defaultLegendOfDoublePie.layout.alignment,
764
+ translate: {
765
+ x = defaultLegendOfDoublePie.layout.translate.x,
766
+ y = defaultLegendOfDoublePie.layout.translate.y,
767
+ } = defaultLegendOfDoublePie.layout.translate,
768
+ extraInput = [],
769
+ } = defaultLegendOfDoublePie.layout,
770
+ } = defaultLegendOfDoublePie) => ({
771
+ name: key,
772
+ displayName: displayName,
773
+ value: [
774
+ showConfig(show),
775
+ {
776
+ ...showRule(),
777
+ name: 'iconSize',
778
+ displayName: '图标尺寸',
779
+ value: [
780
+ {
781
+ name: 'width',
782
+ displayName: '宽度',
783
+ value: width,
784
+ config: {
785
+ span: 12,
786
+ },
787
+ },
788
+ {
789
+ name: 'height',
790
+ displayName: '高度',
791
+ value: height,
792
+ config: {
793
+ span: 12,
794
+ },
795
+ },
796
+ ],
797
+ type: 'group',
798
+ },
799
+ {
800
+ ...showRule(),
801
+ name: 'iconGap',
802
+ displayName: '间距',
803
+ value: iconGap,
804
+ config: {
805
+ suffix: 'px',
806
+ },
807
+ },
808
+ {
809
+ rule: [['show', '$eq', true]],
810
+ name: 'name',
811
+ displayName: '类目',
812
+ value: [
813
+ showConfig(showName),
814
+ {
815
+ rule: [['show', '$eq', true]],
816
+ name: 'font',
817
+ displayName: '文本样式',
818
+ value: nameFont,
819
+ type: 'textStyle',
820
+ markColorType: 'textColor',
821
+ },
822
+ ],
823
+ },
824
+ {
825
+ rule: [['show', '$eq', true]],
826
+ name: 'percent',
827
+ displayName: '占比值',
828
+ value: [
829
+ showConfig(showPercent),
830
+ {
831
+ rule: [['show', '$eq', true]],
832
+ name: 'precision',
833
+ displayName: '小数位数',
834
+ value: precision,
835
+ type: 'number',
836
+ config: {
837
+ min: 0,
838
+ },
839
+ },
840
+ {
841
+ rule: [['show', '$eq', true]],
842
+ name: 'gap',
843
+ displayName: '间距',
844
+ value: percentGap,
845
+ type: 'number',
846
+ config: {
847
+ suffix: 'px',
848
+ },
849
+ },
850
+ {
851
+ rule: [['show', '$eq', true]],
852
+ name: 'sameColor',
853
+ displayName: '颜色跟随',
854
+ value: percentSameColor,
855
+ type: 'boolean',
856
+ },
857
+ {
858
+ rule: [['show', '$eq', true]],
859
+ name: 'font',
860
+ displayName: '文本样式',
861
+ value: percentFont,
862
+ type: 'textStyle',
863
+ markColorType: 'textColor',
864
+ },
865
+ ],
866
+ },
867
+ {
868
+ rule: [['show', '$eq', true]],
869
+ name: 'value',
870
+ displayName: '真实值',
871
+ value: [
872
+ showConfig(showValue),
873
+ {
874
+ rule: [['show', '$eq', true]],
875
+ name: 'suffix',
876
+ displayName: '后缀',
877
+ value: [
878
+ {
879
+ name: 'show',
880
+ displayName: '显示',
881
+ value: showSuffix,
882
+ type: 'boolean',
883
+ },
884
+ {
885
+ rule: [['show', '$eq', true]],
886
+ name: 'text',
887
+ displayName: '内容',
888
+ value: text,
889
+ type: 'input',
890
+ },
891
+ {
892
+ rule: [['show', '$eq', true]],
893
+ name: 'fontSize',
894
+ displayName: '字号',
895
+ value: fontSize,
896
+ type: 'number',
897
+ config: {
898
+ suffix: 'px',
899
+ },
900
+ },
901
+ {
902
+ rule: [['show', '$eq', true]],
903
+ ...translateConfig(suffixTranslateX, suffixTranslateY),
904
+ },
905
+ ],
906
+ config: {
907
+ defaultOpen: true,
908
+ },
909
+ },
910
+ {
911
+ rule: [['show', '$eq', true]],
912
+ name: 'gap',
913
+ displayName: '间距',
914
+ value: valueGap,
915
+ type: 'number',
916
+ config: {
917
+ suffix: 'px',
918
+ },
919
+ },
920
+ {
921
+ rule: [['show', '$eq', true]],
922
+ name: 'sameColor',
923
+ displayName: '颜色跟随',
924
+ value: valueSameColor,
925
+ type: 'boolean',
926
+ },
927
+ {
928
+ rule: [['show', '$eq', true]],
929
+ name: 'font',
930
+ displayName: '文本样式',
931
+ value: valueFont,
932
+ type: 'textStyle',
933
+ markColorType: 'textColor',
934
+ },
935
+ ],
936
+ },
937
+ {
938
+ rule: [['show', '$eq', true]],
939
+ name: 'layout',
940
+ displayName: '布局',
941
+ value: [
942
+ {
943
+ name: 'gridTemplateColumns',
944
+ displayName: '列数',
945
+ value: gridTemplateColumns,
946
+ type: 'number',
947
+ },
948
+ {
949
+ name: 'gridGap',
950
+ displayName: '间距',
951
+ value: [
952
+ {
953
+ name: 'gridRowGap',
954
+ displayName: '行距',
955
+ value: gridRowGap,
956
+ type: 'number',
957
+ config: {
958
+ span: 12,
959
+ suffix: 'px',
960
+ },
961
+ },
962
+ {
963
+ name: 'gridColumnGap',
964
+ displayName: '列距',
965
+ value: gridColumnGap,
966
+ type: 'number',
967
+ config: {
968
+ span: 12,
969
+ suffix: 'px',
970
+ },
971
+ },
972
+ ],
973
+ type: 'group',
974
+ },
975
+ ...extraInput,
976
+ ].filter((item) => !!item),
977
+ },
978
+ ],
979
+ config: {
980
+ defaultOpen: true,
981
+ },
982
+ });