From 0453a0bc5329d3bd4ff6d731d4bbd64890f722b3 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期六, 21 九月 2024 14:52:36 +0800
Subject: [PATCH] #

---
 zy-acs-flow/src/page/agv/show/AgvShowTask.jsx |   97 +++++++++++++++++++++++++++++-------------------
 zy-acs-flow/src/utils/common.js               |   21 ++++++++++
 2 files changed, 79 insertions(+), 39 deletions(-)

diff --git a/zy-acs-flow/src/page/agv/show/AgvShowTask.jsx b/zy-acs-flow/src/page/agv/show/AgvShowTask.jsx
index 391fc0c..d9ddbb4 100644
--- a/zy-acs-flow/src/page/agv/show/AgvShowTask.jsx
+++ b/zy-acs-flow/src/page/agv/show/AgvShowTask.jsx
@@ -1,6 +1,6 @@
 import React, { useState, useRef, useEffect, useMemo } from "react";
 import {
-    ShowBase,
+    useTranslate,
     TabbedShowLayout,
     useShowContext,
 } from 'react-admin';
@@ -14,9 +14,36 @@
     Avatar,
     Skeleton,
     Divider,
+    List,
+    ListItem,
 } from '@mui/material';
 import { formatDistance } from 'date-fns';
 import request from '@/utils/request';
+import { useTheme } from '@mui/material/styles';
+import { getTaskStsColor } from '@/utils/common';
+
+const TaskItem = ({ record }) => {
+    const translate = useTranslate();
+    const theme = useTheme();
+    return (
+        <>
+            <ListItem disableGutters>
+                <Stack direction="row" spacing={1} alignItems="center" width="100%">
+                    <Avatar
+                        alt={record.seqNum}
+                        sx={{
+                            '& img': { objectFit: 'contain' },
+                            fontSize: '0.9rem',
+                            bgcolor: getTaskStsColor(record.taskSts$),
+                        }}
+                    >
+                        {record.seqNum}
+                    </Avatar>
+                </Stack>
+            </ListItem>
+        </>
+    )
+}
 
 export const AgvShowTask = ({ agvId, pageSize = 20 }) => {
     const [currCount, setCurrCount] = useState(pageSize);
@@ -25,16 +52,21 @@
 
     useEffect(() => {
         const http = async () => {
-            const res = await request.post('task/page', { agvId: agvId, pageSize: currCount });
+            const res = await request.post('task/page', {
+                agvId: agvId,
+                pageSize: currCount,
+                orderBy: 'create_time desc',
+            });
             const { code, msg, data } = res.data;
             if (code === 200) {
                 setTotal(data.total);
                 setRecords(data.records);
             } else {
+                setTotal(0);
                 setRecords(null);
             }
         }
-        if (agvId) { http(); }
+        if (agvId) { http() }
     }, [agvId, currCount]);
 
     if (!records) {
@@ -65,28 +97,30 @@
     return (
         <>
             {records.length > 0 ? (
-                <Box>
-                    {records.map(record => {
-                        return (
-                            <TaskItem
-                                key={record.id}
-                                record={record}
-                            />
-                        )
-                    })}
-                    {currCount < total && (
-                        <Button
-                            onClick={() =>
-                                setCurrCount(
-                                    currCount =>
-                                        currCount + pageSize
-                                )
-                            }
-                            fullWidth
-                        >
-                            Load more activity
-                        </Button>
-                    )}
+                <Box m={2}>
+                    <List>
+                        {records.map(record => {
+                            return (
+                                <TaskItem
+                                    key={record.id}
+                                    record={record}
+                                />
+                            )
+                        })}
+                        {currCount < total && (
+                            <Button
+                                onClick={() =>
+                                    setCurrCount(
+                                        currCount =>
+                                            currCount + pageSize
+                                    )
+                                }
+                                fullWidth
+                            >
+                                Load more activity
+                            </Button>
+                        )}
+                    </List>
                 </Box>
             ) : (
                 <Typography>
@@ -97,16 +131,3 @@
         </>
     )
 }
-
-const TaskItem = ({ record }) => {
-
-    return (
-        <>
-            <Typography
-
-            >
-                {record.seqNum}
-            </Typography>
-        </>
-    )
-}
\ No newline at end of file
diff --git a/zy-acs-flow/src/utils/common.js b/zy-acs-flow/src/utils/common.js
index a3a8fce..790d6e3 100644
--- a/zy-acs-flow/src/utils/common.js
+++ b/zy-acs-flow/src/utils/common.js
@@ -1,3 +1,4 @@
+import * as Colors from '@mui/material/colors';
 
 export const extractNavMenus = (data) => {
     if (!data) {
@@ -49,4 +50,22 @@
         }
     });
     return result;
-};
\ No newline at end of file
+};
+
+export const getTaskStsColor = (taskStatus) => {
+    if (!taskStatus) {
+        return Colors.grey[500];
+    }
+    switch (taskStatus) {
+        case '绛夊緟涓�':
+            return Colors.amber[500];
+        case '宸插垎閰�':
+            return Colors.blue[500];
+        case '杩涜涓�':
+            return Colors.green[500];
+        case '宸插畬鎴�':
+            return Colors.blueGrey[500];
+        default:
+            return Colors.amber[500];
+    }
+}
\ No newline at end of file

--
Gitblit v1.9.1