verce-vue-test 0.0.30 → 0.0.31
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/package.json +1 -1
- package/src/views/FundCockpitView.vue +257 -381
package/package.json
CHANGED
|
@@ -4,23 +4,16 @@ import type { ComponentPublicInstance } from 'vue'
|
|
|
4
4
|
import * as echarts from 'echarts'
|
|
5
5
|
import type { ECharts, EChartsOption } from 'echarts'
|
|
6
6
|
|
|
7
|
-
interface
|
|
7
|
+
interface MetricRow {
|
|
8
8
|
label: string
|
|
9
9
|
value: string
|
|
10
|
-
unit?: string
|
|
11
10
|
}
|
|
12
11
|
|
|
13
12
|
interface MetricCard {
|
|
14
13
|
tone: 'blue' | 'green' | 'purple' | 'bank'
|
|
15
14
|
title: string
|
|
16
|
-
|
|
17
|
-
unit: string
|
|
18
|
-
subLabel?: string
|
|
19
|
-
subValue?: string
|
|
20
|
-
subUnit?: string
|
|
21
|
-
extraRows?: MetricExtraRow[]
|
|
15
|
+
rows: MetricRow[]
|
|
22
16
|
progress: number
|
|
23
|
-
visual: 'line' | 'bars' | 'bank'
|
|
24
17
|
}
|
|
25
18
|
|
|
26
19
|
interface GaugeCard {
|
|
@@ -50,47 +43,39 @@ const metricCards: MetricCard[] = [
|
|
|
50
43
|
{
|
|
51
44
|
tone: 'blue',
|
|
52
45
|
title: '资金余额',
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
subUnit: '亿',
|
|
46
|
+
rows: [
|
|
47
|
+
{ label: '资金余额(亿):', value: '891.17' },
|
|
48
|
+
{ label: '当日净流入(亿):', value: '1455.26' },
|
|
49
|
+
],
|
|
58
50
|
progress: 78,
|
|
59
|
-
visual: 'line',
|
|
60
51
|
},
|
|
61
52
|
{
|
|
62
53
|
tone: 'green',
|
|
63
54
|
title: '报备收款',
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
subUnit: '亿',
|
|
55
|
+
rows: [
|
|
56
|
+
{ label: '报备收款(亿):', value: '5624.57' },
|
|
57
|
+
{ label: '实际收款(亿):', value: '6260610398.41' },
|
|
58
|
+
],
|
|
69
59
|
progress: 92,
|
|
70
|
-
visual: 'bars',
|
|
71
60
|
},
|
|
72
61
|
{
|
|
73
62
|
tone: 'purple',
|
|
74
|
-
title: '
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
subUnit: '亿',
|
|
63
|
+
title: '报备扎金',
|
|
64
|
+
rows: [
|
|
65
|
+
{ label: '报备扎金(亿):', value: '4733.39' },
|
|
66
|
+
{ label: '实际扎金(亿):', value: '6260608943.15' },
|
|
67
|
+
],
|
|
80
68
|
progress: 87,
|
|
81
|
-
visual: 'line',
|
|
82
69
|
},
|
|
83
70
|
{
|
|
84
71
|
tone: 'bank',
|
|
85
72
|
title: '人行账户余额',
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
{ label: '
|
|
90
|
-
{ label: '超额准备金', value: '0.00', unit: '亿' },
|
|
73
|
+
rows: [
|
|
74
|
+
{ label: '人行账户余额(亿):', value: '0.00' },
|
|
75
|
+
{ label: '法定存款准备金(亿):', value: '0.00' },
|
|
76
|
+
{ label: '超额准备金(亿):', value: '0.00' },
|
|
91
77
|
],
|
|
92
78
|
progress: 0,
|
|
93
|
-
visual: 'bank',
|
|
94
79
|
},
|
|
95
80
|
]
|
|
96
81
|
|
|
@@ -279,60 +264,68 @@ function createCashflowOption(): EChartsOption {
|
|
|
279
264
|
}
|
|
280
265
|
}
|
|
281
266
|
|
|
282
|
-
function
|
|
267
|
+
function createLiquidityRingOption(card: GaugeCard): EChartsOption {
|
|
268
|
+
const progress = Math.min(Math.max(card.needle, 0), card.max)
|
|
269
|
+
const rest = Math.max(card.max - progress, 0)
|
|
270
|
+
const ringGradient = new echarts.graphic.LinearGradient(0, 0, 1, 1, [
|
|
271
|
+
{ offset: 0, color: '#1278ff' },
|
|
272
|
+
{ offset: 0.5, color: '#33f0ff' },
|
|
273
|
+
{ offset: 1, color: '#58ff86' },
|
|
274
|
+
])
|
|
275
|
+
|
|
283
276
|
return {
|
|
284
277
|
animationDuration: 900,
|
|
278
|
+
graphic: [
|
|
279
|
+
{
|
|
280
|
+
type: 'text',
|
|
281
|
+
left: 'center',
|
|
282
|
+
top: '44%',
|
|
283
|
+
style: {
|
|
284
|
+
text: card.value,
|
|
285
|
+
fill: '#34eaff',
|
|
286
|
+
fontSize: 30,
|
|
287
|
+
fontWeight: 800,
|
|
288
|
+
textAlign: 'center',
|
|
289
|
+
textShadowBlur: 14,
|
|
290
|
+
textShadowColor: 'rgba(47, 233, 255, .55)',
|
|
291
|
+
},
|
|
292
|
+
},
|
|
293
|
+
],
|
|
285
294
|
series: [
|
|
286
295
|
{
|
|
287
|
-
type: '
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
[1, '#ff5b5c'],
|
|
300
|
-
],
|
|
301
|
-
},
|
|
296
|
+
type: 'pie',
|
|
297
|
+
radius: ['62%', '78%'],
|
|
298
|
+
center: ['50%', '52%'],
|
|
299
|
+
startAngle: 90,
|
|
300
|
+
clockwise: true,
|
|
301
|
+
silent: true,
|
|
302
|
+
label: { show: false },
|
|
303
|
+
labelLine: { show: false },
|
|
304
|
+
itemStyle: {
|
|
305
|
+
borderRadius: 10,
|
|
306
|
+
borderColor: 'rgba(2, 14, 33, .5)',
|
|
307
|
+
borderWidth: 3,
|
|
302
308
|
},
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
309
|
+
data: [
|
|
310
|
+
{ value: progress, itemStyle: { color: ringGradient } },
|
|
311
|
+
{ value: rest, itemStyle: { color: 'rgba(33, 79, 124, .28)' } },
|
|
312
|
+
],
|
|
313
|
+
},
|
|
314
|
+
{
|
|
315
|
+
type: 'pie',
|
|
316
|
+
radius: ['46%', '47%'],
|
|
317
|
+
center: ['50%', '52%'],
|
|
318
|
+
silent: true,
|
|
319
|
+
label: { show: false },
|
|
320
|
+
labelLine: { show: false },
|
|
321
|
+
data: [
|
|
322
|
+
{
|
|
323
|
+
value: 1,
|
|
324
|
+
itemStyle: {
|
|
325
|
+
color: 'rgba(58, 216, 255, .18)',
|
|
326
|
+
},
|
|
308
327
|
},
|
|
309
|
-
|
|
310
|
-
axisTick: {
|
|
311
|
-
distance: -18,
|
|
312
|
-
length: 6,
|
|
313
|
-
lineStyle: { color: '#cbe7ff', width: 2 },
|
|
314
|
-
},
|
|
315
|
-
splitLine: {
|
|
316
|
-
distance: -18,
|
|
317
|
-
length: 15,
|
|
318
|
-
lineStyle: { color: '#dff6ff', width: 3 },
|
|
319
|
-
},
|
|
320
|
-
axisLabel: {
|
|
321
|
-
color: 'inherit',
|
|
322
|
-
distance: -34,
|
|
323
|
-
fontSize: 13,
|
|
324
|
-
},
|
|
325
|
-
anchor: { show: false },
|
|
326
|
-
title: { show: false },
|
|
327
|
-
detail: {
|
|
328
|
-
valueAnimation: true,
|
|
329
|
-
offsetCenter: [0, '42%'],
|
|
330
|
-
color: '#30dcff',
|
|
331
|
-
fontSize: 28,
|
|
332
|
-
fontWeight: 700,
|
|
333
|
-
formatter: () => card.value,
|
|
334
|
-
},
|
|
335
|
-
data: [{ value: card.needle }],
|
|
328
|
+
],
|
|
336
329
|
},
|
|
337
330
|
],
|
|
338
331
|
}
|
|
@@ -421,9 +414,9 @@ onMounted(async () => {
|
|
|
421
414
|
updateCockpitScale()
|
|
422
415
|
await nextTick()
|
|
423
416
|
createChart(cashflowChart.value, createCashflowOption())
|
|
424
|
-
createChart(liquidityGauge.value,
|
|
425
|
-
createChart(coverageGauge.value,
|
|
426
|
-
createChart(stableGauge.value,
|
|
417
|
+
createChart(liquidityGauge.value, createLiquidityRingOption(gaugeCards[0]!))
|
|
418
|
+
createChart(coverageGauge.value, createLiquidityRingOption(gaugeCards[1]!))
|
|
419
|
+
createChart(stableGauge.value, createLiquidityRingOption(gaugeCards[2]!))
|
|
427
420
|
createChart(maturityChart.value, createMaturityOption())
|
|
428
421
|
window.addEventListener('resize', handleViewportChange)
|
|
429
422
|
window.visualViewport?.addEventListener('resize', handleViewportChange)
|
|
@@ -443,12 +436,9 @@ onUnmounted(() => {
|
|
|
443
436
|
<div class="brand">
|
|
444
437
|
<span class="logo-mark">C</span>
|
|
445
438
|
<h1>资金驾驶舱</h1>
|
|
446
|
-
<p>资金盘位等流动性管理平台</p>
|
|
447
439
|
</div>
|
|
448
440
|
|
|
449
441
|
<div class="toolbar">
|
|
450
|
-
<span class="toolbar-item calendar-icon">2026-06-04(周三)</span>
|
|
451
|
-
<span class="toolbar-item clock-icon">10:30:45</span>
|
|
452
442
|
<button class="export-button" type="button">
|
|
453
443
|
<span class="download-icon"></span>
|
|
454
444
|
导出报表
|
|
@@ -463,19 +453,14 @@ onUnmounted(() => {
|
|
|
463
453
|
<span class="metric-icon-symbol"></span>
|
|
464
454
|
</div>
|
|
465
455
|
<div class="metric-content">
|
|
466
|
-
<
|
|
467
|
-
|
|
468
|
-
<
|
|
469
|
-
|
|
470
|
-
</div>
|
|
471
|
-
<p v-if="card.subLabel" class="metric-sub-label">{{ card.subLabel }}</p>
|
|
472
|
-
<p v-if="card.subValue" class="metric-sub-value">{{ card.subValue }} {{ card.subUnit }}</p>
|
|
473
|
-
</div>
|
|
474
|
-
<div class="metric-visual" :class="`is-${card.visual}`">
|
|
475
|
-
<span v-for="index in 6" :key="index"></span>
|
|
456
|
+
<p v-for="row in card.rows" :key="row.label" class="metric-row">
|
|
457
|
+
<span>{{ row.label }}</span>
|
|
458
|
+
<b>{{ row.value }}</b>
|
|
459
|
+
</p>
|
|
476
460
|
</div>
|
|
461
|
+
<span class="metric-divider"></span>
|
|
477
462
|
<div class="metric-progress">
|
|
478
|
-
<span
|
|
463
|
+
<span>进度:</span>
|
|
479
464
|
<div class="progress-track">
|
|
480
465
|
<i :style="{ width: `${card.progress}%` }"></i>
|
|
481
466
|
</div>
|
|
@@ -490,27 +475,14 @@ onUnmounted(() => {
|
|
|
490
475
|
<span class="metric-icon-symbol"></span>
|
|
491
476
|
</div>
|
|
492
477
|
<div class="metric-content">
|
|
493
|
-
<
|
|
494
|
-
|
|
495
|
-
<
|
|
496
|
-
|
|
497
|
-
</div>
|
|
498
|
-
<template v-if="card.extraRows">
|
|
499
|
-
<p v-for="row in card.extraRows" :key="row.label" class="metric-extra-row">
|
|
500
|
-
<span>{{ row.label }}</span>
|
|
501
|
-
<b>{{ row.value }} {{ row.unit }}</b>
|
|
502
|
-
</p>
|
|
503
|
-
</template>
|
|
504
|
-
<template v-else>
|
|
505
|
-
<p v-if="card.subLabel" class="metric-sub-label">{{ card.subLabel }}</p>
|
|
506
|
-
<p v-if="card.subValue" class="metric-sub-value">{{ card.subValue }} {{ card.subUnit }}</p>
|
|
507
|
-
</template>
|
|
508
|
-
</div>
|
|
509
|
-
<div class="metric-visual" :class="`is-${card.visual}`">
|
|
510
|
-
<span v-for="index in 6" :key="index"></span>
|
|
478
|
+
<p v-for="row in card.rows" :key="row.label" class="metric-row">
|
|
479
|
+
<span>{{ row.label }}</span>
|
|
480
|
+
<b>{{ row.value }}</b>
|
|
481
|
+
</p>
|
|
511
482
|
</div>
|
|
483
|
+
<span class="metric-divider"></span>
|
|
512
484
|
<div class="metric-progress">
|
|
513
|
-
<span
|
|
485
|
+
<span>进度:</span>
|
|
514
486
|
<div class="progress-track">
|
|
515
487
|
<i :style="{ width: `${card.progress}%` }"></i>
|
|
516
488
|
</div>
|
|
@@ -523,7 +495,6 @@ onUnmounted(() => {
|
|
|
523
495
|
<section class="cashflow-section">
|
|
524
496
|
<div class="section-title-row">
|
|
525
497
|
<h2>未来现金流</h2>
|
|
526
|
-
<button class="range-button" type="button">近15天 <span></span></button>
|
|
527
498
|
</div>
|
|
528
499
|
<span class="axis-unit">(亿元)</span>
|
|
529
500
|
<div ref="cashflowChart" class="cashflow-chart"></div>
|
|
@@ -546,7 +517,6 @@ onUnmounted(() => {
|
|
|
546
517
|
</section>
|
|
547
518
|
|
|
548
519
|
<section class="table-section shibor-section">
|
|
549
|
-
<h2><span></span>利率/SHIBOR/FTP 数据</h2>
|
|
550
520
|
<div class="table-shell">
|
|
551
521
|
<table>
|
|
552
522
|
<thead>
|
|
@@ -574,7 +544,6 @@ onUnmounted(() => {
|
|
|
574
544
|
</section>
|
|
575
545
|
|
|
576
546
|
<section class="table-section monitor-section">
|
|
577
|
-
<h2><span></span>关键指标监控</h2>
|
|
578
547
|
<div class="table-shell">
|
|
579
548
|
<table>
|
|
580
549
|
<thead>
|
|
@@ -634,16 +603,14 @@ onUnmounted(() => {
|
|
|
634
603
|
position: absolute;
|
|
635
604
|
inset: 0;
|
|
636
605
|
pointer-events: none;
|
|
637
|
-
background:
|
|
638
|
-
linear-gradient(90deg, transparent 0 49%, rgba(40, 152, 255, .08) 49.95% 50.05%, transparent 50.2%),
|
|
639
|
-
linear-gradient(180deg, rgba(0, 8, 18, .1), transparent 24%, rgba(0, 6, 16, .22));
|
|
606
|
+
background: linear-gradient(180deg, rgba(0, 8, 18, .1), transparent 24%, rgba(0, 6, 16, .22));
|
|
640
607
|
}
|
|
641
608
|
|
|
642
609
|
.topbar {
|
|
643
610
|
position: absolute;
|
|
644
|
-
left:
|
|
611
|
+
left: 18px;
|
|
645
612
|
top: 22px;
|
|
646
|
-
width:
|
|
613
|
+
width: 1636px;
|
|
647
614
|
height: 42px;
|
|
648
615
|
display: flex;
|
|
649
616
|
align-items: center;
|
|
@@ -652,7 +619,6 @@ onUnmounted(() => {
|
|
|
652
619
|
|
|
653
620
|
.brand,
|
|
654
621
|
.toolbar,
|
|
655
|
-
.toolbar-item,
|
|
656
622
|
.export-button {
|
|
657
623
|
display: flex;
|
|
658
624
|
align-items: center;
|
|
@@ -685,38 +651,12 @@ onUnmounted(() => {
|
|
|
685
651
|
text-shadow: 0 0 18px rgba(104, 194, 255, .24);
|
|
686
652
|
}
|
|
687
653
|
|
|
688
|
-
.brand p {
|
|
689
|
-
margin-left: 4px;
|
|
690
|
-
color: #d5e4f5;
|
|
691
|
-
font-size: 15px;
|
|
692
|
-
font-weight: 600;
|
|
693
|
-
}
|
|
694
|
-
|
|
695
654
|
.toolbar {
|
|
696
655
|
gap: 32px;
|
|
697
656
|
color: #e0edf9;
|
|
698
657
|
font-size: 14px;
|
|
699
658
|
}
|
|
700
659
|
|
|
701
|
-
.toolbar-item {
|
|
702
|
-
gap: 9px;
|
|
703
|
-
white-space: nowrap;
|
|
704
|
-
}
|
|
705
|
-
|
|
706
|
-
.toolbar-item::before {
|
|
707
|
-
content: "";
|
|
708
|
-
width: 18px;
|
|
709
|
-
height: 18px;
|
|
710
|
-
display: inline-block;
|
|
711
|
-
border: 1px solid rgba(230, 244, 255, .86);
|
|
712
|
-
border-radius: 3px;
|
|
713
|
-
box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .04);
|
|
714
|
-
}
|
|
715
|
-
|
|
716
|
-
.clock-icon::before {
|
|
717
|
-
border-radius: 50%;
|
|
718
|
-
}
|
|
719
|
-
|
|
720
660
|
.export-button {
|
|
721
661
|
height: 37px;
|
|
722
662
|
gap: 9px;
|
|
@@ -762,243 +702,229 @@ onUnmounted(() => {
|
|
|
762
702
|
|
|
763
703
|
.metric-strip {
|
|
764
704
|
position: absolute;
|
|
765
|
-
left:
|
|
766
|
-
top:
|
|
767
|
-
width:
|
|
768
|
-
height:
|
|
705
|
+
left: 18px;
|
|
706
|
+
top: 94px;
|
|
707
|
+
width: 1636px;
|
|
708
|
+
height: 154px;
|
|
769
709
|
display: grid;
|
|
770
|
-
grid-template-columns:
|
|
771
|
-
gap:
|
|
710
|
+
grid-template-columns: 805px 805px;
|
|
711
|
+
gap: 26px;
|
|
772
712
|
}
|
|
773
713
|
|
|
774
714
|
.metric-group {
|
|
775
715
|
display: grid;
|
|
776
716
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
777
|
-
gap:
|
|
717
|
+
gap: 8px;
|
|
778
718
|
min-width: 0;
|
|
779
719
|
}
|
|
780
720
|
|
|
781
721
|
.metric-card {
|
|
782
722
|
position: relative;
|
|
783
723
|
min-width: 0;
|
|
784
|
-
height:
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
724
|
+
height: 154px;
|
|
725
|
+
overflow: hidden;
|
|
726
|
+
padding: 24px 24px 20px 134px;
|
|
727
|
+
border: 0;
|
|
728
|
+
border-radius: 0;
|
|
729
|
+
background: transparent;
|
|
730
|
+
box-shadow: none;
|
|
791
731
|
}
|
|
792
732
|
|
|
793
733
|
.metric-icon {
|
|
794
734
|
position: absolute;
|
|
795
|
-
left:
|
|
796
|
-
top:
|
|
797
|
-
width:
|
|
798
|
-
height:
|
|
799
|
-
border-radius:
|
|
735
|
+
left: 38px;
|
|
736
|
+
top: 34px;
|
|
737
|
+
width: 54px;
|
|
738
|
+
height: 54px;
|
|
739
|
+
border-radius: 0;
|
|
800
740
|
display: flex;
|
|
801
741
|
align-items: center;
|
|
802
742
|
justify-content: center;
|
|
803
|
-
|
|
743
|
+
background: transparent;
|
|
744
|
+
box-shadow: none;
|
|
804
745
|
}
|
|
805
746
|
|
|
806
747
|
.metric-icon-symbol {
|
|
807
748
|
position: relative;
|
|
808
749
|
display: block;
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
}
|
|
814
|
-
|
|
815
|
-
.metric-card.is-blue .metric-icon {
|
|
816
|
-
background: linear-gradient(160deg, rgba(14, 119, 248, .88), rgba(5, 48, 120, .95));
|
|
750
|
+
width: 52px;
|
|
751
|
+
height: 52px;
|
|
752
|
+
transform: scale(.78);
|
|
753
|
+
transform-origin: center;
|
|
817
754
|
}
|
|
818
755
|
|
|
819
756
|
.metric-card.is-blue .metric-icon-symbol::before {
|
|
820
757
|
content: "";
|
|
821
|
-
|
|
822
|
-
|
|
758
|
+
position: absolute;
|
|
759
|
+
left: 4px;
|
|
760
|
+
top: 9px;
|
|
761
|
+
width: 37px;
|
|
823
762
|
height: 26px;
|
|
824
|
-
border
|
|
825
|
-
|
|
826
|
-
box-shadow:
|
|
763
|
+
border: 3px solid #39efcd;
|
|
764
|
+
border-radius: 6px;
|
|
765
|
+
box-shadow: none;
|
|
827
766
|
}
|
|
828
767
|
|
|
829
768
|
.metric-card.is-blue .metric-icon-symbol::after {
|
|
830
|
-
content: "";
|
|
769
|
+
content: "¥";
|
|
831
770
|
position: absolute;
|
|
832
|
-
right:
|
|
833
|
-
bottom:
|
|
834
|
-
width:
|
|
835
|
-
height:
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
771
|
+
right: 0;
|
|
772
|
+
bottom: 1px;
|
|
773
|
+
width: 25px;
|
|
774
|
+
height: 25px;
|
|
775
|
+
display: flex;
|
|
776
|
+
align-items: center;
|
|
777
|
+
justify-content: center;
|
|
778
|
+
border-radius: 50%;
|
|
779
|
+
color: #045e86;
|
|
780
|
+
background: linear-gradient(180deg, #47eff2, #26bfe3);
|
|
781
|
+
font-size: 15px;
|
|
782
|
+
line-height: 1;
|
|
783
|
+
font-weight: 900;
|
|
784
|
+
box-shadow: none;
|
|
843
785
|
}
|
|
844
786
|
|
|
845
787
|
.metric-card.is-green .metric-icon-symbol::before {
|
|
846
|
-
content: "
|
|
788
|
+
content: "";
|
|
789
|
+
position: absolute;
|
|
790
|
+
left: 7px;
|
|
791
|
+
top: 3px;
|
|
792
|
+
width: 33px;
|
|
793
|
+
height: 45px;
|
|
794
|
+
border-radius: 3px;
|
|
795
|
+
background:
|
|
796
|
+
linear-gradient(90deg, rgba(3, 87, 108, .52) 8px, transparent 8px) 10px 14px / 19px 3px no-repeat,
|
|
797
|
+
linear-gradient(90deg, rgba(3, 87, 108, .48) 8px, transparent 8px) 10px 25px / 20px 3px no-repeat,
|
|
798
|
+
linear-gradient(90deg, rgba(3, 87, 108, .46) 8px, transparent 8px) 10px 36px / 18px 3px no-repeat,
|
|
799
|
+
linear-gradient(180deg, #55ffc7, #28d8d4);
|
|
800
|
+
clip-path: polygon(0 0, 70% 0, 100% 28%, 100% 100%, 0 100%);
|
|
847
801
|
}
|
|
848
802
|
|
|
849
|
-
.metric-card.is-
|
|
850
|
-
|
|
803
|
+
.metric-card.is-green .metric-icon-symbol::after,
|
|
804
|
+
.metric-card.is-purple .metric-icon-symbol::after {
|
|
805
|
+
content: "¥";
|
|
806
|
+
position: absolute;
|
|
807
|
+
right: 1px;
|
|
808
|
+
bottom: 1px;
|
|
809
|
+
width: 25px;
|
|
810
|
+
height: 25px;
|
|
811
|
+
display: flex;
|
|
812
|
+
align-items: center;
|
|
813
|
+
justify-content: center;
|
|
814
|
+
border-radius: 50%;
|
|
815
|
+
color: #04608a;
|
|
816
|
+
background: linear-gradient(180deg, #4ff1f1, #28bfdc);
|
|
817
|
+
font-size: 15px;
|
|
818
|
+
line-height: 1;
|
|
819
|
+
font-weight: 900;
|
|
820
|
+
box-shadow: none;
|
|
851
821
|
}
|
|
852
822
|
|
|
853
823
|
.metric-card.is-purple .metric-icon-symbol::before {
|
|
854
|
-
content: "
|
|
824
|
+
content: "";
|
|
825
|
+
position: absolute;
|
|
826
|
+
left: 5px;
|
|
827
|
+
top: 6px;
|
|
828
|
+
width: 39px;
|
|
829
|
+
height: 39px;
|
|
830
|
+
border-radius: 50%;
|
|
831
|
+
background: conic-gradient(from 0deg, #35ffc1 0 25%, transparent 25% 31%, #28d5e4 31% 100%);
|
|
832
|
+
box-shadow: none;
|
|
855
833
|
}
|
|
856
834
|
|
|
857
|
-
.metric-card.is-bank .metric-icon {
|
|
858
|
-
|
|
835
|
+
.metric-card.is-bank .metric-icon-symbol::before {
|
|
836
|
+
content: "";
|
|
837
|
+
position: absolute;
|
|
838
|
+
left: 7px;
|
|
839
|
+
top: 4px;
|
|
840
|
+
width: 38px;
|
|
841
|
+
height: 44px;
|
|
842
|
+
clip-path: polygon(50% 0, 92% 18%, 82% 78%, 50% 100%, 18% 78%, 8% 18%);
|
|
843
|
+
background: linear-gradient(180deg, #55ff91, #32dfa5);
|
|
844
|
+
box-shadow: none;
|
|
859
845
|
}
|
|
860
846
|
|
|
861
|
-
.metric-card.is-bank .metric-icon-symbol::
|
|
862
|
-
content: "
|
|
863
|
-
|
|
847
|
+
.metric-card.is-bank .metric-icon-symbol::after {
|
|
848
|
+
content: "¥";
|
|
849
|
+
position: absolute;
|
|
850
|
+
left: 17px;
|
|
851
|
+
top: 17px;
|
|
852
|
+
color: #064f70;
|
|
853
|
+
font-size: 24px;
|
|
854
|
+
line-height: 1;
|
|
855
|
+
font-weight: 900;
|
|
864
856
|
}
|
|
865
857
|
|
|
866
858
|
.metric-content {
|
|
867
|
-
position:
|
|
859
|
+
position: absolute;
|
|
868
860
|
z-index: 2;
|
|
861
|
+
left: 126px;
|
|
862
|
+
top: 30px;
|
|
863
|
+
right: 23px;
|
|
864
|
+
display: grid;
|
|
865
|
+
row-gap: 13px;
|
|
869
866
|
}
|
|
870
867
|
|
|
871
|
-
.metric-
|
|
872
|
-
margin
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
line-height: 1.2;
|
|
876
|
-
font-weight: 700;
|
|
877
|
-
}
|
|
878
|
-
|
|
879
|
-
.metric-value {
|
|
880
|
-
margin-top: 8px;
|
|
881
|
-
display: flex;
|
|
868
|
+
.metric-row {
|
|
869
|
+
margin: 0;
|
|
870
|
+
display: grid;
|
|
871
|
+
grid-template-columns: minmax(0, 1fr) auto;
|
|
882
872
|
align-items: baseline;
|
|
883
|
-
gap:
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
.metric-value strong {
|
|
887
|
-
color: #f3f8ff;
|
|
888
|
-
font-size: 30px;
|
|
873
|
+
column-gap: 12px;
|
|
874
|
+
color: #eef8ff;
|
|
875
|
+
font-size: 17px;
|
|
889
876
|
line-height: 1;
|
|
890
877
|
font-weight: 800;
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
.metric-value span {
|
|
895
|
-
color: #f2f7ff;
|
|
896
|
-
font-size: 15px;
|
|
897
|
-
font-weight: 700;
|
|
898
|
-
}
|
|
899
|
-
|
|
900
|
-
.metric-sub-label {
|
|
901
|
-
margin-top: 14px;
|
|
902
|
-
color: #d6e4f4;
|
|
903
|
-
font-size: 14px;
|
|
904
|
-
line-height: 1;
|
|
905
|
-
}
|
|
906
|
-
|
|
907
|
-
.metric-sub-value {
|
|
908
|
-
margin-top: 7px;
|
|
909
|
-
color: #43f168;
|
|
910
|
-
font-size: 16px;
|
|
911
|
-
line-height: 1;
|
|
912
|
-
font-weight: 700;
|
|
878
|
+
text-shadow: 0 0 11px rgba(177, 224, 255, .18);
|
|
879
|
+
white-space: nowrap;
|
|
913
880
|
}
|
|
914
881
|
|
|
915
|
-
.metric-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
grid-template-columns: 1fr auto;
|
|
919
|
-
column-gap: 12px;
|
|
920
|
-
color: #dbe8f5;
|
|
921
|
-
font-size: 14px;
|
|
882
|
+
.metric-row b {
|
|
883
|
+
color: #f2f8ff;
|
|
884
|
+
font-size: 17px;
|
|
922
885
|
line-height: 1;
|
|
886
|
+
font-weight: 800;
|
|
887
|
+
letter-spacing: 0;
|
|
923
888
|
}
|
|
924
889
|
|
|
925
|
-
.metric-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
}
|
|
929
|
-
|
|
930
|
-
.metric-visual {
|
|
931
|
-
position: absolute;
|
|
932
|
-
right: 20px;
|
|
933
|
-
top: 43px;
|
|
934
|
-
width: 96px;
|
|
935
|
-
height: 52px;
|
|
936
|
-
opacity: .88;
|
|
937
|
-
}
|
|
938
|
-
|
|
939
|
-
.metric-visual span {
|
|
940
|
-
position: absolute;
|
|
941
|
-
display: block;
|
|
890
|
+
.metric-card.is-bank .metric-content {
|
|
891
|
+
top: 24px;
|
|
892
|
+
row-gap: 12px;
|
|
942
893
|
}
|
|
943
894
|
|
|
944
|
-
.metric-
|
|
945
|
-
|
|
946
|
-
bottom: 0;
|
|
947
|
-
background: linear-gradient(180deg, #148cff, transparent);
|
|
895
|
+
.metric-card.is-bank .metric-row {
|
|
896
|
+
font-size: 17px;
|
|
948
897
|
}
|
|
949
898
|
|
|
950
|
-
.metric-
|
|
951
|
-
.metric-visual.is-line span:nth-child(2) { left: 20px; height: 34px; transform: rotate(48deg); }
|
|
952
|
-
.metric-visual.is-line span:nth-child(3) { left: 43px; height: 50px; transform: rotate(-38deg); }
|
|
953
|
-
.metric-visual.is-line span:nth-child(4) { left: 62px; height: 30px; transform: rotate(48deg); }
|
|
954
|
-
.metric-visual.is-line span:nth-child(5) { left: 78px; height: 43px; transform: rotate(-28deg); }
|
|
955
|
-
.metric-visual.is-line span:nth-child(6) { left: 92px; height: 55px; transform: rotate(33deg); }
|
|
956
|
-
|
|
957
|
-
.metric-visual.is-line::after {
|
|
958
|
-
content: "";
|
|
899
|
+
.metric-divider {
|
|
959
900
|
position: absolute;
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
display: flex;
|
|
968
|
-
align-items: flex-end;
|
|
969
|
-
gap: 9px;
|
|
970
|
-
justify-content: flex-end;
|
|
971
|
-
}
|
|
972
|
-
|
|
973
|
-
.metric-visual.is-bars span {
|
|
974
|
-
position: static;
|
|
975
|
-
width: 8px;
|
|
976
|
-
border-radius: 6px 6px 0 0;
|
|
977
|
-
background: linear-gradient(180deg, #2d85ff, rgba(21, 87, 184, .12));
|
|
901
|
+
z-index: 1;
|
|
902
|
+
left: 28px;
|
|
903
|
+
right: 28px;
|
|
904
|
+
top: 99px;
|
|
905
|
+
height: 1px;
|
|
906
|
+
background: linear-gradient(90deg, transparent, rgba(135, 184, 229, .25) 10%, rgba(126, 177, 224, .22) 88%, transparent);
|
|
907
|
+
box-shadow: 0 1px 0 rgba(5, 19, 38, .58);
|
|
978
908
|
}
|
|
979
909
|
|
|
980
|
-
.metric-
|
|
981
|
-
|
|
982
|
-
.metric-visual.is-bars span:nth-child(3) { height: 34px; opacity: .62; }
|
|
983
|
-
.metric-visual.is-bars span:nth-child(4) { height: 43px; opacity: .75; }
|
|
984
|
-
.metric-visual.is-bars span:nth-child(5) { height: 49px; opacity: .86; }
|
|
985
|
-
.metric-visual.is-bars span:nth-child(6) { height: 54px; opacity: .95; }
|
|
986
|
-
|
|
987
|
-
.metric-visual.is-bank {
|
|
988
|
-
display: none;
|
|
910
|
+
.metric-card.is-bank .metric-divider {
|
|
911
|
+
top: 97px;
|
|
989
912
|
}
|
|
990
913
|
|
|
991
914
|
.metric-progress {
|
|
992
915
|
position: absolute;
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
916
|
+
z-index: 2;
|
|
917
|
+
left: 28px;
|
|
918
|
+
right: 28px;
|
|
919
|
+
bottom: 22px;
|
|
996
920
|
display: grid;
|
|
997
|
-
grid-template-columns:
|
|
921
|
+
grid-template-columns: 58px minmax(0, 1fr) 42px;
|
|
998
922
|
align-items: center;
|
|
999
923
|
gap: 12px;
|
|
1000
|
-
color: #
|
|
1001
|
-
font-size:
|
|
924
|
+
color: #f0f8ff;
|
|
925
|
+
font-size: 18px;
|
|
926
|
+
line-height: 1;
|
|
927
|
+
font-weight: 800;
|
|
1002
928
|
}
|
|
1003
929
|
|
|
1004
930
|
.progress-track {
|
|
@@ -1020,14 +946,15 @@ onUnmounted(() => {
|
|
|
1020
946
|
.metric-progress b {
|
|
1021
947
|
justify-self: end;
|
|
1022
948
|
color: #f5f9ff;
|
|
1023
|
-
font-size:
|
|
949
|
+
font-size: 18px;
|
|
950
|
+
line-height: 1;
|
|
1024
951
|
}
|
|
1025
952
|
|
|
1026
953
|
.cashflow-section {
|
|
1027
954
|
position: absolute;
|
|
1028
|
-
left:
|
|
955
|
+
left: 18px;
|
|
1029
956
|
top: 279px;
|
|
1030
|
-
width:
|
|
957
|
+
width: 805px;
|
|
1031
958
|
height: 398px;
|
|
1032
959
|
}
|
|
1033
960
|
|
|
@@ -1039,8 +966,7 @@ onUnmounted(() => {
|
|
|
1039
966
|
}
|
|
1040
967
|
|
|
1041
968
|
.section-title-row h2,
|
|
1042
|
-
.maturity-section h2
|
|
1043
|
-
.table-section h2 {
|
|
969
|
+
.maturity-section h2 {
|
|
1044
970
|
color: #eff8ff;
|
|
1045
971
|
font-size: 22px;
|
|
1046
972
|
line-height: 1;
|
|
@@ -1048,28 +974,6 @@ onUnmounted(() => {
|
|
|
1048
974
|
letter-spacing: 0;
|
|
1049
975
|
}
|
|
1050
976
|
|
|
1051
|
-
.range-button {
|
|
1052
|
-
width: 103px;
|
|
1053
|
-
height: 35px;
|
|
1054
|
-
display: inline-flex;
|
|
1055
|
-
align-items: center;
|
|
1056
|
-
justify-content: center;
|
|
1057
|
-
gap: 13px;
|
|
1058
|
-
border: 1px solid rgba(54, 126, 204, .25);
|
|
1059
|
-
border-radius: 8px;
|
|
1060
|
-
color: #f0f6ff;
|
|
1061
|
-
background: rgba(20, 56, 99, .72);
|
|
1062
|
-
font-size: 15px;
|
|
1063
|
-
}
|
|
1064
|
-
|
|
1065
|
-
.range-button span {
|
|
1066
|
-
width: 8px;
|
|
1067
|
-
height: 8px;
|
|
1068
|
-
border-right: 1px solid #a8bed6;
|
|
1069
|
-
border-bottom: 1px solid #a8bed6;
|
|
1070
|
-
transform: rotate(45deg) translateY(-2px);
|
|
1071
|
-
}
|
|
1072
|
-
|
|
1073
977
|
.axis-unit {
|
|
1074
978
|
position: absolute;
|
|
1075
979
|
left: 11px;
|
|
@@ -1088,9 +992,9 @@ onUnmounted(() => {
|
|
|
1088
992
|
|
|
1089
993
|
.gauge-section {
|
|
1090
994
|
position: absolute;
|
|
1091
|
-
left:
|
|
995
|
+
left: 849px;
|
|
1092
996
|
top: 280px;
|
|
1093
|
-
width:
|
|
997
|
+
width: 805px;
|
|
1094
998
|
height: 206px;
|
|
1095
999
|
display: grid;
|
|
1096
1000
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
@@ -1152,9 +1056,9 @@ onUnmounted(() => {
|
|
|
1152
1056
|
|
|
1153
1057
|
.maturity-section {
|
|
1154
1058
|
position: absolute;
|
|
1155
|
-
left:
|
|
1059
|
+
left: 849px;
|
|
1156
1060
|
top: 514px;
|
|
1157
|
-
width:
|
|
1061
|
+
width: 805px;
|
|
1158
1062
|
height: 184px;
|
|
1159
1063
|
}
|
|
1160
1064
|
|
|
@@ -1176,50 +1080,22 @@ onUnmounted(() => {
|
|
|
1176
1080
|
}
|
|
1177
1081
|
|
|
1178
1082
|
.shibor-section {
|
|
1179
|
-
left:
|
|
1083
|
+
left: 18px;
|
|
1180
1084
|
top: 711px;
|
|
1181
|
-
width:
|
|
1085
|
+
width: 805px;
|
|
1182
1086
|
}
|
|
1183
1087
|
|
|
1184
1088
|
.monitor-section {
|
|
1185
|
-
left:
|
|
1089
|
+
left: 849px;
|
|
1186
1090
|
top: 711px;
|
|
1187
|
-
width:
|
|
1188
|
-
}
|
|
1189
|
-
|
|
1190
|
-
.table-section h2 {
|
|
1191
|
-
height: 29px;
|
|
1192
|
-
display: flex;
|
|
1193
|
-
align-items: center;
|
|
1194
|
-
gap: 11px;
|
|
1195
|
-
font-size: 20px;
|
|
1196
|
-
}
|
|
1197
|
-
|
|
1198
|
-
.table-section h2 span {
|
|
1199
|
-
width: 23px;
|
|
1200
|
-
height: 23px;
|
|
1201
|
-
border-radius: 5px;
|
|
1202
|
-
background: linear-gradient(135deg, #1d81ff, #0755e8);
|
|
1203
|
-
box-shadow: 0 0 18px rgba(0, 115, 255, .48);
|
|
1204
|
-
}
|
|
1205
|
-
|
|
1206
|
-
.monitor-section h2 span::after,
|
|
1207
|
-
.shibor-section h2 span::after {
|
|
1208
|
-
content: "";
|
|
1209
|
-
display: block;
|
|
1210
|
-
width: 12px;
|
|
1211
|
-
height: 12px;
|
|
1212
|
-
margin: 5px auto 0;
|
|
1213
|
-
border: 2px solid #e9f6ff;
|
|
1214
|
-
border-top-width: 4px;
|
|
1215
|
-
border-radius: 2px;
|
|
1091
|
+
width: 805px;
|
|
1216
1092
|
}
|
|
1217
1093
|
|
|
1218
1094
|
.table-shell {
|
|
1219
1095
|
position: absolute;
|
|
1220
1096
|
left: 0;
|
|
1221
1097
|
right: 0;
|
|
1222
|
-
top:
|
|
1098
|
+
top: 0;
|
|
1223
1099
|
bottom: 0;
|
|
1224
1100
|
overflow: hidden;
|
|
1225
1101
|
border-radius: 6px;
|