balibabu
commited on
Commit
·
9efd53f
1
Parent(s):
eae0334
feat: Display task executor tooltip with json-view #3409 (#3467)
Browse files### What problem does this PR solve?
feat: Display task executor tooltip with json-view #3409
### Type of change
- [x] New Feature (non-breaking change which adds functionality)
web/src/pages/user-setting/setting-system/task-bar-chat.tsx
CHANGED
@@ -14,6 +14,9 @@ import {
|
|
14 |
import { formatDate, formatTime } from '@/utils/date';
|
15 |
import dayjs from 'dayjs';
|
16 |
import { get } from 'lodash';
|
|
|
|
|
|
|
17 |
import styles from './index.less';
|
18 |
|
19 |
interface IProps {
|
@@ -28,20 +31,18 @@ const CustomTooltip = ({ active, payload, ...restProps }: any) => {
|
|
28 |
{},
|
29 |
);
|
30 |
return (
|
31 |
-
<div className="
|
32 |
-
<div className="
|
33 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
34 |
</div>
|
35 |
-
{Object.entries(taskExecutorHeartbeatItem).map(([key, val], index) => {
|
36 |
-
return (
|
37 |
-
<div key={index} className="flex gap-1">
|
38 |
-
<span className="font-semibold">{`${key}: `}</span>
|
39 |
-
<span>
|
40 |
-
{key === 'now' || key === 'boot_at' ? formatDate(val) : val}
|
41 |
-
</span>
|
42 |
-
</div>
|
43 |
-
);
|
44 |
-
})}
|
45 |
</div>
|
46 |
);
|
47 |
}
|
@@ -54,7 +55,6 @@ const TaskBarChat = ({ data }: IProps) => {
|
|
54 |
const data = val.map((x) => ({
|
55 |
...x,
|
56 |
now: dayjs(x.now).valueOf(),
|
57 |
-
failed: 5,
|
58 |
}));
|
59 |
const firstItem = data[0];
|
60 |
const lastItem = data[data.length - 1];
|
@@ -69,7 +69,7 @@ const TaskBarChat = ({ data }: IProps) => {
|
|
69 |
<b className={styles.taskBarTitle}>Pending: {lastItem.pending}</b>
|
70 |
</div>
|
71 |
<ResponsiveContainer>
|
72 |
-
<BarChart data={data}
|
73 |
<XAxis
|
74 |
dataKey="now"
|
75 |
type="number"
|
@@ -82,16 +82,20 @@ const TaskBarChat = ({ data }: IProps) => {
|
|
82 |
tickMargin={20}
|
83 |
/>
|
84 |
<CartesianGrid strokeDasharray="3 3" />
|
85 |
-
<Tooltip
|
|
|
|
|
|
|
|
|
86 |
<Legend wrapperStyle={{ bottom: -22 }} />
|
87 |
<Bar
|
88 |
dataKey="done"
|
89 |
-
fill="#
|
90 |
activeBar={<Rectangle fill="pink" stroke="blue" />}
|
91 |
/>
|
92 |
<Bar
|
93 |
dataKey="failed"
|
94 |
-
fill="#
|
95 |
activeBar={<Rectangle fill="gold" stroke="purple" />}
|
96 |
/>
|
97 |
</BarChart>
|
|
|
14 |
import { formatDate, formatTime } from '@/utils/date';
|
15 |
import dayjs from 'dayjs';
|
16 |
import { get } from 'lodash';
|
17 |
+
import JsonView from 'react18-json-view';
|
18 |
+
import 'react18-json-view/src/style.css';
|
19 |
+
|
20 |
import styles from './index.less';
|
21 |
|
22 |
interface IProps {
|
|
|
31 |
{},
|
32 |
);
|
33 |
return (
|
34 |
+
<div className="custom-tooltip">
|
35 |
+
<div className="bg-slate-50 p-2 rounded-md border border-indigo-100">
|
36 |
+
<div className="font-semibold text-lg">
|
37 |
+
{formatDate(restProps.label)}
|
38 |
+
</div>
|
39 |
+
|
40 |
+
<JsonView
|
41 |
+
src={taskExecutorHeartbeatItem}
|
42 |
+
displaySize={30}
|
43 |
+
className="w-full max-h-[300px] break-words overflow-auto"
|
44 |
+
/>
|
45 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
46 |
</div>
|
47 |
);
|
48 |
}
|
|
|
55 |
const data = val.map((x) => ({
|
56 |
...x,
|
57 |
now: dayjs(x.now).valueOf(),
|
|
|
58 |
}));
|
59 |
const firstItem = data[0];
|
60 |
const lastItem = data[data.length - 1];
|
|
|
69 |
<b className={styles.taskBarTitle}>Pending: {lastItem.pending}</b>
|
70 |
</div>
|
71 |
<ResponsiveContainer>
|
72 |
+
<BarChart data={data}>
|
73 |
<XAxis
|
74 |
dataKey="now"
|
75 |
type="number"
|
|
|
82 |
tickMargin={20}
|
83 |
/>
|
84 |
<CartesianGrid strokeDasharray="3 3" />
|
85 |
+
<Tooltip
|
86 |
+
wrapperStyle={{ pointerEvents: 'auto' }}
|
87 |
+
content={<CustomTooltip></CustomTooltip>}
|
88 |
+
trigger="click"
|
89 |
+
/>
|
90 |
<Legend wrapperStyle={{ bottom: -22 }} />
|
91 |
<Bar
|
92 |
dataKey="done"
|
93 |
+
fill="#2fe235"
|
94 |
activeBar={<Rectangle fill="pink" stroke="blue" />}
|
95 |
/>
|
96 |
<Bar
|
97 |
dataKey="failed"
|
98 |
+
fill="#ef3b74"
|
99 |
activeBar={<Rectangle fill="gold" stroke="purple" />}
|
100 |
/>
|
101 |
</BarChart>
|