diff --git a/backend/app/main.py b/backend/app/main.py
index fa51d44..8d0211b 100644
--- a/backend/app/main.py
+++ b/backend/app/main.py
@@ -460,8 +460,17 @@ def create_app():
@app.get("/api/logs", tags=["Log"], description="日志列表", response_model=TableResponse)
async def log_list(p:dict = Depends(pagination_query), user: DB.User = Depends(get_current_user)):
page, page_size = p["page"], p["page_size"]
+ users = await DB.User.all()
res = await DB.WorkLogs.all().order_by('-id').limit(page_size).offset((page - 1) * page_size)
- return TableResponse(data=[x.json() for x in res], total=len(res))
+ count = await DB.WorkLogs.all().count()
+ data = []
+ for l in res:
+ u = next((x for x in users if x.id == l.user_id), None)
+ obj = l.json()
+ if u:
+ obj["user"] = u.username
+ data.append(obj)
+ return TableResponse(data=data, total=count)
return app
diff --git a/frontend/src/pages/Log/Detail.jsx b/frontend/src/pages/Log/Detail.jsx
new file mode 100644
index 0000000..5345fd6
--- /dev/null
+++ b/frontend/src/pages/Log/Detail.jsx
@@ -0,0 +1,24 @@
+import { Collapse, Modal } from "antd"
+import { useState } from "react"
+
+const LogDetail = ({ record }) => {
+ const [open, setOpen] = useState(false)
+
+ const items = record?.result?.logs?.map((e, i) => ({
+ key: i + '',
+ label: e?.title,
+ children:
{e?.result?.err || e?.result?.out }
+ }))
+
+
+ console.log(items)
+
+ return <>
+ setOpen(true)}>查看
+ setOpen(false)} title="日志详情">
+
+
+ >
+}
+
+export default LogDetail;
\ No newline at end of file
diff --git a/frontend/src/pages/Log/index.jsx b/frontend/src/pages/Log/index.jsx
index 9a591e9..2fbb150 100644
--- a/frontend/src/pages/Log/index.jsx
+++ b/frontend/src/pages/Log/index.jsx
@@ -1,8 +1,9 @@
import { ProTable } from "@ant-design/pro-components";
-import { Card } from "antd";
+import { Card, Space, Typography } from "antd";
import { useRef } from "react";
import { formatSeconds } from "../Flow";
import { tableList } from "../../api/log";
+import LogDetail from "./Detail";
const LogPage = () => {
const actionRef = useRef(null);
@@ -22,21 +23,21 @@ const LogPage = () => {
}
},
{
- dataIndex: 'last_user',
+ dataIndex: 'user',
title: '执行用户',
},
{
- dataIndex: 'last_run_time',
+ dataIndex: 'create_time',
title: '执行时间',
- render: (_, record) => record?.last_run_time ? new Date(record?.last_run_time * 1000).toLocaleString() : '-'
+ render: (_, record) => record?.create_time ? new Date(record?.create_time * 1000).toLocaleString() : '-'
},
{
dataIndex: 'time',
title: '执行耗时',
- render: (_, record) => record?.time ? formatSeconds(record?.time) : '-',
+ render: (_, record) => record?.result?.time ? formatSeconds(record?.result?.time) : '-',
},
{
- dataIndex: 'last_status',
+ dataIndex: 'status',
title: '执行结果',
valueType: 'select',
valueEnum: {
@@ -53,14 +54,17 @@ const LogPage = () => {
width: 60,
fixed: 'right',
render: (_, record) => [
- 查看
+
]
}
];
- const onRequest = async (params) => {
- const res = await tableList(params)
- console.log(res);
- return {};
+ const onRequest = async ({current: page, pageSize: page_size,...params}) => {
+ const res = await tableList({ page, page_size, ...params })
+ let index = (page - 1) * page_size + 1;
+ res?.data?.forEach((e, i) => {
+ e.index = index + i
+ });
+ return res;
}
return