组件居中,可拖拽

This commit is contained in:
JIANG
2025-12-16 17:21:04 +08:00
parent 3aa68d796b
commit 15f48d0496

View File

@@ -1,6 +1,14 @@
"use client"; "use client";
import React, { useCallback, useEffect, useMemo, useState } from "react"; import React, {
useCallback,
useEffect,
useMemo,
useRef,
useState,
} from "react";
import Draggable from "react-draggable";
import { import {
Box, Box,
Button, Button,
@@ -294,6 +302,7 @@ const SCADADataPanel: React.FC<SCADADataPanelProps> = ({
const [selectedSource, setSelectedSource] = useState< const [selectedSource, setSelectedSource] = useState<
"raw" | "clean" | "sim" | "all" "raw" | "clean" | "sim" | "all"
>(() => (deviceIds.length === 1 ? "all" : "clean")); >(() => (deviceIds.length === 1 ? "all" : "clean"));
const draggableRef = useRef<HTMLDivElement>(null);
// 获取 SCADA 设备信息,生成 deviceLabels // 获取 SCADA 设备信息,生成 deviceLabels
useEffect(() => { useEffect(() => {
@@ -648,12 +657,13 @@ const SCADADataPanel: React.FC<SCADADataPanelProps> = ({
return ( return (
<> <>
{/* 主面板 */} {/* 主面板 */}
<Draggable nodeRef={draggableRef}>
<Box <Box
ref={draggableRef}
sx={{ sx={{
position: "fixed", position: "absolute",
left: "50%", right: "1rem",
top: "50%", top: "1rem",
transform: "translate(-50%, -50%)",
width: "min(920px, calc(100vw - 2rem))", width: "min(920px, calc(100vw - 2rem))",
maxWidth: "100vw", maxWidth: "100vw",
height: "860px", height: "860px",
@@ -856,6 +866,7 @@ const SCADADataPanel: React.FC<SCADADataPanelProps> = ({
</Box> </Box>
</Box> </Box>
</Box> </Box>
</Draggable>
</> </>
); );
}; };