#
luxiaotao1123
2024-09-29 55a1c64758c9e44b1dd96ec9f53124355b7304ce
#
3个文件已修改
2个文件已添加
131 ■■■■■ 已修改文件
zy-acs-flow/src/page/action/Action.jsx 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-flow/src/page/action/ActionsIterator.jsx 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-flow/src/page/mission/MissionShow.jsx 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/result/MissionVo.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/MissionServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-flow/src/page/action/Action.jsx
New file
@@ -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>
    );
};
zy-acs-flow/src/page/action/ActionsIterator.jsx
New file
@@ -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>
    );
};
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>
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<>();
}
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;
    }