zy-asrs-flow/src/pages/map/batch/index.jsx | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
zy-asrs-flow/src/pages/map/index.jsx | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
zy-asrs-flow/src/pages/map/player.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
zy-asrs-flow/src/pages/map/batch/index.jsx
New file @@ -0,0 +1,51 @@ import React, { useState, useRef, useEffect } from 'react'; import { Drawer, Space, Button } from 'antd'; import { FormattedMessage, useIntl, useModel } from '@umijs/max'; import { createStyles } from 'antd-style'; import * as Utils from '../utils' const useStyles = createStyles(({ token, css }) => { return { } }) const BatchDrawer = (props) => { const intl = useIntl(); const { styles } = useStyles(); const { batchSprites } = props; useEffect(() => { console.log(batchSprites); }, []); const handleCancel = () => { props.onCancel(); }; return ( <> <Drawer open={props.open} onClose={handleCancel} getContainer={props.refCurr} rootStyle={{ position: "absolute" }} mask={false} width={600} style={{ opacity: .8 }} extra={ <Space> <Button onClick={handleCancel}> <FormattedMessage id='common.cancel' defaultMessage='取消' /> </Button> </Space> } > {batchSprites?.length} </Drawer> </> ) } export default BatchDrawer; zy-asrs-flow/src/pages/map/index.jsx
@@ -19,6 +19,7 @@ import MapSearch from './header/search'; import MapFloor from './header/floor'; import MapDrawer from './drawer'; import BatchDrawer from './batch'; const useStyles = createStyles(({ token }) => { let dark = token.colorBgBase === '#000'; @@ -88,6 +89,8 @@ const hasFloor = true; // const [hasFloor, setHasFloor] = React.useState(true); const [curFloor, setCurFloor] = React.useState(1); const [batchSprites, setBatchSprites] = React.useState([]); const [batchDrawerVisible, setBatchDrawerVisible] = React.useState(false); // init func React.useEffect(() => { @@ -147,8 +150,7 @@ setDeviceVisible(false); player.activateMapEvent(Utils.MapEvent.SELECTION_BOX, (selectedSprites, resetFn) => { console.log(selectedSprites); // resetFn(); setBatchSprites(selectedSprites); }); mapContainer.children.forEach(child => { @@ -175,10 +177,7 @@ setDeviceVisible(false); player.activateMapEvent(Utils.MapEvent.SELECTION_BOX, (selectedSprites, resetFn) => { console.log(selectedSprites); if (selectedSprites.length > 0) { setDrawerVisible(true); } setBatchSprites(selectedSprites); }); mapContainer.children.forEach(child => { @@ -270,6 +269,14 @@ } }, [spriteBySettings]) const prevSpriteBySettings = prevSpriteBySettingsRef.current; React.useEffect(() => { if (batchSprites?.length > 0) { setBatchDrawerVisible(true) } else { setBatchDrawerVisible(false) } }, [batchSprites]) return ( <> @@ -422,6 +429,16 @@ }} /> <BatchDrawer open={batchDrawerVisible} batchSprites={batchSprites} refCurr={mapRef.current} onCancel={() => { setBatchSprites(null); setBatchDrawerVisible(false); }} /> <Edit open={deviceVisible} onCancel={() => { zy-asrs-flow/src/pages/map/player.js
@@ -60,7 +60,19 @@ this.app.renderer.events.mapPositionToPoint(startPoint, event.clientX, event.clientY); let selectionStart = { x: startPoint.x, y: startPoint.y }; isSelecting = true; // avoid trigger sprite event let hasHitSprite = false; for (let child of this.mapContainer.children) { if (child.data?.uuid) { if (child.getBounds().contains(selectionStart.x, selectionStart.y)) { hasHitSprite = true; break; } } } if (!hasHitSprite) { isSelecting = true; } const handleMouseMove = (event) => { if (isSelecting && !this.didClickSprite) {