st-comp 0.0.21 → 0.0.22

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.
@@ -0,0 +1,542 @@
1
+ <template>
2
+ <div style="height: 42px">
3
+ <st-linearLegend ref="linearLegendRef" :data="legendData" :unit="'%'"/>
4
+ <el-button
5
+ type="primary"
6
+ style="vertical-align: top; margin-left: 100px;"
7
+ @click="reset"
8
+ >重置</el-button>
9
+ </div>
10
+ <div style="width: 100%;height: calc(100% - 42px);">
11
+ <st-treeMap ref="chartRef" :data="data" :config="config" />
12
+ </div>
13
+ </template>
14
+
15
+ <script setup lang="ts">
16
+ import { ref, onMounted } from 'vue'
17
+
18
+ const linearLegendRef = ref()
19
+ const chartRef = ref()
20
+
21
+ const reset = () => {
22
+ chartRef.value.reset()
23
+ }
24
+
25
+ const legendData = [
26
+ {
27
+ range: [-Infinity, -7],
28
+ type: '()',
29
+ color: 'rgba(0, 128, 0, 0.4)',
30
+ },
31
+ {
32
+ range: [-7, -5],
33
+ type: '[)',
34
+ color: 'rgba(0, 128, 0, 0.6)',
35
+ },
36
+ {
37
+ range: [-5, -3],
38
+ type: '[)',
39
+ color: 'rgba(0, 128, 0, 0.8)',
40
+ },
41
+ {
42
+ range: [-3, 0],
43
+ type: '[)',
44
+ color: 'rgba(0, 128, 0, 1)',
45
+ },
46
+ {
47
+ range: 0,
48
+ type: '=',
49
+ color: '#000',
50
+ },
51
+ {
52
+ range: [0, 3],
53
+ type: '(]',
54
+ color: 'rgba(255, 0, 0, 1)',
55
+ },
56
+ {
57
+ range: [3, 5],
58
+ type: '(]',
59
+ color: 'rgba(255, 0, 0, 0.8)',
60
+ },
61
+ {
62
+ range: [5, 7],
63
+ type: '(]',
64
+ color: 'rgba(255, 0, 0, 0.6)',
65
+ },
66
+ {
67
+ range: [7, Infinity],
68
+ type: '()',
69
+ color: 'rgba(255, 0, 0, 0.4)',
70
+ },
71
+ ]
72
+
73
+ const config = {
74
+ tooltipFormatter: (info: any) => {
75
+ if (info.data.children) {
76
+ return `<div>
77
+ <div style="font-size: 18px; margin-bottom: 8px;">银行</div>
78
+ <div>市值:5.86万亿</div>
79
+ <div style="color: red;">当前涨幅:+0.16%</div>
80
+ </div>`
81
+ }
82
+ return `<div>
83
+ <div style="font-size: 18px; margin-bottom: 8px;">工商银行 601398</div>
84
+ <div>现价:5.34</div>
85
+ <div>昨收:5.33</div>
86
+ <div>市值:1.90万亿</div>
87
+ <div style="color: red;">当前涨幅:+0.19%</div>
88
+ <div style="color: red;">3日涨幅:+0.76%</div>
89
+ <div>量比:0.75</div>
90
+ <div>成交额:13.17亿</div>
91
+ <div style="color: red;">主力净值:3079.87万</div>
92
+ </div>`
93
+ },
94
+ }
95
+
96
+ const defaultData = [
97
+ {
98
+ value: 45728,
99
+ name: "银行",
100
+ children: [
101
+ {
102
+ value: 45728,
103
+ name: "工商银行",
104
+ }
105
+ ]
106
+ },
107
+ {
108
+ value: 322908,
109
+ name: "银行",
110
+ children: [
111
+ {
112
+ value: 14808,
113
+ name: "工商银行",
114
+ },
115
+ {
116
+ value: 6620,
117
+ name: "工商银行",
118
+ },
119
+ {
120
+ value: 27144,
121
+ name: "工商银行",
122
+ },
123
+ {
124
+ value: 171300,
125
+ name: "工商银行",
126
+ },
127
+ {
128
+ value: 6104,
129
+ name: "工商银行",
130
+ },
131
+ {
132
+ value: 8476,
133
+ name: "工商银行",
134
+ },
135
+ {
136
+ value: 35168,
137
+ name: "工商银行",
138
+ },
139
+ {
140
+ value: 7444,
141
+ name: "工商银行",
142
+ },
143
+ {
144
+ value: 8260,
145
+ name: "工商银行",
146
+ },
147
+ {
148
+ value: 9384,
149
+ name: "工商银行",
150
+ },
151
+ {
152
+ value: 28200,
153
+ name: "工商银行",
154
+ }
155
+ ]
156
+ },
157
+ {
158
+ value: 269644,
159
+ name: "银行",
160
+ children: [
161
+ {
162
+ value: 11224,
163
+ name: "工商银行",
164
+ },
165
+ {
166
+ value: 17144,
167
+ name: "工商银行",
168
+ },
169
+ {
170
+ value: 9164,
171
+ name: "工商银行",
172
+ },
173
+ {
174
+ value: 22996,
175
+ name: "工商银行",
176
+ },
177
+ {
178
+ value: 20692,
179
+ name: "工商银行",
180
+ },
181
+ {
182
+ value: 6120,
183
+ name: "工商银行",
184
+ },
185
+ {
186
+ value: 9108,
187
+ name: "工商银行",
188
+ },
189
+ {
190
+ value: 5808,
191
+ name: "工商银行",
192
+ },
193
+ {
194
+ value: 67212,
195
+ name: "工商银行",
196
+ },
197
+ {
198
+ value: 67012,
199
+ name: "工商银行",
200
+ },
201
+ {
202
+ value: 10488,
203
+ name: "工商银行",
204
+ },
205
+ {
206
+ value: 9656,
207
+ name: "工商银行",
208
+ },
209
+ {
210
+ value: 13020,
211
+ name: "工商银行",
212
+ }
213
+ ]
214
+ },
215
+ {
216
+ value: 201212,
217
+ name: "银行",
218
+ children: [
219
+ {
220
+ value: 201212,
221
+ name: "工商银行",
222
+ }
223
+ ]
224
+ },
225
+ {
226
+ value: 554632,
227
+ name: "银行",
228
+ children: [
229
+ {
230
+ value: 9800,
231
+ name: "工商银行",
232
+ },
233
+ {
234
+ value: 10144,
235
+ name: "工商银行",
236
+ },
237
+ {
238
+ value: 30320,
239
+ name: "工商银行",
240
+ },
241
+ {
242
+ value: 77200,
243
+ name: "工商银行",
244
+ },
245
+ {
246
+ value: 11496,
247
+ name: "工商银行",
248
+ },
249
+ {
250
+ value: 25920,
251
+ name: "工商银行",
252
+ },
253
+ {
254
+ value: 9152,
255
+ name: "工商银行",
256
+ },
257
+ {
258
+ value: 14552,
259
+ name: "工商银行",
260
+ },
261
+ {
262
+ value: 12024,
263
+ name: "工商银行",
264
+ },
265
+ {
266
+ value: 44244,
267
+ name: "工商银行",
268
+ },
269
+ {
270
+ value: 78380,
271
+ name: "工商银行",
272
+ },
273
+ {
274
+ value: 25628,
275
+ name: "工商银行",
276
+ },
277
+ {
278
+ value: 129696,
279
+ name: "工商银行",
280
+ },
281
+ {
282
+ value: 23712,
283
+ name: "工商银行",
284
+ },
285
+ {
286
+ value: 6644,
287
+ name: "工商银行",
288
+ },
289
+ {
290
+ value: 13168,
291
+ name: "工商银行",
292
+ },
293
+ {
294
+ value: 6224,
295
+ name: "工商银行",
296
+ },
297
+ {
298
+ value: 8660,
299
+ name: "工商银行",
300
+ },
301
+ {
302
+ value: 17668,
303
+ name: "工商银行",
304
+ }
305
+ ]
306
+ },
307
+ {
308
+ value: 68776,
309
+ name: "银行",
310
+ children: [
311
+ {
312
+ value: 8848,
313
+ name: "工商银行",
314
+ },
315
+ {
316
+ value: 54012,
317
+ name: "工商银行",
318
+ },
319
+ {
320
+ value: 5916,
321
+ name: "工商银行",
322
+ }
323
+ ]
324
+ },
325
+ {
326
+ value: 91632,
327
+ name: "银行",
328
+ children: [
329
+ {
330
+ value: 16476,
331
+ name: "工商银行",
332
+ },
333
+ {
334
+ value: 9788,
335
+ name: "工商银行",
336
+ },
337
+ {
338
+ value: 10276,
339
+ name: "工商银行",
340
+ },
341
+ {
342
+ value: 12468,
343
+ name: "工商银行",
344
+ },
345
+ {
346
+ value: 7336,
347
+ name: "工商银行",
348
+ },
349
+ {
350
+ value: 35288,
351
+ name: "工商银行",
352
+ }
353
+ ]
354
+ },
355
+ {
356
+ value: 57236,
357
+ name: "银行",
358
+ children: [
359
+ {
360
+ value: 14848,
361
+ name: "工商银行",
362
+ },
363
+ {
364
+ value: 14072,
365
+ name: "工商银行",
366
+ },
367
+ {
368
+ value: 28316,
369
+ name: "工商银行",
370
+ }
371
+ ]
372
+ },
373
+ {
374
+ value: 173676,
375
+ name: "银行",
376
+ children: [
377
+ {
378
+ value: 5380,
379
+ name: "工商银行",
380
+ },
381
+ {
382
+ value: 23180,
383
+ name: "工商银行",
384
+ },
385
+ {
386
+ value: 20588,
387
+ name: "工商银行",
388
+ },
389
+ {
390
+ value: 7648,
391
+ name: "工商银行",
392
+ },
393
+ {
394
+ value: 6280,
395
+ name: "工商银行",
396
+ },
397
+ {
398
+ value: 9608,
399
+ name: "工商银行",
400
+ },
401
+ {
402
+ value: 93312,
403
+ name: "工商银行",
404
+ },
405
+ {
406
+ value: 7680,
407
+ name: "工商银行",
408
+ }
409
+ ]
410
+ },
411
+ {
412
+ value: 420872,
413
+ name: "银行",
414
+ children: [
415
+ {
416
+ value: 16500,
417
+ name: "工商银行",
418
+ },
419
+ {
420
+ value: 10768,
421
+ name: "工商银行",
422
+ },
423
+ {
424
+ value: 19280,
425
+ name: "工商银行",
426
+ },
427
+ {
428
+ value: 16124,
429
+ name: "工商银行",
430
+ },
431
+ {
432
+ value: 7856,
433
+ name: "工商银行",
434
+ },
435
+ {
436
+ value: 23556,
437
+ name: "工商银行",
438
+ },
439
+ {
440
+ value: 12048,
441
+ name: "工商银行",
442
+ },
443
+ {
444
+ value: 14920,
445
+ name: "工商银行",
446
+ },
447
+ {
448
+ value: 27272,
449
+ name: "工商银行",
450
+ },
451
+ {
452
+ value: 16772,
453
+ name: "工商银行",
454
+ },
455
+ {
456
+ value: 6676,
457
+ name: "工商银行",
458
+ },
459
+ {
460
+ value: 9580,
461
+ name: "工商银行",
462
+ },
463
+ {
464
+ value: 104432,
465
+ name: "工商银行",
466
+ },
467
+ {
468
+ value: 9784,
469
+ name: "工商银行",
470
+ },
471
+ {
472
+ value: 7628,
473
+ name: "工商银行",
474
+ },
475
+ {
476
+ value: 6168,
477
+ name: "工商银行",
478
+ },
479
+ {
480
+ value: 24256,
481
+ name: "工商银行",
482
+ },
483
+ {
484
+ value: 5512,
485
+ name: "工商银行",
486
+ },
487
+ {
488
+ value: 62320,
489
+ name: "工商银行",
490
+ },
491
+ {
492
+ value: 8492,
493
+ name: "工商银行",
494
+ },
495
+ {
496
+ value: 5272,
497
+ name: "工商银行",
498
+ },
499
+ {
500
+ value: 5656,
501
+ name: "工商银行",
502
+ }
503
+ ]
504
+ },
505
+ {
506
+ value: 1503180,
507
+ name: "银行",
508
+ children: [
509
+ {
510
+ value: 1503180,
511
+ name: "工商银行",
512
+ }
513
+ ]
514
+ }
515
+ ]
516
+
517
+ const data = ref([])
518
+
519
+ onMounted(() => {
520
+ data.value = defaultData.map(item => {
521
+ const itemPercent = Math.random() > 0.5 ? Math.random() * 10 : 0 - Math.random() * 10
522
+ return {
523
+ value: item.value,
524
+ labelValue: (item.value / 10000).toFixed(2) + '万',
525
+ name: item.name,
526
+ percent: itemPercent.toFixed(2),
527
+ color: linearLegendRef.value.numberToColor(itemPercent),
528
+ children: item.children.map(child => {
529
+ const childPercent = Math.random() > 0.5 ? Math.random() * 10 : 0 - Math.random() * 10
530
+ return {
531
+ value: child.value,
532
+ name: child.name,
533
+ percent: childPercent.toFixed(2),
534
+ color: linearLegendRef.value.numberToColor(childPercent)
535
+ }
536
+ })
537
+ }
538
+ })
539
+ })
540
+ </script>
541
+
542
+ <style lang="scss" scoped></style>