import React, { useState, useRef, useEffect, useMemo } from "react";
|
import {
|
DateField,
|
EditButton,
|
DeleteButton,
|
ReferenceField,
|
SelectField,
|
ShowButton,
|
TextField,
|
UrlField,
|
useRecordContext,
|
useTranslate,
|
Button as RaButton,
|
useNotify,
|
} from 'react-admin';
|
import { Link as RouterLink, useLocation } from 'react-router-dom';
|
import {
|
Box,
|
Button,
|
Card,
|
CardContent,
|
Skeleton,
|
Stack,
|
Typography,
|
Divider,
|
Grid,
|
} from '@mui/material';
|
import { formatDistance } from 'date-fns';
|
import StatusField from "../../components/StatusField";
|
import AccessTimeIcon from '@mui/icons-material/AccessTime';
|
import RemoveCircleIcon from '@mui/icons-material/RemoveCircle';
|
import AdjustIcon from '@mui/icons-material/Adjust';
|
import request from '@/utils/request';
|
import { HANDLE_APP_KEY } from '@/config/setting';
|
|
export const AgvShowAside = (props) => {
|
const translate = useTranslate();
|
const notify = useNotify();
|
const record = useRecordContext();
|
if (!record) return null;
|
|
const removeFromMap = () => {
|
if (confirm(translate('common.msg.confirm.desc'))) {
|
request.post('/agv/remove/from/map', { ...record }).then(res => {
|
const { code, msg, data } = res.data;
|
if (code === 200) {
|
notify(msg, { type: 'success', messageArgs: { _: msg } });
|
} else {
|
notify(msg, { type: 'error', messageArgs: { _: msg } });
|
}
|
}).catch(error => {
|
notify(error, { type: 'error', messageArgs: { _: error } });
|
})
|
}
|
}
|
|
const reposition = () => {
|
if (confirm(translate('common.msg.confirm.desc'))) {
|
request.post('/handler/unlock',
|
{ agvNo: record.uuid },
|
{ headers: { 'appKey': HANDLE_APP_KEY } }
|
).then(res => {
|
const { code, msg, data } = res.data;
|
if (code === 200) {
|
notify(msg, { type: 'success', messageArgs: { _: msg } });
|
} else {
|
notify(msg, { type: 'error', messageArgs: { _: msg } });
|
}
|
}).catch(error => {
|
notify(error, { type: 'error', messageArgs: { _: error } });
|
})
|
}
|
}
|
|
return (
|
<Box width={400} display={{ xs: 'none', lg: 'block' }}>
|
{record && (
|
<Box ml={2}>
|
<Card>
|
<CardContent>
|
<Stack direction="row" spacing={1}>
|
<EditButton />
|
</Stack>
|
<Stack direction="row" mt={.5}>
|
<RaButton label="page.agv.show.remove" onClick={removeFromMap}>
|
<RemoveCircleIcon />
|
</RaButton>
|
</Stack>
|
<Stack direction="row" mt={.5}>
|
<RaButton label="page.agv.show.reposition" onClick={reposition}>
|
<AdjustIcon />
|
</RaButton>
|
</Stack>
|
<Stack direction="row" mt={.5}>
|
<DeleteButton mutationMode="optimistic" />
|
</Stack>
|
<Box mt={1} />
|
<Typography variant="subtitle2" gutterBottom>
|
{translate('common.edit.side.title')}
|
</Typography>
|
<Divider sx={{ mb: 2 }} />
|
<Grid container rowSpacing={2} columnSpacing={1}>
|
<Grid item xs={12} display="flex" gap={1}>
|
<StatusField label="Status" />
|
</Grid>
|
<Grid item xs={12} display="flex" gap={1}>
|
<Stack
|
direction="row"
|
alignItems="center"
|
gap={1}
|
minHeight={24}
|
>
|
<AccessTimeIcon fontSize="small" color="disabled" />
|
<Typography variant="body2">
|
{translate('common.field.createTime')}
|
</Typography>
|
<DateField
|
record={record}
|
source="createTime"
|
showTime
|
/>
|
</Stack>
|
</Grid>
|
<Grid item xs={12} display="flex" gap={1}>
|
<Stack
|
direction="row"
|
alignItems="center"
|
gap={1}
|
minHeight={24}
|
>
|
<AccessTimeIcon fontSize="small" color="disabled" />
|
<Typography variant="body2">
|
{translate('common.field.updateTime')}
|
</Typography>
|
<DateField
|
record={record}
|
source="updateTime"
|
showTime
|
/>
|
</Stack>
|
</Grid>
|
</Grid>
|
</CardContent>
|
</Card>
|
</Box>
|
)}
|
</Box>
|
);
|
}
|