@easyv/config 1.0.45 → 1.0.46

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,632 @@
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
+ };
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',
632
632
  });