@easyv/config 1.0.43 → 1.0.47

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