diff --git a/web/src/pages/admin/service-status.tsx b/web/src/pages/admin/service-status.tsx
index c78cbb0d6..582b38cac 100644
--- a/web/src/pages/admin/service-status.tsx
+++ b/web/src/pages/admin/service-status.tsx
@@ -68,6 +68,8 @@ import {
} from './utils';
import JsonView from 'react18-json-view';
+import 'react18-json-view/src/style.css';
+
import ServiceDetail from './service-detail';
import TaskExecutorDetail from './task-executor-detail';
diff --git a/web/src/pages/admin/task-executor-detail.tsx b/web/src/pages/admin/task-executor-detail.tsx
index 55d2eef11..0adf6d4c0 100644
--- a/web/src/pages/admin/task-executor-detail.tsx
+++ b/web/src/pages/admin/task-executor-detail.tsx
@@ -1,5 +1,8 @@
import dayjs from 'dayjs';
+import { isPlainObject } from 'lodash';
import JsonView from 'react18-json-view';
+import 'react18-json-view/src/style.css';
+
import {
Bar,
BarChart,
@@ -15,6 +18,7 @@ import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card';
import { ScrollArea } from '@/components/ui/scroll-area';
import { formatDate, formatTime } from '@/utils/date';
+import ServiceDetail from './service-detail';
interface TaskExecutorDetailProps {
content?: AdminService.TaskExecutorInfo;
@@ -68,9 +72,15 @@ function CustomAxisTick({ x, y, payload }: any) {
}
function TaskExecutorDetail({ content }: TaskExecutorDetailProps) {
+ if (!isPlainObject(content)) {
+ return ;
+ }
+
return (
{Object.entries(content ?? {}).map(([name, data]) => {
+ console.log(data);
+
const items = data.map((x) => ({
...x,
done: Math.floor(Math.random() * 100),