From 7f70cb15d035f0c233b9e62b9e43aa985317c908 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期一, 04 十一月 2024 10:22:45 +0800
Subject: [PATCH] #

---
 zy-acs-flow/src/map/insight/shelf/index.jsx |   63 +++++++++++++++++++++++++------
 1 files changed, 51 insertions(+), 12 deletions(-)

diff --git a/zy-acs-flow/src/map/insight/shelf/index.jsx b/zy-acs-flow/src/map/insight/shelf/index.jsx
index fe7f02d..c5d6076 100644
--- a/zy-acs-flow/src/map/insight/shelf/index.jsx
+++ b/zy-acs-flow/src/map/insight/shelf/index.jsx
@@ -2,47 +2,86 @@
 import { useTranslate } from "react-admin";
 import { Box, Typography, Tabs, Tab, Stack, useTheme, Divider } from '@mui/material';
 import ShelfMain from './ShelfMain';
+import JsonShow from '../../JsonShow';
+import { getLocGroup } from '../../http';
 
 const ShelfInsight = (props) => {
-    const { } = props;
+    const { sprite, setTitle } = props;
     const theme = useTheme();
-    const themeMode = theme.palette.mode;
     const translate = useTranslate();
 
     const [activeTab, setActiveTab] = useState(0);
+    const [curShelfInfo, setCurShelfInfo] = useState(null);
+    const [curLocNo, setCurLocNo] = useState(null);
+
+    const fetchShelfInfo = (row, bay) => {
+        getLocGroup(row, bay, (response) => {
+            setCurShelfInfo(response);
+            const defaultLocNo = response[0]?.locNo;
+            setCurLocNo(defaultLocNo);
+        });
+    }
+
+    useEffect(() => {
+        if (sprite) {
+            const { row, bay } = sprite.data;
+            if (row && bay) {
+                fetchShelfInfo(row, bay);
+            }
+        }
+
+        return () => {
+            setCurLocNo(null);
+            setCurShelfInfo(null);
+        }
+    }, [sprite]);
+
+    useEffect(() => {
+        if (curLocNo) {
+            setTitle(translate('page.map.devices.shelf') + ' - ' + curLocNo);
+        }
+
+        return () => {
+            setTitle(null);
+        }
+    }, [curLocNo])
 
     const handleTabChange = (event, newValue) => {
         setActiveTab(newValue);
     };
 
     return (
-        <>
+        <Box sx={{ height: '100%', display: 'flex', flexDirection: 'column' }}>
             <Tabs
                 value={activeTab}
                 onChange={handleTabChange}
-                indicatorColor="primary"
-                textColor="primary"
                 centered
                 sx={{ mb: 0 }}
             >
-                <Tab label={translate('page.map.settings.map.title')} />
-                <Tab label={translate('page.map.settings.config.title')} />
+                <Tab label={translate('page.map.insight.title')} />
+                <Tab label={'JSON'} />
             </Tabs>
 
             <Divider />
 
-            <Box p={3}>
+            <Box flex={1} pt={2}>
                 {activeTab === 0 && (
                     <ShelfMain
+                        row={sprite?.data?.row}
+                        bay={sprite?.data?.bay}
+                        curLocNo={curLocNo}
+                        curShelfInfo={curShelfInfo}
+                        setCurLocNo={setCurLocNo}
                     />
                 )}
                 {activeTab === 1 && (
-                    <Box>
-                        <h1>2</h1>
-                    </Box>
+                    <JsonShow
+                        data={curShelfInfo || sprite?.data}
+                        height={550}
+                    />
                 )}
             </Box>
-        </>
+        </Box>
     )
 }
 

--
Gitblit v1.9.1