| | |
| | | import CloseIcon from '@mui/icons-material/Close'; |
| | | import * as Common from '@/utils/common'; |
| | | import { PAGE_DRAWER_WIDTH } from '@/config/setting'; |
| | | import * as Tool from './tool'; |
| | | |
| | | import shelf from '/map/shelf.svg'; |
| | | import charge from '/map/charge.svg'; |
| | |
| | | width = PAGE_DRAWER_WIDTH, |
| | | children |
| | | } = props; |
| | | |
| | | const theme = useTheme(); |
| | | const themeMode = theme.palette.mode; |
| | | const translate = useTranslate(); |
| | | |
| | | const [dragging, setDragging] = useState(false); |
| | | const [dragSprite, setDragSprite] = useState(null); |
| | | const [dragSpriteType, setDragSpriteType] = useState(null); |
| | | |
| | | const handleClose = () => { |
| | | onCancel(); |
| | |
| | | closeCallback(); |
| | | } |
| | | } |
| | | |
| | | const onDragStart = (e, type) => { |
| | | setDragging(true); |
| | | const sprite = Tool.generateSprite(type); |
| | | setDragSprite(sprite); |
| | | setDragSpriteType(type); |
| | | }; |
| | | |
| | | useEffect(() => { |
| | | const handleMouseMove = (e) => { |
| | | if (dragging) { |
| | | props.onDrop(dragSprite, dragSpriteType, e.clientX, e.clientY); |
| | | setDragging(false); |
| | | setDragSpriteType(null); |
| | | } |
| | | }; |
| | | window.addEventListener('mousemove', handleMouseMove); |
| | | return () => window.removeEventListener('mousemove', handleMouseMove); |
| | | }, [dragging, props.onDrop, props.onCancel]); |
| | | |
| | | |
| | | return ( |
| | | <Drawer |
| | |
| | | <CloseIcon /> |
| | | </IconButton> |
| | | </Stack> |
| | | <DeviceContent /> |
| | | </Box> |
| | | )} |
| | | </Drawer> |
| | | ) |
| | | } |
| | | |
| | | const DeviceContent = (props) => { |
| | | const theme = useTheme(); |
| | | const themeMode = theme.palette.mode; |
| | | const translate = useTranslate(); |
| | | |
| | | const onDragStart = (e, type) => { |
| | | // setDragging(true); |
| | | // setDragSpriteType(type); |
| | | // 根据需要处理拖拽逻辑 |
| | | }; |
| | | |
| | | return ( |
| | | <Box p={3}> |
| | | <Grid container spacing={0} sx={{ |
| | | borderTop: themeMode === 'light' ? '1px solid #f0f0f0' : '1px solid #303030', |
| | |
| | | })} |
| | | </Grid> |
| | | </Box> |
| | | </Box> |
| | | )} |
| | | </Drawer> |
| | | ) |
| | | } |
| | | |