@easyv/config 1.1.9 → 1.1.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/.babelrc +9 -9
  2. package/CHANGELOG.md +17 -17
  3. package/index.js +3 -3
  4. package/lib/animation.js +37 -51
  5. package/lib/axes.js +31 -47
  6. package/lib/axisLine.js +6 -9
  7. package/lib/baseLine.js +31 -40
  8. package/lib/brush.js +12 -15
  9. package/lib/dimension.js +8 -11
  10. package/lib/extent.js +4 -7
  11. package/lib/font.js +12 -15
  12. package/lib/gridLine.js +8 -11
  13. package/lib/imageGroup.js +48 -0
  14. package/lib/index.js +95 -117
  15. package/lib/interaction.js +4 -9
  16. package/lib/label.js +103 -124
  17. package/lib/legend.js +165 -184
  18. package/lib/mapping.js +4 -7
  19. package/lib/margin.js +8 -11
  20. package/lib/multiColor.js +10 -13
  21. package/lib/mutiColor.js +51 -51
  22. package/lib/pie.js +163 -221
  23. package/lib/sc.js +4 -7
  24. package/lib/series.js +174 -163
  25. package/lib/shadow.js +8 -11
  26. package/lib/show.js +0 -4
  27. package/lib/textOverflow.js +4 -7
  28. package/lib/tickLine.js +8 -11
  29. package/lib/tooltip.js +68 -65
  30. package/lib/translate.js +0 -2
  31. package/lib/unit.js +21 -30
  32. package/package.json +30 -30
  33. package/src/animation.js +256 -256
  34. package/src/axes.js +162 -162
  35. package/src/axisLine.js +39 -39
  36. package/src/baseLine.js +216 -216
  37. package/src/brush.js +90 -90
  38. package/src/dimension.js +49 -49
  39. package/src/extent.js +29 -29
  40. package/src/font.js +23 -23
  41. package/src/gridLine.js +49 -49
  42. package/src/imageGroup.js +37 -0
  43. package/src/index.js +101 -99
  44. package/src/interaction.js +121 -121
  45. package/src/label.js +722 -722
  46. package/src/legend.js +982 -982
  47. package/src/mapping.js +26 -26
  48. package/src/margin.js +58 -58
  49. package/src/multiColor.js +30 -30
  50. package/src/pie.js +1035 -1035
  51. package/src/sc.js +11 -8
  52. package/src/series.js +867 -824
  53. package/src/shadow.js +17 -17
  54. package/src/show.js +11 -11
  55. package/src/textOverflow.js +34 -34
  56. package/src/tickLine.js +51 -51
  57. package/src/tooltip.js +433 -425
  58. package/src/translate.js +27 -27
  59. package/src/unit.js +67 -67
