From f6ba6151e53a9cd4bd46f56edcb6d88ec86a92bd Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期五, 20 九月 2024 09:32:37 +0800
Subject: [PATCH] #
---
zy-acs-flow/src/page/agv/AgvList.jsx | 59 ++++++++++++++++++++++++++++-
zy-acs-flow/src/page/agv/GridList.jsx | 55 +++++++++++++++++++++++++++
zy-acs-flow/src/page/agv/index.jsx | 5 +-
3 files changed, 114 insertions(+), 5 deletions(-)
diff --git a/zy-acs-flow/src/page/agv/AgvList.jsx b/zy-acs-flow/src/page/agv/AgvList.jsx
index 7a9a0c0..4f03c6c 100644
--- a/zy-acs-flow/src/page/agv/AgvList.jsx
+++ b/zy-acs-flow/src/page/agv/AgvList.jsx
@@ -30,6 +30,10 @@
ReferenceArrayInput,
AutocompleteInput,
DeleteButton,
+ useGetIdentity,
+ ListBase,
+ Title,
+ Pagination,
} from 'react-admin';
import { Box, Typography, Card, Stack } from '@mui/material';
import { styled } from '@mui/material/styles';
@@ -42,6 +46,57 @@
import MyField from "../components/MyField";
import { PAGE_DRAWER_WIDTH, OPERATE_MODE } from '@/config/setting';
import * as Common from '@/utils/common';
+import { ImageList } from "./GridList";
+
+
+export const AgvGrid = () => {
+ const { identity } = useGetIdentity();
+ if (!identity) return null;
+ const [createDialog, setCreateDialog] = useState(false);
+
+ return (
+ <>
+ <ListBase perPage={50} sort={{ field: "uuid", order: "asc" }}>
+ <AgvGridLayout
+ setCreateDialog={setCreateDialog}
+ />
+ </ListBase>
+ <AgvCreate
+ open={createDialog}
+ setOpen={setCreateDialog}
+ />
+ </>
+ )
+}
+
+const AgvGridLayout = (props) => {
+ const { data, isPending, filterValues } = useListContext();
+ const hasFilters = filterValues && Object.keys(filterValues).length > 0;
+
+ if (isPending) return null;
+ if (!data?.length && !hasFilters) return <EmptyData onClick={() => { props.setCreateDialog(true) }} />;
+
+ return (
+ <Stack direction="row" component="div">
+ <Stack sx={{ width: '100%' }}>
+ <Title title={'Companies'} />
+ <ListToolbar actions={(
+ <TopToolbar>
+ <FilterButton />
+ <MyCreateButton onClick={() => { setCreateDialog(true) }} />
+ <MyExportButton />
+ </TopToolbar>
+ )} />
+ <ImageList />
+ <Pagination rowsPerPageOptions={[10, 25, 50, 100]} />
+ </Stack>
+ </Stack>
+ );
+}
+
+
+
+
const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({
'& .css-1vooibu-MuiSvgIcon-root': {
@@ -92,7 +147,7 @@
/>,
]
-const AgvList = () => {
+export const AgvList = () => {
const translate = useTranslate();
const [createDialog, setCreateDialog] = useState(false);
@@ -174,5 +229,3 @@
</Box>
)
}
-
-export default AgvList;
diff --git a/zy-acs-flow/src/page/agv/GridList.jsx b/zy-acs-flow/src/page/agv/GridList.jsx
new file mode 100644
index 0000000..be1e4b1
--- /dev/null
+++ b/zy-acs-flow/src/page/agv/GridList.jsx
@@ -0,0 +1,55 @@
+import * as React from 'react';
+import { Box, Paper, Typography } from '@mui/material';
+import { RecordContextProvider, useListContext } from 'react-admin';
+
+// import { CompanyCard } from './CompanyCard';
+
+const times = (nbChildren, fn) => Array.from({ length: nbChildren }, (_, key) => fn(key));
+
+const LoadingGridList = () => (
+ <Box display="flex" flexWrap="wrap" width={1008} gap={1}>
+ {times(15, key => (
+ <Paper
+ sx={{
+ height: 200,
+ width: 194,
+ display: 'flex',
+ flexDirection: 'column',
+ backgroundColor: 'grey[200]',
+ }}
+ key={key}
+ />
+ ))}
+ </Box>
+);
+
+// const LoadedGridList = () => {
+// const { data, error, isPending } = useListContext();
+
+// if (isPending || error) return null;
+
+// return (
+// <Box
+// width="100%"
+// gap={1}
+// display="grid"
+// gridTemplateColumns="repeat(auto-fill, minmax(180px, 1fr))"
+// >
+// {data.map(record => (
+// <RecordContextProvider key={record.id} value={record}>
+// <CompanyCard />
+// </RecordContextProvider>
+// ))}
+
+// {data.length === 0 && (
+// <Typography p={2}>No companies found</Typography>
+// )}
+// </Box>
+// );
+// };
+
+export const ImageList = () => {
+ const { isPending } = useListContext();
+ // return isPending ? <LoadingGridList /> : <LoadedGridList />;
+ return <LoadingGridList />;
+};
diff --git a/zy-acs-flow/src/page/agv/index.jsx b/zy-acs-flow/src/page/agv/index.jsx
index 327e7c7..6919a02 100644
--- a/zy-acs-flow/src/page/agv/index.jsx
+++ b/zy-acs-flow/src/page/agv/index.jsx
@@ -5,11 +5,12 @@
ShowGuesser,
} from "react-admin";
-import AgvList from "./AgvList";
+import { AgvList, AgvGrid } from "./AgvList";
import AgvEdit from "./AgvEdit";
export default {
- list: AgvList,
+ // list: AgvList,
+ list: AgvGrid,
edit: AgvEdit,
show: ShowGuesser,
recordRepresentation: (record) => {
--
Gitblit v1.9.1