From daad745a9cf2e66c0021a359005175bdeddc51e5 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期五, 18 十月 2024 16:12:23 +0800
Subject: [PATCH] #
---
zy-acs-flow/src/map/insight/shelf/ShelfMain.jsx | 127 +++++++++++++++++++++++++++++-------------
1 files changed, 88 insertions(+), 39 deletions(-)
diff --git a/zy-acs-flow/src/map/insight/shelf/ShelfMain.jsx b/zy-acs-flow/src/map/insight/shelf/ShelfMain.jsx
index 3e50bb9..655567c 100644
--- a/zy-acs-flow/src/map/insight/shelf/ShelfMain.jsx
+++ b/zy-acs-flow/src/map/insight/shelf/ShelfMain.jsx
@@ -1,6 +1,5 @@
import React, { useRef, useEffect, useState } from 'react';
-import * as THREE from 'three';
-import { useTranslate } from 'react-admin';
+import { useTranslate, useDataProvider } from 'react-admin';
import {
Box,
CircularProgress,
@@ -13,6 +12,7 @@
} from '@mui/material';
import ShelfThree from './ShelfThree';
import { getLocGroup } from '../../http';
+import { grey } from '@mui/material/colors';
let shelfThree;
@@ -52,7 +52,6 @@
break;
case '涓嶈鍒�':
child.visible = item.locStsEl === 'STOCK' || item.locStsEl === 'PAKOUT';
- // child.visible = !['STOCK', 'IDLE'].includes(item.locStsEl);
child.material.color.set(0xE8B67E);
break;
default:
@@ -83,15 +82,18 @@
const ShelfMain = (props) => {
const { data, curLocNo, setCurLocNo } = props;
const translate = useTranslate();
+ const dataProvider = useDataProvider();
const containerRef = useRef();
const [loading, setLoading] = useState(true);
const [info, setInfo] = useState(null);
+ const [selectedLoc, setSelectedLoc] = useState(null);
useEffect(() => {
if (data) {
getLocGroup(data.row, data.bay, (response) => {
setInfo(response);
setCurLocNo(response[0]?.locNo);
+ setSelectedLoc(response[0]);
});
}
}, [data]);
@@ -104,19 +106,35 @@
startThree(containerRef.current);
shelfThree.handleClick = (objName) => {
setCurLocNo(objName);
+ setSelectedLoc(info.find(loc => objName === loc.locNo));
};
renderThree(info, curLocNo);
setLoading(false);
- }, 200)
+ }, 300)
}
return endThree;
}, [info]);
+ const updateStatus = () => {
+ dataProvider.update('loc', {
+ id: info.agvId,
+ data: {
+ status: info.status === 0 ? 1 : 0
+ }
+ }).then(({ data }) => {
+ fetchAgvInfo(curAgvNo);
+ notify.success(translate('common.response.success'));
+ }).catch((error) => {
+ notify.success(translate('common.response.fail'));
+ console.error(`Error: ${error.message}`);
+ });
+ }
+
return (
- <Box display="flex" height="500px">
+ <Box display="flex" height="100%">
<Box
position="relative"
- width="60%"
+ width="50%"
height="100%"
ref={containerRef}
style={{ backgroundColor: '#7a7a7a' }}
@@ -128,55 +146,86 @@
left="50%"
style={{ transform: 'translate(-50%, -50%)' }}
>
- <CircularProgress />
+ <CircularProgress sx={{ color: grey[50] }} />
</Box>
)}
</Box>
- <Box width="40%" height="100%" overflow="auto" p={2}>
- {/* <Paper elevation={3} style={{ padding: '16px' }}>
- <Typography variant="h6" gutterBottom>
- {translate('map.loc.no', { defaultMessage: '搴撲綅鍙�' })}: {curLocNo}
- </Typography>
- <Divider />
- <Grid container spacing={2} style={{ marginTop: '16px' }}>
- <Grid item xs={12}>
- <Typography variant="subtitle1">
- {translate('map.loc.sts', { defaultMessage: '搴撲綅鐘舵��' })}
- </Typography>
- <Typography variant="body1">{info?.locSts}</Typography>
+ <Box width="50%" height="100%" overflow="auto" pl={1}>
+ <Paper elevation={1} style={{
+ height: "100%",
+ padding: '16px',
+ display: 'flex',
+ flexDirection: 'column',
+ justifyContent: 'space-between',
+ }}>
+ <Box>
+ <Grid container spacing={2} style={{ marginTop: '0px' }}>
+ <Grid item xs={12}>
+ <KeyValuePair label={translate('table.field.loc.locNo')} value={selectedLoc?.locNo || 'N/A'} />
+ </Grid>
+ <Grid item xs={12}>
+ <KeyValuePair label={translate('table.field.loc.row')} value={selectedLoc?.row || 'N/A'} />
+ </Grid>
+ <Grid item xs={12}>
+ <KeyValuePair label={translate('table.field.loc.bay')} value={selectedLoc?.bay || 'N/A'} />
+ </Grid>
+ <Grid item xs={12}>
+ <KeyValuePair label={translate('table.field.loc.lev')} value={selectedLoc?.lev || 'N/A'} />
+ </Grid>
+ <Grid item xs={12}>
+ <KeyValuePair label={translate('table.field.loc.offset')} value={selectedLoc?.offset || 'N/A'} />
+ </Grid>
+ <Grid item xs={12}>
+ <KeyValuePair label={translate('table.field.loc.locSts')} value={selectedLoc?.locSts$ || 'N/A'} />
+ </Grid>
+ <Grid item xs={12}>
+ <KeyValuePair label={translate('table.field.loc.zoneId')} value={selectedLoc?.zoneId$ || 'N/A'} />
+ </Grid>
+ <Grid item xs={12}>
+ <KeyValuePair label={translate('table.field.loc.code')} value={selectedLoc?.code$ || 'N/A'} />
+ </Grid>
</Grid>
+ </Box>
+
+ <Grid container spacing={2} style={{ marginTop: '0px' }}>
<Grid item xs={12}>
<Typography variant="subtitle1">
- {translate('map.pallet.barcode', { defaultMessage: '鎵樼洏鏉$爜' })}
- </Typography>
- <Typography variant="body1">{info?.zpallet}</Typography>
- </Grid>
- <Grid item xs={12}>
- <Typography variant="subtitle1">
- {translate('map.is.enable', { defaultMessage: '鏄惁鍚敤' })}
- </Typography>
- </Grid>
- <Grid item xs={12}>
- <Typography variant="subtitle1">
- {translate('map.loc.operation', { defaultMessage: '搴撲綅鎿嶄綔' })}
+ {translate('common.field.opt')}
</Typography>
<Stack spacing={2} mt={2}>
- <Button variant="contained" color="error" fullWidth>
- {translate('map.loc.lock', { defaultMessage: '閿佸畾' })}
- </Button>
- <Button variant="contained" disabled fullWidth>
- {translate('map.loc.unlock', { defaultMessage: '瑙i攣' })}
- </Button>
<Button variant="contained" fullWidth>
- {translate('map.loc.reset', { defaultMessage: '娓呴櫎搴撲綅' })}
+ {translate('page.map.insight.shelf.updateStatus')}
+ </Button>
+ <Button variant="contained" color="error" disabled={selectedLoc?.locStsEl !== 'STOCK'} fullWidth>
+ {translate('page.map.insight.shelf.outbound')}
</Button>
</Stack>
</Grid>
</Grid>
- </Paper> */}
+ </Paper>
</Box>
</Box>
);
};
+const KeyValuePair = ({ label, value }) => (
+ <>
+ <Stack direction="row" alignItems="center" spacing={1} sx={{ mb: 1 }}>
+ <Typography
+ variant="body2"
+ sx={{ width: '80px', fontWeight: 'bold', color: 'text.secondary', textAlign: 'left' }}
+ >
+ {label}:
+ </Typography>
+ <Typography
+ variant="body2"
+ sx={{ flexGrow: 1, color: 'text.primary', whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis' }}
+ >
+ {value}
+ </Typography>
+ </Stack>
+ <Divider />
+ </>
+);
+
export default ShelfMain;
--
Gitblit v1.9.1