diff --git a/backend/app/main.py b/backend/app/main.py index 3e61ca9..00175f0 100644 --- a/backend/app/main.py +++ b/backend/app/main.py @@ -386,7 +386,7 @@ def create_app(): return StreamingResponse(_event(), media_type="text/event-stream") - @app.delete("/api/flows/status", tags=["Flow"], description="任务删除", response_model=BaseResponse) + @app.delete("/api/flows", tags=["Flow"], description="任务删除", response_model=BaseResponse) async def del_client(work_uuid: str, user: DB.User = Depends(get_current_user)): work = await DB.Work.filter(uuid=work_uuid).first() if not work: diff --git a/frontend/src/api/flow.js b/frontend/src/api/flow.js index 4c62ff6..81b0eb7 100644 --- a/frontend/src/api/flow.js +++ b/frontend/src/api/flow.js @@ -24,6 +24,11 @@ export const flowCreate = async (data = {}) => { return request("/api/flows", "POST", data) } +export const flowDel = async (id) => { + return request("/api/flows?work_uuid=" + id, "DELETE") +} + + diff --git a/frontend/src/pages/Flow/index.jsx b/frontend/src/pages/Flow/index.jsx index c22cfc4..300183e 100644 --- a/frontend/src/pages/Flow/index.jsx +++ b/frontend/src/pages/Flow/index.jsx @@ -1,15 +1,16 @@ import { ProTable } from "@ant-design/pro-components" -import { Button, Card, Popconfirm, Space, Typography } from "antd" +import { App, Button, Card, message, Popconfirm, Space, Typography } from "antd" import { useAuth } from "../../context/AuthContext"; import { LoadingOutlined, PlusOutlined } from "@ant-design/icons"; import { useEffect, useRef, useState } from "react"; -import { tableList, flowRun, flowStop } from "../../api/flow"; +import { tableList, flowRun, flowStop, flowDel } from "../../api/flow"; import { useNavigate } from "react-router-dom"; import './Detail.css'; export default () => { const { user, logout } = useAuth(); const [status, setStatus] = useState({}); + const { message } = App.useApp(); const eventSourceRef = useRef(null); const navigate = useNavigate(); const needReload = useRef(false); @@ -43,6 +44,11 @@ export default () => { } return true; } + const onDelete = async (record) => { + const res = await flowDel(record.uuid); + message.success("删除成功"); + actionRef?.current?.reload(); + } const columns = [ { dataIndex: 'index', @@ -112,7 +118,11 @@ export default () => { user?.level === 0 && , - user?.level === 0 && , + user?.level === 0 && + await onDelete(record)}> + + + , ] } ]; @@ -150,7 +160,7 @@ export default () => { needReload.current = false; actionRef?.current?.reload(); } - setStatus({ ...data}) + setStatus({ ...data }) } catch (err) { console.error("Failed to parse SSE data:", err); }