package/src/series.js CHANGED
@@ -1,824 +1,867 @@
1
- import { mapping, label, multiColor } from '.';
2
-
3
- const _mapping = { fieldName: '', displayName: '' };
4
-
5
- const defaultBandSeries = {
6
- mapping: _mapping,
7
- yOrZ: 'y',
8
- fillImage: 'components/static-image/superChart/pattern.png',
9
- fill: {
10
- type: 'linear',
11
- pure: '#fff',
12
- linear: {
13
- stops: [
14
- { offset: 0, color: '#fff' },
15
- { offset: 50, color: '#ff0' },
16
- { offset: 100, color: '#f0f' },
17
- ],
18
- angle: 30,
19
- opacity: 1,
20
- },
21
- },
22
- highlight: {
23
- show: false,
24
- extent: 'max',
25
- fill: {
26
- type: 'linear',
27
- pure: '#fff',
28
- linear: {
29
- stops: [
30
- { offset: 0, color: '#fff' },
31
- { offset: 50, color: '#ff0' },
32
- { offset: 100, color: '#f0f' },
33
- ],
34
- angle: 30,
35
- opacity: 1,
36
- },
37
- },
38
- },
39
- size: {
40
- width: 10,
41
- height: 10,
42
- },
43
- opacity: 0.65,
44
- };
45
-
46
- export const bandSeries = (
47
- name = Math.random() + '',
48
- {
49
- mapping: {
50
- fieldName = defaultBandSeries.mapping.fieldName,
51
- displayName = defaultBandSeries.mapping.displayName,
52
- } = defaultBandSeries.mapping,
53
- yOrZ = defaultBandSeries.yOrZ,
54
- stack,
55
- patternType,
56
- fillType,
57
- fillImage = defaultBandSeries.fillImage,
58
- patternWidth,
59
- patternHeight,
60
- patternImage,
61
- fill = defaultBandSeries.fill,
62
- size: {
63
- width: urlWidth = defaultBandSeries.size.width,
64
- height: urlHeight = defaultBandSeries.size.height,
65
- } = defaultBandSeries.size,
66
- opacity = defaultBandSeries.opacity,
67
- highlight: {
68
- show: showHighlight = defaultBandSeries.highlight.show,
69
- extent: highlightExtent = defaultBandSeries.highlight.extent,
70
- fill: highlightFill = defaultBandSeries.highlight.fill,
71
- } = defaultBandSeries.highlight,
72
- label: bandLabel,
73
- } = defaultBandSeries
74
- ) => {
75
- return {
76
- name,
77
- displayName: '系列',
78
- value: [
79
- mapping({ fieldName, displayName }),
80
- {
81
- name: 'yOrZ',
82
- displayName: '纵轴选择',
83
- value: yOrZ,
84
- type: 'select',
85
- config: {
86
- options: [
87
- { name: 'Y轴', value: 'y' },
88
- { name: 'Z轴', value: 'z' },
89
- ],
90
- },
91
- },
92
- stack !== undefined && {
93
- name: 'stack',
94
- displayName: '堆叠',
95
- value: stack,
96
- type: 'input',
97
- },
98
- fillType !== undefined && {
99
- name: 'fillType',
100
- displayName: '填充样式',
101
- value: fillType,
102
- type: 'radio',
103
- config: {
104
- options: [
105
- { name: '颜色', value: 'color' },
106
- { name: '纹理', value: 'pattern' },
107
- ],
108
- },
109
- },
110
- fillType !== undefined && {
111
- rule: [['fillType', '$eq', 'color']],
112
- name: 'fill',
113
- displayName: '颜色',
114
- type: 'multicolor',
115
- value: fill,
116
- markColorType: 'seriesGradient',
117
-
118
- },
119
- fillType !== undefined && {
120
- rule: [['fillType', '$eq', 'pattern']],
121
- name: 'url',
122
- displayName: '纹理图片',
123
- type: 'uploadImage',
124
- value: fillImage,
125
- },
126
- fillType !== undefined && {
127
- rule: [['fillType', '$eq', 'pattern']],
128
- name: 'size',
129
- displayName: '尺寸',
130
- value: [
131
- {
132
- name: 'width',
133
- displayName: '宽度',
134
- value: urlWidth,
135
- config: { span: 12, suffix: 'W' },
136
- },
137
- {
138
- name: 'height',
139
- displayName: '高度',
140
- value: urlHeight,
141
- config: { span: 12, suffix: 'H' },
142
- },
143
- ],
144
- type: 'group',
145
- },
146
- fillType !== undefined && {
147
- rule: [['fillType', '$eq', 'pattern']],
148
- type: 'range',
149
- name: 'opacity',
150
- displayName: '透明度',
151
- value: opacity,
152
- config: { max: 1, min: 0, step: 0.01 },
153
- },
154
- (patternType !== undefined || fillType === undefined) && {
155
- name: 'fill',
156
- displayName: '颜色',
157
- type: 'multicolor',
158
- value: fill,
159
- markColorType: 'seriesGradient',
160
- },
161
- patternType !== undefined && {
162
- name: 'patternType',
163
- displayName: '纹理类型',
164
- value: patternType,
165
- type: 'radio',
166
- config: {
167
- options: [
168
- { name: '默认', value: 'default' },
169
- { name: '自定义', value: 'custom' },
170
- ],
171
- },
172
- },
173
- patternImage !== undefined && {
174
- rule: [['patternType', '$eq', 'custom']],
175
- name: 'patternImage',
176
- displayName: '纹理',
177
- value: patternImage,
178
- type: 'uploadImage',
179
- },
180
- patternWidth !== undefined && {
181
- name: 'patternWidth',
182
- displayName: '纹理宽度',
183
- value: patternWidth,
184
- type: 'number',
185
- config: {
186
- suffix: 'px',
187
- },
188
- },
189
- patternHeight !== undefined && {
190
- name: 'patternHeight',
191
- displayName: '纹理高度',
192
- value: patternHeight,
193
- type: 'number',
194
- config: {
195
- suffix: 'px',
196
- },
197
- },
198
- {
199
- name: 'highlight',
200
- displayName: '极值高亮',
201
- value: [
202
- {
203
- name: 'show',
204
- displayName: '显示',
205
- type: 'boolean',
206
- value: showHighlight,
207
- },
208
- {
209
- rule: [['show', '$eq', true]],
210
- name: 'extent',
211
- displayName: '极值',
212
- value: highlightExtent,
213
- type: 'select',
214
- config: {
215
- options: [
216
- { name: '最大值', value: 'max' },
217
- { name: '最小值', value: 'min' },
218
- ],
219
- },
220
- },
221
- {
222
- rule: [['show', '$eq', true]],
223
- name: 'fill',
224
- displayName: '颜色',
225
- type: 'multicolor',
226
- value: highlightFill,
227
- },
228
- ],
229
- },
230
- label(bandLabel),
231
- ].filter((item) => !!item),
232
- type: 'object',
233
- };
234
- };
235
-
236
- const defaultLineSeries = {
237
- mapping: _mapping,
238
- yOrZ: 'y',
239
- line: {
240
- type: 'solid',
241
- color: '#FFFFFF',
242
- lineWidth: '1',
243
- curve: true,
244
- tension: 0,
245
- connectNulls: false,
246
- lighter: {
247
- show: false,
248
- fill: {
249
- type: 'linear',
250
- pure: '#fff',
251
- linear: {
252
- stops: [
253
- { offset: 0, color: '#fff' },
254
- { offset: 50, color: '#ff0' },
255
- { offset: 100, color: '#f0f' },
256
- ],
257
- angle: 30,
258
- opacity: 1,
259
- },
260
- },
261
- length: 200,
262
- width: 2,
263
- unitStep: 1,
264
- },
265
- },
266
- areaType: 'color',
267
- size: {
268
- width: 10,
269
- height: 10,
270
- },
271
- url: 'components/static-image/superChart/pattern.png',
272
- opacity: 0.65,
273
- areaColor: {
274
- type: 'linear',
275
- pure: '#fff',
276
- linear: {
277
- stops: [
278
- { offset: 0, color: '#fff' },
279
- { offset: 50, color: '#ff0' },
280
- { offset: 100, color: '#f0f' },
281
- ],
282
- angle: 30,
283
- opacity: 1,
284
- },
285
- },
286
- };
287
- const defaultIcon = {
288
- show: true,
289
- mode: 'single',
290
- inner: { color: '#83C4FF', radius: 3 },
291
- outer: { color: 'rgba(24,144,255,0.4)', radius: 6 },
292
- color: '#1283E3',
293
- radius: 4,
294
- image: 'components/static-image/superChart/fang.png',
295
- size: {
296
- width: 10,
297
- height: 10,
298
- },
299
- };
300
-
301
- const commonLine = (
302
- {
303
- type = defaultLineSeries.line.type,
304
- color = defaultLineSeries.line.color,
305
- lineWidth = defaultLineSeries.line.lineWidth,
306
- curve = defaultLineSeries.line.curve,
307
- tension = defaultLineSeries.line.tension,
308
- connectNulls = defaultLineSeries.line.connectNulls,
309
- } = defaultLineSeries.line
310
- ) => [
311
- {
312
- name: 'type',
313
- displayName: '类型',
314
- value: type,
315
- type: 'select',
316
- config: {
317
- options: [
318
- {
319
- name: '实线',
320
- value: 'solid',
321
- },
322
- {
323
- name: '虚线',
324
- value: 'dash',
325
- },
326
- ],
327
- },
328
- },
329
- {
330
- name: 'color',
331
- displayName: '颜色',
332
- value: color,
333
- type: 'color',
334
- markColorType: 'palette',
335
- },
336
- {
337
- name: 'lineWidth',
338
- displayName: '粗细',
339
- value: lineWidth,
340
- type: 'input',
341
- config: {
342
- suffix: 'px',
343
- },
344
- },
345
- {
346
- name: 'curve',
347
- displayName: '曲线',
348
- value: curve,
349
- type: 'boolean',
350
- },
351
- {
352
- rule: [['curve', '$eq', true]],
353
- name: 'tension',
354
- displayName: '曲线张力',
355
- value: tension,
356
- type: 'range',
357
- config: {
358
- min: 0,
359
- max: 1,
360
- step: 0.1,
361
- },
362
- },
363
- {
364
- name: 'connectNulls',
365
- displayName: 'null值连接',
366
- value: connectNulls,
367
- type: 'boolean',
368
- },
369
- ];
370
-
371
- const lighter = (
372
- {
373
- show = defaultLineSeries.line.lighter.show,
374
- fill = defaultLineSeries.line.lighter.fill,
375
- length = defaultLineSeries.line.lighter.length,
376
- width = defaultLineSeries.line.lighter.width,
377
- unitStep = defaultLineSeries.line.lighter.unitStep,
378
- } = defaultLineSeries.line.lighter
379
- ) => ({
380
- name: 'lighter',
381
- displayName: '光效',
382
- value: [
383
- {
384
- name: 'show',
385
- displayName: '显示',
386
- value: show,
387
- type: 'boolean',
388
- },
389
- {
390
- rule: [['show', '$eq', true]],
391
- name: 'fill',
392
- displayName: '颜色',
393
- type: 'multicolor',
394
- value: fill,
395
- markColorType: 'seriesGradient',
396
- },
397
- {
398
- rule: [['show', '$eq', true]],
399
- name: 'length',
400
- displayName: '长度',
401
- value: length,
402
- type: 'number',
403
- },
404
- {
405
- rule: [['show', '$eq', true]],
406
- name: 'width',
407
- displayName: '宽度',
408
- value: width,
409
- type: 'number',
410
- },
411
- {
412
- rule: [['show', '$eq', true]],
413
- name: 'unitStep',
414
- displayName: '速度',
415
- value: unitStep,
416
- type: 'number',
417
- },
418
- ],
419
- });
420
-
421
- const icon = ({
422
- show = defaultIcon.show,
423
- mode = defaultIcon.mode,
424
- inner: {
425
- color: innerColor = defaultIcon.inner.color,
426
- radius: innerRadius = defaultIcon.inner.innerRadius,
427
- } = defaultIcon.inner,
428
- outer: {
429
- color: outerColor = defaultIcon.outer.color,
430
- radius: outerRadius = defaultIcon.outer.radius,
431
- } = defaultIcon.outer,
432
- color = defaultIcon.color,
433
- radius = defaultIcon.radius,
434
- image = defaultIcon.image,
435
- size: {
436
- width: imageWidth = defaultIcon.size.width,
437
- height: imageHeight = defaultIcon.size.height,
438
- } = defaultIcon.size,
439
- } = defaultIcon) => ({
440
- name: 'icon',
441
- displayName: '数据标记',
442
- value: [
443
- {
444
- name: 'show',
445
- displayName: '显示',
446
- value: show,
447
- type: 'boolean',
448
- },
449
- {
450
- rule: [['show', '$eq', true]],
451
- name: 'mode',
452
- displayName: '模式',
453
- value: mode,
454
- type: 'select',
455
- config: {
456
- options: [
457
- {
458
- name: '单圆',
459
- value: 'single',
460
- },
461
- {
462
- name: '双圆',
463
- value: 'double',
464
- },
465
- {
466
- name: '自定义',
467
- value: 'custom',
468
- },
469
- ],
470
- },
471
- },
472
- {
473
- rule: [
474
- ['show', '$eq', true],
475
- ['mode', '$eq', 'custom'],
476
- ],
477
- name: 'image',
478
- displayName: '图片',
479
- value: image,
480
- type: 'uploadImage',
481
- },
482
- {
483
- rule: [
484
- ['show', '$eq', true],
485
- ['mode', '$eq', 'custom'],
486
- ],
487
- name: 'size',
488
- displayName: '尺寸',
489
- value: [
490
- {
491
- name: 'width',
492
- displayName: '宽度',
493
- value: imageWidth,
494
- config: {
495
- span: 12,
496
- suffix: 'W',
497
- },
498
- },
499
- {
500
- name: 'height',
501
- displayName: '高度',
502
- value: imageHeight,
503
- config: {
504
- span: 12,
505
- suffix: 'H',
506
- },
507
- },
508
- ],
509
- type: 'group',
510
- },
511
- {
512
- rule: [
513
- ['show', '$eq', true],
514
- ['mode', '$eq', 'double'],
515
- ],
516
- name: 'inner',
517
- displayName: '内圆',
518
- value: [
519
- {
520
- name: 'color',
521
- displayName: '颜色',
522
- value: innerColor,
523
- type: 'color',
524
- },
525
- {
526
- name: 'radius',
527
- displayName: '半径',
528
- value: innerRadius,
529
- type: 'number',
530
- config: {
531
- min: 0,
532
- suffix: 'px',
533
- },
534
- },
535
- ],
536
- },
537
- {
538
- rule: [
539
- ['show', '$eq', true],
540
- ['mode', '$eq', 'double'],
541
- ],
542
- name: 'outer',
543
- displayName: '外圆',
544
- value: [
545
- {
546
- name: 'color',
547
- displayName: '颜色',
548
- value: outerColor,
549
- type: 'color',
550
- },
551
- {
552
- name: 'radius',
553
- displayName: '半径',
554
- value: outerRadius,
555
- type: 'number',
556
- config: {
557
- min: 0,
558
- suffix: 'px',
559
- },
560
- },
561
- ],
562
- },
563
- {
564
- rule: [
565
- ['show', '$eq', true],
566
- ['mode', '$eq', 'single'],
567
- ],
568
- name: 'color',
569
- displayName: '颜色',
570
- value: color,
571
- type: 'color',
572
- markColorType: 'palette',
573
- },
574
- {
575
- rule: [
576
- ['show', '$eq', true],
577
- ['mode', '$eq', 'single'],
578
- ],
579
- name: 'radius',
580
- displayName: '半径',
581
- value: radius,
582
- type: 'number',
583
- config: {
584
- min: 0,
585
- suffix: 'px',
586
- },
587
- },
588
- ],
589
- });
590
- export const lineSeries = (
591
- name = Math.random() + '',
592
- {
593
- mapping: {
594
- fieldName = defaultLineSeries.mapping.fieldName,
595
- displayName = defaultLineSeries.mapping.displayName,
596
- } = defaultLineSeries.mapping,
597
- yOrZ = defaultLineSeries.yOrZ,
598
- line = defaultLineSeries.line,
599
- icon: lineIcon,
600
- label: lineLabel,
601
- } = defaultLineSeries
602
- ) => ({
603
- name,
604
- displayName: '系列',
605
- value: [
606
- mapping({ fieldName, displayName }),
607
- {
608
- name: 'yOrZ',
609
- displayName: '纵轴选择',
610
- value: yOrZ,
611
- type: 'select',
612
- config: {
613
- options: [
614
- { name: 'Y轴', value: 'y' },
615
- { name: 'Z轴', value: 'z' },
616
- ],
617
- },
618
- },
619
- {
620
- name: 'line',
621
- displayName: '折线',
622
- value: commonLine(line),
623
- },
624
- icon(lineIcon),
625
- label(lineLabel),
626
- ],
627
- type: 'object',
628
- });
629
-
630
- export const areaSeries = (
631
- name = Math.random() + '',
632
- {
633
- mapping: {
634
- fieldName = defaultLineSeries.mapping.fieldName,
635
- displayName = defaultLineSeries.mapping.displayName,
636
- } = defaultLineSeries.mapping,
637
- yOrZ = defaultLineSeries.yOrZ,
638
- line: {
639
- type = defaultLineSeries.line.type,
640
- color = defaultLineSeries.line.color,
641
- lineWidth = defaultLineSeries.line.lineWidth,
642
- curve = defaultLineSeries.line.curve,
643
- tension = defaultLineSeries.line.tension,
644
- connectNulls = defaultLineSeries.line.connectNulls,
645
- lighter: lineLighter,
646
- } = defaultLineSeries.line,
647
- label: areaLabel = defaultLineSeries.label,
648
- areaType = defaultLineSeries.areaType,
649
- areaColor = defaultLineSeries.areaColor,
650
- url = defaultLineSeries.url,
651
- size: {
652
- width: urlWidth = defaultLineSeries.size.width,
653
- height: urlHeight = defaultLineSeries.size.height,
654
- } = defaultLineSeries.size,
655
- opacity = defaultLineSeries.opacity,
656
- } = defaultLineSeries
657
- ) => ({
658
- name,
659
- displayName: '系列',
660
- value: [
661
- mapping({ fieldName, displayName }),
662
- {
663
- name: 'yOrZ',
664
- displayName: '纵轴选择',
665
- value: yOrZ,
666
- type: 'select',
667
- config: {
668
- options: [
669
- { name: 'Y轴', value: 'y' },
670
- { name: 'Z轴', value: 'z' },
671
- ],
672
- },
673
- },
674
- {
675
- name: 'areaType',
676
- displayName: '区域样式',
677
- value: areaType,
678
- type: 'radio',
679
- config: {
680
- options: [
681
- { name: '颜色', value: 'color' },
682
- { name: '纹理', value: 'pattern' },
683
- ],
684
- },
685
- },
686
- {
687
- rule: [['areaType', '$eq', 'color']],
688
- name: 'areaColor',
689
- displayName: '区域颜色',
690
- type: 'multicolor',
691
- value: areaColor,
692
- markColorType: 'seriesGradient',
693
- },
694
- {
695
- rule: [['areaType', '$eq', 'pattern']],
696
- name: 'url',
697
- displayName: '纹理图片',
698
- value: url,
699
- type: 'uploadImage',
700
- },
701
- {
702
- rule: [['areaType', '$eq', 'pattern']],
703
- name: 'size',
704
- displayName: '尺寸',
705
- value: [
706
- {
707
- name: 'width',
708
- displayName: '宽度',
709
- value: urlWidth,
710
- config: { span: 12, suffix: 'W' },
711
- },
712
- {
713
- name: 'height',
714
- displayName: '高度',
715
- value: urlHeight,
716
- config: { span: 12, suffix: 'H' },
717
- },
718
- ],
719
- type: 'group',
720
- },
721
- {
722
- rule: [['areaType', '$eq', 'pattern']],
723
- type: 'range',
724
- name: 'opacity',
725
- displayName: '透明度',
726
- value: opacity,
727
- config: { max: 1, min: 0, step: 0.01 },
728
- },
729
- {
730
- name: 'line',
731
- displayName: '折线',
732
- value: [
733
- ...commonLine({
734
- type,
735
- color,
736
- lineWidth,
737
- curve,
738
- tension,
739
- connectNulls,
740
- }),
741
- lineLighter && lighter(lineLighter),
742
- ].filter((item) => !!item),
743
- },
744
- label(areaLabel),
745
- ],
746
- type: 'object',
747
- });
748
-
749
- const defaultPieSeries = {
750
- mapping: _mapping,
751
- color: {
752
- type: 'linear',
753
- pure: '#fff',
754
- linear: {
755
- stops: [
756
- { offset: 0, color: '#fff' },
757
- { offset: 50, color: '#ff0' },
758
- { offset: 100, color: '#f0f' },
759
- ],
760
- angle: 30,
761
- opacity: 1,
762
- },
763
- },
764
- };
765
- export const pieSeries = (
766
- name = Math.random() + '',
767
- {
768
- mapping: {
769
- fieldName = defaultPieSeries.mapping.fieldName,
770
- displayName = defaultPieSeries.mapping.displayName,
771
- } = defaultPieSeries.mapping,
772
- color = defaultPieSeries.color,
773
- currentColor,
774
- } = defaultPieSeries
775
- ) => ({
776
- name: name,
777
- displayName: '系列',
778
- value: [
779
- mapping({ fieldName, displayName }),
780
- {
781
- name: 'color',
782
- displayName: currentColor != undefined ? '默认颜色' : '颜色',
783
- type: 'multicolor',
784
- value: multiColor(color),
785
- markColorType: 'seriesGradient',
786
- },
787
- currentColor != undefined && {
788
- name: 'currentColor',
789
- displayName: '当前颜色',
790
- type: 'multicolor',
791
- value: multiColor(currentColor),
792
- },
793
- ].filter((item) => !!item),
794
- type: 'object',
795
- });
796
-
797
- const defaultPurePieSeries = {
798
- mapping: _mapping,
799
- color: '#fff',
800
- };
801
- export const purePieSeries = (
802
- name = Math.random() + '',
803
- {
804
- mapping: {
805
- fieldName = defaultPurePieSeries.mapping.fieldName,
806
- displayName = defaultPurePieSeries.mapping.displayName,
807
- } = defaultPurePieSeries.mapping,
808
- color = defaultPurePieSeries.color,
809
- } = defaultPurePieSeries
810
- ) => ({
811
- name: name,
812
- displayName: '系列',
813
- value: [
814
- mapping({ fieldName, displayName }),
815
- {
816
- name: 'color',
817
- displayName: '填充',
818
- type: 'color',
819
- value: color,
820
- markColorType: 'palette',
821
- },
822
- ],
823
- type: 'object',
824
- });
1
+ import { mapping, label, multiColor, imageGroup, show, shadow, sc, showRule } from '.';
2
+
3
+ const _mapping = { fieldName: '', displayName: '' };
4
+
5
+ const defaultBandSeries = {
6
+ mapping: _mapping,
7
+ yOrZ: 'y',
8
+ fillImage: 'components/static-image/superChart/pattern.png',
9
+ fill: {
10
+ type: 'linear',
11
+ pure: '#fff',
12
+ linear: {
13
+ stops: [
14
+ { offset: 0, color: '#fff' },
15
+ { offset: 50, color: '#ff0' },
16
+ { offset: 100, color: '#f0f' },
17
+ ],
18
+ angle: 30,
19
+ opacity: 1,
20
+ },
21
+ },
22
+ highlight: {
23
+ show: false,
24
+ extent: 'max',
25
+ fill: {
26
+ type: 'linear',
27
+ pure: '#fff',
28
+ linear: {
29
+ stops: [
30
+ { offset: 0, color: '#fff' },
31
+ { offset: 50, color: '#ff0' },
32
+ { offset: 100, color: '#f0f' },
33
+ ],
34
+ angle: 30,
35
+ opacity: 1,
36
+ },
37
+ },
38
+ },
39
+ size: {
40
+ width: 10,
41
+ height: 10,
42
+ },
43
+ opacity: 0.65,
44
+ };
45
+
46
+ export const bandSeries = (
47
+ name = Math.random() + '',
48
+ {
49
+ mapping: {
50
+ fieldName = defaultBandSeries.mapping.fieldName,
51
+ displayName = defaultBandSeries.mapping.displayName,
52
+ } = defaultBandSeries.mapping,
53
+ yOrZ = defaultBandSeries.yOrZ,
54
+ stack,
55
+ patternType,
56
+ fillType,
57
+ fillImage = defaultBandSeries.fillImage,
58
+ patternWidth,
59
+ patternHeight,
60
+ patternImage,
61
+ fill = defaultBandSeries.fill,
62
+ size: {
63
+ width: urlWidth = defaultBandSeries.size.width,
64
+ height: urlHeight = defaultBandSeries.size.height,
65
+ } = defaultBandSeries.size,
66
+ opacity = defaultBandSeries.opacity,
67
+ headDecorate,
68
+ highlight: {
69
+ show: showHighlight = defaultBandSeries.highlight.show,
70
+ extent: highlightExtent = defaultBandSeries.highlight.extent,
71
+ fill: highlightFill = defaultBandSeries.highlight.fill,
72
+ } = defaultBandSeries.highlight,
73
+ label: bandLabel,
74
+ } = defaultBandSeries
75
+ ) => {
76
+ return {
77
+ name,
78
+ displayName: '系列',
79
+ value: [
80
+ mapping({ fieldName, displayName }),
81
+ {
82
+ name: 'yOrZ',
83
+ displayName: '纵轴选择',
84
+ value: yOrZ,
85
+ type: 'select',
86
+ config: {
87
+ options: [
88
+ { name: 'Y轴', value: 'y' },
89
+ { name: 'Z轴', value: 'z' },
90
+ ],
91
+ },
92
+ },
93
+ stack !== undefined && {
94
+ name: 'stack',
95
+ displayName: '堆叠',
96
+ value: stack,
97
+ type: 'input',
98
+ },
99
+ fillType !== undefined && {
100
+ name: 'fillType',
101
+ displayName: '填充样式',
102
+ value: fillType,
103
+ type: 'radio',
104
+ config: {
105
+ options: [
106
+ { name: '颜色', value: 'color' },
107
+ { name: '纹理', value: 'pattern' },
108
+ ],
109
+ },
110
+ },
111
+ fillType !== undefined && {
112
+ rule: [['fillType', '$eq', 'color']],
113
+ name: 'fill',
114
+ displayName: '颜色',
115
+ type: 'multicolor',
116
+ value: fill,
117
+ markColorType: 'seriesGradient',
118
+
119
+ },
120
+ fillType !== undefined && {
121
+ rule: [['fillType', '$eq', 'pattern']],
122
+ name: 'url',
123
+ displayName: '纹理图片',
124
+ type: 'uploadImage',
125
+ value: fillImage,
126
+ },
127
+ fillType !== undefined && {
128
+ rule: [['fillType', '$eq', 'pattern']],
129
+ name: 'size',
130
+ displayName: '尺寸',
131
+ value: [
132
+ {
133
+ name: 'width',
134
+ displayName: '宽度',
135
+ value: urlWidth,
136
+ config: { span: 12, suffix: 'W' },
137
+ },
138
+ {
139
+ name: 'height',
140
+ displayName: '高度',
141
+ value: urlHeight,
142
+ config: { span: 12, suffix: 'H' },
143
+ },
144
+ ],
145
+ type: 'group',
146
+ },
147
+ fillType !== undefined && {
148
+ rule: [['fillType', '$eq', 'pattern']],
149
+ type: 'range',
150
+ name: 'opacity',
151
+ displayName: '透明度',
152
+ value: opacity,
153
+ config: { max: 1, min: 0, step: 0.01 },
154
+ },
155
+ (patternType !== undefined || fillType === undefined) && {
156
+ name: 'fill',
157
+ displayName: '颜色',
158
+ type: 'multicolor',
159
+ value: fill,
160
+ markColorType: 'seriesGradient',
161
+ },
162
+ patternType !== undefined && {
163
+ name: 'patternType',
164
+ displayName: '纹理类型',
165
+ value: patternType,
166
+ type: 'radio',
167
+ config: {
168
+ options: [
169
+ { name: '默认', value: 'default' },
170
+ { name: '自定义', value: 'custom' },
171
+ ],
172
+ },
173
+ },
174
+ patternImage !== undefined && {
175
+ rule: [['patternType', '$eq', 'custom']],
176
+ name: 'patternImage',
177
+ displayName: '纹理',
178
+ value: patternImage,
179
+ type: 'uploadImage',
180
+ },
181
+ patternWidth !== undefined && {
182
+ name: 'patternWidth',
183
+ displayName: '纹理宽度',
184
+ value: patternWidth,
185
+ type: 'number',
186
+ config: {
187
+ suffix: 'px',
188
+ },
189
+ },
190
+ patternHeight !== undefined && {
191
+ name: 'patternHeight',
192
+ displayName: '纹理高度',
193
+ value: patternHeight,
194
+ type: 'number',
195
+ config: {
196
+ suffix: 'px',
197
+ },
198
+ },
199
+ {
200
+ name: 'highlight',
201
+ displayName: '极值高亮',
202
+ value: [
203
+ {
204
+ name: 'show',
205
+ displayName: '显示',
206
+ type: 'boolean',
207
+ value: showHighlight,
208
+ },
209
+ {
210
+ rule: [['show', '$eq', true]],
211
+ name: 'extent',
212
+ displayName: '极值',
213
+ value: highlightExtent,
214
+ type: 'select',
215
+ config: {
216
+ options: [
217
+ { name: '最大值', value: 'max' },
218
+ { name: '最小值', value: 'min' },
219
+ ],
220
+ },
221
+ },
222
+ {
223
+ rule: [['show', '$eq', true]],
224
+ name: 'fill',
225
+ displayName: '颜色',
226
+ type: 'multicolor',
227
+ value: highlightFill,
228
+ },
229
+ ],
230
+ },
231
+ headDecorate !== undefined && imageGroup("headDecorate","头部装饰",headDecorate),
232
+ label(bandLabel),
233
+ ].filter((item) => !!item),
234
+ type: 'object',
235
+ };
236
+ };
237
+
238
+ const defaultLineSeries = {
239
+ mapping: _mapping,
240
+ yOrZ: 'y',
241
+ line: {
242
+ type: 'solid',
243
+ color: '#FFFFFF',
244
+ lineWidth: '1',
245
+ curve: true,
246
+ tension: 0,
247
+ connectNulls: false,
248
+ lineShadow:{
249
+ show:false,
250
+ shadow:{
251
+ color:"#fff",
252
+ vShadow: 8,
253
+ hShadow: 8,
254
+ blur: 8
255
+ }
256
+ },
257
+ lighter: {
258
+ show: false,
259
+ fill: {
260
+ type: 'linear',
261
+ pure: '#fff',
262
+ linear: {
263
+ stops: [
264
+ { offset: 0, color: '#fff' },
265
+ { offset: 50, color: '#ff0' },
266
+ { offset: 100, color: '#f0f' },
267
+ ],
268
+ angle: 30,
269
+ opacity: 1,
270
+ },
271
+ },
272
+ length: 200,
273
+ width: 2,
274
+ unitStep: 1,
275
+ },
276
+ },
277
+ areaType: 'color',
278
+ size: {
279
+ width: 10,
280
+ height: 10,
281
+ },
282
+ url: 'components/static-image/superChart/pattern.png',
283
+ opacity: 0.65,
284
+ areaColor: {
285
+ type: 'linear',
286
+ pure: '#fff',
287
+ linear: {
288
+ stops: [
289
+ { offset: 0, color: '#fff' },
290
+ { offset: 50, color: '#ff0' },
291
+ { offset: 100, color: '#f0f' },
292
+ ],
293
+ angle: 30,
294
+ opacity: 1,
295
+ },
296
+ },
297
+ };
298
+ const defaultIcon = {
299
+ show: true,
300
+ mode: 'single',
301
+ inner: { color: '#83C4FF', radius: 3 },
302
+ outer: { color: 'rgba(24,144,255,0.4)', radius: 6 },
303
+ color: '#1283E3',
304
+ radius: 4,
305
+ image: 'components/static-image/superChart/fang.png',
306
+ size: {
307
+ width: 10,
308
+ height: 10,
309
+ },
310
+ };
311
+
312
+ const commonLine = (
313
+ {
314
+ type = defaultLineSeries.line.type,
315
+ color = defaultLineSeries.line.color,
316
+ lineWidth = defaultLineSeries.line.lineWidth,
317
+ curve = defaultLineSeries.line.curve,
318
+ tension = defaultLineSeries.line.tension,
319
+ connectNulls = defaultLineSeries.line.connectNulls,
320
+ } = defaultLineSeries.line
321
+ ) => [
322
+ {
323
+ name: 'type',
324
+ displayName: '类型',
325
+ value: type,
326
+ type: 'select',
327
+ config: {
328
+ options: [
329
+ {
330
+ name: '实线',
331
+ value: 'solid',
332
+ },
333
+ {
334
+ name: '虚线',
335
+ value: 'dash',
336
+ },
337
+ ],
338
+ },
339
+ },
340
+ {
341
+ name: 'color',
342
+ displayName: '颜色',
343
+ value: color,
344
+ type: 'color',
345
+ markColorType: 'palette',
346
+ },
347
+ {
348
+ name: 'lineWidth',
349
+ displayName: '粗细',
350
+ value: lineWidth,
351
+ type: 'input',
352
+ config: {
353
+ suffix: 'px',
354
+ },
355
+ },
356
+ {
357
+ name: 'curve',
358
+ displayName: '曲线',
359
+ value: curve,
360
+ type: 'boolean',
361
+ },
362
+ {
363
+ rule: [['curve', '$eq', true]],
364
+ name: 'tension',
365
+ displayName: '曲线张力',
366
+ value: tension,
367
+ type: 'range',
368
+ config: {
369
+ min: 0,
370
+ max: 1,
371
+ step: 0.1,
372
+ },
373
+ },
374
+ {
375
+ name: 'connectNulls',
376
+ displayName: 'null值连接',
377
+ value: connectNulls,
378
+ type: 'boolean',
379
+ },
380
+ ];
381
+
382
+ const lighter = (
383
+ {
384
+ show = defaultLineSeries.line.lighter.show,
385
+ fill = defaultLineSeries.line.lighter.fill,
386
+ length = defaultLineSeries.line.lighter.length,
387
+ width = defaultLineSeries.line.lighter.width,
388
+ unitStep = defaultLineSeries.line.lighter.unitStep,
389
+ } = defaultLineSeries.line.lighter
390
+ ) => ({
391
+ name: 'lighter',
392
+ displayName: '光效',
393
+ value: [
394
+ {
395
+ name: 'show',
396
+ displayName: '显示',
397
+ value: show,
398
+ type: 'boolean',
399
+ },
400
+ {
401
+ rule: [['show', '$eq', true]],
402
+ name: 'fill',
403
+ displayName: '颜色',
404
+ type: 'multicolor',
405
+ value: fill,
406
+ markColorType: 'seriesGradient',
407
+ },
408
+ {
409
+ rule: [['show', '$eq', true]],
410
+ name: 'length',
411
+ displayName: '长度',
412
+ value: length,
413
+ type: 'number',
414
+ },
415
+ {
416
+ rule: [['show', '$eq', true]],
417
+ name: 'width',
418
+ displayName: '宽度',
419
+ value: width,
420
+ type: 'number',
421
+ },
422
+ {
423
+ rule: [['show', '$eq', true]],
424
+ name: 'unitStep',
425
+ displayName: '速度',
426
+ value: unitStep,
427
+ type: 'number',
428
+ },
429
+ ],
430
+ });
431
+
432
+ const icon = ({
433
+ show = defaultIcon.show,
434
+ mode = defaultIcon.mode,
435
+ inner: {
436
+ color: innerColor = defaultIcon.inner.color,
437
+ radius: innerRadius = defaultIcon.inner.innerRadius,
438
+ } = defaultIcon.inner,
439
+ outer: {
440
+ color: outerColor = defaultIcon.outer.color,
441
+ radius: outerRadius = defaultIcon.outer.radius,
442
+ } = defaultIcon.outer,
443
+ color = defaultIcon.color,
444
+ radius = defaultIcon.radius,
445
+ image = defaultIcon.image,
446
+ size: {
447
+ width: imageWidth = defaultIcon.size.width,
448
+ height: imageHeight = defaultIcon.size.height,
449
+ } = defaultIcon.size,
450
+ } = defaultIcon) => ({
451
+ name: 'icon',
452
+ displayName: '数据标记',
453
+ value: [
454
+ {
455
+ name: 'show',
456
+ displayName: '显示',
457
+ value: show,
458
+ type: 'boolean',
459
+ },
460
+ {
461
+ rule: [['show', '$eq', true]],
462
+ name: 'mode',
463
+ displayName: '模式',
464
+ value: mode,
465
+ type: 'select',
466
+ config: {
467
+ options: [
468
+ {
469
+ name: '单圆',
470
+ value: 'single',
471
+ },
472
+ {
473
+ name: '双圆',
474
+ value: 'double',
475
+ },
476
+ {
477
+ name: '自定义',
478
+ value: 'custom',
479
+ },
480
+ ],
481
+ },
482
+ },
483
+ {
484
+ rule: [
485
+ ['show', '$eq', true],
486
+ ['mode', '$eq', 'custom'],
487
+ ],
488
+ name: 'image',
489
+ displayName: '图片',
490
+ value: image,
491
+ type: 'uploadImage',
492
+ },
493
+ {
494
+ rule: [
495
+ ['show', '$eq', true],
496
+ ['mode', '$eq', 'custom'],
497
+ ],
498
+ name: 'size',
499
+ displayName: '尺寸',
500
+ value: [
501
+ {
502
+ name: 'width',
503
+ displayName: '宽度',
504
+ value: imageWidth,
505
+ config: {
506
+ span: 12,
507
+ suffix: 'W',
508
+ },
509
+ },
510
+ {
511
+ name: 'height',
512
+ displayName: '高度',
513
+ value: imageHeight,
514
+ config: {
515
+ span: 12,
516
+ suffix: 'H',
517
+ },
518
+ },
519
+ ],
520
+ type: 'group',
521
+ },
522
+ {
523
+ rule: [
524
+ ['show', '$eq', true],
525
+ ['mode', '$eq', 'double'],
526
+ ],
527
+ name: 'inner',
528
+ displayName: '内圆',
529
+ value: [
530
+ {
531
+ name: 'color',
532
+ displayName: '颜色',
533
+ value: innerColor,
534
+ type: 'color',
535
+ },
536
+ {
537
+ name: 'radius',
538
+ displayName: '半径',
539
+ value: innerRadius,
540
+ type: 'number',
541
+ config: {
542
+ min: 0,
543
+ suffix: 'px',
544
+ },
545
+ },
546
+ ],
547
+ },
548
+ {
549
+ rule: [
550
+ ['show', '$eq', true],
551
+ ['mode', '$eq', 'double'],
552
+ ],
553
+ name: 'outer',
554
+ displayName: '外圆',
555
+ value: [
556
+ {
557
+ name: 'color',
558
+ displayName: '颜色',
559
+ value: outerColor,
560
+ type: 'color',
561
+ },
562
+ {
563
+ name: 'radius',
564
+ displayName: '半径',
565
+ value: outerRadius,
566
+ type: 'number',
567
+ config: {
568
+ min: 0,
569
+ suffix: 'px',
570
+ },
571
+ },
572
+ ],
573
+ },
574
+ {
575
+ rule: [
576
+ ['show', '$eq', true],
577
+ ['mode', '$eq', 'single'],
578
+ ],
579
+ name: 'color',
580
+ displayName: '颜色',
581
+ value: color,
582
+ type: 'color',
583
+ markColorType: 'palette',
584
+ },
585
+ {
586
+ rule: [
587
+ ['show', '$eq', true],
588
+ ['mode', '$eq', 'single'],
589
+ ],
590
+ name: 'radius',
591
+ displayName: '半径',
592
+ value: radius,
593
+ type: 'number',
594
+ config: {
595
+ min: 0,
596
+ suffix: 'px',
597
+ },
598
+ },
599
+ ],
600
+ });
601
+ export const lineSeries = (
602
+ name = Math.random() + '',
603
+ {
604
+ mapping: {
605
+ fieldName = defaultLineSeries.mapping.fieldName,
606
+ displayName = defaultLineSeries.mapping.displayName,
607
+ } = defaultLineSeries.mapping,
608
+ yOrZ = defaultLineSeries.yOrZ,
609
+ line:{
610
+ type = defaultLineSeries.line.type,
611
+ color = defaultLineSeries.line.color,
612
+ lineWidth = defaultLineSeries.line.lineWidth,
613
+ curve = defaultLineSeries.line.curve,
614
+ tension = defaultLineSeries.line.tension,
615
+ connectNulls = defaultLineSeries.line.connectNulls,
616
+ lineShadow :{
617
+ show:showShadow = defaultLineSeries.line.lineShadow.show,
618
+ shadow:shadow_ = defaultLineSeries.line.lineShadow.shadow
619
+ } = defaultLineSeries.line.lineShadow,
620
+ } = defaultLineSeries.line,
621
+ icon: lineIcon,
622
+ label: lineLabel,
623
+ } = defaultLineSeries
624
+ ) => ({
625
+ name,
626
+ displayName: '系列',
627
+ value: [
628
+ mapping({ fieldName, displayName }),
629
+ {
630
+ name: 'yOrZ',
631
+ displayName: '纵轴选择',
632
+ value: yOrZ,
633
+ type: 'select',
634
+ config: {
635
+ options: [
636
+ { name: 'Y轴', value: 'y' },
637
+ { name: 'Z轴', value: 'z' },
638
+ ],
639
+ },
640
+ },
641
+ {
642
+ name: 'line',
643
+ displayName: '折线',
644
+ value: [
645
+ ...commonLine({
646
+ type,
647
+ color,
648
+ lineWidth,
649
+ curve,
650
+ tension,
651
+ connectNulls,
652
+ }),
653
+ sc("lineShadow","折线阴影","",[
654
+ show(showShadow),
655
+ sc("shadow","阴影","shadow",shadow(shadow_),{},showRule())
656
+ ]),
657
+ ],
658
+ },
659
+ icon(lineIcon),
660
+ label(lineLabel),
661
+ ],
662
+ type: 'object',
663
+ });
664
+
665
+ export const areaSeries = (
666
+ name = Math.random() + '',
667
+ {
668
+ mapping: {
669
+ fieldName = defaultLineSeries.mapping.fieldName,
670
+ displayName = defaultLineSeries.mapping.displayName,
671
+ } = defaultLineSeries.mapping,
672
+ yOrZ = defaultLineSeries.yOrZ,
673
+ line: {
674
+ type = defaultLineSeries.line.type,
675
+ color = defaultLineSeries.line.color,
676
+ lineWidth = defaultLineSeries.line.lineWidth,
677
+ curve = defaultLineSeries.line.curve,
678
+ tension = defaultLineSeries.line.tension,
679
+ connectNulls = defaultLineSeries.line.connectNulls,
680
+ lineShadow :{
681
+ show:showShadow = defaultLineSeries.line.lineShadow.show,
682
+ shadow:shadow_ = defaultLineSeries.line.lineShadow.shadow
683
+ } = defaultLineSeries.line.lineShadow,
684
+ lighter: lineLighter,
685
+ } = defaultLineSeries.line,
686
+ label: areaLabel = defaultLineSeries.label,
687
+ areaType = defaultLineSeries.areaType,
688
+ areaColor = defaultLineSeries.areaColor,
689
+ url = defaultLineSeries.url,
690
+ size: {
691
+ width: urlWidth = defaultLineSeries.size.width,
692
+ height: urlHeight = defaultLineSeries.size.height,
693
+ } = defaultLineSeries.size,
694
+ opacity = defaultLineSeries.opacity,
695
+ } = defaultLineSeries
696
+ ) => ({
697
+ name,
698
+ displayName: '系列',
699
+ value: [
700
+ mapping({ fieldName, displayName }),
701
+ {
702
+ name: 'yOrZ',
703
+ displayName: '纵轴选择',
704
+ value: yOrZ,
705
+ type: 'select',
706
+ config: {
707
+ options: [
708
+ { name: 'Y轴', value: 'y' },
709
+ { name: 'Z轴', value: 'z' },
710
+ ],
711
+ },
712
+ },
713
+ {
714
+ name: 'areaType',
715
+ displayName: '区域样式',
716
+ value: areaType,
717
+ type: 'radio',
718
+ config: {
719
+ options: [
720
+ { name: '颜色', value: 'color' },
721
+ { name: '纹理', value: 'pattern' },
722
+ ],
723
+ },
724
+ },
725
+ {
726
+ rule: [['areaType', '$eq', 'color']],
727
+ name: 'areaColor',
728
+ displayName: '区域颜色',
729
+ type: 'multicolor',
730
+ value: areaColor,
731
+ markColorType: 'seriesGradient',
732
+ },
733
+ {
734
+ rule: [['areaType', '$eq', 'pattern']],
735
+ name: 'url',
736
+ displayName: '纹理图片',
737
+ value: url,
738
+ type: 'uploadImage',
739
+ },
740
+ {
741
+ rule: [['areaType', '$eq', 'pattern']],
742
+ name: 'size',
743
+ displayName: '尺寸',
744
+ value: [
745
+ {
746
+ name: 'width',
747
+ displayName: '宽度',
748
+ value: urlWidth,
749
+ config: { span: 12, suffix: 'W' },
750
+ },
751
+ {
752
+ name: 'height',
753
+ displayName: '高度',
754
+ value: urlHeight,
755
+ config: { span: 12, suffix: 'H' },
756
+ },
757
+ ],
758
+ type: 'group',
759
+ },
760
+ {
761
+ rule: [['areaType', '$eq', 'pattern']],
762
+ type: 'range',
763
+ name: 'opacity',
764
+ displayName: '透明度',
765
+ value: opacity,
766
+ config: { max: 1, min: 0, step: 0.01 },
767
+ },
768
+ {
769
+ name: 'line',
770
+ displayName: '折线',
771
+ value: [
772
+ ...commonLine({
773
+ type,
774
+ color,
775
+ lineWidth,
776
+ curve,
777
+ tension,
778
+ connectNulls,
779
+ }),
780
+ sc("lineShadow","折线阴影","",[
781
+ show(showShadow),
782
+ sc("shadow","阴影","shadow",shadow(shadow_),{},showRule())
783
+ ]),
784
+ lineLighter && lighter(lineLighter),
785
+ ].filter((item) => !!item),
786
+ },
787
+ label(areaLabel),
788
+ ],
789
+ type: 'object',
790
+ });
791
+
792
+ const defaultPieSeries = {
793
+ mapping: _mapping,
794
+ color: {
795
+ type: 'linear',
796
+ pure: '#fff',
797
+ linear: {
798
+ stops: [
799
+ { offset: 0, color: '#fff' },
800
+ { offset: 50, color: '#ff0' },
801
+ { offset: 100, color: '#f0f' },
802
+ ],
803
+ angle: 30,
804
+ opacity: 1,
805
+ },
806
+ },
807
+ };
808
+ export const pieSeries = (
809
+ name = Math.random() + '',
810
+ {
811
+ mapping: {
812
+ fieldName = defaultPieSeries.mapping.fieldName,
813
+ displayName = defaultPieSeries.mapping.displayName,
814
+ } = defaultPieSeries.mapping,
815
+ color = defaultPieSeries.color,
816
+ currentColor,
817
+ } = defaultPieSeries
818
+ ) => ({
819
+ name: name,
820
+ displayName: '系列',
821
+ value: [
822
+ mapping({ fieldName, displayName }),
823
+ {
824
+ name: 'color',
825
+ displayName: currentColor != undefined ? '默认颜色' : '颜色',
826
+ type: 'multicolor',
827
+ value: multiColor(color),
828
+ markColorType: 'seriesGradient',
829
+ },
830
+ currentColor != undefined && {
831
+ name: 'currentColor',
832
+ displayName: '当前颜色',
833
+ type: 'multicolor',
834
+ value: multiColor(currentColor),
835
+ },
836
+ ].filter((item) => !!item),
837
+ type: 'object',
838
+ });
839
+
840
+ const defaultPurePieSeries = {
841
+ mapping: _mapping,
842
+ color: '#fff',
843
+ };
844
+ export const purePieSeries = (
845
+ name = Math.random() + '',
846
+ {
847
+ mapping: {
848
+ fieldName = defaultPurePieSeries.mapping.fieldName,
849
+ displayName = defaultPurePieSeries.mapping.displayName,
850
+ } = defaultPurePieSeries.mapping,
851
+ color = defaultPurePieSeries.color,
852
+ } = defaultPurePieSeries
853
+ ) => ({
854
+ name: name,
855
+ displayName: '系列',
856
+ value: [
857
+ mapping({ fieldName, displayName }),
858
+ {
859
+ name: 'color',
860
+ displayName: '填充',
861
+ type: 'color',
862
+ value: color,
863
+ markColorType: 'palette',
864
+ },
865
+ ],
866
+ type: 'object',
867
+ });