From 38578d68f539eddfad245cdf2514aa312bef0560 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期一, 14 十月 2024 10:34:31 +0800
Subject: [PATCH] #
---
zy-acs-flow/src/map/settings/CopyDrawer.jsx | 119 +++++++++++++++++++++++------------------------------------
1 files changed, 46 insertions(+), 73 deletions(-)
diff --git a/zy-acs-flow/src/map/settings/CopyDrawer.jsx b/zy-acs-flow/src/map/settings/CopyDrawer.jsx
index 72b3f5a..19fc976 100644
--- a/zy-acs-flow/src/map/settings/CopyDrawer.jsx
+++ b/zy-acs-flow/src/map/settings/CopyDrawer.jsx
@@ -126,95 +126,68 @@
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) {
+
+ const { copyCount, copyDirect, gap, autoIncrement, incrementMode, incrementValue } = data;
+ const copiedSprites = [];
+
+ const adjustPosition = (sprite, direction, gap, index) => {
+ const factor = index + 1;
+ switch (direction) {
case 'left':
- copiedSprite.position.x -= (i + 1) * (data.gap + copiedSprite.width);
+ sprite.position.x -= factor * (gap + sprite.width);
break;
case 'right':
- copiedSprite.position.x += (i + 1) * (data.gap + copiedSprite.width);
+ sprite.position.x += factor * (gap + sprite.width);
break;
case 'up':
- copiedSprite.position.y -= (i + 1) * (data.gap + copiedSprite.height);
+ sprite.position.y -= factor * (gap + sprite.height);
break;
case 'down':
- copiedSprite.position.y += (i + 1) * (data.gap + copiedSprite.height);
+ sprite.position.y += factor * (gap + sprite.height);
break;
default:
break;
}
+ };
+
+ const incrementSpriteData = (copiedSprite, index) => {
+ const incrementAmount = incrementMode === 'descending' ? -(index + 1) : index + 1;
+ switch (deviceType) {
+ case DEVICE_TYPE.SHELF:
+ if (incrementValue === 'row') {
+ copiedSprite.data.row = sprite.data.row + incrementAmount;
+ }
+ if (incrementValue === 'bay') {
+ copiedSprite.data.bay = sprite.data.bay + incrementAmount;
+ }
+ if (copiedSprite.data.row && copiedSprite.data.bay) {
+ copiedSprite.data.no = `${copiedSprite.data.row}-${copiedSprite.data.bay}`;
+ }
+ break;
+ default:
+ if (incrementValue === 'no') {
+ copiedSprite.data.no = Tool.incrementSpriteNo(sprite.data.no, incrementAmount);
+ }
+ break;
+ }
+ };
+
+ for (let i = 0; i < copyCount; i++) {
+ const copiedSprite = Tool.copySprite(sprite);
+
+ adjustPosition(copiedSprite, copyDirect, gap, i);
+
// 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;
- }
+ if (autoIncrement && deviceType) {
+ incrementSpriteData(copiedSprite, i);
}
Tool.getMapContainer().addChild(copiedSprite);
Tool.beSettings(copiedSprite, setSpriteSettings);
- setLastCopiedSprites(prevArr => [...prevArr, copiedSprite]);
+ copiedSprites.push(copiedSprite);
}
+
+ setLastCopiedSprites(copiedSprites);
onCancel();
handleOnCopy?.(data);
notify.info(translate('common.response.success'));
@@ -303,7 +276,7 @@
sx={{ width: '50%' }}
fullWidth
inputProps={{
- min: 0,
+ // min: 0,
step: 1,
}}
onChange={(e) => {
--
Gitblit v1.9.1