import React from 'react'; import { Card, Select, Typography, Button, Switch, } from '@douyinfe/semi-ui'; import { Sparkles, Users, ToggleLeft, X, Settings, } from 'lucide-react'; import { useTranslation } from 'react-i18next'; import { renderGroupOption } from '../../helpers'; import ParameterControl from './ParameterControl'; import ImageUrlInput from './ImageUrlInput'; import ConfigManager from './ConfigManager'; import CustomRequestEditor from './CustomRequestEditor'; const SettingsPanel = ({ inputs, parameterEnabled, models, groups, styleState, showDebugPanel, customRequestMode, customRequestBody, onInputChange, onParameterToggle, onCloseSettings, onConfigImport, onConfigReset, onCustomRequestModeChange, onCustomRequestBodyChange, previewPayload, messages, }) => { const { t } = useTranslation(); const currentConfig = { inputs, parameterEnabled, showDebugPanel, customRequestMode, customRequestBody, }; return ( {/* 标题区域 - 与调试面板保持一致 */}
{t('模型配置')}
{styleState.isMobile && onCloseSettings && (
{/* 移动端配置管理 */} {styleState.isMobile && (
)}
{/* 自定义请求体编辑器 */} {/* 分组选择 */}
{t('分组')} {customRequestMode && ( (已在自定义模式中忽略) )}
onInputChange('model', value)} value={inputs.model} autoComplete='new-password' optionList={models} style={{ width: '100%' }} dropdownStyle={{ width: '100%', maxWidth: '100%' }} className="!rounded-lg" disabled={customRequestMode} />
{/* 图片URL输入 */}
onInputChange('imageUrls', urls)} onImageEnabledChange={(enabled) => onInputChange('imageEnabled', enabled)} disabled={customRequestMode} />
{/* 参数控制组件 */}
{/* 流式输出开关 */}
流式输出 {customRequestMode && ( (已在自定义模式中忽略) )}
onInputChange('stream', checked)} checkedText="开" uncheckedText="关" size="small" disabled={customRequestMode} />
{/* 桌面端的配置管理放在底部 */} {!styleState.isMobile && (
)}
); }; export default SettingsPanel;