import { useState } from 'react'; import { Box, Typography, Container, Button, Paper, CircularProgress, Stack, Switch, FormControlLabel, } from '@mui/material'; import AutoAwesomeIcon from '@mui/icons-material/AutoAwesome'; import ErrorOutlineIcon from '@mui/icons-material/ErrorOutline'; import ClearAllIcon from '@mui/icons-material/ClearAll'; import GlobalSnackbar, { useSnackbar } from '@/components/GlobalSnackbar'; import { dashboardPageStyles } from '@/config/pageTheme'; const FormRecognizerPage = () => { const { snackbarProps, showMessage } = useSnackbar({ autoHideDuration: 1500 }); const [loading, setLoading] = useState(false); const [includeHidden, setIncludeHidden] = useState(false); interface MessagePayload { includeHidden?: boolean; } const sendMessageToContent = async (action: string, payload?: MessagePayload) => { setLoading(true); try { const [tab] = await chrome.tabs.query({ active: true, currentWindow: true }); if (!tab.id) { showMessage('无法获取当前标签页', { severity: 'error' }); return; } const response = await chrome.tabs.sendMessage(tab.id, { action, ...payload }); if (response.success) { showMessage(response.message, { severity: 'success' }); } else { showMessage(response.message, { severity: 'error' }); } } catch (error) { console.error('发送消息失败:', error); showMessage('请确保当前页面已加载完成', { severity: 'error' }); } finally { setLoading(false); } }; const handleFillValidData = () => { sendMessageToContent('fillValidData', { includeHidden }); }; const handleFillInvalidData = () => { sendMessageToContent('fillInvalidData', { includeHidden }); }; const handleClearAllFields = () => { sendMessageToContent('clearAllFields'); }; return ( Dummy Data Generator 一键填充表单测试数据,提升开发和测试效率 {/* 主要操作按钮 */} {/* 选项设置 */} 填充选项 setIncludeHidden(e.target.checked)} color="primary" /> } label="包含隐藏字段" sx={{ width: '100%' }} /> {/* 功能说明 */} 功能说明 有效数据模式:生成符合格式要求的测试数据,适用于正常功能测试。 异常数据模式:生成边界值或格式错误的数据,适用于异常场景测试。 一键清空:快速清空当前页面所有表单字段的值。 支持的字段类型: 文本、邮箱、手机号、数字、日期、文本域、密码、身份证号等。 ); }; export default FormRecognizerPage;