From 4a423889d9c51762b4bc66decf1fd36bc827eb47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=A8=E9=9C=96=E9=93=83?= Date: Sat, 6 Jun 2026 10:29:44 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AD=97=E6=AE=B5=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E6=94=B9=E4=B8=BA=E5=BC=B9=E7=AA=97=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加 Dialog 组件包裹 FieldEditor - 点击字段卡片打开编辑弹窗 - 简化布局,移除右侧字段编辑面板 - 支持点击遮罩或关闭按钮关闭弹窗 --- src/pages/TestDataGenerator/index.tsx | 70 +++++++++++++++------------ 1 file changed, 40 insertions(+), 30 deletions(-) diff --git a/src/pages/TestDataGenerator/index.tsx b/src/pages/TestDataGenerator/index.tsx index 834267d..271b051 100644 --- a/src/pages/TestDataGenerator/index.tsx +++ b/src/pages/TestDataGenerator/index.tsx @@ -9,6 +9,13 @@ import { cn } from '@/lib/utils'; import { useGenerator } from './hooks/useGenerator'; import { getGeneratorById } from '@/lib/generators'; import type { FieldConfig, GenerateResult } from '@/types/testDataGenerator'; +import { + Dialog, + DialogContent, + DialogHeader, + DialogTitle, + DialogDescription, +} from '@/components/ui/dialog'; // 生成唯一 ID 的辅助函数 function generateId(): string { @@ -33,6 +40,7 @@ export default function TestDataGeneratorPage() { // 字段配置 const [fields, setFields] = useState([]); const [selectedIndex, setSelectedIndex] = useState(null); + const [isEditorOpen, setIsEditorOpen] = useState(false); // 生成选项 const [count, setCount] = useState(100); @@ -176,6 +184,12 @@ export default function TestDataGeneratorPage() { // 获取选中的字段(-1 或 null 表示未选中) const selectedField = selectedIndex !== null && selectedIndex >= 0 ? fields[selectedIndex] : null; + // 打开字段编辑器 + const handleOpenEditor = useCallback((index: number) => { + setSelectedIndex(index); + setIsEditorOpen(true); + }, []); + return (
@@ -213,36 +227,16 @@ export default function TestDataGeneratorPage() { {/* 字段配置标签页 */} {activeTab === 'fields' && ( -
- {/* 字段列表 */} -
- -
- - {/* 字段编辑器 */} -
- {selectedField ? ( - handleUpdateField(selectedIndex!, updatedField)} - /> - ) : ( -
- -

- {t('testDataGenerator_selectFieldToEdit')} -

-
- )} -
+
+
)} @@ -312,6 +306,22 @@ export default function TestDataGeneratorPage() {
+ + {/* 字段编辑弹窗 */} + + + + {t('testDataGenerator_fieldConfig')} + {t('testDataGenerator_selectFieldToEdit')} + + {selectedField && selectedIndex !== null && ( + handleUpdateField(selectedIndex, updatedField)} + /> + )} + + ); }