From 0f223f1ad700b62b7dc060e0e9de33844388dc85 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期三, 27 三月 2024 13:45:32 +0800
Subject: [PATCH] #

---
 zy-asrs-flow/src/pages/map/drawer/index.jsx               |    8 ++
 zy-asrs-flow/src/pages/map/drawer/shuttle/index.jsx       |   60 ++++++++++++++++++++
 zy-asrs-flow/src/pages/map/components/configSettings.jsx  |    6 ++
 zy-asrs-flow/src/pages/map/components/mapCopySettings.jsx |   48 ++++++++++++++++
 zy-asrs-flow/src/pages/map/components/mapSettings.jsx     |    9 +++
 zy-asrs-flow/src/pages/map/utils.js                       |   29 +++++++--
 zy-asrs-flow/src/pages/map/header/search.jsx              |   11 +++
 7 files changed, 165 insertions(+), 6 deletions(-)

diff --git a/zy-asrs-flow/src/pages/map/components/configSettings.jsx b/zy-asrs-flow/src/pages/map/components/configSettings.jsx
index 206a29f..6b45b0b 100644
--- a/zy-asrs-flow/src/pages/map/components/configSettings.jsx
+++ b/zy-asrs-flow/src/pages/map/components/configSettings.jsx
@@ -148,6 +148,12 @@
                     </>
                 )}
 
