@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/series.js CHANGED
@@ -1,632 +1,685 @@
1
- import { mapping, label, multiColor } from '.';
2
-
3
- const _mapping = { fieldName: '', displayName: '' };
4
-
5
- const defaultBandSeries = {
6
- mapping: _mapping,
7
- yOrZ: 'y',
8
- stack: '',
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
- };
40
-
41
- export const bandSeries = (
42
- name = Math.random() + '',
43
- {
44
- mapping: {
45
- fieldName = defaultBandSeries.mapping.fieldName,
46
- displayName = defaultBandSeries.mapping.displayName,
47
- } = defaultBandSeries.mapping,
48
- yOrZ = defaultBandSeries.yOrZ,
49
- stack,
50
- patternType,
51
- patternWidth,
52
- patternHeight,
53
- patternImage,
54
- fill = defaultBandSeries.fill,
55
- highlight: {
56
- show: showHighlight = defaultBandSeries.highlight.show,
57
- extent: highlightExtent = defaultBandSeries.highlight.extent,
58
- fill: highlightFill = defaultBandSeries.highlight.fill,
59
- } = defaultBandSeries.highlight,
60
- } = defaultBandSeries
61
- ) => {
62
- return {
63
- name,
64
- displayName: '系列',
65
- value: [
66
- mapping({ fieldName, displayName }),
67
- {
68
- name: 'yOrZ',
69
- displayName: '纵轴选择',
70
- value: yOrZ,
71
- type: 'select',
72
- config: {
73
- options: [
74
- { name: 'Y轴', value: 'y' },
75
- { name: 'Z轴', value: 'z' },
76
- ],
77
- },
78
- },
79
- stack !== undefined && {
80
- name: 'stack',
81
- displayName: '堆叠',
82
- value: stack,
83
- type: 'input',
84
- },
85
- {
86
- name: 'fill',
87
- displayName: '颜色',
88
- type: 'multicolor',
89
- value: fill,
90
- },
91
- patternType !== undefined && {
92
- name: 'patternType',
93
- displayName: '纹理类型',
94
- value: patternType,
95
- type: 'radio',
96
- config: {
97
- options: [
98
- { name: '默认', value: 'default' },
99
- { name: '自定义', value: 'custom' },
100
- ],
101
- },
102
- },
103
- patternImage !== undefined && {
104
- rule: [['patternType', '$eq', 'custom']],
105
- name: 'patternImage',
106
- displayName: '纹理',
107
- value: patternImage,
108
- type: 'uploadImage',
109
- },
110
- patternWidth !== undefined && {
111
- name: 'patternWidth',
112
- displayName: '纹理宽度',
113
- value: patternWidth,
114
- type: 'number',
115
- config: {
116
- suffix: 'px',
117
- },
118
- },
119
- patternHeight !== undefined && {
120
- name: 'patternHeight',
121
- displayName: '纹理高度',
122
- value: patternHeight,
123
- type: 'number',
124
- config: {
125
- suffix: 'px',
126
- },
127
- },
128
- {
129
- name: 'highlight',
130
- displayName: '极值高亮',
131
- value: [
132
- {
133
- name: 'show',
134
- displayName: '显示',
135
- type: 'boolean',
136
- value: showHighlight,
137
- },
138
- {
139
- rule: [['show', '$eq', true]],
140
- name: 'extent',
141
- displayName: '极值',
142
- value: highlightExtent,
143
- type: 'select',
144
- config: {
145
- options: [
146
- { name: '最大值', value: 'max' },
147
- { name: '最小值', value: 'min' },
148
- ],
149
- },
150
- },
151
- {
152
- rule: [['show', '$eq', true]],
153
- name: 'fill',
154
- displayName: '颜色',
155
- type: 'multicolor',
156
- value: highlightFill,
157
- },
158
- ],
159
- },
160
- ].filter((item) => !!item),
161
- type: 'object',
162
- };
163
- };
164
-
165
- const defaultLineSeries = {
166
- mapping: _mapping,
167
- yOrZ: 'y',
168
- line: {
169
- type: 'solid',
170
- color: '#FFFFFF',
171
- lineWidth: '1',
172
- curve: true,
173
- tension: 0,
174
- connectNulls: false,
175
- lighter: {
176
- show: false,
177
- fill: {
178
- type: 'linear',
179
- pure: '#fff',
180
- linear: {
181
- stops: [
182
- { offset: 0, color: '#fff' },
183
- { offset: 50, color: '#ff0' },
184
- { offset: 100, color: '#f0f' },
185
- ],
186
- angle: 30,
187
- opacity: 1,
188
- },
189
- },
190
- length: 200,
191
- width: 2,
192
- unitStep: 1,
193
- },
194
- },
195
- areaColor: {
196
- type: 'linear',
197
- pure: '#fff',
198
- linear: {
199
- stops: [
200
- { offset: 0, color: '#fff' },
201
- { offset: 50, color: '#ff0' },
202
- { offset: 100, color: '#f0f' },
203
- ],
204
- angle: 30,
205
- opacity: 1,
206
- },
207
- },
208
- };
209
- const defaultIcon = {
210
- show: true,
211
- mode: 'double',
212
- inner: { color: '#83C4FF', radius: 3 },
213
- outer: { color: 'rgba(24,144,255,0.4)', radius: 6 },
214
- color: '#1283E3',
215
- radius: 4,
216
- };
217
-
218
- const commonLine = (
219
- {
220
- type = defaultLineSeries.line.type,
221
- color = defaultLineSeries.line.color,
222
- lineWidth = defaultLineSeries.line.lineWidth,
223
- curve = defaultLineSeries.line.curve,
224
- tension = defaultLineSeries.line.tension,
225
- connectNulls = defaultLineSeries.line.connectNulls,
226
- } = defaultLineSeries.line
227
- ) => [
228
- {
229
- name: 'type',
230
- displayName: '类型',
231
- value: type,
232
- type: 'select',
233
- config: {
234
- options: [
235
- {
236
- name: '实线',
237
- value: 'solid',
238
- },
239
- {
240
- name: '虚线',
241
- value: 'dash',
242
- },
243
- ],
244
- },
245
- },
246
- {
247
- name: 'color',
248
- displayName: '颜色',
249
- value: color,
250
- type: 'color',
251
- },
252
- {
253
- name: 'lineWidth',
254
- displayName: '粗细',
255
- value: lineWidth,
256
- type: 'input',
257
- config: {
258
- suffix: 'px',
259
- },
260
- },
261
- {
262
- name: 'curve',
263
- displayName: '曲线',
264
- value: curve,
265
- type: 'boolean',
266
- },
267
- {
268
- rule: [['curve', '$eq', true]],
269
- name: 'tension',
270
- displayName: '曲线张力',
271
- value: tension,
272
- type: 'range',
273
- config: {
274
- min: 0,
275
- max: 1,
276
- step: 0.1,
277
- },
278
- },
279
- {
280
- name: 'connectNulls',
281
- displayName: 'null值连接',
282
- value: connectNulls,
283
- type: 'boolean',
284
- },
285
- ];
286
-
287
- const lighter = (
288
- {
289
- show = defaultLineSeries.line.lighter.show,
290
- fill = defaultLineSeries.line.lighter.fill,
291
- length = defaultLineSeries.line.lighter.length,
292
- width = defaultLineSeries.line.lighter.width,
293
- unitStep = defaultLineSeries.line.lighter.unitStep,
294
- } = defaultLineSeries.line.lighter
295
- ) => ({
296
- name: 'lighter',
297
- displayName: '光效',
298
- value: [
299
- {
300
- name: 'show',
301
- displayName: '显示',
302
- value: show,
303
- type: 'boolean',
304
- },
305
- {
306
- rule: [['show', '$eq', true]],
307
- name: 'fill',
308
- displayName: '颜色',
309
- type: 'multicolor',
310
- value: fill,
311
- },
312
- {
313
- rule: [['show', '$eq', true]],
314
- name: 'length',
315
- displayName: '长度',
316
- value: length,
317
- type: 'number',
318
- },
319
- {
320
- rule: [['show', '$eq', true]],
321
- name: 'width',
322
- displayName: '宽度',
323
- value: width,
324
- type: 'number',
325
- },
326
- {
327
- rule: [['show', '$eq', true]],
328
- name: 'unitStep',
329
- displayName: '速度',
330
- value: unitStep,
331
- type: 'number',
332
- },
333
- ],
334
- });
335
-
336
- const icon = ({
337
- show = defaultIcon.show,
338
- mode = defaultIcon.mode,
339
- inner: {
340
- color: innerColor = defaultIcon.inner.color,
341
- radius: innerRadius = defaultIcon.inner.innerRadius,
342
- } = defaultIcon.inner,
343
- outer: {
344
- color: outerColor = defaultIcon.outer.color,
345
- radius: outerRadius = defaultIcon.outer.radius,
346
- } = defaultIcon.outer,
347
- color = defaultIcon.color,
348
- radius = defaultIcon.radius,
349
- } = defaultIcon) => ({
350
- name: 'icon',
351
- displayName: '数据标记',
352
- value: [
353
- {
354
- name: 'show',
355
- displayName: '显示',
356
- value: show,
357
- type: 'boolean',
358
- },
359
- {
360
- rule: [['show', '$eq', true]],
361
- name: 'mode',
362
- displayName: '模式',
363
- value: mode,
364
- type: 'select',
365
- config: {
366
- options: [
367
- {
368
- name: '单圆',
369
- value: 'single',
370
- },
371
- {
372
- name: '双圆',
373
- value: 'double',
374
- },
375
- ],
376
- },
377
- },
378
- {
379
- rule: [
380
- ['show', '$eq', true],
381
- ['mode', '$eq', 'double'],
382
- ],
383
- name: 'inner',
384
- displayName: '内圆',
385
- value: [
386
- {
387
- name: 'color',
388
- displayName: '颜色',
389
- value: innerColor,
390
- type: 'color',
391
- },
392
- {
393
- name: 'radius',
394
- displayName: '半径',
395
- value: innerRadius,
396
- type: 'number',
397
- config: {
398
- min: 0,
399
- suffix: 'px',
400
- },
401
- },
402
- ],
403
- },
404
- {
405
- rule: [
406
- ['show', '$eq', true],
407
- ['mode', '$eq', 'double'],
408
- ],
409
- name: 'outer',
410
- displayName: '外圆',
411
- value: [
412
- {
413
- name: 'color',
414
- displayName: '颜色',
415
- value: outerColor,
416
- type: 'color',
417
- },
418
- {
419
- name: 'radius',
420
- displayName: '半径',
421
- value: outerRadius,
422
- type: 'number',
423
- config: {
424
- min: 0,
425
- suffix: 'px',
426
- },
427
- },
428
- ],
429
- },
430
- {
431
- rule: [
432
- ['show', '$eq', true],
433
- ['mode', '$eq', 'single'],
434
- ],
435
- name: 'color',
436
- displayName: '颜色',
437
- value: color,
438
- type: 'color',
439
- },
440
- {
441
- rule: [
442
- ['show', '$eq', true],
443
- ['mode', '$eq', 'single'],
444
- ],
445
- name: 'radius',
446
- displayName: '半径',
447
- value: radius,
448
- type: 'number',
449
- config: {
450
- min: 0,
451
- suffix: 'px',
452
- },
453
- },
454
- ],
455
- });
456
- export const lineSeries = (
457
- name = Math.random() + '',
458
- {
459
- mapping: {
460
- fieldName = defaultLineSeries.mapping.fieldName,
461
- displayName = defaultLineSeries.mapping.displayName,
462
- } = defaultLineSeries.mapping,
463
- yOrZ = defaultLineSeries.yOrZ,
464
- line = defaultLineSeries.line,
465
- icon: lineIcon,
466
- label: lineLabel,
467
- } = defaultLineSeries
468
- ) => ({
469
- name,
470
- displayName: '系列',
471
- value: [
472
- mapping({ fieldName, displayName }),
473
- {
474
- name: 'yOrZ',
475
- displayName: '纵轴选择',
476
- value: yOrZ,
477
- type: 'select',
478
- config: {
479
- options: [
480
- { name: 'Y轴', value: 'y' },
481
- { name: 'Z轴', value: 'z' },
482
- ],
483
- },
484
- },
485
- {
486
- name: 'line',
487
- displayName: '折线',
488
- value: commonLine(line),
489
- },
490
- icon(lineIcon),
491
- label(lineLabel),
492
- ],
493
- type: 'object',
494
- });
495
-
496
- export const areaSeries = (
497
- name = Math.random() + '',
498
- {
499
- mapping: {
500
- fieldName = defaultLineSeries.mapping.fieldName,
501
- displayName = defaultLineSeries.mapping.displayName,
502
- } = defaultLineSeries.mapping,
503
- yOrZ = defaultLineSeries.yOrZ,
504
- line: {
505
- type = defaultLineSeries.line.type,
506
- color = defaultLineSeries.line.color,
507
- lineWidth = defaultLineSeries.line.lineWidth,
508
- curve = defaultLineSeries.line.curve,
509
- tension = defaultLineSeries.line.tension,
510
- connectNulls = defaultLineSeries.line.connectNulls,
511
- lighter: lineLighter,
512
- } = defaultLineSeries.line,
513
- label: areaLabel = defaultLineSeries.label,
514
- areaColor = defaultLineSeries.areaColor,
515
- } = defaultLineSeries
516
- ) => ({
517
- name,
518
- displayName: '系列',
519
- value: [
520
- mapping({ fieldName, displayName }),
521
- {
522
- name: 'yOrZ',
523
- displayName: '纵轴选择',
524
- value: yOrZ,
525
- type: 'select',
526
- config: {
527
- options: [
528
- { name: 'Y轴', value: 'y' },
529
- { name: 'Z轴', value: 'z' },
530
- ],
531
- },
532
- },
533
- {
534
- name: 'areaColor',
535
- displayName: '区域颜色',
536
- type: 'multicolor',
537
- value: areaColor,
538
- },
539
- {
540
- name: 'line',
541
- displayName: '折线',
542
- value: [
543
- ...commonLine({
544
- type,
545
- color,
546
- lineWidth,
547
- curve,
548
- tension,
549
- connectNulls,
550
- }),
551
- // lineLighter && lighter(lineLighter),
552
- ].filter((item) => !!item),
553
- },
554
- label(areaLabel),
555
- ],
556
- type: 'object',
557
- });
558
-
559
- const defaultPieSeries = {
560
- mapping: _mapping,
561
- color: {
562
- type: 'linear',
563
- pure: '#fff',
564
- linear: {
565
- stops: [
566
- { offset: 0, color: '#fff' },
567
- { offset: 50, color: '#ff0' },
568
- { offset: 100, color: '#f0f' },
569
- ],
570
- angle: 30,
571
- opacity: 1,
572
- },
573
- },
574
- };
575
- export const pieSeries = (
576
- name = Math.random() + '',
577
- {
578
- mapping: {
579
- fieldName = defaultPieSeries.mapping.fieldName,
580
- displayName = defaultPieSeries.mapping.displayName,
581
- } = defaultPieSeries.mapping,
582
- color = defaultPieSeries.color,
583
- currentColor
584
- } = defaultPieSeries
585
- ) => ({
586
- name: name,
587
- displayName: '系列',
588
- value: [
589
- mapping({ fieldName, displayName }),
590
- {
591
- name: 'color',
592
- displayName: currentColor !=undefined?'默认颜色':'颜色',
593
- type: 'multicolor',
594
- value: multiColor(color),
595
- },
596
- currentColor !=undefined && {
597
- name: 'currentColor',
598
- displayName: '当前颜色',
599
- type:"multicolor",
600
- value: multiColor(currentColor)
601
- }
602
- ].filter((item)=>!!item),
603
- type: 'object',
604
- });
605
-
606
- const defaultPurePieSeries = {
607
- mapping: _mapping,
608
- color: "#fff"
609
- };
610
- export const purePieSeries = (
611
- name = Math.random() + '',
612
- {
613
- mapping: {
614
- fieldName = defaultPurePieSeries.mapping.fieldName,
615
- displayName = defaultPurePieSeries.mapping.displayName,
616
- } = defaultPurePieSeries.mapping,
617
- color = defaultPurePieSeries.color
618
- } = defaultPurePieSeries
619
- ) => ({
620
- name: name,
621
- displayName: '系列',
622
- value: [
623
- mapping({ fieldName, displayName }),
624
- {
625
- name: 'color',
626
- displayName: '填充',
627
- type: 'color',
628
- value: color,
629
- }
630
- ],
631
- type: 'object',
1
+ import { mapping, label, multiColor } from '.';
2
+
3
+ const _mapping = { fieldName: '', displayName: '' };
4
+
5
+ const defaultBandSeries = {
6
+ mapping: _mapping,
7
+ yOrZ: 'y',
8
+ stack: '',
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
+ };
40
+
41
+ export const bandSeries = (
42
+ name = Math.random() + '',
43
+ {
44
+ mapping: {
45
+ fieldName = defaultBandSeries.mapping.fieldName,
46
+ displayName = defaultBandSeries.mapping.displayName,
47
+ } = defaultBandSeries.mapping,
48
+ yOrZ = defaultBandSeries.yOrZ,
49
+ stack,
50
+ patternType,
51
+ patternWidth,
52
+ patternHeight,
53
+ patternImage,
54
+ fill = defaultBandSeries.fill,
55
+ highlight: {
56
+ show: showHighlight = defaultBandSeries.highlight.show,
57
+ extent: highlightExtent = defaultBandSeries.highlight.extent,
58
+ fill: highlightFill = defaultBandSeries.highlight.fill,
59
+ } = defaultBandSeries.highlight,
60
+ } = defaultBandSeries
61
+ ) => {
62
+ return {
63
+ name,
64
+ displayName: '系列',
65
+ value: [
66
+ mapping({ fieldName, displayName }),
67
+ {
68
+ name: 'yOrZ',
69
+ displayName: '纵轴选择',
70
+ value: yOrZ,
71
+ type: 'select',
72
+ config: {
73
+ options: [
74
+ { name: 'Y轴', value: 'y' },
75
+ { name: 'Z轴', value: 'z' },
76
+ ],
77
+ },
78
+ },
79
+ stack !== undefined && {
80
+ name: 'stack',
81
+ displayName: '堆叠',
82
+ value: stack,
83
+ type: 'input',
84
+ },
85
+ {
86
+ name: 'fill',
87
+ displayName: '颜色',
88
+ type: 'multicolor',
89
+ value: fill,
90
+ },
91
+ patternType !== undefined && {
92
+ name: 'patternType',
93
+ displayName: '纹理类型',
94
+ value: patternType,
95
+ type: 'radio',
96
+ config: {
97
+ options: [
98
+ { name: '默认', value: 'default' },
99
+ { name: '自定义', value: 'custom' },
100
+ ],
101
+ },
102
+ },
103
+ patternImage !== undefined && {
104
+ rule: [['patternType', '$eq', 'custom']],
105
+ name: 'patternImage',
106
+ displayName: '纹理',
107
+ value: patternImage,
108
+ type: 'uploadImage',
109
+ },
110
+ patternWidth !== undefined && {
111
+ name: 'patternWidth',
112
+ displayName: '纹理宽度',
113
+ value: patternWidth,
114
+ type: 'number',
115
+ config: {
116
+ suffix: 'px',
117
+ },
118
+ },
119
+ patternHeight !== undefined && {
120
+ name: 'patternHeight',
121
+ displayName: '纹理高度',
122
+ value: patternHeight,
123
+ type: 'number',
124
+ config: {
125
+ suffix: 'px',
126
+ },
127
+ },
128
+ {
129
+ name: 'highlight',
130
+ displayName: '极值高亮',
131
+ value: [
132
+ {
133
+ name: 'show',
134
+ displayName: '显示',
135
+ type: 'boolean',
136
+ value: showHighlight,
137
+ },
138
+ {
139
+ rule: [['show', '$eq', true]],
140
+ name: 'extent',
141
+ displayName: '极值',
142
+ value: highlightExtent,
143
+ type: 'select',
144
+ config: {
145
+ options: [
146
+ { name: '最大值', value: 'max' },
147
+ { name: '最小值', value: 'min' },
148
+ ],
149
+ },
150
+ },
151
+ {
152
+ rule: [['show', '$eq', true]],
153
+ name: 'fill',
154
+ displayName: '颜色',
155
+ type: 'multicolor',
156
+ value: highlightFill,
157
+ },
158
+ ],
159
+ },
160
+ ].filter((item) => !!item),
161
+ type: 'object',
162
+ };
163
+ };
164
+
165
+ const defaultLineSeries = {
166
+ mapping: _mapping,
167
+ yOrZ: 'y',
168
+ line: {
169
+ type: 'solid',
170
+ color: '#FFFFFF',
171
+ lineWidth: '1',
172
+ curve: true,
173
+ tension: 0,
174
+ connectNulls: false,
175
+ lighter: {
176
+ show: false,
177
+ fill: {
178
+ type: 'linear',
179
+ pure: '#fff',
180
+ linear: {
181
+ stops: [
182
+ { offset: 0, color: '#fff' },
183
+ { offset: 50, color: '#ff0' },
184
+ { offset: 100, color: '#f0f' },
185
+ ],
186
+ angle: 30,
187
+ opacity: 1,
188
+ },
189
+ },
190
+ length: 200,
191
+ width: 2,
192
+ unitStep: 1,
193
+ },
194
+ },
195
+ areaColor: {
196
+ type: 'linear',
197
+ pure: '#fff',
198
+ linear: {
199
+ stops: [
200
+ { offset: 0, color: '#fff' },
201
+ { offset: 50, color: '#ff0' },
202
+ { offset: 100, color: '#f0f' },
203
+ ],
204
+ angle: 30,
205
+ opacity: 1,
206
+ },
207
+ },
208
+ };
209
+ const defaultIcon = {
210
+ show: true,
211
+ mode: 'double',
212
+ inner: { color: '#83C4FF', radius: 3 },
213
+ outer: { color: 'rgba(24,144,255,0.4)', radius: 6 },
214
+ color: '#1283E3',
215
+ radius: 4,
216
+ image: 'components/static-image/superChart/fang.png',
217
+ size: {
218
+ width: 10,
219
+ height: 10
220
+ }
221
+ };
222
+
223
+ const commonLine = (
224
+ {
225
+ type = defaultLineSeries.line.type,
226
+ color = defaultLineSeries.line.color,
227
+ lineWidth = defaultLineSeries.line.lineWidth,
228
+ curve = defaultLineSeries.line.curve,
229
+ tension = defaultLineSeries.line.tension,
230
+ connectNulls = defaultLineSeries.line.connectNulls,
231
+ } = defaultLineSeries.line
232
+ ) => [
233
+ {
234
+ name: 'type',
235
+ displayName: '类型',
236
+ value: type,
237
+ type: 'select',
238
+ config: {
239
+ options: [
240
+ {
241
+ name: '实线',
242
+ value: 'solid',
243
+ },
244
+ {
245
+ name: '虚线',
246
+ value: 'dash',
247
+ },
248
+ ],
249
+ },
250
+ },
251
+ {
252
+ name: 'color',
253
+ displayName: '颜色',
254
+ value: color,
255
+ type: 'color',
256
+ },
257
+ {
258
+ name: 'lineWidth',
259
+ displayName: '粗细',
260
+ value: lineWidth,
261
+ type: 'input',
262
+ config: {
263
+ suffix: 'px',
264
+ },
265
+ },
266
+ {
267
+ name: 'curve',
268
+ displayName: '曲线',
269
+ value: curve,
270
+ type: 'boolean',
271
+ },
272
+ {
273
+ rule: [['curve', '$eq', true]],
274
+ name: 'tension',
275
+ displayName: '曲线张力',
276
+ value: tension,
277
+ type: 'range',
278
+ config: {
279
+ min: 0,
280
+ max: 1,
281
+ step: 0.1,
282
+ },
283
+ },
284
+ {
285
+ name: 'connectNulls',
286
+ displayName: 'null值连接',
287
+ value: connectNulls,
288
+ type: 'boolean',
289
+ },
290
+ ];
291
+
292
+ const lighter = (
293
+ {
294
+ show = defaultLineSeries.line.lighter.show,
295
+ fill = defaultLineSeries.line.lighter.fill,
296
+ length = defaultLineSeries.line.lighter.length,
297
+ width = defaultLineSeries.line.lighter.width,
298
+ unitStep = defaultLineSeries.line.lighter.unitStep,
299
+ } = defaultLineSeries.line.lighter
300
+ ) => ({
301
+ name: 'lighter',
302
+ displayName: '光效',
303
+ value: [
304
+ {
305
+ name: 'show',
306
+ displayName: '显示',
307
+ value: show,
308
+ type: 'boolean',
309
+ },
310
+ {
311
+ rule: [['show', '$eq', true]],
312
+ name: 'fill',
313
+ displayName: '颜色',
314
+ type: 'multicolor',
315
+ value: fill,
316
+ },
317
+ {
318
+ rule: [['show', '$eq', true]],
319
+ name: 'length',
320
+ displayName: '长度',
321
+ value: length,
322
+ type: 'number',
323
+ },
324
+ {
325
+ rule: [['show', '$eq', true]],
326
+ name: 'width',
327
+ displayName: '宽度',
328
+ value: width,
329
+ type: 'number',
330
+ },
331
+ {
332
+ rule: [['show', '$eq', true]],
333
+ name: 'unitStep',
334
+ displayName: '速度',
335
+ value: unitStep,
336
+ type: 'number',
337
+ },
338
+ ],
339
+ });
340
+
341
+ const icon = ({
342
+ show = defaultIcon.show,
343
+ mode = defaultIcon.mode,
344
+ inner: {
345
+ color: innerColor = defaultIcon.inner.color,
346
+ radius: innerRadius = defaultIcon.inner.innerRadius,
347
+ } = defaultIcon.inner,
348
+ outer: {
349
+ color: outerColor = defaultIcon.outer.color,
350
+ radius: outerRadius = defaultIcon.outer.radius,
351
+ } = defaultIcon.outer,
352
+ color = defaultIcon.color,
353
+ radius = defaultIcon.radius,
354
+ image = defaultIcon.image,
355
+ size: {
356
+ width: imageWidth = defaultIcon.size.width,
357
+ height: imageHeight = defaultIcon.size.height
358
+ } = defaultIcon.size
359
+ } = defaultIcon) => ({
360
+ name: 'icon',
361
+ displayName: '数据标记',
362
+ value: [
363
+ {
364
+ name: 'show',
365
+ displayName: '显示',
366
+ value: show,
367
+ type: 'boolean',
368
+ },
369
+ {
370
+ rule: [['show', '$eq', true]],
371
+ name: 'mode',
372
+ displayName: '模式',
373
+ value: mode,
374
+ type: 'select',
375
+ config: {
376
+ options: [
377
+ {
378
+ name: '单圆',
379
+ value: 'single',
380
+ },
381
+ {
382
+ name: '双圆',
383
+ value: 'double',
384
+ },
385
+ {
386
+ name: '自定义',
387
+ value: 'custom',
388
+ },
389
+ ],
390
+ },
391
+ },
392
+ {
393
+ rule: [
394
+ ['show', '$eq', true],
395
+ ['mode', '$eq', 'custom'],
396
+ ],
397
+ name: 'image',
398
+ displayName: '图片',
399
+ value: image,
400
+ type: 'uploadImage',
401
+ },
402
+ {
403
+ rule: [
404
+ ['show', '$eq', true],
405
+ ['mode', '$eq', 'custom'],
406
+ ],
407
+ name: 'size',
408
+ displayName: '尺寸',
409
+ value: [
410
+ {
411
+ name: 'width',
412
+ displayName: '宽度',
413
+ value: imageWidth,
414
+ config: {
415
+ span: 12,
416
+ suffix: 'W',
417
+ },
418
+ },
419
+ {
420
+ name: 'height',
421
+ displayName: '高度',
422
+ value: imageHeight,
423
+ config: {
424
+ span: 12,
425
+ suffix: 'H',
426
+ },
427
+ },
428
+ ],
429
+ type: 'group',
430
+ },
431
+ {
432
+ rule: [
433
+ ['show', '$eq', true],
434
+ ['mode', '$eq', 'double'],
435
+ ],
436
+ name: 'inner',
437
+ displayName: '内圆',
438
+ value: [
439
+ {
440
+ name: 'color',
441
+ displayName: '颜色',
442
+ value: innerColor,
443
+ type: 'color',
444
+ },
445
+ {
446
+ name: 'radius',
447
+ displayName: '半径',
448
+ value: innerRadius,
449
+ type: 'number',
450
+ config: {
451
+ min: 0,
452
+ suffix: 'px',
453
+ },
454
+ },
455
+ ],
456
+ },
457
+ {
458
+ rule: [
459
+ ['show', '$eq', true],
460
+ ['mode', '$eq', 'double'],
461
+ ],
462
+ name: 'outer',
463
+ displayName: '外圆',
464
+ value: [
465
+ {
466
+ name: 'color',
467
+ displayName: '颜色',
468
+ value: outerColor,
469
+ type: 'color',
470
+ },
471
+ {
472
+ name: 'radius',
473
+ displayName: '半径',
474
+ value: outerRadius,
475
+ type: 'number',
476
+ config: {
477
+ min: 0,
478
+ suffix: 'px',
479
+ },
480
+ },
481
+ ],
482
+ },
483
+ {
484
+ rule: [
485
+ ['show', '$eq', true],
486
+ ['mode', '$eq', 'single'],
487
+ ],
488
+ name: 'color',
489
+ displayName: '颜色',
490
+ value: color,
491
+ type: 'color',
492
+ },
493
+ {
494
+ rule: [
495
+ ['show', '$eq', true],
496
+ ['mode', '$eq', 'single'],
497
+ ],
498
+ name: 'radius',
499
+ displayName: '半径',
500
+ value: radius,
501
+ type: 'number',
502
+ config: {
503
+ min: 0,
504
+ suffix: 'px',
505
+ },
506
+ },
507
+ ],
508
+ });
509
+ export const lineSeries = (
510
+ name = Math.random() + '',
511
+ {
512
+ mapping: {
513
+ fieldName = defaultLineSeries.mapping.fieldName,
514
+ displayName = defaultLineSeries.mapping.displayName,
515
+ } = defaultLineSeries.mapping,
516
+ yOrZ = defaultLineSeries.yOrZ,
517
+ line = defaultLineSeries.line,
518
+ icon: lineIcon,
519
+ label: lineLabel,
520
+ } = defaultLineSeries
521
+ ) => ({
522
+ name,
523
+ displayName: '系列',
524
+ value: [
525
+ mapping({ fieldName, displayName }),
526
+ {
527
+ name: 'yOrZ',
528
+ displayName: '纵轴选择',
529
+ value: yOrZ,
530
+ type: 'select',
531
+ config: {
532
+ options: [
533
+ { name: 'Y轴', value: 'y' },
534
+ { name: 'Z轴', value: 'z' },
535
+ ],
536
+ },
537
+ },
538
+ {
539
+ name: 'line',
540
+ displayName: '折线',
541
+ value: commonLine(line),
542
+ },
543
+ icon(lineIcon),
544
+ label(lineLabel),
545
+ ],
546
+ type: 'object',
547
+ });
548
+
549
+ export const areaSeries = (
550
+ name = Math.random() + '',
551
+ {
552
+ mapping: {
553
+ fieldName = defaultLineSeries.mapping.fieldName,
554
+ displayName = defaultLineSeries.mapping.displayName,
555
+ } = defaultLineSeries.mapping,
556
+ yOrZ = defaultLineSeries.yOrZ,
557
+ line: {
558
+ type = defaultLineSeries.line.type,
559
+ color = defaultLineSeries.line.color,
560
+ lineWidth = defaultLineSeries.line.lineWidth,
561
+ curve = defaultLineSeries.line.curve,
562
+ tension = defaultLineSeries.line.tension,
563
+ connectNulls = defaultLineSeries.line.connectNulls,
564
+ lighter: lineLighter,
565
+ } = defaultLineSeries.line,
566
+ label: areaLabel = defaultLineSeries.label,
567
+ areaColor = defaultLineSeries.areaColor,
568
+ } = defaultLineSeries
569
+ ) => ({
570
+ name,
571
+ displayName: '系列',
572
+ value: [
573
+ mapping({ fieldName, displayName }),
574
+ {
575
+ name: 'yOrZ',
576
+ displayName: '纵轴选择',
577
+ value: yOrZ,
578
+ type: 'select',
579
+ config: {
580
+ options: [
581
+ { name: 'Y轴', value: 'y' },
582
+ { name: 'Z轴', value: 'z' },
583
+ ],
584
+ },
585
+ },
586
+ {
587
+ name: 'areaColor',
588
+ displayName: '区域颜色',
589
+ type: 'multicolor',
590
+ value: areaColor,
591
+ },
592
+ {
593
+ name: 'line',
594
+ displayName: '折线',
595
+ value: [
596
+ ...commonLine({
597
+ type,
598
+ color,
599
+ lineWidth,
600
+ curve,
601
+ tension,
602
+ connectNulls,
603
+ }),
604
+ // lineLighter && lighter(lineLighter),
605
+ ].filter((item) => !!item),
606
+ },
607
+ label(areaLabel),
608
+ ],
609
+ type: 'object',
610
+ });
611
+
612
+ const defaultPieSeries = {
613
+ mapping: _mapping,
614
+ color: {
615
+ type: 'linear',
616
+ pure: '#fff',
617
+ linear: {
618
+ stops: [
619
+ { offset: 0, color: '#fff' },
620
+ { offset: 50, color: '#ff0' },
621
+ { offset: 100, color: '#f0f' },
622
+ ],
623
+ angle: 30,
624
+ opacity: 1,
625
+ },
626
+ },
627
+ };
628
+ export const pieSeries = (
629
+ name = Math.random() + '',
630
+ {
631
+ mapping: {
632
+ fieldName = defaultPieSeries.mapping.fieldName,
633
+ displayName = defaultPieSeries.mapping.displayName,
634
+ } = defaultPieSeries.mapping,
635
+ color = defaultPieSeries.color,
636
+ currentColor
637
+ } = defaultPieSeries
638
+ ) => ({
639
+ name: name,
640
+ displayName: '系列',
641
+ value: [
642
+ mapping({ fieldName, displayName }),
643
+ {
644
+ name: 'color',
645
+ displayName: currentColor != undefined ? '默认颜色' : '颜色',
646
+ type: 'multicolor',
647
+ value: multiColor(color),
648
+ },
649
+ currentColor != undefined && {
650
+ name: 'currentColor',
651
+ displayName: '当前颜色',
652
+ type: "multicolor",
653
+ value: multiColor(currentColor)
654
+ }
655
+ ].filter((item) => !!item),
656
+ type: 'object',
657
+ });
658
+
659
+ const defaultPurePieSeries = {
660
+ mapping: _mapping,
661
+ color: "#fff"
662
+ };
663
+ export const purePieSeries = (
664
+ name = Math.random() + '',
665
+ {
666
+ mapping: {
667
+ fieldName = defaultPurePieSeries.mapping.fieldName,
668
+ displayName = defaultPurePieSeries.mapping.displayName,
669
+ } = defaultPurePieSeries.mapping,
670
+ color = defaultPurePieSeries.color
671
+ } = defaultPurePieSeries
672
+ ) => ({
673
+ name: name,
674
+ displayName: '系列',
675
+ value: [
676
+ mapping({ fieldName, displayName }),
677
+ {
678
+ name: 'color',
679
+ displayName: '填充',
680
+ type: 'color',
681
+ value: color,
682
+ }
683
+ ],
684
+ type: 'object',
632
685
  });