From 55833211343bc9d0f80e947ab773b75821b04466 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期一, 07 十月 2024 08:27:17 +0800 Subject: [PATCH] # --- zy-acs-flow/src/page/mission/MissionList.jsx | 4 + zy-acs-flow/src/page/mission/MissionResend.jsx | 143 +++++++++++++++++++++++++++++++++++++++++++++++ zy-acs-flow/src/page/mission/MissionShow.jsx | 4 + 3 files changed, 149 insertions(+), 2 deletions(-) diff --git a/zy-acs-flow/src/page/mission/MissionList.jsx b/zy-acs-flow/src/page/mission/MissionList.jsx index f1bb75c..b0b3eca 100644 --- a/zy-acs-flow/src/page/mission/MissionList.jsx +++ b/zy-acs-flow/src/page/mission/MissionList.jsx @@ -14,11 +14,11 @@ import { matchPath, useLocation } from 'react-router'; import { Box, Typography, Card, Stack, LinearProgress } from '@mui/material'; import { styled } from '@mui/material/styles'; -import PageDrawer from "../components/PageDrawer"; import * as Common from '@/utils/common'; import MissionShow from "./MissionShow"; import { MissionListContent } from "./MissionListContent"; import EmptyDataLoader from "../components/EmptyDataLoader"; +import MissionResend from "./MissionResend"; const MissionList = () => { @@ -45,6 +45,7 @@ const MissionLayout = () => { const location = useLocation(); const matchShow = matchPath('/mission/:id/show', location.pathname); + const matchResend = matchPath('/mission/:id/resend', location.pathname); const { data, isPending, filterValues } = useListContext(); const hasFilters = filterValues && Object.keys(filterValues).length > 0; @@ -72,6 +73,7 @@ <MissionListContent /> </Card> <MissionShow open={!!matchShow} id={matchShow?.params.id} /> + <MissionResend open={!!matchResend} id={matchResend?.params.id} /> </Stack> ); } diff --git a/zy-acs-flow/src/page/mission/MissionResend.jsx b/zy-acs-flow/src/page/mission/MissionResend.jsx new file mode 100644 index 0000000..5ec3fbb --- /dev/null +++ b/zy-acs-flow/src/page/mission/MissionResend.jsx @@ -0,0 +1,143 @@ +import React, { useState, useRef, useEffect, useMemo, useCallback } from "react"; +import { + useTranslate, + EditButton, + ReferenceArrayField, + ReferenceField, + ReferenceManyField, + ShowBase, + useDataProvider, + useNotify, + useRecordContext, + useRedirect, + useRefresh, + useUpdate, +} from 'react-admin'; +import { + Box, + Button, + Chip, + Dialog, + DialogContent, + Divider, + Stack, + Typography, + Avatar, + useTheme, +} from '@mui/material'; +import { Link } from 'react-router-dom'; +import DialogCloseButton from "../components/DialogCloseButton"; +import { blueGrey, blue } from '@mui/material/colors'; +import MoveToInboxIcon from '@mui/icons-material/MoveToInbox'; +import { format } from 'date-fns'; +import { TaskList } from "./TaskList"; +import { ActionsIterator } from "../action/ActionsIterator"; +import ArrowBackIosNewIcon from '@mui/icons-material/ArrowBackIosNew'; + +const MissionResend = ({ open, id }) => { + const redirect = useRedirect(); + const handleClose = () => { + redirect('list', 'mission'); + }; + + return ( + <Dialog + open={open} + onClose={handleClose} + fullWidth + maxWidth="md" + sx={{ + '& .MuiDialog-container': { + alignItems: 'flex-start', + }, + }} + > + <DialogContent sx={{ padding: 0 }}> + {!!id ? ( + <ShowBase id={id}> + <MissionResendContent handleClose={handleClose} /> + </ShowBase> + ) : null} + </DialogContent> + </Dialog> + ) +} + +const MissionResendContent = ({ handleClose }) => { + const theme = useTheme(); + const record = useRecordContext(); + const translate = useTranslate(); + if (!record) return null; + + return ( + <> + <DialogCloseButton + onClose={handleClose} + top={12} + /> + <Stack gap={1}> + <Box display="flex" p={2}> + <Box flex="1"> + <Stack + direction="row" + justifyContent="space-between" + mb={4} + > + <Stack direction="row" alignItems="center" gap={2}> + <Avatar + sx={{ + width: 30, + height: 30, + bgcolor: theme.palette.primary.main, + }} + > + {record.agv} + </Avatar> + <Typography variant="h5"> + {record.groupNo} + </Typography> + </Stack> + <Stack + gap={1} + direction="row" + pr={6} + > + <Button + component={Link} + to={`/mission/${record.id}/show`} + size="small" + startIcon={<ArrowBackIosNewIcon />} + > + Back to deal + </Button> + </Stack> + </Stack> + + {!!record.codeList?.length && ( + <Box m={2} sx={{ whiteSpace: 'pre-line' }}> + <Typography + color="textSecondary" + variant="caption" + > + {translate('table.field.mission.runPath')} + </Typography> + <Typography variant="body2" sx={{ whiteSpace: 'normal', overflow: 'hidden', display: 'flex', flexWrap: 'wrap' }}> + [ {record.codeList.map((code, index) => ( + <span key={index} style={{ + color: record.currCode === code ? theme.palette.primary.main : 'inherit', + }}> + {code}{index < record.codeList.length - 1 && ','} + </span> + ))} ] + </Typography> + </Box> + )} + + </Box> + </Box> + </Stack> + </> + ) +}; + +export default MissionResend; \ No newline at end of file diff --git a/zy-acs-flow/src/page/mission/MissionShow.jsx b/zy-acs-flow/src/page/mission/MissionShow.jsx index 8a6c6af..b58ba7f 100644 --- a/zy-acs-flow/src/page/mission/MissionShow.jsx +++ b/zy-acs-flow/src/page/mission/MissionShow.jsx @@ -229,7 +229,9 @@ const translate = useTranslate(); const handleClick = () => { - alert(1); + redirect(`/mission/${record.id}/resend`, undefined, undefined, undefined, { + _scrollToTop: false, + }); }; return ( -- Gitblit v1.9.1