From 313f0515b65ab69e6e811c199f4b33eb630509f3 Mon Sep 17 00:00:00 2001
From: Ryan <creaycat@gmail.com>
Date: 星期四, 03 四月 2025 19:09:38 +0800
Subject: [PATCH] Merge branch 'devlop' of http://47.97.1.152:5880/r/wms-master into devlop

---
 rsf-admin/src/page/basicInfo/loc/LocList.jsx |  157 ++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 146 insertions(+), 11 deletions(-)

diff --git a/rsf-admin/src/page/basicInfo/loc/LocList.jsx b/rsf-admin/src/page/basicInfo/loc/LocList.jsx
index 449dc0f..bac9056 100644
--- a/rsf-admin/src/page/basicInfo/loc/LocList.jsx
+++ b/rsf-admin/src/page/basicInfo/loc/LocList.jsx
@@ -33,7 +33,7 @@
     DeleteButton,
     useRefresh,
     Button,
-    useList
+    useList,
 } from 'react-admin';
 import { Box, Typography, Card, Stack } from '@mui/material';
 import { styled } from '@mui/material/styles';
@@ -55,6 +55,8 @@
 import request from '@/utils/request';
 import DiscountIcon from '@mui/icons-material/Discount';
 import LinkIcon from '@mui/icons-material/Link';
+import InitModal from "./InitModal";
+import LocListAside from "./LocListAside";
 
 const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({
     '& .css-1vooibu-MuiSvgIcon-root': {
@@ -73,14 +75,40 @@
     },
     '& .RaDatagrid-rowCell': {
         textAlign: 'left'
-    }
+    },
+    '& .type .MuiTypography-root': {
+        whiteSpace: 'nowrap',
+        overflow: 'hidden',
+        textOverflow: 'ellipsis',
+        display: 'block',
+        width: '200px',
+    },
 }));
 
 const filters = [
     <SearchInput source="condition" alwaysOn />,
-
-    <TextInput source="warehouseId$" label="table.field.loc.warehouseId" />,
-    <TextInput source="areaId$" label="table.field.loc.areaId" />,
+    <ReferenceInput
+        source="warehouseId"
+        label="table.field.loc.warehouseId"
+        reference="warehouse"
+    >
+        <AutocompleteInput
+            label="table.field.loc.warehouseId"
+            optionText="name"
+            filterToQuery={(val) => ({ name: val })}
+        />
+    </ReferenceInput>,
+    <ReferenceInput
+        source="areaId"
+        label="table.field.loc.areaId"
+        reference="warehouseAreas"
+    >
+        <AutocompleteInput
+            label="table.field.loc.areaId"
+            optionText="name"
+            filterToQuery={(val) => ({ name: val })}
+        />
+    </ReferenceInput>,
     <TextInput source="code" label="table.field.loc.code" />,
     <TextInput source="type" label="table.field.loc.type" />,
     <TextInput source="name" label="table.field.loc.name" />,
@@ -117,7 +145,7 @@
 
     const [createDialog, setCreateDialog] = useState(false);
     const [drawerVal, setDrawerVal] = useState(false);
-
+    const [initDialog, setInitDialog] = useState(false);
 
     return (
         <Box display="flex">
@@ -131,7 +159,33 @@
                     marginRight: drawerVal ? `${PAGE_DRAWER_WIDTH}px` : 0,
                 }}
                 title={"menu.loc"}
-                empty={<EmptyData onClick={() => { setCreateDialog(true) }} />}
+                empty={<EmptyData
+                    children={
+                        <Box sx={{ gap: 2, display: 'flex' }}>
+                            <Button
+                                variant="contained"
+                                color="primary"
+                                sx={{
+                                    fontSize: '1em',
+                                    mt: 2
+                                }}
+                                onClick={() => { setCreateDialog(true) }}>
+                                {translate('create.empty.button')}
+                            </Button>
+
+                            <Button
+                                variant="contained"
+                                color="primary"
+                                sx={{
+                                    fontSize: '1em',
+                                    mt: 2
+                                }}
+                                onClick={() => { setInitDialog(true) }}>
+                                {translate('toolbar.locInit')}
+                            </Button>
+                        </Box>
+                    }
+                    onClick={() => { }} />}
                 filters={filters}
                 sort={{ field: "create_time", order: "desc" }}
                 actions={(
@@ -144,13 +198,17 @@
                     </TopToolbar>
                 )}
                 perPage={DEFAULT_PAGE_SIZE}
