From ff23dad9cd3b86e926c66f33c3e4c86fa5e481e1 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期三, 18 九月 2024 13:41:35 +0800
Subject: [PATCH] #

---
 /dev/null                            |   30 -------
 zy-acs-flow/src/page/loc/LocList.jsx |   12 ++
 zy-acs-flow/src/page/loc/LocInit.jsx |  183 +++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 193 insertions(+), 32 deletions(-)

diff --git a/zy-acs-flow/src/page/loc/InitButton.jsx b/zy-acs-flow/src/page/loc/InitButton.jsx
deleted file mode 100644
index 28ed0c4..0000000
--- a/zy-acs-flow/src/page/loc/InitButton.jsx
+++ /dev/null
@@ -1,30 +0,0 @@
-import * as React from 'react';
-import {
-    Button
-} from 'react-admin';
-
-const InitButton = (props) => {
-    const {
-        onClick,
-        label,
-        icon,
-        ...rest
-    } = props;
-
-    return (
-        <Button
-            label={label}
-            onClick={handleClick}
-            {...sanitizeRestProps(rest)}
-        >
-            {icon}
-        </Button>
-    );
-};
-
-const sanitizeRestProps = ({
-    resource,
-    ...rest
-}) => rest;
-
-export default InitButton;
diff --git a/zy-acs-flow/src/page/loc/LocInit.jsx b/zy-acs-flow/src/page/loc/LocInit.jsx
new file mode 100644
index 0000000..503cd2d
--- /dev/null
+++ b/zy-acs-flow/src/page/loc/LocInit.jsx
@@ -0,0 +1,183 @@
+import React, { useState, useRef, useEffect, useMemo } from "react";
+import {
+    CreateBase,
+    useTranslate,
+    TextInput,
+    NumberInput,
+    BooleanInput,
+    DateInput,
+    SaveButton,
+    SelectInput,
+    ReferenceInput,
+    ReferenceArrayInput,
+    AutocompleteInput,
+    Toolbar,
+    required,
+    useDataProvider,
+    useNotify,
+    Form,
+    useCreateController,
+} from 'react-admin';
+import {
+    Dialog,
+    DialogActions,
+    DialogContent,
+    DialogTitle,
+    Stack,
+    Grid,
+    Box,
+} from '@mui/material';
+import DialogCloseButton from "../components/DialogCloseButton";
+
+const LocInit = (props) => {
+    const { open, setOpen } = props;
+
+    const translate = useTranslate();
+    const notify = useNotify();
+
+    const handleClose = (event, reason) => {
+        if (reason !== "backdropClick") {
+            setOpen(false);
+        }
+    };
+
+    return (
+        <>
+            <Dialog
+                open={open}
+                onClose={handleClose}
+                aria-labelledby="form-dialog-title"
+                fullWidth
+                disableRestoreFocus
+                maxWidth="md"   // 'xs' | 'sm' | 'md' | 'lg' | 'xl'
+            >
+                <Form>
+                    <DialogTitle id="form-dialog-title" sx={{
+                        position: 'sticky',
+                        top: 0,
+                        backgroundColor: 'background.paper',
+                        zIndex: 1000
+                    }}
+                    >
+                        {translate('page.loc.init')}
+                        <Box sx={{ position: 'absolute', top: 8, right: 8, zIndex: 1001 }}>
+                            <DialogCloseButton onClose={handleClose} />
+                        </Box>
+                    </DialogTitle>
+                    <DialogContent>
+                        <Grid container rowSpacing={2} columnSpacing={2}>
+                            <Grid item xs={6} display="flex" gap={1}>
+                                <ReferenceInput
+                                    source="zoneId"
+                                    reference="zone"
+                                >
+                                    <AutocompleteInput
+                                        label="table.field.loc.zoneId"
+                                        optionText="name"
+                                        filterToQuery={(val) => ({ name: val })}
+                                        validate={required()}
+                                    />
+                                </ReferenceInput>
+                            </Grid>
+                            <Grid item xs={6} display="flex" gap={1}>
+                                <TextInput
+                                    label="table.field.loc.locNo"
+                                    source="locNo"
+                                    parse={v => v}
+                                    validate={required()}
+                                />
+                            </Grid>
+                            <Grid item xs={12} display="flex" gap={1}>
+                                <Grid item xs={4} display="flex" gap={1}>
+                                    <NumberInput
+                                        label="table.field.loc.row"
+                                        source="row"
+                                    />
+                                </Grid>
+                                <Grid item xs={4} display="flex" gap={1}>
+                                    <NumberInput
+                                        label="table.field.loc.bay"
+                                        source="bay"
+                                    />
+                                </Grid>
+                                <Grid item xs={4} display="flex" gap={1}>
+                                    <NumberInput
+                                        label="table.field.loc.lev"
+                                        source="lev"
+                                    />
+                                </Grid>
+                            </Grid>
+                            <Grid item xs={6} display="flex" gap={1}>
+                                <ReferenceInput
+                                    source="code"
+                                    reference="code"
+                                >
+                                    <AutocompleteInput
+                                        label="table.field.loc.code"
+                                        optionText="data"
+                                        filterToQuery={(val) => ({ data: val })}
+                                    />
+                                </ReferenceInput>
+                            </Grid>
+                            <Grid item xs={6} display="flex" gap={1}>
+                                <SelectInput
+                                    label="table.field.loc.compDirect"
+                                    source="compDirect"
+                                    choices={[
+                                        { id: 1, name: '澶т簬' },
+                                        { id: 0, name: '灏忎簬' },
+                                    ]}
+                                />
+                            </Grid>
+                            <Grid item xs={6} display="flex" gap={1}>
+                                <ReferenceInput
+                                    source="locSts"
+                                    reference="locSts"
+                                >
+                                    <AutocompleteInput
+                                        label="table.field.loc.locSts"
+                                        optionText="name"
+                                        filterToQuery={(val) => ({ name: val })}
+                                        validate={required()}
+                                    />
+                                </ReferenceInput>
+                            </Grid>
+                            <Grid item xs={6} display="flex" gap={1}>
+                                <NumberInput
+                                    label="table.field.loc.offset"
+                                    source="offset"
+                                />
+                            </Grid>
+                            <Grid item xs={6} display="flex" gap={1}>
+                                <TextInput
+                                    label="table.field.loc.barcode"
+                                    source="barcode"
+                                    parse={v => v}
+                                />
+                            </Grid>
+                            <Grid item xs={6} display="flex" gap={1}>
+                                <ReferenceInput
+                                    source="locType"
+                                    reference="locType"
+                                >
+                                    <AutocompleteInput
+                                        label="table.field.loc.locType"
+                                        optionText="name"
+                                        filterToQuery={(val) => ({ name: val })}
+                                    />
+                                </ReferenceInput>
+                            </Grid>
+                        </Grid>
+                    </DialogContent>
+                    <DialogActions sx={{ position: 'sticky', bottom: 0, backgroundColor: 'background.paper', zIndex: 1000 }}>
+                        <Toolbar sx={{ width: '100%', justifyContent: 'space-between' }}  >
+                            <SaveButton />
+                        </Toolbar>
+                    </DialogActions>
+                </Form>
+            </Dialog>
+        </>
+    )
+}
+
+export default LocInit;
\ No newline at end of file
diff --git a/zy-acs-flow/src/page/loc/LocList.jsx b/zy-acs-flow/src/page/loc/LocList.jsx
index 20bf815..eaf3fcd 100644
--- a/zy-acs-flow/src/page/loc/LocList.jsx
+++ b/zy-acs-flow/src/page/loc/LocList.jsx
@@ -30,6 +30,7 @@
     ReferenceArrayInput,
     AutocompleteInput,
     DeleteButton,
