From 443b9b204ec2f09f6f0b412f0faabf12fa4cd9a8 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期二, 22 十月 2024 15:42:28 +0800
Subject: [PATCH] #
---
zy-acs-flow/src/map/insight/index.jsx | 80 +++++++++++++++++++++++++++++++++++----
1 files changed, 71 insertions(+), 9 deletions(-)
diff --git a/zy-acs-flow/src/map/insight/index.jsx b/zy-acs-flow/src/map/insight/index.jsx
index bb95ea9..3bc802c 100644
--- a/zy-acs-flow/src/map/insight/index.jsx
+++ b/zy-acs-flow/src/map/insight/index.jsx
@@ -1,22 +1,31 @@
import React, { useState, useRef, useEffect } from 'react';
import { useTranslate } from "react-admin";
-import { Drawer, Box, Typography, Grid, IconButton, Stack, useTheme } from '@mui/material';
+import { Drawer, Box, Typography, Card, CardContent, IconButton, Stack, useTheme } from '@mui/material';
import CloseIcon from '@mui/icons-material/Close';
import { PAGE_DRAWER_WIDTH } from '@/config/setting';
-
+import {
+ DEVICE_TYPE,
+} from '../constants';
+import JsonShow from '../JsonShow';
+import ShelfInsight from './shelf';
+import AgvInsight from './agv';
+import PointInsight from './point';
const Insight = (props) => {
- const { open, onCancel, sprite, width = PAGE_DRAWER_WIDTH, title } = props;
+ const { open, onCancel, sprite, width = PAGE_DRAWER_WIDTH } = props;
const theme = useTheme();
const themeMode = theme.palette.mode;
const translate = useTranslate();
+ const [title, setTitle] = useState(null);
+
+ const deviceType = sprite?.data?.type;
const handleClose = () => {
onCancel();
}
useEffect(() => {
- }, [])
+ }, [sprite])
return (
<>
@@ -25,20 +34,41 @@
open={open}
anchor="right"
onClose={handleClose}
- sx={{ zIndex: 100, opacity: .8 }}
+ sx={{ zIndex: 100, opacity: 1 }}
>
{open && (
- <Box pt={12} width={{ xs: '100vW', sm: width }} height={'calc(100vh - 200px);'} mt={{ xs: 2, sm: 1 }} sx={{
+ <Box pt={12} width={{ xs: '100vW', sm: width }} height={'calc(100vh - 100px);'} mt={{ xs: 2, sm: 1 }} sx={{
}}>
- <Stack direction="row" p={2}>
+ <Stack direction="row" p={2} pt={3}>
<Typography variant="h6" flex="1">
- {title || translate('page.map.insight.title')}
+ {title || ''}
</Typography>
<IconButton onClick={handleClose} size="small">
<CloseIcon />
</IconButton>
</Stack>
- <Box p={3}>
+ <Box p={2} pt={0} height='100%'>
+ <Card sx={{
+ height: '100%',
+ transition: '0.3s',
+ boxShadow: themeMode === 'light'
+ ? '0px 2px 8px rgba(0, 0, 0, 0.1)'
+ : '0px 2px 2px rgba(255, 255, 255, 0.1)',
+ '&:hover': {
+ boxShadow: themeMode === 'light'
+ ? '0px 4px 16px rgba(0, 0, 0, 0.2)'
+ : '0px 4px 8px rgba(255, 255, 255, 0.2)',
+ },
+ borderRadius: '8px',
+ }}>
+ <CardContent sx={{ height: '100%' }}>
+ <DeviceContent
+ deviceType={deviceType}
+ sprite={sprite}
+ setTitle={setTitle}
+ />
+ </CardContent>
+ </Card>
</Box>
</Box>
)}
@@ -47,5 +77,37 @@
)
}
+const DeviceContent = ({ deviceType, sprite, setTitle }) => {
+ switch (deviceType) {
+ case DEVICE_TYPE.SHELF:
+ return (
+ <ShelfInsight
+ sprite={sprite}
+ setTitle={setTitle}
+ />
+ )
+ case DEVICE_TYPE.AGV:
+ return (
+ <AgvInsight
+ sprite={sprite}
+ setTitle={setTitle}
+ />
+ )
+ case DEVICE_TYPE.POINT:
+ return (
+ <PointInsight
+ sprite={sprite}
+ setTitle={setTitle}
+ />
+ )
+ default:
+ return (
+ <JsonShow
+ data={sprite?.data}
+ height={550}
+ />
+ )
+ }
+}
export default Insight;
\ No newline at end of file
--
Gitblit v1.9.1