From 95d473bc8c09ef41e1455f93dec49c5ee6ac548f Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期二, 18 六月 2024 08:23:38 +0800
Subject: [PATCH] #
---
 zy-asrs-flow/src/pages/map/components/mapSettings.jsx |  173 ++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 158 insertions(+), 15 deletions(-)
diff --git a/zy-asrs-flow/src/pages/map/components/mapSettings.jsx b/zy-asrs-flow/src/pages/map/components/mapSettings.jsx
index d4013c3..f196974 100644
--- a/zy-asrs-flow/src/pages/map/components/mapSettings.jsx
+++ b/zy-asrs-flow/src/pages/map/components/mapSettings.jsx
@@ -1,5 +1,5 @@
 import React, { useState, useRef, useEffect } from 'react';
-import { Col, Form, Input, Row, Checkbox, Slider, Select, Drawer, Space, Button, InputNumber, Card } from 'antd';
+import { Col, Form, Input, Row, message, Slider, Select, Drawer, Space, Button, InputNumber, Card } from 'antd';
 import { FormattedMessage, useIntl, useModel } from '@umijs/max';
 import { createStyles } from 'antd-style';
 import * as Utils from '../utils'
@@ -28,8 +28,10 @@
             form.setFieldsValue({
                 x: curSprite.position.x,
                 y: curSprite.position.y,
-                scale: Math.max(curSprite.scale.x, curSprite.scale.y),
-                scaleSlider: Math.max(curSprite.scale.x, curSprite.scale.y),
+                scaleX: curSprite.scale.x,
+                scaleSliderX: curSprite.scale.x,
+                scaleY: curSprite.scale.y,
+                scaleSliderY: curSprite.scale.y,
                 rotation: curSprite.rotation * 180 / Math.PI,
                 rotationSlider: curSprite.rotation * 180 / Math.PI,
 
@@ -55,17 +57,29 @@
                         case 'y':
                             curSprite.position.y = value;
                             break;
-                        case 'scaleSlider':
+                        case 'scaleSliderX':
                             form.setFieldsValue({
-                                scale: value
+                                scaleX: value
                             })
-                            curSprite.scale.set(value);
+                            curSprite.scale.x = value;
                             break;
-                        case 'scale':
+                        case 'scaleX':
                             form.setFieldsValue({
-                                scaleSlider: value
+                                scaleSliderX: value
                             })
-                            curSprite.scale.set(value);
+                            curSprite.scale.x = value;
+                            break;
+                        case 'scaleSliderY':
+                            form.setFieldsValue({
+                                scaleY: value
+                            })
+                            curSprite.scale.y = value;
+                            break;
+                        case 'scaleY':
+                            form.setFieldsValue({
+                                scaleSliderY: value
+                            })
+                            curSprite.scale.y = value;
                             break;
                         case 'rotationSlider':
                             form.setFieldsValue({
@@ -99,6 +113,98 @@
         setLastCopiedSprites([]);
         for (let i = 0; i < values.copyCount; i++) {
             const copiedSprite = Utils.copySprite(curSprite);
+            // auto-increment-value
+            if (values.autoIncrement && values.type) {
+                switch (values.type) {
+                    case Utils.SENSOR_TYPE.SHELF:
+                        if (values.incrementValue === 'row') {
+                            if (values.incrementMode === 'descending') {
+                                copiedSprite.data.row = curSprite.data.row - i - 1;
+                            } else {
+                                copiedSprite.data.row = curSprite.data.row + i + 1;
+                            }
+                        }
+                        if (values.incrementValue === 'bay') {
+                            if (values.incrementMode === 'descending') {
+                                copiedSprite.data.bay = curSprite.data.bay - i - 1;
+                            } else {
+                                copiedSprite.data.bay = curSprite.data.bay + i + 1;
+                            }
+                        }
+                        // reference value
+                        if (copiedSprite.data.refx && copiedSprite.data.refy) {
+                            switch (values.copyDire) {
+                                case 'left':
+                                    copiedSprite.data.refx -= curSprite.data.left * (i + 1);
+                                    break;
+                                case 'right':
+                                    copiedSprite.data.refx += curSprite.data.right * (i + 1);
+                                    break;
+                                case 'top':
+                                    copiedSprite.data.refy -= curSprite.data.top * (i + 1);
+                                    break;
+                                case 'bottom':
+                                    copiedSprite.data.refy += curSprite.data.bottom * (i + 1);
+                                    break;
+                                default:
+                                    break;
+                            }
+                        }
+                        if (copiedSprite.data.row && copiedSprite.data.bay) {
+                            copiedSprite.data.no = Utils.pureNumStr(copiedSprite.data.row) + '-' + Utils.pureNumStr(copiedSprite.data.bay);
+                        }
+                        break;
+                    case Utils.SENSOR_TYPE.POINT:
+                        if (values.incrementValue === 'vertical') {
+                            if (values.incrementMode === 'descending') {
+                                copiedSprite.data.vertical = curSprite.data.vertical - i - 1;
+                            } else {
+                                copiedSprite.data.vertical = curSprite.data.vertical + i + 1;
+                            }
+                        }
+                        if (values.incrementValue === 'horizontal') {
+                            if (values.incrementMode === 'descending') {
+                                copiedSprite.data.horizontal = curSprite.data.horizontal - i - 1;
+                            } else {
+                                copiedSprite.data.horizontal = curSprite.data.horizontal + i + 1;
+                            }
+                        }
+                        if (copiedSprite.data.vertical && copiedSprite.data.horizontal) {
+                            copiedSprite.data.no = Utils.pureNumStr(copiedSprite.data.vertical) + '-' + Utils.pureNumStr(copiedSprite.data.horizontal);
+                        }
+                        break;
+                    case Utils.SENSOR_TYPE.CONVEYOR:
+                        if (values.incrementValue === 'no') {
+                            if (values.incrementMode === 'descending') {
+                                copiedSprite.data.no = Number(curSprite.data.no) - i - 1;
+                            } else {
+                                copiedSprite.data.no = Number(curSprite.data.no) + i + 1;
+                            }
+                        }
+                        break;
+                    case Utils.SENSOR_TYPE.SHUTTLE:
+                        if (values.incrementValue === 'no') {
+                            if (values.incrementMode === 'descending') {
+                                copiedSprite.data.no = Number(curSprite.data.no) - i - 1;
+                            } else {
+                                copiedSprite.data.no = Number(curSprite.data.no) + i + 1;
+                            }
+                        }
+                        break;
+                    case Utils.SENSOR_TYPE.AGV:
+                        if (values.incrementValue === 'no') {
+                            if (values.incrementMode === 'descending') {
+                                copiedSprite.data.no = Number(curSprite.data.no) - i - 1;
+                            } else {
+                                copiedSprite.data.no = Number(curSprite.data.no) + i + 1;
+                            }
+                        }
+                        break;
+                    default:
+                        break;
+                }
+            }
+            // graph copy
             switch (values.copyDire) {
                 case 'left':
                     copiedSprite.position.x -= (i + 1) * (values.copyGap + copiedSprite.width);
@@ -116,7 +222,7 @@
                     break;
             }
             Utils.getMapContainer().addChild(copiedSprite);
-            Utils.beSettings(copiedSprite, props.setSpriteBySettings, props.setDidClickSprite);
+            Utils.beSettings(copiedSprite, props.setSpriteBySettings);
 
             setLastCopiedSprites(prevArr => [...prevArr, copiedSprite]);
         }
@@ -203,11 +309,11 @@
                         </Form.Item>
                     </Col>
 
-                    {/* scale */}
+                    {/* scale x */}
                     <Col span={18}>
                         <Form.Item
-                            name="scaleSlider"
-                            label={intl.formatMessage({ id: 'map.settings.scale', defaultMessage: '缂╂斁' })}
+                            name="scaleSliderX"
+                            label={intl.formatMessage({ id: 'map.settings.scale.x', defaultMessage: '缂╂斁-x' })}
                             labelCol={{ span: 5 }}
                         >
                             <Slider
@@ -227,7 +333,44 @@
                     </Col>
                     <Col span={6}>
                         <Form.Item
-                            name="scale"
+                            name="scaleX"
+                        >
+                            <InputNumber
+                                min={0.1} max={10} step={0.1}
+                                rules={[
+                                    {
+                                        required: true,
+                                    },
+                                ]}
+                            />
+                        </Form.Item>
+                    </Col>
+
+                    {/* scale */}
+                    <Col span={18}>
+                        <Form.Item
+                            name="scaleSliderY"
+                            label={intl.formatMessage({ id: 'map.settings.scale.y', defaultMessage: '缂╂斁-y' })}
+                            labelCol={{ span: 5 }}
+                        >
+                            <Slider
+                                min={0.1}
+                                max={10}
+                                step={0.1}
+                                marks={{
+                                    0.1: '0.1',
+                                    1: '1',
+                                    10: '10',
+                                }}
+                                style={{
+                                    width: '100%'
+                                }}
+                            />
+                        </Form.Item>
+                    </Col>
+                    <Col span={6}>
+                        <Form.Item
+                            name="scaleY"
                         >
                             <InputNumber
                                 min={0.1} max={10} step={0.1}
@@ -339,7 +482,7 @@
                                     </Form.Item>
                                     <Form.Item>
                                         <Button
-                                            type="link" 
+                                            type="link"
                                             onClick={() => {
                                                 if (lastCopiedSprites) {
                                                     lastCopiedSprites.forEach(copiedSprite => {
--
Gitblit v1.9.1