import React from 'react'; import { Tabs, Tab, TextField, Button, Paper, Typography, Grid, Box, Select, MenuItem, InputLabel, FormControl, Dialog, DialogTitle, DialogContent, DialogActions, Snackbar, Alert, Radio, RadioGroup, FormControlLabel } from '@mui/material'; import { setCookie } from '../utils/cookies'; function ApiTabs({ tabValue, setTabValue, qrInput, setQrInput, userId, setUserId, response, setResponse, musicData, setMusicData, apiBase, setApiBase, backends, setBackends, isDialogOpen, setIsDialogOpen, newBackend, setNewBackend, snackbarOpen, setSnackbarOpen, snackbarMessage, setSnackbarMessage }) { const handleTabChange = (event, newValue) => { setTabValue(newValue); }; const handleUserIdChange = (event) => { const value = event.target.value; setUserId(value); setCookie('userId', value); setMusicData(prev => ({ ...prev, userId: parseInt(value) || 0 })); }; const handleBackendChange = (event) => { const value = event.target.value; setApiBase(value); localStorage.setItem('apiBase', value); }; const handleAddBackend = () => { if (!newBackend.label || !newBackend.value) { setSnackbarMessage('请填写完整的后端信息'); setSnackbarOpen(true); return; } const updatedBackends = [...backends, newBackend]; setBackends(updatedBackends); localStorage.setItem('customBackends', JSON.stringify( updatedBackends.slice(PRESET_BACKENDS.length) )); setIsDialogOpen(false); setNewBackend({ label: '', value: '' }); }; return ( <> API调试工具 后端环境 {backends.map((backend, index) => ( {backend.label} ))} {tabValue === 0 && ( setQrInput(e.target.value)} variant="outlined" /> )} {tabValue === 1 && ( {Object.entries(musicData.music).map(([key, value]) => ( { const newValue = parseInt(e.target.value) || 0; setMusicData(prev => ({ ...prev, music: { ...prev.music, [key]: newValue } })); }} variant="outlined" /> ))} )} {response && ( 响应结果 {JSON.stringify(response, null, 2)} )} setIsDialogOpen(false)}> 添加自定义后端 setNewBackend(prev => ({ ...prev, label: e.target.value }))} /> setNewBackend(prev => ({ ...prev, value: e.target.value }))} /> setIsDialogOpen(false)}>取消 添加 setSnackbarOpen(false)} > setSnackbarOpen(false)} severity="error" sx={{ width: '100%' }} > {snackbarMessage} > ); } export default ApiTabs;
{JSON.stringify(response, null, 2)}