import React from 'react'; import { createPortal } from 'react-dom'; export default function RuntimeSettingsPanel({ showTrigger = true, isOpen, isConnected, isSaving, feedback, scheduleMode, intervalMinutes, triggerTime, maxCommCycles, initialCash, marginRequirement, enableMemory, mode, pollInterval, startDate, endDate, enableMock, watchlistSymbols, watchlistInputValue, watchlistSuggestions, onToggle, onClose, onScheduleModeChange, onIntervalMinutesChange, onTriggerTimeChange, onMaxCommCyclesChange, onInitialCashChange, onMarginRequirementChange, onEnableMemoryChange, onModeChange, onPollIntervalChange, onStartDateChange, onEndDateChange, onEnableMockChange, onWatchlistInputChange, onWatchlistInputKeyDown, onWatchlistAdd, onWatchlistRemove, onWatchlistRestoreCurrent, onWatchlistRestoreDefault, onWatchlistSuggestionClick, onSave, onRestoreDefaults }) { return (
{showTrigger && ( )} {isOpen && createPortal((
event.stopPropagation()} style={{ width: 'min(760px, 92vw)', maxHeight: '80vh', overflowY: 'auto', borderRadius: 16, border: '1px solid #D9E0E7', background: '#FFFFFF', boxShadow: '0 24px 60px rgba(15, 23, 42, 0.18)', padding: 18, paddingTop: 22, display: 'grid', gap: 16, position: 'relative', zIndex: 9999 }} >
启动配置
配置本次任务的启动参数与调度方式
自选股
{watchlistSymbols.map((symbol) => ( ))} {watchlistSymbols.length === 0 && (
还没有股票,输入代码后回车添加
)}
onWatchlistInputChange(e.target.value)} onKeyDown={onWatchlistInputKeyDown} placeholder="输入股票代码,回车添加" style={{ flex: 1, padding: '9px 10px', borderRadius: 8, border: '1px solid #D0D7DE', background: '#FFFFFF', color: '#111111', fontSize: '12px', fontFamily: '"Courier New", monospace' }} />
{watchlistSuggestions.map((symbol) => { const active = watchlistSymbols.includes(symbol); return ( ); })}
调度参数
{mode === 'backtest' && ( <>
)}
操作
{feedback && ( {feedback.text} )}
), document.body)}
); }