From afac377f99fd8d2cd24c2ac73555a9f20426ef1d Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期一, 07 十月 2024 08:19:06 +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