+                {curSprite?.data?.type === Utils.SENSOR_TYPE.SHUTTLE && (
+                    <>
+
+                    </>
+                )}
+
                 {curSprite?.data?.type === Utils.SENSOR_TYPE.SHELF && (
                     <>
                         <Form.Item
diff --git a/zy-asrs-flow/src/pages/map/components/mapCopySettings.jsx b/zy-asrs-flow/src/pages/map/components/mapCopySettings.jsx
index aa6d947..61e2dd2 100644
--- a/zy-asrs-flow/src/pages/map/components/mapCopySettings.jsx
+++ b/zy-asrs-flow/src/pages/map/components/mapCopySettings.jsx
@@ -155,6 +155,54 @@
                             </Form.Item>
                         </Col>
 
+                        {autoIncrement && curSprite?.data?.type === Utils.SENSOR_TYPE.SHUTTLE && (
+                            <>
+                                <Col span={24}>
+                                    <Form.Item
+                                        name='incrementValue'
+                                        label={intl.formatMessage({ id: 'map.settings.sub.copy.increment-value', defaultMessage: '鑷闀垮��' })}
+                                        labelCol={{ span: 8 }}
+                                        initialValue='no'
+                                    >
+                                        <Segmented
+                                            block
+                                            options={[
+                                                {
+                                                    label: intl.formatMessage({ id: 'map.settings.no', defaultMessage: '缂栧彿' }),
+                                                    value: 'no'
+                                                },
+                                            ]}
+                                            onChange={(value) => {
+                                            }}
+                                        />
+                                    </Form.Item>
+                                </Col>
+                                <Col span={24}>
+                                    <Form.Item
+                                        name='incrementMode'
+                                        label={intl.formatMessage({ id: 'map.settings.sub.copy.increment.mode', defaultMessage: '澧為暱鏂瑰紡' })}
+                                        labelCol={{ span: 8 }}
+                                    >
+                                        <Segmented
+                                            block
+                                            options={[
+                                                {
+                                                    label: intl.formatMessage({ id: 'map.settings.sub.copy.ascend', defaultMessage: '鍗囧簭' }),
+                                                    value: 'ascending'
+                                                },
+                                                {
+                                                    label: intl.formatMessage({ id: 'map.settings.sub.copy.descend', defaultMessage: '闄嶅簭' }),
+                                                    value: 'descending'
+                                                },
+                                            ]}
+                                            onChange={(value) => {
+                                            }}
+                                        />
+                                    </Form.Item>
+                                </Col>
+                            </>
+                        )}
+
                         {autoIncrement && curSprite?.data?.type === Utils.SENSOR_TYPE.AGV && (
                             <>
                                 <Col span={24}>
diff --git a/zy-asrs-flow/src/pages/map/components/mapSettings.jsx b/zy-asrs-flow/src/pages/map/components/mapSettings.jsx
index ff3a782..c88ac58 100644
--- a/zy-asrs-flow/src/pages/map/components/mapSettings.jsx
+++ b/zy-asrs-flow/src/pages/map/components/mapSettings.jsx
@@ -140,6 +140,15 @@
                             copiedSprite.data.no = Utils.pureNumStr(copiedSprite.data.vertical) + '-' + Utils.pureNumStr(copiedSprite.data.horizontal);
                         }
                         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') {
diff --git a/zy-asrs-flow/src/pages/map/drawer/index.jsx b/zy-asrs-flow/src/pages/map/drawer/index.jsx
index 0662017..53b4130 100644
--- a/zy-asrs-flow/src/pages/map/drawer/index.jsx
+++ b/zy-asrs-flow/src/pages/map/drawer/index.jsx
@@ -6,6 +6,7 @@
 import ShelfDrawer from './shelf';
 import AgvDrawer from './agv';
 import PointDrawer from './point'
+import ShuttleDrawer from './shuttle'
 
 const useStyles = createStyles(({ token, css }) => {
 
@@ -47,6 +48,13 @@
                         />
                     </>
                 )}
+                {props.curSprite?.data?.type === Utils.SENSOR_TYPE.SHUTTLE && (
+                    <>
+                        <ShuttleDrawer
+                            curSprite={curSprite}
+                        />
+                    </>
+                )}
                 {props.curSprite?.data?.type === Utils.SENSOR_TYPE.POINT && (
                     <>
                         <PointDrawer
diff --git a/zy-asrs-flow/src/pages/map/drawer/shuttle/index.jsx b/zy-asrs-flow/src/pages/map/drawer/shuttle/index.jsx
new file mode 100644
index 0000000..dfaaf50
--- /dev/null
+++ b/zy-asrs-flow/src/pages/map/drawer/shuttle/index.jsx
@@ -0,0 +1,60 @@
+import React, { useState, useRef, useEffect } from 'react';
+import { Card, Form, Button } from 'antd';
+import { FormattedMessage, useIntl, useModel } from '@umijs/max';
+import { createStyles } from 'antd-style';
+import * as Utils from '../../utils'
+import Http from '@/utils/http';
+import ShowJson from '../showJson';
+
+const useStyles = createStyles(({ token, css }) => {
+
+})
+
+const ShuttleDrawer = (props) => {
+    const intl = useIntl();
+    const { styles } = useStyles();
+    const [activeTabKey, setActiveTabKey] = useState('json');
+
+    const contentList = {
+        json: (
+            <ShowJson
+                data={props.curSprite.data}
+            />
+        ),
+    };
+
+    return (
+        <>
+            <Card
+                className='drawer-card'
+                hoverable
+                bordered={false}
+                type='inner'
+                tabList={[
+                    {
+                        key: 'json',
+                        tab: intl.formatMessage({ id: 'map.drawer.json', defaultMessage: 'JSON' }),
+                    },
+                ]}
+                activeTabKey={activeTabKey}
+                onTabChange={(key) => {
+                    setActiveTabKey(key)
+                }}
+                tabProps={{
+                    centered: true,
+                    size: 'large',
+                    type: "card",
+                    style: {
+                    }
+                }}
+                style={{
+                    height: '100%'
+                }}
+            >
+                {contentList[activeTabKey]}
+            </Card>
+        </>
+    )
+}
+
+export default ShuttleDrawer;
\ No newline at end of file
diff --git a/zy-asrs-flow/src/pages/map/header/search.jsx b/zy-asrs-flow/src/pages/map/header/search.jsx
index 6fe61e4..5324092 100644
--- a/zy-asrs-flow/src/pages/map/header/search.jsx
+++ b/zy-asrs-flow/src/pages/map/header/search.jsx
@@ -26,6 +26,17 @@
                         )
                 })
                 break;
+            case Utils.SENSOR_TYPE.SHUTTLE:
+                options.push({
+                    value: value,
+                    label:
+                        (
+                            <>
+                                <span style={{ fontWeight: 'bold' }} >{intl.formatMessage({ id: 'map.sensor.type.shuttle', defaultMessage: '绌挎杞�' })}</span>
+                            </>
+                        )
+                })
+                break;
             case Utils.SENSOR_TYPE.AGV:
                 options.push({
                     value: value,
diff --git a/zy-asrs-flow/src/pages/map/utils.js b/zy-asrs-flow/src/pages/map/utils.js
index 6dfc0b9..ea06eda 100644
--- a/zy-asrs-flow/src/pages/map/utils.js
+++ b/zy-asrs-flow/src/pages/map/utils.js
@@ -35,10 +35,17 @@
 })
 
 export const SENSOR_TYPE = Object.freeze({
-    SHUTTLE: "SHUTTLE",
     SHELF: "SHELF",
+    SHUTTLE: "SHUTTLE",
     POINT: "POINT",
     AGV: "AGV",
+})
+
+export const SENSOR_ZINDEX = Object.freeze({
+    SHELF: 1,
+    POINT: 1,
+    SHUTTLE: 100,
+    AGV: 100,
 })
 
 export const SHELF_TYPE = Object.freeze({
@@ -70,25 +77,25 @@
             sprite = new PIXI.Sprite(PIXI.Texture.from(shuttle, { resourceOptions: { scale: 5 } }));
             sprite.width = 50;
             sprite.height = 50;
-            sprite.zIndex = 100;
+            sprite.zIndex = SENSOR_ZINDEX.SHUTTLE;
             break;
         case SENSOR_TYPE.AGV:
             sprite = new PIXI.Sprite(PIXI.Texture.from(agv, { resourceOptions: { scale: 5 } }));
             sprite.width = 50;
             sprite.height = 50;
-            sprite.zIndex = 100;
+            sprite.zIndex = SENSOR_ZINDEX.AGV;
             break;
         case SENSOR_TYPE.SHELF:
             sprite = new PIXI.Sprite(PIXI.Texture.from(shelf, { resourceOptions: { scale: 1 } }));
             sprite.width = 60;
             sprite.height = 60;
-            sprite.zIndex = 1;
+            sprite.zIndex = SENSOR_ZINDEX.SHELF;
             break;
         case SENSOR_TYPE.POINT:
             sprite = new PIXI.Sprite(PIXI.Texture.from(point, { resourceOptions: { scale: 5 } }));
             sprite.width = 10;
             sprite.height = 10;
-            sprite.zIndex = 1;
+            sprite.zIndex = SENSOR_ZINDEX.POINT;
             break;
         default:
             break;
@@ -253,12 +260,14 @@
     effectHalfCircle.endFill();
     effectHalfCircle.position.set(sprite.x, sprite.y);
     effectHalfCircle.scale.set(1 / scale);
+    effectHalfCircle.zIndex = 9999;
 
     effectRectangle = new PIXI.Graphics();
     effectRectangle.lineStyle(5 * scale, color, 1);
     effectRectangle.drawRoundedRect(0, 0, sideLen, sideLen, 16 * scale);
     effectRectangle.endFill();
     effectRectangle.mask = effectHalfCircle;
+    effectRectangle.zIndex = 9999;
 
     const scaledWidth = sideLen * (1 / scale);
     const scaledHeight = sideLen * (1 / scale);
@@ -303,7 +312,9 @@
     copiedSprite.rotation = sprite.rotation;
     copiedSprite.data = deepCopy(sprite.data);
     copiedSprite.data.uuid = generateID();
-    showSheflType(copiedSprite);
+    if (copiedSprite.data.type === SENSOR_TYPE.SHELF) {
+        showSheflType(copiedSprite);
+    }
     return copiedSprite;
 }
 
@@ -359,6 +370,12 @@
                     label: intl.formatMessage({ id: 'map.sensor.type.shelf', defaultMessage: '璐ф灦' })
                 })
                 break;
+            case SENSOR_TYPE.SHUTTLE:
+                options.push({
+                    value: value,
+                    label: intl.formatMessage({ id: 'map.sensor.type.shuttle', defaultMessage: '绌挎杞�' })
+                })
+                break;
             case SENSOR_TYPE.AGV:
                 options.push({
                     value: value,

--
Gitblit v1.9.1