From 57c58f09ea772fe06390a03d5ae9c73d6d6d9e56 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期六, 12 十月 2024 10:07:53 +0800 Subject: [PATCH] # --- zy-acs-flow/src/map/settings/CopyDrawer.jsx | 108 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 106 insertions(+), 2 deletions(-) diff --git a/zy-acs-flow/src/map/settings/CopyDrawer.jsx b/zy-acs-flow/src/map/settings/CopyDrawer.jsx index f72ab02..72b3f5a 100644 --- a/zy-acs-flow/src/map/settings/CopyDrawer.jsx +++ b/zy-acs-flow/src/map/settings/CopyDrawer.jsx @@ -77,7 +77,16 @@ }); const CopyDrawer = (props) => { - const { open, onCancel, sprite, value, width = PAGE_DRAWER_WIDTH, handleOnCopy } = props; + const { + open, + onCancel, + sprite, + value, + width = PAGE_DRAWER_WIDTH, + handleOnCopy, + setLastCopiedSprites, + setSpriteSettings, + } = props; const notify = useNotification(); const translate = useTranslate(); const theme = useTheme(); @@ -114,7 +123,99 @@ } const onFormSubmit = (data) => { - console.log(data); + if (!sprite || !data || Object.keys(data).length === 0) { + return; + } + setLastCopiedSprites([]); + for (let i = 0; i < data.copyCount; i++) { + const copiedSprite = Tool.copySprite(sprite); + // copy + switch (data.copyDirect) { + case 'left': + copiedSprite.position.x -= (i + 1) * (data.gap + copiedSprite.width); + break; + case 'right': + copiedSprite.position.x += (i + 1) * (data.gap + copiedSprite.width); + break; + case 'up': + copiedSprite.position.y -= (i + 1) * (data.gap + copiedSprite.height); + break; + case 'down': + copiedSprite.position.y += (i + 1) * (data.gap + copiedSprite.height); + break; + default: + break; + } + // auto-increment-value + if (data.autoIncrement && deviceType) { + switch (deviceType) { + case DEVICE_TYPE.SHELF: + if (data.incrementValue === 'row') { + if (data.incrementMode === 'descending') { + copiedSprite.data.row = sprite.data.row - i - 1; + } else { + copiedSprite.data.row = sprite.data.row + i + 1; + } + } + if (data.incrementValue === 'bay') { + if (data.incrementMode === 'descending') { + copiedSprite.data.bay = sprite.data.bay - i - 1; + } else { + copiedSprite.data.bay = sprite.data.bay + i + 1; + } + } + if (copiedSprite.data.row && copiedSprite.data.bay) { + copiedSprite.data.no = copiedSprite.data.row + '-' + copiedSprite.data.bay; + } + break; + case DEVICE_TYPE.STATION: + if (data.incrementValue === 'no') { + if (data.incrementMode === 'descending') { + copiedSprite.data.no = Tool.incrementSpriteNo(sprite.data.no, - i - 1); + } else { + copiedSprite.data.no = Tool.incrementSpriteNo(sprite.data.no, + i + 1); + } + } + break; + case DEVICE_TYPE.CHARGE: + if (data.incrementValue === 'no') { + if (data.incrementMode === 'descending') { + copiedSprite.data.no = Tool.incrementSpriteNo(sprite.data.no, - i - 1); + } else { + copiedSprite.data.no = Tool.incrementSpriteNo(sprite.data.no, + i + 1); + } + } + break; + case DEVICE_TYPE.DIRECTION: + if (data.incrementValue === 'no') { + if (data.incrementMode === 'descending') { + copiedSprite.data.no = Tool.incrementSpriteNo(sprite.data.no, - i - 1); + } else { + copiedSprite.data.no = Tool.incrementSpriteNo(sprite.data.no, + i + 1); + } + } + break; + case DEVICE_TYPE.POINT: + if (data.incrementValue === 'no') { + if (data.incrementMode === 'descending') { + copiedSprite.data.no = Tool.incrementSpriteNo(sprite.data.no, - i - 1); + } else { + copiedSprite.data.no = Tool.incrementSpriteNo(sprite.data.no, + i + 1); + } + } + break; + case DEVICE_TYPE.AGV: + break; + default: + break; + } + } + + Tool.getMapContainer().addChild(copiedSprite); + Tool.beSettings(copiedSprite, setSpriteSettings); + setLastCopiedSprites(prevArr => [...prevArr, copiedSprite]); + } + onCancel(); handleOnCopy?.(data); notify.info(translate('common.response.success')); }; @@ -205,6 +306,9 @@ min: 0, step: 1, }} + onChange={(e) => { + field.onChange(e.target.value === '' ? '' : Number(e.target.value)); + }} /> )} /> -- Gitblit v1.9.1