From 6f5a86b74457f2fdad3caa63f3378e81624d47d2 Mon Sep 17 00:00:00 2001
From: lbq <1065079612@qq.com>
Date: 星期三, 11 二月 2026 08:22:14 +0800
Subject: [PATCH] 优化基础信息页面字段

---
 rsf-admin/src/page/orders/asnOrderItem/AsnOrderItemList.jsx |   77 +++++++++++++++++++++-----------------
 1 files changed, 42 insertions(+), 35 deletions(-)

diff --git a/rsf-admin/src/page/orders/asnOrderItem/AsnOrderItemList.jsx b/rsf-admin/src/page/orders/asnOrderItem/AsnOrderItemList.jsx
index 7e9a946..9cd224a 100644
--- a/rsf-admin/src/page/orders/asnOrderItem/AsnOrderItemList.jsx
+++ b/rsf-admin/src/page/orders/asnOrderItem/AsnOrderItemList.jsx
@@ -2,10 +2,10 @@
 import { useNavigate, useLocation } from 'react-router-dom';
 import {
     List,
-    DatagridConfigurable,
+    DataTable,
     SearchInput,
     TopToolbar,
-    SelectColumnsButton,
+    ColumnsButton,
     EditButton,
     FilterButton,
     CreateButton,
@@ -34,28 +34,16 @@
     Button,
     useRefresh,
     Pagination,
+    useSidebarState,
 } from 'react-admin';
 import { Box, Typography, Card, Stack, Dialog, DialogActions, DialogTitle, LinearProgress } from '@mui/material';
 import { styled } from '@mui/material/styles';
 import PageDrawer from "../../components/PageDrawer";
+import StickyDataTable from "../../components/StickyDataTable";
+import useTableLayout from '@/utils/useTableLayout';
 
 import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting';
-import { fetchInOrderItemColumns } from '../config/orderItemColumns';
-
-const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({
-    '& .css-1vooibu-MuiSvgIcon-root': {
-        height: '.9em',
-
-    },
-    '& .RaDatagrid-row': {
-        cursor: 'auto'
-    },
-    '& .column-name': {
-    },
-    '& .opt': {
-        width: 200
-    },
-}));
+import { fetchInOrderItemFullColumns } from '../config/orderItemColumns';
 
 const filters = [
     <SearchInput source="condition" alwaysOn />,
@@ -98,7 +86,7 @@
         <>
             <Box display="flex">
                 <List
-                    resource="asnOrderItem/in"
+                    resource="asnOrderItemFull/in"
                     sx={{
                         flexGrow: 1,
                         transition: (theme) =>
@@ -110,18 +98,18 @@
                     title={"menu.asnOrderItem"}
                     empty={false}
                     filters={filters}
-                    sort={{ field: "create_time", order: "desc" }}
+                    // sort={{ field: "mo.create_time", order: "desc" }}
                     actions={(
                         <TopToolbar>
                             <FilterButton />
-                            <SelectColumnsButton preferenceKey='asnOrderItem' />
+                            <ColumnsButton storeKey='asnOrderItem' />
                             <ExportButton />
                         </TopToolbar>
                     )}
                     perPage={DEFAULT_PAGE_SIZE}
                     pagination={<Pagination rowsPerPageOptions={[5, 10, 20, 25, 50, 100]} />}
                 >
-                    <DynamicFields />
+                    <DynamicFields drawerVal={drawerVal} />
                 </List>
                 <PageDrawer
                     title='AsnOrderItem Detail'
@@ -136,24 +124,26 @@
 
 export default AsnOrderItemList;
 
-const DynamicFields = (props) => {
+const DynamicFields = ({ drawerVal }) => {
     const translate = useTranslate();
     const notify = useNotify();
     const [columns, setColumns] = useState([]);
     const { isLoading } = useListContext();
     const refresh = useRefresh();
+    const omittedFields = [
+        'id'
+    ];
+
     useEffect(() => {
         getDynamicFields();
     }, []);
 
     const getDynamicFields = async () => {
-        const result = await fetchInOrderItemColumns();
+        const result = await fetchInOrderItemFullColumns();
         if (result.success) {
             const hiddenSources = [
                 'splrName',
-                'businessTime', 'extendFields.[businessTime]',
-                'wkType', 'extendFields.[wkType]',
-                'type', 'extendFields.[type]'
+                'type', 'extendFields.[type]',
             ];
             const columns = result.columns.filter(col => !hiddenSources.includes(col.props.source));
             setColumns(columns);
@@ -162,8 +152,21 @@
         }
     }
 
+    const { boxMaxWidth, boxMaxHeight } = useTableLayout(drawerVal);
+
+
+
     return (
-        <Box sx={{ position: 'relative', minHeight: "60vh", }}>
+        <Box sx={{
+            position: 'relative',
+            maxHeight: boxMaxHeight,
+            maxWidth: boxMaxWidth,
+            overflowX: 'auto',
+            overflowY: 'auto',
+            '& .MuiTableCell-root': {
+                whiteSpace: 'nowrap',
+            }
+        }}>
             {isLoading && (
                 <LinearProgress
                     sx={{
@@ -176,15 +179,19 @@
                 />
             )}
             {columns.length > 0 &&
-                <StyledDatagrid
-                    preferenceKey='asnOrderItem'
+                <StickyDataTable
+                    footerConfig={[
+                        { field: 'anfme', type: 'sum', label: 'table.field.asnOrderItem.anfme' },
+                        { field: 'qty', type: 'max', label: 'table.field.asnOrderItem.qty' },
+                    ]}
+                    // stickyRight={['createTime']}
+                    storeKey='asnOrderItem'
                     bulkActionButtons={false}
-                    rowClick={(id, resource, record) => false}
-                    omit={['id', 'orderId', 'orderCode', 'poCode', 'poId', 'wkType', 'type', 'checkType', 'spec', 'model', 'purQty', 'purUnit', 'qrcode', 'trackCode', 'splrCode', 'splrName', 'projectCode', 'supplierId', 'supplierName', 'priceUnitId', 'shipperId', 'businessTime', 'extendFields.[businessTime]', 'extendFields.[wkType]', 'extendFields.[type]']}
-                    // omit={['id', 'orderId', 'poDetlId', 'matnrId', 'spec', 'model', 'purQty', 'purUnit', 'qrcode', 'trackCode', 'splrCode', 'platWorkCode', 'projectCode', 'createBy', 'createTime']}
+                    rowClick={false}
+                    hiddenColumns={omittedFields}
                 >
-                    {columns.map((column) => column)}
-                </StyledDatagrid>}
+                    {columns}
+                </StickyDataTable>}
         </Box>
     )
 }

--
Gitblit v1.9.1