From 15d0d127aeefb95c62a97d183d65f5736b89f153 Mon Sep 17 00:00:00 2001 From: sinohqb Date: Wed, 5 Aug 2026 15:38:37 +0800 Subject: [PATCH] refactor(ui): migrate Targets page to consistency baseline (ui-consistency ticket 02) FormDrawer with footer submit, submitting guard, 20-row conditional pagination, Empty locale, unified delete Popconfirm wording. --- frontend/web/src/pages/Targets.tsx | 45 +++++++++++++++++------------- 1 file changed, 26 insertions(+), 19 deletions(-) diff --git a/frontend/web/src/pages/Targets.tsx b/frontend/web/src/pages/Targets.tsx index 2c88290..f28c7ad 100644 --- a/frontend/web/src/pages/Targets.tsx +++ b/frontend/web/src/pages/Targets.tsx @@ -1,10 +1,11 @@ import { useState } from 'react' import { - Button, Drawer, Form, Input, message, Popconfirm, + Button, Empty, Form, Input, message, Popconfirm, Space, Table, Tag, Select, Tooltip, } from 'antd' import { PlusOutlined, ApiOutlined, EditOutlined, DeleteOutlined, ReloadOutlined } from '@ant-design/icons' import { targetsApi, type Target } from '../api' +import FormDrawer from '../components/FormDrawer' import PageWrapper from '../components/PageWrapper' import { useResource } from '../hooks/useResource' import { colors } from '../tokens' @@ -17,6 +18,7 @@ export default function TargetsPage() { ) const [drawerOpen, setDrawerOpen] = useState(false) const [editingTarget, setEditingTarget] = useState(null) + const [submitting, setSubmitting] = useState(false) const [form] = Form.useForm() const openCreate = () => { @@ -64,11 +66,21 @@ export default function TargetsPage() { } if (editingTarget) { - await targetsApi.update(editingTarget.id, payload) - message.success('更新成功') + setSubmitting(true) + try { + await targetsApi.update(editingTarget.id, payload) + message.success('更新成功') + } finally { + setSubmitting(false) + } } else { - await targetsApi.create(payload) - message.success('创建成功') + setSubmitting(true) + try { + await targetsApi.create(payload) + message.success('创建成功') + } finally { + setSubmitting(false) + } } setDrawerOpen(false) reload() @@ -122,7 +134,7 @@ export default function TargetsPage() {