Skip to content

Commit 8d09b57

Browse files
committed
feat: update availability
1 parent 288c814 commit 8d09b57

File tree

3 files changed

+96
-20
lines changed

3 files changed

+96
-20
lines changed
Lines changed: 84 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,97 @@
1-
import React from 'react'
1+
import React, { useEffect, useState } from 'react'
22

3-
import { WaterLevelPond } from '@jiaminghi/data-view-react'
3+
import { Charts, WaterLevelPond } from '@jiaminghi/data-view-react'
44

55
import './WaterLevelChart.less'
6+
import httpGet from '../../service/request'
67

7-
const config = {
8-
data: [45],
9-
shape: 'round',
10-
waveHeight: 25,
11-
waveNum: 2,
8+
let data = [100, 98.3, 91.1, 99.3, 99.5, 100, 99]
9+
let xAxis = ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
10+
11+
function getConfig() {
12+
return {
13+
data: [data[0].toFixed(2)],
14+
shape: 'round',
15+
waveHeight: 25,
16+
waveNum: 2,
17+
formatter: '{value}%',
18+
}
19+
}
20+
21+
function getOption() {
22+
return {
23+
color: ['#ffffff'],
24+
title: {
25+
text: '可用率趋势',
26+
},
27+
xAxis: {
28+
name: '时间',
29+
data: xAxis,
30+
},
31+
yAxis: {
32+
name: '销售额',
33+
data: 'value',
34+
max: 100,
35+
},
36+
series: [
37+
{
38+
data: data,
39+
type: 'line',
40+
lineArea: {
41+
show: true,
42+
gradient: ['rgba(55, 162, 218, 0.6)', 'rgba(55, 162, 218, 0)'],
43+
},
44+
},
45+
],
46+
}
1247
}
1348

1449
export default () => {
15-
return (
16-
<div id="water-level-chart">
17-
<div className="water-level-chart-title">计划资金累计完成情况</div>
50+
const [options, setOptions] = useState({})
51+
const [config, setConfig] = useState({})
52+
useEffect(() => {
53+
createData()
54+
getAvailability()
55+
56+
const timer = setInterval(createData, 3000)
57+
const availabilityTimer = setInterval(getAvailability, 60000)
1858

19-
<div className="water-level-chart-details">
20-
累计完成<span>235,680</span>
59+
return () => {
60+
clearInterval(timer)
61+
clearInterval(availabilityTimer)
62+
}
63+
}, [])
64+
65+
function createData() {
66+
setOptions(getOption())
67+
setConfig(getConfig())
68+
}
69+
70+
return (
71+
<>
72+
<div id="availability-chart">
73+
<Charts option={options} />
2174
</div>
75+
<div id="water-level-chart">
76+
<div className="water-level-chart-title">当前服务可用率</div>
2277

23-
<div className="chart-container">
24-
<WaterLevelPond config={config} />
78+
<div className="chart-container">
79+
<WaterLevelPond config={config} />
80+
</div>
2581
</div>
26-
</div>
82+
</>
2783
)
2884
}
85+
86+
function getAvailability() {
87+
httpGet('https://api.hduhelp.com/aggregating/metric/availability').then(r => {
88+
xAxis = r
89+
.slice(0, 15)
90+
.reverse()
91+
.map(item => item.Time)
92+
data = r
93+
.slice(0, 15)
94+
.reverse()
95+
.map(item => item.Value * 100)
96+
})
97+
}

src/components/datav/WaterLevelChart.less

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#water-level-chart {
22
width: 20%;
33
box-sizing: border-box;
4-
margin-left: 20px;
4+
margin-right: 20px;
55
background-color: rgba(6, 30, 93, 0.5);
66
border-top: 2px solid rgba(1, 153, 209, 0.5);
77
display: flex;
@@ -55,3 +55,13 @@
5555
}
5656
}
5757
}
58+
59+
#availability-chart {
60+
width: 60%;
61+
box-sizing: border-box;
62+
margin-right: 20px;
63+
background-color: rgba(6, 30, 93, 0.5);
64+
border-top: 2px solid rgba(1, 153, 209, 0.5);
65+
display: flex;
66+
flex-direction: column;
67+
}

src/components/datav/index.js

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,8 @@ export default () => {
2626

2727
<div className="block-top-bottom-content">
2828
<div className="block-top-content">
29-
<RoseChart />
30-
3129
<WaterLevelChart />
32-
33-
<ScrollBoard />
30+
<RoseChart />
3431
</div>
3532

3633
<Cards />

0 commit comments

Comments
 (0)