#
luxiaotao1123
2024-10-12 57c58f09ea772fe06390a03d5ae9c73d6d6d9e56
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));
                                                            }}
                                                        />
                                                    )}
                                                />