From 769f753ca8581b717bcd27c63c637fe868dd37f1 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期五, 18 十月 2024 14:03:00 +0800 Subject: [PATCH] # --- zy-acs-flow/src/map/insight/agv/AgvMain.jsx | 112 ++++++++++++++++++++++++++++++++++---------------------- 1 files changed, 68 insertions(+), 44 deletions(-) diff --git a/zy-acs-flow/src/map/insight/agv/AgvMain.jsx b/zy-acs-flow/src/map/insight/agv/AgvMain.jsx index 74c94de..efa722f 100644 --- a/zy-acs-flow/src/map/insight/agv/AgvMain.jsx +++ b/zy-acs-flow/src/map/insight/agv/AgvMain.jsx @@ -10,9 +10,12 @@ Button, Divider, Stack, + useTheme, } from '@mui/material'; import AgvThree from './AgvThree'; import { getAgvInfo } from '../../http'; +import BoolValueIcon from '../BoolValueIcon'; +import ConfirmButton from '../../../page/components/ConfirmButton'; let three; @@ -64,7 +67,7 @@ addObject(agvGroup); - three.rePerspective(350, 450); + three?.rePerspective(350, 450); }).catch((error) => { console.error(error); @@ -74,25 +77,24 @@ } const AgvMain = (props) => { - const { data, curAgvNo, setCurAgvNo } = props; + const { curAgvNo, setCurAgvNo, setJsonData } = props; + const theme = useTheme(); const translate = useTranslate(); const containerRef = useRef(); const [loading, setLoading] = useState(true); const [info, setInfo] = useState(null); useEffect(() => { - if (data) { - getAgvInfo(data.no, (response) => { + if (curAgvNo) { + getAgvInfo(curAgvNo, (response) => { setInfo(response); - setCurAgvNo(data.no); }); } - }, [data]); + }, [curAgvNo]); useEffect(() => { if (info) { - console.log(info); - + setJsonData(info); endThree(); setLoading(true); setTimeout(() => { @@ -106,6 +108,10 @@ } return endThree; }, [info]); + + const handleReset = () => { + alert(1) + } return ( <Box display="flex" height="100%"> @@ -138,44 +144,55 @@ <Box> <Grid container spacing={2} style={{ marginTop: '0px' }}> <Grid item xs={12}> - <KeyValuePair label={translate('table.field.agv.uuid')} value={info?.uuid || 'N/A'} /> + <KeyValuePair label={translate('table.field.agv.uuid')} value={info?.agvNo} /> </Grid> <Grid item xs={12}> - <KeyValuePair label={translate('table.field.loc.row')} value={info?.row || 'N/A'} /> + <KeyValuePair label={translate('table.field.agvDetail.online')} value={info?.online} bool /> </Grid> <Grid item xs={12}> - <KeyValuePair label={translate('table.field.loc.bay')} value={info?.bay || 'N/A'} /> + <KeyValuePair label={translate('table.field.agvDetail.pos')} value={info?.pos} bool /> </Grid> <Grid item xs={12}> - <KeyValuePair label={translate('table.field.loc.lev')} value={info?.lev || 'N/A'} /> + <KeyValuePair label={translate('common.field.status')} value={info?.agvStatus} /> </Grid> <Grid item xs={12}> - <KeyValuePair label={translate('table.field.loc.offset')} value={info?.offset || 'N/A'} /> + <KeyValuePair label={translate('table.field.agvDetail.vol')} value={info?.vol} /> </Grid> <Grid item xs={12}> - <KeyValuePair label={translate('table.field.loc.locSts')} value={info?.locSts$ || 'N/A'} /> + <KeyValuePair label={translate('table.field.agvDetail.soc')} value={info?.soc} /> </Grid> <Grid item xs={12}> - <KeyValuePair label={translate('table.field.loc.zoneId')} value={info?.zoneId$ || 'N/A'} /> + <KeyValuePair label={translate('table.field.agvDetail.agvAngle')} value={info?.direction} /> </Grid> <Grid item xs={12}> - <KeyValuePair label={translate('table.field.loc.code')} value={info?.code$ || 'N/A'} /> + <KeyValuePair label={translate('table.field.agvDetail.backpack')} value={info?.backpack.filter(item => item.loaded === true).length} /> + </Grid> + <Grid item xs={12}> + <KeyValuePair label={translate('table.field.agvDetail.task')} value={info?.taskIds?.join(',')} /> </Grid> </Grid> </Box> <Grid container spacing={2} style={{ marginTop: '0px' }}> <Grid item xs={12}> - <Typography variant="subtitle1"> - {translate('common.field.opt')} - </Typography> <Stack spacing={2} mt={2}> - <Button variant="contained" fullWidth> - {translate('page.map.insight.shelf.updateStatus')} - </Button> - <Button variant="contained" color="error" disabled={info?.locStsEl !== 'STOCK'} fullWidth> - {translate('page.map.insight.shelf.outbound')} - </Button> + <ConfirmButton + label="page.map.action.reset" + color="primary" + variant="contained" + onConfirm={() => { + handleReset(); + }} + /> + {info && ( + info.status === 1 + ? <Button variant="contained" color="error" fullWidth> + {translate('page.map.action.disable')} + </Button> + : <Button variant="contained" fullWidth> + {translate('page.map.action.enable')} + </Button> + )} </Stack> </Grid> </Grid> @@ -185,24 +202,31 @@ ); } -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 /> - </> -); +const KeyValuePair = ({ label, value, bool }) => { + return ( + <> + <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> + {bool + ? <BoolValueIcon + value={value} + /> + : <Typography + variant="body2" + sx={{ flexGrow: 1, color: 'text.primary', whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis' }} + > + {value} + </Typography> + } + </Stack> + <Divider /> + </> + ) +}; export default AgvMain; -- Gitblit v1.9.1