From fc6d556f18bdf652e83f765e41c4ba5d63c9e11d Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期二, 24 三月 2026 18:44:07 +0800
Subject: [PATCH] #

---
 rsf-admin/src/page/warehouseAreasItem/WarehouseAreasItemList.jsx |  117 +++++++++++++++++++++-------------------------------------
 1 files changed, 43 insertions(+), 74 deletions(-)

diff --git a/rsf-admin/src/page/warehouseAreasItem/WarehouseAreasItemList.jsx b/rsf-admin/src/page/warehouseAreasItem/WarehouseAreasItemList.jsx
index 3e6af78..55761cc 100644
--- a/rsf-admin/src/page/warehouseAreasItem/WarehouseAreasItemList.jsx
+++ b/rsf-admin/src/page/warehouseAreasItem/WarehouseAreasItemList.jsx
@@ -1,71 +1,30 @@
-import React, { useState, useRef, useEffect, useMemo, useCallback } from "react";
-import { useNavigate } from 'react-router-dom';
+import React, { useState, useEffect } from "react";
 import {
     List,
-    DatagridConfigurable,
     SearchInput,
     TopToolbar,
-    SelectColumnsButton,
-    EditButton,
+    ColumnsButton,
     FilterButton,
-    CreateButton,
-    ExportButton,
-    BulkDeleteButton,
-    WrapperField,
-    useRecordContext,
-    useTranslate,
     useNotify,
     useListContext,
-    FunctionField,
     TextField,
     NumberField,
     DateField,
     BooleanField,
-    ReferenceField,
     TextInput,
-    DateTimeInput,
-    DateInput,
     SelectInput,
     NumberInput,
     ReferenceInput,
-    ReferenceArrayInput,
-    useRefresh,
     AutocompleteInput,
-    DeleteButton,
 } from 'react-admin';
-import { Box, Typography, Card, Stack, LinearProgress } from '@mui/material';
-import { styled } from '@mui/material/styles';
+import { Box, LinearProgress } from '@mui/material';
 import WarehouseAreasItemCreate from "./WarehouseAreasItemCreate";
-import WarehouseAreasItemPanel from "./WarehouseAreasItemPanel";
-import EmptyData from "../components/EmptyData";
 import request from '@/utils/request';
-import MyCreateButton from "../components/MyCreateButton";
 import MyExportButton from '../components/MyExportButton';
