@easyv/config 1.0.42 → 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/label.js CHANGED
@@ -1,707 +1,707 @@
1
- import { translate, font, extent, showRule } from '.';
2
-
3
- const defaultFont = font();
4
-
5
- const defaultLabel = {
6
- show: false,
7
- font: {
8
- fontFamily: 'Mircosoft Yahei',
9
- fontSize: 12,
10
- color: '#fff',
11
- bold: false,
12
- italic: false,
13
- letterSpacing: 0,
14
- },
15
- translate: {
16
- x: 0,
17
- y: 0,
18
- },
19
- };
20
- export default ({
21
- show = defaultLabel.show,
22
- font: {
23
- fontFamily = defaultLabel.font.fontFamily,
24
- fontSize = defaultLabel.font.fontSize,
25
- color = defaultLabel.font.color,
26
- bold = defaultLabel.font.bold,
27
- italic = defaultLabel.font.italic,
28
- letterSpacing = defaultLabel.font.letterSpacing,
29
- } = defaultLabel.font,
30
- position,
31
- translate: { x, y } = defaultLabel.translate,
32
- } = defaultLabel) => ({
33
- name: 'label',
34
- displayName: '数值标签',
35
- value: [
36
- {
37
- name: 'show',
38
- displayName: '显示',
39
- value: show,
40
- type: 'boolean',
41
- },
42
- {
43
- _rule: [['show', '$eq', true]],
44
- name: 'font',
45
- displayName: '文本样式',
46
- value: {
47
- fontFamily,
48
- fontSize,
49
- color,
50
- bold,
51
- italic,
52
- letterSpacing,
53
- },
54
- type: 'textStyle',
55
- },
56
- position !== undefined && {
57
- name: 'position',
58
- displayName: '位置',
59
- value: position,
60
- type: 'select',
61
- config: {
62
- options: [
63
- { name: '起点', value: 'start' },
64
- { name: '居中', value: 'middle' },
65
- { name: '终点', value: 'end' },
66
- { name: '终点外', value: 'outerStart' },
67
- { name: '图表外', value: 'chartStart' },
68
- ],
69
- },
70
- },
71
- {
72
- _rule: [['show', '$eq', true]],
73
- ...translate(x, y),
74
- },
75
- ].filter((item) => !!item),
76
- });
77
-
78
- const defaultLabelOfPie = {
79
- show: true,
80
- distance: 30,
81
- lineLength: 10,
82
- mode: 'horizontal',
83
- translate: { x: 0, y: 0 },
84
- name: { show: true, font: defaultFont },
85
- percent: { show: true, precision: 0, font: defaultFont },
86
- value: {
87
- show: true,
88
- suffix: {
89
- show: false,
90
- text: '',
91
- fontSize: 12,
92
- translate: { x: 0, y: 0 },
93
- },
94
- font: defaultFont,
95
- },
96
- };
97
- export const labelOfPie = ({
98
- show = defaultLabelOfPie.show,
99
- distance = defaultLabelOfPie.distance,
100
- lineLength = defaultLabelOfPie.lineLength,
101
- lineColor, //这个是可选项,如果不在main.js里赋值,就不会出现
102
- mode = defaultLabelOfPie.mode,
103
- translate: { x, y } = defaultLabelOfPie.show,
104
- name: {
105
- show: showName = defaultLabelOfPie.name.show,
106
- font: nameFont = defaultLabelOfPie.name.font,
107
- } = defaultLabelOfPie.name,
108
- percent: {
109
- show: showPercent = defaultLabelOfPie.percent.show,
110
- precision = defaultLabelOfPie.percent.precision,
111
- font: percentFont = defaultLabelOfPie.percent.font,
112
- } = defaultLabelOfPie.percent,
113
- value: {
114
- show: showValue = defaultLabelOfPie.value.show,
115
- suffix: {
116
- show: showSuffix = defaultLabelOfPie.value.suffix.show,
117
- text: suffixText = defaultLabelOfPie.value.suffix.text,
118
- fontSize: suffixFontSize = defaultLabelOfPie.value.suffix.fontSize,
119
- translate: {
120
- x: suffixTranslateX = defaultLabelOfPie.value.suffix.translate.x,
121
- y: suffixTranslateY = defaultLabelOfPie.value.suffix.translate.y,
122
- } = defaultLabelOfPie.value.suffix.translate,
123
- } = defaultLabelOfPie.value.suffix,
124
- font: valueFont = defaultLabelOfPie.value.font,
125
- } = defaultLabelOfPie.value,
126
- } = defaultLabelOfPie) => ({
127
- name: 'label',
128
- displayName: '数值标签',
129
- value: [
130
- {
131
- name: 'show',
132
- displayName: '显示',
133
- value: show,
134
- type: 'boolean',
135
- },
136
- {
137
- rule: [['show', '$eq', true]],
138
- name: 'distance',
139
- displayName: '偏移距离',
140
- value: distance,
141
- type: 'number',
142
- config: {
143
- suffix: 'px',
144
- },
145
- },
146
- {
147
- rule: [['show', '$eq', true]],
148
- name: 'lineLength',
149
- displayName: '线长',
150
- value: lineLength,
151
- type: 'number',
152
- config: {
153
- suffix: 'px',
154
- min: 0,
155
- step: 1,
156
- },
157
- },
158
- lineColor !==undefined && {
159
- name:"lineColor",
160
- displayName:"线颜色",
161
- value:lineColor,
162
- type:"color"
163
- },
164
- {
165
- rule: [['show', '$eq', true]],
166
- name: 'mode',
167
- displayName: '布局',
168
- value: mode,
169
- type: 'radio',
170
- config: {
171
- options: [
172
- {
173
- name: '上下',
174
- value: 'vertical',
175
- },
176
- {
177
- name: '水平',
178
- value: 'horizontal',
179
- },
180
- ],
181
- },
182
- },
183
- {
184
- rule: [['show', '$eq', true]],
185
- ...translate(x, y),
186
- },
187
- {
188
- rule: [['show', '$eq', true]],
189
- name: 'name',
190
- displayName: '类目',
191
- value: [
192
- {
193
- name: 'show',
194
- displayName: '显示',
195
- value: showName,
196
- type: 'boolean',
197
- },
198
- {
199
- rule: [['show', '$eq', true]],
200
- name: 'font',
201
- displayName: '文本样式',
202
- value: nameFont,
203
- type: 'textStyle',
204
- },
205
- ],
206
- },
207
- {
208
- rule: [['show', '$eq', true]],
209
- name: 'percent',
210
- displayName: '占比值',
211
- value: [
212
- {
213
- name: 'show',
214
- displayName: '显示',
215
- value: showPercent,
216
- type: 'boolean',
217
- },
218
- {
219
- rule: [['show', '$eq', true]],
220
- name: 'precision',
221
- displayName: '小数位数',
222
- value: precision,
223
- type: 'number',
224
- config: {
225
- min: 0,
226
- },
227
- },
228
- {
229
- rule: [['show', '$eq', true]],
230
- name: 'font',
231
- displayName: '文本样式',
232
- value: percentFont,
233
- type: 'textStyle',
234
- },
235
- ],
236
- },
237
- {
238
- name: 'value',
239
- displayName: '真实值',
240
- value: [
241
- {
242
- name: 'show',
243
- displayName: '显示',
244
- value: showValue,
245
- type: 'boolean',
246
- },
247
- {
248
- rule: [['show', '$eq', true]],
249
- name: 'suffix',
250
- displayName: '后缀',
251
- value: [
252
- {
253
- name: 'show',
254
- displayName: '显示',
255
- value: showSuffix,
256
- type: 'boolean',
257
- },
258
- {
259
- rule: [['show', '$eq', true]],
260
- name: 'text',
261
- displayName: '内容',
262
- value: suffixText,
263
- type: 'input',
264
- },
265
- {
266
- rule: [['show', '$eq', true]],
267
- name: 'fontSize',
268
- displayName: '字号',
269
- value: suffixFontSize,
270
- type: 'number',
271
- },
272
- {
273
- rule: [['show', '$eq', true]],
274
- ...translate(suffixTranslateX, suffixTranslateY),
275
- },
276
- ],
277
- config: {
278
- defaultOpen: true,
279
- },
280
- },
281
- {
282
- rule: [['show', '$eq', true]],
283
- name: 'font',
284
- displayName: '文本样式',
285
- value: valueFont,
286
- type: 'textStyle',
287
- },
288
- ],
289
- },
290
- ].filter((item) => !!item),
291
- });
292
-
293
- const defaultLabelOfRose = {
294
- show: true,
295
- font: defaultFont,
296
- gap: 10,
297
- }
298
- export const labelOfRose=({
299
- show = defaultLabelOfRose.show,
300
- font:labelFont = defaultLabelOfRose.font,
301
- gap = defaultLabelOfRose.gap
302
- } = defaultLabelOfRose) => ({
303
- name: 'label',
304
- displayName: '数值标签',
305
- value: [
306
- {
307
- name: 'show',
308
- displayName: '显示',
309
- value: show,
310
- type: 'boolean',
311
- },
312
- {
313
- ...showRule(),
314
- name: 'font',
315
- displayName: '文本样式',
316
- value: font(labelFont),
317
- type: 'textStyle',
318
- },
319
- {
320
- ...showRule(),
321
- name:"gap",
322
- displayName:"间距",
323
- value:gap,
324
- type:"number",
325
- config:{
326
- suffix:"px"
327
- }
328
- }
329
- ],
330
- });
331
-
332
- const defaultAxisLabel = {
333
- show: true,
334
- format: { type: 'date', showType: 'MM月' },
335
- appearance: { count: 3, angle: 0, wordBreak: 'keep-all' },
336
- translate: { x: 0, y: 0 },
337
- font: font({ color: 'rgba(230, 247, 255, 1)' }),
338
- };
339
- export const axisLabel = ({
340
- show: showLabel = defaultAxisLabel.show,
341
- format: {
342
- type: labelType = defaultAxisLabel.format.type,
343
- showType: labelShowType = defaultAxisLabel.format.showType,
344
- } = defaultAxisLabel.format,
345
- appearance: {
346
- count = defaultAxisLabel.appearance.count,
347
- angle = defaultAxisLabel.appearance.angle,
348
- wordBreak = defaultAxisLabel.appearance.wordBreak,
349
- } = defaultAxisLabel.appearance,
350
- translate: {
351
- x: labelTranslateX = defaultAxisLabel.translate.x,
352
- y: labelTranslateY = defaultAxisLabel.translate.y,
353
- } = defaultAxisLabel.translate,
354
- font = defaultAxisLabel.font,
355
- } = defaultAxisLabel) => ({
356
- name: 'label',
357
- displayName: '轴标签',
358
- value: [
359
- {
360
- name: 'show',
361
- displayName: '显示',
362
- value: showLabel,
363
- type: 'boolean',
364
- },
365
- {
366
- rule: [['show', '$eq', true]],
367
- name: 'format',
368
- displayName: '格式',
369
- value: [
370
- {
371
- name: 'type',
372
- displayName: '',
373
- value: labelType,
374
- type: 'radio',
375
- config: {
376
- options: [
377
- {
378
- name: '类目型',
379
- value: 'category',
380
- },
381
- {
382
- name: '时间型',
383
- value: 'date',
384
- },
385
- ],
386
- span: 24,
387
- },
388
- },
389
- {
390
- rule: [['type', '$eq', 'date']],
391
- name: 'showType',
392
- displayName: '',
393
- value: labelShowType,
394
- type: 'select',
395
- config: {
396
- options: [
397
- {
398
- name: '2017年1月1日 08:00:00',
399
- value: 'YYYY年M月D日 HH:mm:ss',
400
- },
401
- {
402
- name: '2017年01月01日 08:00:00',
403
- value: 'YYYY年MM月DD日 HH:mm:ss',
404
- },
405
- {
406
- name: '2017-1-1 08:00:00',
407
- value: 'YYYY-M-D HH:mm:ss',
408
- },
409
- {
410
- name: '2017-01-01 08:00:00',
411
- value: 'YYYY-MM-DD HH:mm:ss',
412
- },
413
- {
414
- name: '2017.1.1 08:00:00',
415
- value: 'YYYY.M.D HH:mm:ss',
416
- },
417
- {
418
- name: '2017.01.01 08:00:00',
419
- value: 'YYYY.MM.DD HH:mm:ss',
420
- },
421
- {
422
- name: '2017年1月1日',
423
- value: 'YYYY年M月D日',
424
- },
425
- {
426
- name: '2017年01月01日',
427
- value: 'YYYY年MM月DD日',
428
- },
429
- {
430
- name: '2017年01月',
431
- value: 'YYYY年MM月',
432
- },
433
- {
434
- name: '2017-1-1',
435
- value: 'YYYY-M-D',
436
- },
437
- {
438
- name: '2017-01-01',
439
- value: 'YYYY-MM-DD',
440
- },
441
- {
442
- name: '2017.1.1',
443
- value: 'YYYY.M.D',
444
- },
445
- {
446
- name: '2017.01.01',
447
- value: 'YYYY.MM.DD',
448
- },
449
- {
450
- name: '1月1日',
451
- value: 'M月D日',
452
- },
453
- {
454
- name: '01月01日',
455
- value: 'MM月DD日',
456
- },
457
- {
458
- name: '01月01日01时',
459
- value: 'MM月DD日HH时',
460
- },
461
- {
462
- name: '1-1',
463
- value: 'M-D',
464
- },
465
- {
466
- name: '01-01',
467
- value: 'MM-DD',
468
- },
469
- {
470
- name: '1.1',
471
- value: 'M.D',
472
- },
473
- {
474
- name: '01.01',
475
- value: 'MM.DD',
476
- },
477
- {
478
- name: '1月',
479
- value: 'M月',
480
- },
481
- {
482
- name: '01月',
483
- value: 'MM月',
484
- },
485
- {
486
- name: '1(月)',
487
- value: 'M',
488
- },
489
- {
490
- name: '01(月)',
491
- value: 'MM',
492
- },
493
- {
494
- name: '1日',
495
- value: 'D日',
496
- },
497
- {
498
- name: '01日',
499
- value: 'DD日',
500
- },
501
- {
502
- name: '1(日)',
503
- value: 'D',
504
- },
505
- {
506
- name: '01(日)',
507
- value: 'DD',
508
- },
509
- {
510
- name: '08:00:00',
511
- value: 'HH:mm:ss',
512
- },
513
- {
514
- name: '08:00',
515
- value: 'HH:mm',
516
- },
517
- {
518
- name: '星期一',
519
- value: 'X',
520
- },
521
- {
522
- name: 'Monday',
523
- value: 'W',
524
- },
525
- {
526
- name: 'Mon',
527
- value: 'w',
528
- },
529
- ],
530
- span: 24,
531
- },
532
- },
533
- ],
534
- type: 'group',
535
- },
536
- {
537
- rule: [['show', '$eq', true]],
538
- name: 'appearance',
539
- displayName: '展示',
540
- value: [
541
- {
542
- name: 'count',
543
- displayName: '标签数量',
544
- value: count,
545
- type: 'number',
546
- config: {
547
- min: 2,
548
- span: 12,
549
- },
550
- },
551
- {
552
- name: 'angle',
553
- displayName: '文字角度',
554
- value: angle,
555
- type: 'number',
556
- config: {
557
- span: 12,
558
- suffix: '°',
559
- },
560
- },
561
- {
562
- name: 'wordBreak',
563
- displayName: '行字数限制',
564
- value: wordBreak,
565
- type: 'select',
566
- config: {
567
- options: [{ name: '不限制', value: 'keep-all' }],
568
- allowInput: true,
569
- span: 12,
570
- },
571
- },
572
- ],
573
- type: 'group',
574
- },
575
- {
576
- rule: [['show', '$eq', true]],
577
- ...translate(labelTranslateX, labelTranslateY),
578
- },
579
- {
580
- rule: [['show', '$eq', true]],
581
- name: 'font',
582
- displayName: '文本样式',
583
- value: font,
584
- type: 'textStyle',
585
- },
586
- ],
587
- });
588
-
589
- const defaultValueAxisLabel = {
590
- show: true,
591
- extent: { min: '0', max: '' },
592
- auto: false,
593
- mode: 'count',
594
- count: 3,
595
- step: 100,
596
- decimal: 0,
597
- suffix: '',
598
- translate: { x: 6, y: 0 },
599
- font: defaultFont,
600
- };
601
- export const valueAsixLabel = ({
602
- show: showLabel = defaultValueAxisLabel.show,
603
- extent: {
604
- min = defaultValueAxisLabel.extent.min,
605
- max = defaultValueAxisLabel.extent.max,
606
- } = defaultValueAxisLabel.extent,
607
- auto = defaultValueAxisLabel.auto,
608
- mode = defaultValueAxisLabel.mode,
609
- count = defaultValueAxisLabel.count,
610
- step = defaultValueAxisLabel.step,
611
- decimal = defaultValueAxisLabel.decimal,
612
- suffix = defaultValueAxisLabel.suffix,
613
- translate: {
614
- x: labelTranslateX = defaultValueAxisLabel.translate.x,
615
- y: labelTranslateY = defaultValueAxisLabel.translate.y,
616
- } = defaultValueAxisLabel.translate,
617
- font: labelFont = defaultValueAxisLabel.font,
618
- } = defaultValueAxisLabel) => ({
619
- name: 'label',
620
- displayName: '轴标签',
621
- value: [
622
- {
623
- name: 'show',
624
- displayName: '显示',
625
- value: showLabel,
626
- type: 'boolean',
627
- },
628
- {
629
- rule: [['show', '$eq', true]],
630
- ...extent({ min, max }),
631
- },
632
- {
633
- rule: [['show', '$eq', true]],
634
- name: 'auto',
635
- displayName: '刻度自适应',
636
- value: auto,
637
- type: 'boolean',
638
- },
639
- {
640
- rule: [
641
- ['show', '$eq', true],
642
- ['auto', '$eq', false],
643
- ],
644
- name: 'mode',
645
- displayName: '模式',
646
- value: mode,
647
- type: 'radio',
648
- config: {
649
- options: [
650
- { name: '数量强制', value: 'count' },
651
- { name: '步长强制', value: 'step' },
652
- ],
653
- },
654
- },
655
- {
656
- rule: [
657
- ['show', '$eq', true],
658
- ['auto', '$eq', false],
659
- ['mode', '$eq', 'count'],
660
- ],
661
- name: 'count',
662
- displayName: '标签数量',
663
- value: count,
664
- min: 2,
665
- type: 'number',
666
- },
667
- {
668
- rule: [
669
- ['show', '$eq', true],
670
- ['auto', '$eq', false],
671
- ['mode', '$eq', 'step'],
672
- ],
673
- name: 'step',
674
- displayName: '步长',
675
- value: step,
676
- type: 'number',
677
- },
678
- {
679
- rule: [
680
- ['show', '$eq', true],
681
- ['auto', '$eq', false],
682
- ],
683
- name: 'decimal',
684
- displayName: '小数位数',
685
- value: decimal,
686
- type: 'number',
687
- },
688
- {
689
- rule: [['show', '$eq', true]],
690
- name: 'suffix',
691
- displayName: '后缀内容',
692
- value: suffix,
693
- type: 'input',
694
- },
695
- {
696
- rule: [['show', '$eq', true]],
697
- ...translate(labelTranslateX, labelTranslateY),
698
- },
699
- {
700
- rule: [['show', '$eq', true]],
701
- name: 'font',
702
- displayName: '文本样式',
703
- value: labelFont,
704
- type: 'textStyle',
705
- },
706
- ],
707
- });
1
+ import { translate, font, extent, showRule } from '.';
2
+
3
+ const defaultFont = font();
4
+
5
+ const defaultLabel = {
6
+ show: false,
7
+ font: {
8
+ fontFamily: 'Mircosoft Yahei',
9
+ fontSize: 12,
10
+ color: '#fff',
11
+ bold: false,
12
+ italic: false,
13
+ letterSpacing: 0,
14
+ },
15
+ translate: {
16
+ x: 0,
17
+ y: 0,
18
+ },
19
+ };
20
+ export default ({
21
+ show = defaultLabel.show,
22
+ font: {
23
+ fontFamily = defaultLabel.font.fontFamily,
24
+ fontSize = defaultLabel.font.fontSize,
25
+ color = defaultLabel.font.color,
26
+ bold = defaultLabel.font.bold,
27
+ italic = defaultLabel.font.italic,
28
+ letterSpacing = defaultLabel.font.letterSpacing,
29
+ } = defaultLabel.font,
30
+ position,
31
+ translate: { x, y } = defaultLabel.translate,
32
+ } = defaultLabel) => ({
33
+ name: 'label',
34
+ displayName: '数值标签',
35
+ value: [
36
+ {
37
+ name: 'show',
38
+ displayName: '显示',
39
+ value: show,
40
+ type: 'boolean',
41
+ },
42
+ {
43
+ _rule: [['show', '$eq', true]],
44
+ name: 'font',
45
+ displayName: '文本样式',
46
+ value: {
47
+ fontFamily,
48
+ fontSize,
49
+ color,
50
+ bold,
51
+ italic,
52
+ letterSpacing,
53
+ },
54
+ type: 'textStyle',
55
+ },
56
+ position !== undefined && {
57
+ name: 'position',
58
+ displayName: '位置',
59
+ value: position,
60
+ type: 'select',
61
+ config: {
62
+ options: [
63
+ { name: '起点', value: 'start' },
64
+ { name: '居中', value: 'middle' },
65
+ { name: '终点', value: 'end' },
66
+ { name: '终点外', value: 'outerStart' },
67
+ { name: '图表外', value: 'chartStart' },
68
+ ],
69
+ },
70
+ },
71
+ {
72
+ _rule: [['show', '$eq', true]],
73
+ ...translate(x, y),
74
+ },
75
+ ].filter((item) => !!item),
76
+ });
77
+
78
+ const defaultLabelOfPie = {
79
+ show: true,
80
+ distance: 30,
81
+ lineLength: 10,
82
+ mode: 'horizontal',
83
+ translate: { x: 0, y: 0 },
84
+ name: { show: true, font: defaultFont },
85
+ percent: { show: true, precision: 0, font: defaultFont },
86
+ value: {
87
+ show: true,
88
+ suffix: {
89
+ show: false,
90
+ text: '',
91
+ fontSize: 12,
92
+ translate: { x: 0, y: 0 },
93
+ },
94
+ font: defaultFont,
95
+ },
96
+ };
97
+ export const labelOfPie = ({
98
+ show = defaultLabelOfPie.show,
99
+ distance = defaultLabelOfPie.distance,
100
+ lineLength = defaultLabelOfPie.lineLength,
101
+ lineColor, //这个是可选项,如果不在main.js里赋值,就不会出现
102
+ mode = defaultLabelOfPie.mode,
103
+ translate: { x, y } = defaultLabelOfPie.show,
104
+ name: {
105
+ show: showName = defaultLabelOfPie.name.show,
106
+ font: nameFont = defaultLabelOfPie.name.font,
107
+ } = defaultLabelOfPie.name,
108
+ percent: {
109
+ show: showPercent = defaultLabelOfPie.percent.show,
110
+ precision = defaultLabelOfPie.percent.precision,
111
+ font: percentFont = defaultLabelOfPie.percent.font,
112
+ } = defaultLabelOfPie.percent,
113
+ value: {
114
+ show: showValue = defaultLabelOfPie.value.show,
115
+ suffix: {
116
+ show: showSuffix = defaultLabelOfPie.value.suffix.show,
117
+ text: suffixText = defaultLabelOfPie.value.suffix.text,
118
+ fontSize: suffixFontSize = defaultLabelOfPie.value.suffix.fontSize,
119
+ translate: {
120
+ x: suffixTranslateX = defaultLabelOfPie.value.suffix.translate.x,
121
+ y: suffixTranslateY = defaultLabelOfPie.value.suffix.translate.y,
122
+ } = defaultLabelOfPie.value.suffix.translate,
123
+ } = defaultLabelOfPie.value.suffix,
124
+ font: valueFont = defaultLabelOfPie.value.font,
125
+ } = defaultLabelOfPie.value,
126
+ } = defaultLabelOfPie) => ({
127
+ name: 'label',
128
+ displayName: '数值标签',
129
+ value: [
130
+ {
131
+ name: 'show',
132
+ displayName: '显示',
133
+ value: show,
134
+ type: 'boolean',
135
+ },
136
+ {
137
+ rule: [['show', '$eq', true]],
138
+ name: 'distance',
139
+ displayName: '偏移距离',
140
+ value: distance,
141
+ type: 'number',
142
+ config: {
143
+ suffix: 'px',
144
+ },
145
+ },
146
+ {
147
+ rule: [['show', '$eq', true]],
148
+ name: 'lineLength',
149
+ displayName: '线长',
150
+ value: lineLength,
151
+ type: 'number',
152
+ config: {
153
+ suffix: 'px',
154
+ min: 0,
155
+ step: 1,
156
+ },
157
+ },
158
+ lineColor !==undefined && {
159
+ name:"lineColor",
160
+ displayName:"线颜色",
161
+ value:lineColor,
162
+ type:"color"
163
+ },
164
+ {
165
+ rule: [['show', '$eq', true]],
166
+ name: 'mode',
167
+ displayName: '布局',
168
+ value: mode,
169
+ type: 'radio',
170
+ config: {
171
+ options: [
172
+ {
173
+ name: '上下',
174
+ value: 'vertical',
175
+ },
176
+ {
177
+ name: '水平',
178
+ value: 'horizontal',
179
+ },
180
+ ],
181
+ },
182
+ },
183
+ {
184
+ rule: [['show', '$eq', true]],
185
+ ...translate(x, y),
186
+ },
187
+ {
188
+ rule: [['show', '$eq', true]],
189
+ name: 'name',
190
+ displayName: '类目',
191
+ value: [
192
+ {
193
+ name: 'show',
194
+ displayName: '显示',
195
+ value: showName,
196
+ type: 'boolean',
197
+ },
198
+ {
199
+ rule: [['show', '$eq', true]],
200
+ name: 'font',
201
+ displayName: '文本样式',
202
+ value: nameFont,
203
+ type: 'textStyle',
204
+ },
205
+ ],
206
+ },
207
+ {
208
+ rule: [['show', '$eq', true]],
209
+ name: 'percent',
210
+ displayName: '占比值',
211
+ value: [
212
+ {
213
+ name: 'show',
214
+ displayName: '显示',
215
+ value: showPercent,
216
+ type: 'boolean',
217
+ },
218
+ {
219
+ rule: [['show', '$eq', true]],
220
+ name: 'precision',
221
+ displayName: '小数位数',
222
+ value: precision,
223
+ type: 'number',
224
+ config: {
225
+ min: 0,
226
+ },
227
+ },
228
+ {
229
+ rule: [['show', '$eq', true]],
230
+ name: 'font',
231
+ displayName: '文本样式',
232
+ value: percentFont,
233
+ type: 'textStyle',
234
+ },
235
+ ],
236
+ },
237
+ {
238
+ name: 'value',
239
+ displayName: '真实值',
240
+ value: [
241
+ {
242
+ name: 'show',
243
+ displayName: '显示',
244
+ value: showValue,
245
+ type: 'boolean',
246
+ },
247
+ {
248
+ rule: [['show', '$eq', true]],
249
+ name: 'suffix',
250
+ displayName: '后缀',
251
+ value: [
252
+ {
253
+ name: 'show',
254
+ displayName: '显示',
255
+ value: showSuffix,
256
+ type: 'boolean',
257
+ },
258
+ {
259
+ rule: [['show', '$eq', true]],
260
+ name: 'text',
261
+ displayName: '内容',
262
+ value: suffixText,
263
+ type: 'input',
264
+ },
265
+ {
266
+ rule: [['show', '$eq', true]],
267
+ name: 'fontSize',
268
+ displayName: '字号',
269
+ value: suffixFontSize,
270
+ type: 'number',
271
+ },
272
+ {
273
+ rule: [['show', '$eq', true]],
274
+ ...translate(suffixTranslateX, suffixTranslateY),
275
+ },
276
+ ],
277
+ config: {
278
+ defaultOpen: true,
279
+ },
280
+ },
281
+ {
282
+ rule: [['show', '$eq', true]],
283
+ name: 'font',
284
+ displayName: '文本样式',
285
+ value: valueFont,
286
+ type: 'textStyle',
287
+ },
288
+ ],
289
+ },
290
+ ].filter((item) => !!item),
291
+ });
292
+
293
+ const defaultLabelOfRose = {
294
+ show: true,
295
+ font: defaultFont,
296
+ gap: 10,
297
+ }
298
+ export const labelOfRose=({
299
+ show = defaultLabelOfRose.show,
300
+ font:labelFont = defaultLabelOfRose.font,
301
+ gap = defaultLabelOfRose.gap
302
+ } = defaultLabelOfRose) => ({
303
+ name: 'label',
304
+ displayName: '数值标签',
305
+ value: [
306
+ {
307
+ name: 'show',
308
+ displayName: '显示',
309
+ value: show,
310
+ type: 'boolean',
311
+ },
312
+ {
313
+ ...showRule(),
314
+ name: 'font',
315
+ displayName: '文本样式',
316
+ value: font(labelFont),
317
+ type: 'textStyle',
318
+ },
319
+ {
320
+ ...showRule(),
321
+ name:"gap",
322
+ displayName:"间距",
323
+ value:gap,
324
+ type:"number",
325
+ config:{
326
+ suffix:"px"
327
+ }
328
+ }
329
+ ],
330
+ });
331
+
332
+ const defaultAxisLabel = {
333
+ show: true,
334
+ format: { type: 'date', showType: 'MM月' },
335
+ appearance: { count: 3, angle: 0, wordBreak: 'keep-all' },
336
+ translate: { x: 0, y: 0 },
337
+ font: font({ color: 'rgba(230, 247, 255, 1)' }),
338
+ };
339
+ export const axisLabel = ({
340
+ show: showLabel = defaultAxisLabel.show,
341
+ format: {
342
+ type: labelType = defaultAxisLabel.format.type,
343
+ showType: labelShowType = defaultAxisLabel.format.showType,
344
+ } = defaultAxisLabel.format,
345
+ appearance: {
346
+ count = defaultAxisLabel.appearance.count,
347
+ angle = defaultAxisLabel.appearance.angle,
348
+ wordBreak = defaultAxisLabel.appearance.wordBreak,
349
+ } = defaultAxisLabel.appearance,
350
+ translate: {
351
+ x: labelTranslateX = defaultAxisLabel.translate.x,
352
+ y: labelTranslateY = defaultAxisLabel.translate.y,
353
+ } = defaultAxisLabel.translate,
354
+ font = defaultAxisLabel.font,
355
+ } = defaultAxisLabel) => ({
356
+ name: 'label',
357
+ displayName: '轴标签',
358
+ value: [
359
+ {
360
+ name: 'show',
361
+ displayName: '显示',
362
+ value: showLabel,
363
+ type: 'boolean',
364
+ },
365
+ {
366
+ rule: [['show', '$eq', true]],
367
+ name: 'format',
368
+ displayName: '格式',
369
+ value: [
370
+ {
371
+ name: 'type',
372
+ displayName: '',
373
+ value: labelType,
374
+ type: 'radio',
375
+ config: {
376
+ options: [
377
+ {
378
+ name: '类目型',
379
+ value: 'category',
380
+ },
381
+ {
382
+ name: '时间型',
383
+ value: 'date',
384
+ },
385
+ ],
386
+ span: 24,
387
+ },
388
+ },
389
+ {
390
+ rule: [['type', '$eq', 'date']],
391
+ name: 'showType',
392
+ displayName: '',
393
+ value: labelShowType,
394
+ type: 'select',
395
+ config: {
396
+ options: [
397
+ {
398
+ name: '2017年1月1日 08:00:00',
399
+ value: 'YYYY年M月D日 HH:mm:ss',
400
+ },
401
+ {
402
+ name: '2017年01月01日 08:00:00',
403
+ value: 'YYYY年MM月DD日 HH:mm:ss',
404
+ },
405
+ {
406
+ name: '2017-1-1 08:00:00',
407
+ value: 'YYYY-M-D HH:mm:ss',
408
+ },
409
+ {
410
+ name: '2017-01-01 08:00:00',
411
+ value: 'YYYY-MM-DD HH:mm:ss',
412
+ },
413
+ {
414
+ name: '2017.1.1 08:00:00',
415
+ value: 'YYYY.M.D HH:mm:ss',
416
+ },
417
+ {
418
+ name: '2017.01.01 08:00:00',
419
+ value: 'YYYY.MM.DD HH:mm:ss',
420
+ },
421
+ {
422
+ name: '2017年1月1日',
423
+ value: 'YYYY年M月D日',
424
+ },
425
+ {
426
+ name: '2017年01月01日',
427
+ value: 'YYYY年MM月DD日',
428
+ },
429
+ {
430
+ name: '2017年01月',
431
+ value: 'YYYY年MM月',
432
+ },
433
+ {
434
+ name: '2017-1-1',
435
+ value: 'YYYY-M-D',
436
+ },
437
+ {
438
+ name: '2017-01-01',
439
+ value: 'YYYY-MM-DD',
440
+ },
441
+ {
442
+ name: '2017.1.1',
443
+ value: 'YYYY.M.D',
444
+ },
445
+ {
446
+ name: '2017.01.01',
447
+ value: 'YYYY.MM.DD',
448
+ },
449
+ {
450
+ name: '1月1日',
451
+ value: 'M月D日',
452
+ },
453
+ {
454
+ name: '01月01日',
455
+ value: 'MM月DD日',
456
+ },
457
+ {
458
+ name: '01月01日01时',
459
+ value: 'MM月DD日HH时',
460
+ },
461
+ {
462
+ name: '1-1',
463
+ value: 'M-D',
464
+ },
465
+ {
466
+ name: '01-01',
467
+ value: 'MM-DD',
468
+ },
469
+ {
470
+ name: '1.1',
471
+ value: 'M.D',
472
+ },
473
+ {
474
+ name: '01.01',
475
+ value: 'MM.DD',
476
+ },
477
+ {
478
+ name: '1月',
479
+ value: 'M月',
480
+ },
481
+ {
482
+ name: '01月',
483
+ value: 'MM月',
484
+ },
485
+ {
486
+ name: '1(月)',
487
+ value: 'M',
488
+ },
489
+ {
490
+ name: '01(月)',
491
+ value: 'MM',
492
+ },
493
+ {
494
+ name: '1日',
495
+ value: 'D日',
496
+ },
497
+ {
498
+ name: '01日',
499
+ value: 'DD日',
500
+ },
501
+ {
502
+ name: '1(日)',
503
+ value: 'D',
504
+ },
505
+ {
506
+ name: '01(日)',
507
+ value: 'DD',
508
+ },
509
+ {
510
+ name: '08:00:00',
511
+ value: 'HH:mm:ss',
512
+ },
513
+ {
514
+ name: '08:00',
515
+ value: 'HH:mm',
516
+ },
517
+ {
518
+ name: '星期一',
519
+ value: 'X',
520
+ },
521
+ {
522
+ name: 'Monday',
523
+ value: 'W',
524
+ },
525
+ {
526
+ name: 'Mon',
527
+ value: 'w',
528
+ },
529
+ ],
530
+ span: 24,
531
+ },
532
+ },
533
+ ],
534
+ type: 'group',
535
+ },
536
+ {
537
+ rule: [['show', '$eq', true]],
538
+ name: 'appearance',
539
+ displayName: '展示',
540
+ value: [
541
+ {
542
+ name: 'count',
543
+ displayName: '标签数量',
544
+ value: count,
545
+ type: 'number',
546
+ config: {
547
+ min: 2,
548
+ span: 12,
549
+ },
550
+ },
551
+ {
552
+ name: 'angle',
553
+ displayName: '文字角度',
554
+ value: angle,
555
+ type: 'number',
556
+ config: {
557
+ span: 12,
558
+ suffix: '°',
559
+ },
560
+ },
561
+ {
562
+ name: 'wordBreak',
563
+ displayName: '行字数限制',
564
+ value: wordBreak,
565
+ type: 'select',
566
+ config: {
567
+ options: [{ name: '不限制', value: 'keep-all' }],
568
+ allowInput: true,
569
+ span: 12,
570
+ },
571
+ },
572
+ ],
573
+ type: 'group',
574
+ },
575
+ {
576
+ rule: [['show', '$eq', true]],
577
+ ...translate(labelTranslateX, labelTranslateY),
578
+ },
579
+ {
580
+ rule: [['show', '$eq', true]],
581
+ name: 'font',
582
+ displayName: '文本样式',
583
+ value: font,
584
+ type: 'textStyle',
585
+ },
586
+ ],
587
+ });
588
+
589
+ const defaultValueAxisLabel = {
590
+ show: true,
591
+ extent: { min: '0', max: '' },
592
+ auto: false,
593
+ mode: 'count',
594
+ count: 3,
595
+ step: 100,
596
+ decimal: 0,
597
+ suffix: '',
598
+ translate: { x: 6, y: 0 },
599
+ font: defaultFont,
600
+ };
601
+ export const valueAsixLabel = ({
602
+ show: showLabel = defaultValueAxisLabel.show,
603
+ extent: {
604
+ min = defaultValueAxisLabel.extent.min,
605
+ max = defaultValueAxisLabel.extent.max,
606
+ } = defaultValueAxisLabel.extent,
607
+ auto = defaultValueAxisLabel.auto,
608
+ mode = defaultValueAxisLabel.mode,
609
+ count = defaultValueAxisLabel.count,
610
+ step = defaultValueAxisLabel.step,
611
+ decimal = defaultValueAxisLabel.decimal,
612
+ suffix = defaultValueAxisLabel.suffix,
613
+ translate: {
614
+ x: labelTranslateX = defaultValueAxisLabel.translate.x,
615
+ y: labelTranslateY = defaultValueAxisLabel.translate.y,
616
+ } = defaultValueAxisLabel.translate,
617
+ font: labelFont = defaultValueAxisLabel.font,
618
+ } = defaultValueAxisLabel) => ({
619
+ name: 'label',
620
+ displayName: '轴标签',
621
+ value: [
622
+ {
623
+ name: 'show',
624
+ displayName: '显示',
625
+ value: showLabel,
626
+ type: 'boolean',
627
+ },
628
+ {
629
+ rule: [['show', '$eq', true]],
630
+ ...extent({ min, max }),
631
+ },
632
+ {
633
+ rule: [['show', '$eq', true]],
634
+ name: 'auto',
635
+ displayName: '刻度自适应',
636
+ value: auto,
637
+ type: 'boolean',
638
+ },
639
+ {
640
+ rule: [
641
+ ['show', '$eq', true],
642
+ ['auto', '$eq', false],
643
+ ],
644
+ name: 'mode',
645
+ displayName: '模式',
646
+ value: mode,
647
+ type: 'radio',
648
+ config: {
649
+ options: [
650
+ { name: '数量强制', value: 'count' },
651
+ { name: '步长强制', value: 'step' },
652
+ ],
653
+ },
654
+ },
655
+ {
656
+ rule: [
657
+ ['show', '$eq', true],
658
+ ['auto', '$eq', false],
659
+ ['mode', '$eq', 'count'],
660
+ ],
661
+ name: 'count',
662
+ displayName: '标签数量',
663
+ value: count,
664
+ min: 2,
665
+ type: 'number',
666
+ },
667
+ {
668
+ rule: [
669
+ ['show', '$eq', true],
670
+ ['auto', '$eq', false],
671
+ ['mode', '$eq', 'step'],
672
+ ],
673
+ name: 'step',
674
+ displayName: '步长',
675
+ value: step,
676
+ type: 'number',
677
+ },
678
+ {
679
+ rule: [
680
+ ['show', '$eq', true],
681
+ ['auto', '$eq', false],
682
+ ],
683
+ name: 'decimal',
684
+ displayName: '小数位数',
685
+ value: decimal,
686
+ type: 'number',
687
+ },
688
+ {
689
+ rule: [['show', '$eq', true]],
690
+ name: 'suffix',
691
+ displayName: '后缀内容',
692
+ value: suffix,
693
+ type: 'input',
694
+ },
695
+ {
696
+ rule: [['show', '$eq', true]],
697
+ ...translate(labelTranslateX, labelTranslateY),
698
+ },
699
+ {
700
+ rule: [['show', '$eq', true]],
701
+ name: 'font',
702
+ displayName: '文本样式',
703
+ value: labelFont,
704
+ type: 'textStyle',
705
+ },
706
+ ],
707
+ });