fix(analysis): preserve tab panel state
This commit is contained in:
+19
-3
@@ -17,8 +17,14 @@ import {
|
||||
Analytics as AnalyticsIcon,
|
||||
Search as SearchIcon,
|
||||
} from "@mui/icons-material";
|
||||
import OptimizationParameters from "./OptimizationParameters";
|
||||
import SchemeQuery from "./SchemeQuery";
|
||||
import OptimizationParameters, {
|
||||
createOptimizationParametersState,
|
||||
type OptimizationParametersState,
|
||||
} from "./OptimizationParameters";
|
||||
import SchemeQuery, {
|
||||
createMonitoringSchemeQueryState,
|
||||
type MonitoringSchemeQueryState,
|
||||
} from "./SchemeQuery";
|
||||
|
||||
interface SchemeRecord {
|
||||
id: number;
|
||||
@@ -63,6 +69,11 @@ const MonitoringPlaceOptimizationPanel: React.FC<
|
||||
|
||||
// 持久化方案查询结果
|
||||
const [schemes, setSchemes] = useState<SchemeRecord[]>([]);
|
||||
const [optimizationState, setOptimizationState] =
|
||||
useState<OptimizationParametersState>(createOptimizationParametersState);
|
||||
const [queryState, setQueryState] = useState<MonitoringSchemeQueryState>(
|
||||
createMonitoringSchemeQueryState,
|
||||
);
|
||||
|
||||
// 使用受控或非受控状态
|
||||
const isOpen = controlledOpen !== undefined ? controlledOpen : internalOpen;
|
||||
@@ -192,13 +203,18 @@ const MonitoringPlaceOptimizationPanel: React.FC<
|
||||
|
||||
{/* Tab 内容 */}
|
||||
<TabPanel value={currentTab} index={0}>
|
||||
<OptimizationParameters />
|
||||
<OptimizationParameters
|
||||
state={optimizationState}
|
||||
onStateChange={setOptimizationState}
|
||||
/>
|
||||
</TabPanel>
|
||||
|
||||
<TabPanel value={currentTab} index={1}>
|
||||
<SchemeQuery
|
||||
schemes={schemes}
|
||||
onSchemesChange={setSchemes}
|
||||
state={queryState}
|
||||
onStateChange={setQueryState}
|
||||
onLocate={(id) => {
|
||||
console.log("定位方案:", id);
|
||||
// TODO: 在地图上定位
|
||||
|
||||
Reference in New Issue
Block a user