-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 WarehouseIsptResult from "./WarehouseIsptResult"
-
-
-const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({
-    '& .css-1vooibu-MuiSvgIcon-root': {
-        height: '.9em'
-    },
-    '& .RaDatagrid-row': {
-        cursor: 'auto'
-    },
-    '& .column-name': {
-    },
-    '& .opt': {
-        width: 200
-    },
-    '& .MuiTableCell-root': {
-    whiteSpace: 'nowrap',
-    overflow: 'visible',
-    textOverflow: 'unset'
-  }
-}));
+import { DEFAULT_PAGE_SIZE } from '@/config/setting';
+import StickyDataTable from "../components/StickyDataTable";
+import WarehouseIsptResult from "./WarehouseIsptResult";
+import useTableLayout from '@/utils/useTableLayout';
 
 const filters = [
     <SearchInput source="condition" alwaysOn />,
@@ -105,7 +64,6 @@
 ]
 
 const WarehouseAreasItemList = () => {
-    const translate = useTranslate();
     const [itemInfo, setItemInfo] = useState({})
     const [createDialog, setCreateDialog] = useState(false);
     const [drawerVal, setDrawerVal] = useState(false);
@@ -127,17 +85,13 @@
                 actions={(
                     <TopToolbar>
                         <FilterButton />
-                        <SelectColumnsButton preferenceKey='warehouseAreasItem' />
+                        <ColumnsButton storeKey='warehouseAreasItem' />
                         <MyExportButton />
                     </TopToolbar>
                 )}
                 perPage={DEFAULT_PAGE_SIZE}
             >
-                <DynamicFields
-                    drawerVal={drawerVal}
-                    setDrawerVal={setDrawerVal}
-                    itemInfo={itemInfo}
-                    setItemInfo={setItemInfo} />
+                <DynamicFields />
             </List>
             <WarehouseAreasItemCreate
                 open={createDialog}
@@ -163,20 +117,26 @@
 export default WarehouseAreasItemList;
 
 
-const DynamicFields = (props) => {
-    const { drawerVal, setDrawerVal, itemInfo, setItemInfo } = props
-    const translate = useTranslate();
+const DynamicFields = () => {
     const notify = useNotify();
     const [columns, setColumns] = useState([]);
     const { isLoading } = useListContext();
-    const refresh = useRefresh();
+    const { boxMaxWidth, boxMaxHeight } = useTableLayout();
+
+    const hiddenColumns = [
+        'prodTime', 'platOrderCode', 'id', 'createTime', 'memo', 'areaId', 'brand',
+        'weight', 'splrId', 'projectCode', 'statusBool', 'extendFields.[priceUnitId]', 'isptResult$',
+        'extendFields.[inStockType]', 'matnrId', 'trackCode', 'workQty', 'batch', 'shipperId',
+        'isptResult', 'createBy$', 'extendFields.[baseUnitId]'
+    ];
+
     useEffect(() => {
         getDynamicFields();
     }, []);
 
     const getDynamicFields = async () => {
         const { data: { code, data, msg }, } = await request.get("/fields/enable/list");
-        if (code == 200) {
+        if (code === 200) {
             const arr = [
                 <NumberField key="id" source="id" />,
                 // <NumberField key="areaId" source="areaId" label="table.field.warehouseAreasItem.areaId" />,
@@ -224,22 +184,33 @@
             ]
             setColumns([...arr, ...fields, ...lastArr]);
             //filters娣诲姞杩囨护瀛楁
-            data.map(el => {
+            data.forEach(el => {
                 var i = 0;
-                filters.map((item) => {
+                filters.forEach((item) => {
                     if (item.key === el.fields) {
                         i = 1;
                     }
-                })
-                i === 0 && filters.push(<TextInput key={el.fields} source={el.fields} label={el.fieldsAlise} />)
-            })
+                });
+                if (i === 0) {
+                    filters.push(<TextInput key={el.fields} source={el.fields} label={el.fieldsAlise} />);
+                }
+            });
         } else {
             notify(msg);
         }
     }
 
     return (
-        <Box sx={{ position: 'relative', minHeight: "82vh", }}>
+        <Box sx={{
+            position: 'relative',
+            maxHeight: boxMaxHeight,
+            maxWidth: boxMaxWidth,
+            overflowX: 'auto',
+            overflowY: 'auto',
+            '& .MuiTableCell-root': {
+                whiteSpace: 'nowrap',
+            }
+        }}>
             {isLoading && (
                 <LinearProgress
                     sx={{
@@ -252,16 +223,14 @@
                 />
             )}
             {columns.length > 0 &&
-                <StyledDatagrid
-                    preferenceKey='warehouseAreasItem'
+                <StickyDataTable
+                    storeKey='warehouseAreasItem'
                     bulkActionButtons={false}
-                    rowClick={(id, resource, record) => false}
-                    omit={['prodTime','platOrderCode','id', 'createTime', 'memo', 'areaId', 'brand', 
-                         'weight', 'splrId', 'projectCode','statusBool', 'extendFields.[priceUnitId]', 'isptResult$', 'extendFields.[inStockType]',
-                         'matnrId', 'trackCode', 'workQty', 'batch', 'shipperId', 'isptResult', 'createBy$', 'createTime', 'extendFields.[baseUnitId]']}
+                    rowClick={false}
+                    hiddenColumns={hiddenColumns}
                 >
-                    {columns.map((column) => column)}
-                </StyledDatagrid>}
+                    {columns}
+                </StickyDataTable>}
         </Box>
     )
 }

--
Gitblit v1.9.1