+                aside={<LocListAside />}
             >
                 <StyledDatagrid
                     preferenceKey='loc'
                     align="left"
                     bulkActionButtons={
                         <>
-                            <BatchButton />
+                            <BatchWateButton />
+                            <BatchAreasButton />
+                            <BatchLocTypeButton />
+                            <BatchStatusButton />
                             <BindButton />
                             <SubzoneButton />
                             <BulkDeleteButton />
@@ -163,7 +221,7 @@
                     <NumberField source="warehouseId$" label="table.field.loc.warehouseId" />
                     <NumberField source="areaId$" label="table.field.loc.areaId" />
                     <TextField source="code" label="table.field.loc.code" />
-                    <TextField source="typeIds$" label="table.field.loc.type" />
+                    <TextField source="typeIds$" label="table.field.loc.type" cellClassName="type" />
                     {/* <TextField source="name" label="table.field.loc.name" /> */}
                     {/* <NumberField source="flagLogic" label="table.field.loc.flagLogic" />
                     <TextField source="fucAtrrs" label="table.field.loc.fucAtrrs" />
@@ -210,6 +268,11 @@
                 setDrawerVal={setDrawerVal}
             >
             </PageDrawer>
+
+            <InitModal
+                open={initDialog}
+                setOpen={setInitDialog}
+            />
         </Box>
     )
 }
@@ -242,7 +305,30 @@
     )
 }
 
-const BatchButton = () => {
+const BatchWateButton = () => {
+    const record = useRecordContext();
+    const notify = useNotify();
+    const refresh = useRefresh();
+
+    const [createDialog, setCreateDialog] = useState(false);
+
+    return (
+        <>
+            <Button onClick={() => setCreateDialog(true)} label={"toolbar.batchWarehouse"}>
+                <EditIcon />
+            </Button>
+
+            <BatchModal
+                open={createDialog}
+                setOpen={setCreateDialog}
+                fieldType={'warehouseId'}
+            />
+        </>
+
+    )
+}
+
+const BatchAreasButton = () => {
     const record = useRecordContext();
     const notify = useNotify();
     const refresh = useRefresh();
@@ -252,13 +338,62 @@
 
     return (
         <>
-            <Button onClick={() => setCreateDialog(true)} label={"toolbar.batch"}>
+            <Button onClick={() => setCreateDialog(true)} label={"toolbar.batchWarehouseAreas"}>
                 <EditIcon />
             </Button>
 
             <BatchModal
                 open={createDialog}
                 setOpen={setCreateDialog}
+                fieldType={'areaId'}
+            />
+        </>
+
+    )
+}
+
+const BatchLocTypeButton = () => {
+    const record = useRecordContext();
+    const notify = useNotify();
+    const refresh = useRefresh();
+
+
+    const [createDialog, setCreateDialog] = useState(false);
+
+    return (
+        <>
+            <Button onClick={() => setCreateDialog(true)} label={"toolbar.batchLocType"}>
+                <EditIcon />
+            </Button>
+
+            <BatchModal
+                open={createDialog}
+                setOpen={setCreateDialog}
+                fieldType={'typeIds'}
+            />
+        </>
+
+    )
+}
+
+const BatchStatusButton = () => {
+    const record = useRecordContext();
+    const notify = useNotify();
+    const refresh = useRefresh();
+
+
+    const [createDialog, setCreateDialog] = useState(false);
+
+    return (
+        <>
+            <Button onClick={() => setCreateDialog(true)} label={"toolbar.batchStatus"}>
+                <EditIcon />
+            </Button>
+
+            <BatchModal
+                open={createDialog}
+                setOpen={setCreateDialog}
+                fieldType={'status'}
             />
         </>
 

--
Gitblit v1.9.1