import React, { useState, useRef, useEffect } from 'react';
|
import { Col, Form, Modal, Row, Checkbox, Image, Tree, Drawer, Space, Button, Card } from 'antd';
|
import { FormattedMessage, useIntl, useModel } from '@umijs/max';
|
import * as PIXI from 'pixi.js';
|
|
import agv from '/public/img/map/agv.svg'
|
|
const Edit = (props) => {
|
const [dragging, setDragging] = useState(false);
|
const [dragSprite, setDragSprite] = useState(null);
|
|
useEffect(() => {
|
const handleMouseMove = (e) => {
|
if (dragging) {
|
props.onDrop(dragSprite, e.clientX, e.clientY);
|
setDragging(false);
|
}
|
};
|
window.addEventListener('mousemove', handleMouseMove);
|
return () => window.removeEventListener('mousemove', handleMouseMove);
|
}, [dragging, props.onDrop, props.onCancel]);
|
|
const onDragStart = (e) => {
|
setDragging(true)
|
props.onCancel();
|
const sprite = PIXI.Sprite.from(agv);
|
sprite.anchor.set(0.5);
|
setDragSprite(sprite);
|
};
|
|
return (
|
<>
|
<Drawer
|
open={props.open}
|
onClose={() => {
|
props.onCancel();
|
}}
|
getContainer={props.refCurr}
|
rootStyle={{ position: "absolute" }}
|
mask={false}
|
width={378}
|
extra={
|
<Space>
|
<Button onClick={() => props.onCancel()}><FormattedMessage id='common.cancel' defaultMessage='取消' /></Button>
|
</Space>
|
}
|
>
|
<Card>
|
<Image
|
src={agv}
|
width='50px'
|
preview={false}
|
draggable="true"
|
onDragStart={onDragStart}
|
/>
|
</Card>
|
</Drawer>
|
</>
|
)
|
}
|
|
export default Edit;
|