1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
| import React, { useState, useRef, useEffect, useMemo } from "react";
| import {
| ShowBase,
| TabbedShowLayout,
| useShowContext,
| } from 'react-admin';
| import {
| Box,
| Button,
| Card,
| CardContent,
| Stack,
| Typography,
| Avatar,
| Skeleton,
| Divider,
| } from '@mui/material';
| import { formatDistance } from 'date-fns';
| import request from '@/utils/request';
|
| export const AgvShowTask = ({ agvId, pageSize = 20 }) => {
| const [currCount, setCurrCount] = useState(pageSize);
| const [records, setRecords] = useState(null);
| const [total, setTotal] = useState(0);
|
| useEffect(() => {
| const http = async () => {
| const res = await request.post('task/page', { agvId: agvId, pageSize: currCount });
| const { code, msg, data } = res.data;
| if (code === 200) {
| setTotal(data.total);
| setRecords(data.records);
| } else {
| setRecords(null);
| }
| }
| if (agvId) { http(); }
| }, [agvId, currCount]);
|
| if (!records) {
| return (
| <Stack mt={0.5}>
| {Array.from({ length: 5 }).map((_, index) => (
| <Stack spacing={2} sx={{ mt: 1 }} key={index}>
| <Stack
| direction="row"
| spacing={2}
| sx={{ alignItems: 'center' }}
| >
| <Skeleton
| variant="circular"
| width={20}
| height={20}
| />
| <Skeleton width="100%" />
| </Stack>
| <Skeleton variant="rectangular" height={50} />
| <Divider />
| </Stack>
| ))}
| </Stack>
| );
| }
|
| 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>
| ) : (
| <Typography>
| no data found
| </Typography>
| )}
|
| </>
| )
| }
|
| const TaskItem = ({ record }) => {
|
| return (
| <>
| <Typography
|
| >
| {record.seqNum}
| </Typography>
| </>
| )
| }
|
|