From 55a1c64758c9e44b1dd96ec9f53124355b7304ce Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期日, 29 九月 2024 15:46:37 +0800
Subject: [PATCH] #
---
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/result/MissionVo.java | 2
zy-acs-flow/src/page/action/ActionsIterator.jsx | 45 +++++++++++++++
zy-acs-flow/src/page/action/Action.jsx | 81 +++++++++++++++++++++++++++
zy-acs-flow/src/page/mission/MissionShow.jsx | 2
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/MissionServiceImpl.java | 1
5 files changed, 131 insertions(+), 0 deletions(-)
diff --git a/zy-acs-flow/src/page/action/Action.jsx b/zy-acs-flow/src/page/action/Action.jsx
new file mode 100644
index 0000000..4a485b4
--- /dev/null
+++ b/zy-acs-flow/src/page/action/Action.jsx
@@ -0,0 +1,81 @@
+import { useState } from 'react';
+import {
+ Form,
+ ReferenceField,
+ useNotify,
+ useResourceContext,
+ useTranslate,
+} from 'react-admin';
+import {
+ Box,
+ Button,
+ Stack,
+ Tooltip,
+ Typography,
+ Avatar,
+} from '@mui/material';
+import { format } from 'date-fns';
+import { blueGrey } from '@mui/material/colors';
+
+export const Action = ({ data }) => {
+ const notify = useNotify();
+ const translate = useTranslate();
+
+ const [isHover, setHover] = useState(false);
+
+ return (
+ <Box
+ onMouseEnter={() => setHover(true)}
+ onMouseLeave={() => setHover(false)}
+ pb={1}
+ >
+ <Stack direction="row" spacing={1} alignItems="center" width="100%">
+ <Avatar
+ sx={{
+ width: 30,
+ height: 30,
+ bgcolor: blueGrey[500],
+ }}
+ >
+ {data.priority}
+ </Avatar>
+ <Typography color="text.secondary" variant="body2">
+ {data.name}
+ </Typography>
+ <Box flex={1}></Box>
+ <Typography
+ color="textSecondary"
+ variant="body2"
+ component="span"
+ >
+ {format(data.ioTime, 'yyyy-MM-dd HH:mm:ss') || '-'}
+ </Typography>
+ </Stack>
+ <Stack
+ sx={{
+ paddingTop: '0.5em',
+ display: 'flex',
+ '& p:empty': {
+ minHeight: '0.75em',
+ },
+ }}
+ >
+ {/* {note.text
+ ?.split('\n')
+ .map((paragraph: string, index: number) => (
+ <Typography
+ component="p"
+ variant="body2"
+ lineHeight={1.5}
+ margin={0}
+ key={index}
+ >
+ {paragraph}
+ </Typography>
+ ))}
+
+ {note.attachments && <NoteAttachments note={note} />} */}
+ </Stack>
+ </Box>
+ );
+};
diff --git a/zy-acs-flow/src/page/action/ActionsIterator.jsx b/zy-acs-flow/src/page/action/ActionsIterator.jsx
new file mode 100644
index 0000000..b550042
--- /dev/null
+++ b/zy-acs-flow/src/page/action/ActionsIterator.jsx
@@ -0,0 +1,45 @@
+import React, { useState, useRef, useEffect, useMemo, useCallback } from "react";
+import {
+ useDataProvider,
+ useTranslate,
+} from 'react-admin';
+import { Box, Divider, Stack, LinearProgress } from '@mui/material';
+
+import { Action } from './Action';
+
+export const ActionsIterator = ({ actionIds }) => {
+ const dataProvider = useDataProvider();
+
+ const [actions, setActions] = useState([]);
+
+ useEffect(() => {
+ if (actionIds?.length > 0) {
+ dataProvider.getMany('action', { ids: actionIds }).then(res => {
+ if (res.data?.length > 0) {
+ setActions(res.data);
+ }
+ })
+ }
+ }, [actionIds])
+
+ if (!actionIds?.length) return <LinearProgress />;
+
+ return (
+ <Box mt={2}>
+ {actions && (
+ <Stack mt={2} gap={1}>
+ {actions.map((action, idx) => (
+ <React.Fragment key={idx}>
+ <Action
+ data={action}
+ isLast={idx === actions.length - 1}
+ key={idx}
+ />
+ {idx < actions.length - 1 && <Divider />}
+ </React.Fragment>
+ ))}
+ </Stack>
+ )}
+ </Box>
+ );
+};
diff --git a/zy-acs-flow/src/page/mission/MissionShow.jsx b/zy-acs-flow/src/page/mission/MissionShow.jsx
index 4805aaf..8a24fea 100644
--- a/zy-acs-flow/src/page/mission/MissionShow.jsx
+++ b/zy-acs-flow/src/page/mission/MissionShow.jsx
@@ -29,6 +29,7 @@
import MoveToInboxIcon from '@mui/icons-material/MoveToInbox';
import { format } from 'date-fns';
import { TaskList } from "./TaskList";
+import { ActionsIterator } from "../action/ActionsIterator";
const MissionShow = ({ open, id }) => {
const redirect = useRedirect();
@@ -198,6 +199,7 @@
<Box m={2}>
<Divider />
+ <ActionsIterator actionIds={record.actionIds} />
</Box>
</Box>
</Box>
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/result/MissionVo.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/result/MissionVo.java
index 9b8cb04..3e436f5 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/result/MissionVo.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/result/MissionVo.java
@@ -40,4 +40,6 @@
private List<String> codeList = new ArrayList<>();
+ private List<Long> actionIds = new ArrayList<>();
+
}
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/MissionServiceImpl.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/MissionServiceImpl.java
index e0bee4f..1086f02 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/MissionServiceImpl.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/MissionServiceImpl.java
@@ -96,6 +96,7 @@
vo.setActionCount(actionList.size());
vo.setTaskIds(list.stream().map(Segment::getTaskId).collect(Collectors.toList()));
vo.setCodeList(actionList.stream().map(Action::getCode).distinct().collect(Collectors.toList()));
+ vo.setActionIds(actionList.stream().map(Action::getId).collect(Collectors.toList()));
return vo;
}
--
Gitblit v1.9.1