From 7f70cb15d035f0c233b9e62b9e43aa985317c908 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期一, 04 十一月 2024 10:22:45 +0800
Subject: [PATCH] #

---
 zy-acs-flow/src/page/agv/AgvList.jsx |   73 +++++++++++++++++++++++++++++++++---
 1 files changed, 66 insertions(+), 7 deletions(-)

diff --git a/zy-acs-flow/src/page/agv/AgvList.jsx b/zy-acs-flow/src/page/agv/AgvList.jsx
index 7a9a0c0..b0855da 100644
--- a/zy-acs-flow/src/page/agv/AgvList.jsx
+++ b/zy-acs-flow/src/page/agv/AgvList.jsx
@@ -8,7 +8,7 @@
     SelectColumnsButton,
     EditButton,
     FilterButton,
-    CreateButton,
+    useRefresh,
     ExportButton,
     BulkDeleteButton,
     WrapperField,
@@ -30,8 +30,13 @@
     ReferenceArrayInput,
     AutocompleteInput,
     DeleteButton,
+    useGetIdentity,
+    ListBase,
+    Title,
+    Pagination,
+    ListToolbar,
 } from 'react-admin';
-import { Box, Typography, Card, Stack } from '@mui/material';
+import { Box, Typography, LinearProgress, Stack } from '@mui/material';
 import { styled } from '@mui/material/styles';
 import AgvCreate from "./AgvCreate";
 import AgvPanel from "./AgvPanel";
@@ -40,8 +45,64 @@
 import MyExportButton from '../components/MyExportButton';
 import PageDrawer from "../components/PageDrawer";
 import MyField from "../components/MyField";
-import { PAGE_DRAWER_WIDTH, OPERATE_MODE } from '@/config/setting';
+import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE, CUSTOM_PAGES_DATA_INTERVAL } from '@/config/setting';
 import * as Common from '@/utils/common';
+import { ImageList } from "./GridList";
+import { AgvListFilter } from "./AgvListFilter";
+
+export const AgvGrid = () => {
+    const [createDialog, setCreateDialog] = useState(false);
+
+    return (
+        <>
+            <ListBase perPage={50} sort={{ field: "create_time", order: "asc" }}>
+                <AgvGridLayout
+                    setCreateDialog={setCreateDialog}
+                />
+            </ListBase>
+            <AgvCreate
+                open={createDialog}
+                setOpen={setCreateDialog}
+            />
+        </>
+    )
+}
+
+const AgvGridLayout = ({ setCreateDialog }) => {
+    const { data, isPending, filterValues, refetch } = useListContext();
+    const hasFilters = filterValues && Object.keys(filterValues).length > 0;
+
+    React.useEffect(() => {
+        const intervalId = setInterval(() => {
+            refetch();
+        }, CUSTOM_PAGES_DATA_INTERVAL);
+
+        return () => clearInterval(intervalId);
+    }, [refetch]);
+
+    if (isPending) return <LinearProgress />;
+    if (!data?.length && !hasFilters) return <EmptyData onClick={() => { setCreateDialog(true) }} />;
+
+    return (
+        <Stack direction="row" component="div">
+            <AgvListFilter />
+            <Stack sx={{ width: '100%' }}>
+                <Title title={"menu.agv"} />
+                <ListToolbar actions={(
+                    <TopToolbar>
+                        <MyCreateButton onClick={() => { setCreateDialog(true) }} variant="contained" />
+                        <MyExportButton />
+                    </TopToolbar>
+                )} />
+                <ImageList />
+                <Pagination rowsPerPageOptions={[10, 25, 50, 100]} />
+            </Stack>
+        </Stack>
+    );
+}
+
+
+
 
 const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({
     '& .css-1vooibu-MuiSvgIcon-root': {
@@ -92,7 +153,7 @@
     />,
 ]
 
-const AgvList = () => {
+export const AgvList = () => {
     const translate = useTranslate();
 
     const [createDialog, setCreateDialog] = useState(false);
@@ -121,7 +182,7 @@
                         <MyExportButton />
                     </TopToolbar>
                 )}
-                perPage={25}
+                perPage={DEFAULT_PAGE_SIZE}
             >
                 <StyledDatagrid
                     preferenceKey='agv'
@@ -174,5 +235,3 @@
         </Box>
     )
 }
-
-export default AgvList;

--
Gitblit v1.9.1