From 7737c1a11778a236592ff3677d54a44776fd440f Mon Sep 17 00:00:00 2001
From: skyouc <958836976@qq.com>
Date: 星期六, 11 十月 2025 15:15:46 +0800
Subject: [PATCH] 容器管理初始化功能

---
 rsf-admin/src/page/basicInfo/basContainer/BasContainerList.jsx |   76 +++++++++++++++++++++++++++++++-------
 1 files changed, 62 insertions(+), 14 deletions(-)

diff --git a/rsf-admin/src/page/basicInfo/basContainer/BasContainerList.jsx b/rsf-admin/src/page/basicInfo/basContainer/BasContainerList.jsx
index 722bb6e..224f9f3 100644
--- a/rsf-admin/src/page/basicInfo/basContainer/BasContainerList.jsx
+++ b/rsf-admin/src/page/basicInfo/basContainer/BasContainerList.jsx
@@ -31,6 +31,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,11 @@
 import PageDrawer from "../../components/PageDrawer";
 import MyField from "../../components/MyField";
 import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting';
-import * as Common from '@/utils/common';
 import CrossZoneAreaField from "../basStation/CrossZoneAreaField";
+import AllInclusiveIcon from '@mui/icons-material/AllInclusive';
+import BasContainerInit from "./BasContainerInit";
+import PrintModal from './PrintModal'
+
 
 const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({
     '& .css-1vooibu-MuiSvgIcon-root': {
@@ -61,8 +65,8 @@
 
 const filters = [
     <SearchInput source="condition" alwaysOn />,
-    <DateInput label='common.time.after' source="timeStart"  />,
-    <DateInput label='common.time.before' source="timeEnd"  />,
+    <DateInput label='common.time.after' source="timeStart" />,
+    <DateInput label='common.time.before' source="timeEnd" />,
 
     <NumberInput source="containerType" label="table.field.basContainer.containerType" />,
     <TextInput source="codeType" label="table.field.basContainer.codeType" />,
@@ -85,6 +89,9 @@
     const [areaFieldDialog, setAreaFieldDialog] = useState(false);
     const [createDialog, setCreateDialog] = useState(false);
     const [drawerVal, setDrawerVal] = useState(false);
+    const [open, setOpen] = useState(false);
+    const [print, setPrint] = useState(false);
+    const [selectPrints, setSelectPrints] = useState([]);
 
     return (
         <Box display="flex">
@@ -98,11 +105,12 @@
                     marginRight: !!drawerVal ? `${PAGE_DRAWER_WIDTH}px` : 0,
                 }}
                 title={"menu.basContainer"}
-                empty={<EmptyData onClick={() => { setCreateDialog(true) }} />}
+                empty={false}
                 filters={filters}
                 sort={{ field: "create_time", order: "desc" }}
                 actions={(
                     <TopToolbar>
+                        <InitButton setOpen={setOpen} />
                         <FilterButton />
                         <MyCreateButton onClick={() => { setCreateDialog(true) }} />
                         <SelectColumnsButton preferenceKey='basContainer' />
@@ -113,21 +121,18 @@
             >
                 <StyledDatagrid
                     preferenceKey='basContainer'
-                    bulkActionButtons={() => <BulkDeleteButton mutationMode={OPERATE_MODE} />}
-                    rowClick={(id, resource, record) => false}                    
+                    bulkActionButtons={<>
+                        <BulkPrintBarcode setPrint={setPrint} setSelectPrints={setSelectPrints} />
+                        <BulkDeleteButton mutationMode={OPERATE_MODE} />
+                    </>}
+                    rowClick={(id, resource, record) => false}
                     expandSingle={true}
-                    omit={['id', 'createTime', 'createBy', 'memo','statusBool']}
+                    omit={['id', 'statusBool']}
                 >
                     <NumberField source="id" />
                     <NumberField source="containerType$" label="table.field.basContainer.containerType" />
+                    <TextField source="code" label="table.field.basContainer.code" />
                     <TextField source="codeType" label="table.field.basContainer.codeType" />
-                    <WrapperField cellClassName="areas" label="table.field.basContainer.areas">
-                        <CrossZoneAreaField
-                            open={areaFieldDialog}
-                            setOpen={setAreaFieldDialog}                
-                        />                        
-                    </WrapperField> 
-
                     <ReferenceField source="updateBy" label="common.field.updateBy" reference="user" link={false} sortable={false}>
                         <TextField source="nickname" />
                     </ReferenceField>
@@ -148,6 +153,15 @@
                 open={createDialog}
                 setOpen={setCreateDialog}
             />
+            <BasContainerInit
+                open={open}
+                setOpen={setOpen}
+            />
+            <PrintModal
+                open={print}
+                setOpen={setPrint}
+                rows={selectPrints}
+            />
             <PageDrawer
                 title='BasContainer Detail'
                 drawerVal={drawerVal}
@@ -158,4 +172,38 @@
     )
 }
 
+//鍒濆鍖栨寜閽�
+const InitButton = ({ setOpen }) => {
+    const init = () => {
+        setOpen(true)
+    }
+    return (
+        <Button
+            label="toolbar.init"
+            variant="text"
+            size="small"
+            onClick={init}
+            startIcon={<AllInclusiveIcon />} />
+    )
+}
+
+const BulkPrintBarcode = ({ setPrint, setSelectPrints }) => {
+    const { selectedIds } = useListContext();
+    //鎵撳嵃
+    const print = () => {
+        setPrint(true);
+        setSelectPrints(selectedIds);
+    }
+
+    return (
+        <Button
+            label="toolbar.print"
+            variant="text"
+            size="small"
+            onClick={print}
+            startIcon={<AllInclusiveIcon />} />
+    )
+}
+
+
 export default BasContainerList;

--
Gitblit v1.9.1