+    Button,
 } from 'react-admin';
 import { Box, Typography, Card, Stack } from '@mui/material';
 import { styled } from '@mui/material/styles';
@@ -42,8 +43,8 @@
 import MyField from "../components/MyField";
 import { PAGE_DRAWER_WIDTH, OPERATE_MODE } from '@/config/setting';
 import * as Common from '@/utils/common';
-import InitButton from "./InitButton";
 import RepartitionIcon from '@mui/icons-material/Repartition';
+import LocInit from "./LocInit";
 
 const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({
     '& .css-1vooibu-MuiSvgIcon-root': {
@@ -103,6 +104,7 @@
 
     const [createDialog, setCreateDialog] = useState(false);
     const [drawerVal, setDrawerVal] = useState(false);
+    const [initDialog, setInitDialog] = useState(false);
 
     return (
         <Box display="flex">
@@ -122,7 +124,9 @@
                 actions={(
                     <TopToolbar>
                         <FilterButton />
-                        <InitButton label='page.loc.init' icon={<RepartitionIcon />} />
+                        <Button label='page.loc.init' onClick={(event) => {
+                            setInitDialog(true);
+                        }}><RepartitionIcon /></Button>
                         <MyCreateButton onClick={() => { setCreateDialog(true) }} />
                         <SelectColumnsButton preferenceKey='loc' />
                         <MyExportButton />
@@ -189,6 +193,10 @@
                 setDrawerVal={setDrawerVal}
             >
             </PageDrawer>
+            <LocInit
+                open={initDialog}
+                setOpen={setInitDialog}
+            />
         </Box>
     )
 }

--
Gitblit v1.9.1