From d835d1b51f832889929cdf69010034a30ef44d02 Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期四, 17 十月 2024 13:57:29 +0800
Subject: [PATCH] #

---
 zy-asrs-flow/src/pages/map/header/search.jsx |   81 +++++++++++++++++++++++++++++++++++-----
 1 files changed, 71 insertions(+), 10 deletions(-)

diff --git a/zy-asrs-flow/src/pages/map/header/search.jsx b/zy-asrs-flow/src/pages/map/header/search.jsx
index 7e58a14..61f1ad1 100644
--- a/zy-asrs-flow/src/pages/map/header/search.jsx
+++ b/zy-asrs-flow/src/pages/map/header/search.jsx
@@ -26,17 +26,61 @@
                         )
                 })
                 break;
-            case Utils.SENSOR_TYPE.AGV:
+            case Utils.SENSOR_TYPE.CONVEYOR:
                 options.push({
                     value: value,
                     label:
                         (
                             <>
-                                <span style={{ fontWeight: 'bold' }} >{intl.formatMessage({ id: 'map.sensor.type.agv', defaultMessage: '鏃犱汉灏忚溅' })}</span>
+                                <span style={{ fontWeight: 'bold' }} >{intl.formatMessage({ id: 'map.sensor.type.conveyor', defaultMessage: '杈撻�佺嚎' })}</span>
                             </>
                         )
                 })
                 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.LIFT:
+                options.push({
+                    value: value,
+                    label:
+                        (
+                            <>
+                                <span style={{ fontWeight: 'bold' }} >{intl.formatMessage({ id: 'map.sensor.type.lift', defaultMessage: '鎻愬崌鏈�' })}</span>
+                            </>
+                        )
+                })
+                break;
+            // case Utils.SENSOR_TYPE.AGV:
+            //     options.push({
+            //         value: value,
+            //         label:
+            //             (
+            //                 <>
+            //                     <span style={{ fontWeight: 'bold' }} >{intl.formatMessage({ id: 'map.sensor.type.agv', defaultMessage: 'AGV' })}</span>
+            //                 </>
+            //             )
+            //     })
+            //     break;
+            // case Utils.SENSOR_TYPE.POINT:
+            //     options.push({
+            //         value: value,
+            //         label:
+            //             (
+            //                 <>
+            //                     <span style={{ fontWeight: 'bold' }} >{intl.formatMessage({ id: 'map.sensor.type.point', defaultMessage: '瀹氫綅鐐�' })}</span>
+            //                 </>
+            //             )
+            //     })
+            //     break;
             default:
                 break;
         }
@@ -53,6 +97,15 @@
                 value: child.data.no,
                 label: renderTitle(child.data.no, child.data.uuid)
             })
+        }
+        // lift special handling
+        if (curSensorType === Utils.SENSOR_TYPE.LIFT) {
+            if (child?.data?.type === Utils.SENSOR_TYPE.SHELF && child?.data?.shelfType === Utils.SHELF_TYPE.LIFT) {
+                sensorListAll.push({
+                    value: child.data.liftNo + '',
+                    label: renderTitle(child.data.liftNo + '', child.data.uuid)
+                })
+            }
         }
     });
     return sensorListAll;
@@ -76,20 +129,25 @@
     const [filterSensorList, setFilterSensorList] = React.useState([]);
     const [curSensorLabel, setCurSensorLabel] = React.useState(null);
 
-    // first select
-    React.useEffect(() => {
-        if (!Utils.getMapContainer()) { return; }
+    const resetSearch = () => {
         let sensorListAll = getAllSensorList(curSensorType);
         setSensorList(sensorListAll);
         setFilterSensorList(sensorListAll);
         setCurSensorLabel(null);
-    }, [curSensorType])
+    }
 
-    // second select
+    // first select and switch floor
+    React.useEffect(() => {
+        if (!Utils.getMapContainer()) { return }
+        setTimeout(() => {
+            resetSearch();
+        }, 200)
+    }, [curSensorType, props.curFloor])
+
+    // second select condition
     React.useEffect(() => {
         if (!Utils.getMapContainer()) { return; }
-        if ((curSensorLabel !== null || curSensorLabel != undefined)
-            && sensorList && sensorList.length > 0) {
+        if (!Utils.isNullOfUndefined(curSensorLabel) && sensorList && sensorList.length > 0) {
             setFilterSensorList(sensorList.filter(item => item.value.includes(curSensorLabel)));
         }
     }, [curSensorLabel])
@@ -106,7 +164,10 @@
                 break;
             case ModelEnum.MOVABLE_MODEL:
                 setModel(ModelEnum.SETTINGS_MODEL);
-                setSpriteBySettings(selectSensor);
+                // avoid model modify which will clear spriteBySettings
+                setTimeout(() => {
+                    setSpriteBySettings(selectSensor);
+                }, 200)
                 break;
             case ModelEnum.SETTINGS_MODEL:
                 setSpriteBySettings(selectSensor);

--
Gitblit v1.9.1