"use client"; import React, { useCallback, useState } from "react"; import { Box, Drawer, IconButton, Tab, Tabs, Tooltip, Typography } from "@mui/material"; import { Analytics as AnalyticsIcon, ChevronLeft, ChevronRight, FormatListBulleted, Search as SearchIcon, } from "@mui/icons-material"; import AnalysisParameters from "./AnalysisParameters"; import LocationResults from "./LocationResults"; import SchemeQuery from "./SchemeQuery"; import { BurstLocationResult, BurstSchemeRecord } from "./types"; const TabPanel = ({ value, index, children, }: { value: number; index: number; children: React.ReactNode; }) => ( ); const BurstLocationPanel: React.FC = () => { const [open, setOpen] = useState(true); const [tab, setTab] = useState(0); const [result, setResult] = useState(null); const [schemes, setSchemes] = useState([]); const drawerWidth = 450; const panelTitle = "爆管定位"; const handleResult = useCallback((payload: BurstLocationResult) => { setResult(payload); setTab(2); }, []); const handleViewResult = useCallback((payload: BurstLocationResult) => { setResult(payload); setTab(2); }, []); return ( <> {!open && ( setOpen(true)} sx={{ zIndex: 1300 }} > {panelTitle} )} {panelTitle} setOpen(false)} sx={{ color: "primary.contrastText" }} > setTab(value)} variant="fullWidth" sx={{ minHeight: 48, "& .MuiTab-root": { minHeight: 48, textTransform: "none", fontSize: "0.875rem", fontWeight: 500, transition: "all 0.2s", }, "& .Mui-selected": { color: "#257DD4", }, "& .MuiTabs-indicator": { backgroundColor: "#257DD4", }, }} > } iconPosition="start" label="定位参数" /> } iconPosition="start" label="方案查询" /> } iconPosition="start" label="定位结果" /> ); }; export default BurstLocationPanel;