From bf616f97b4d1a96e0ee89c52178a88e044e52a1d Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期六, 21 九月 2024 10:40:24 +0800
Subject: [PATCH] #

---
 zy-acs-flow/src/page/agv/AgvList.jsx |   67 +++++++++++++++++++++++++++++++--
 1 files changed, 63 insertions(+), 4 deletions(-)

diff --git a/zy-acs-flow/src/page/agv/AgvList.jsx b/zy-acs-flow/src/page/agv/AgvList.jsx
index 7a9a0c0..6692039 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,6 +30,11 @@
     ReferenceArrayInput,
     AutocompleteInput,
     DeleteButton,
+    useGetIdentity,
+    ListBase,
+    Title,
+    Pagination,
+    ListToolbar,
 } from 'react-admin';
 import { Box, Typography, Card, Stack } from '@mui/material';
 import { styled } from '@mui/material/styles';
@@ -42,6 +47,62 @@
 import MyField from "../components/MyField";
 import { PAGE_DRAWER_WIDTH, OPERATE_MODE } 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 refresh = useRefresh();
+    const { data, isPending, filterValues } = useListContext();
+    const hasFilters = filterValues && Object.keys(filterValues).length > 0;
+
+    React.useEffect(() => {
+        const intervalId = setInterval(() => {
+            refresh();
+        }, 2000);
+        return () => clearInterval(intervalId);
+    }, [refresh]);
+
+    if (isPending) return null;
+    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);
@@ -174,5 +235,3 @@
         </Box>
     )
 }
-
-export default AgvList;

--
Gitblit v1.9.1