From 06d7fb698ce6d0efc7ff4224c6b68d2f50feb716 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期一, 21 四月 2025 16:23:46 +0800
Subject: [PATCH] DO单修改及优化

---
 rsf-admin/src/page/basicInfo/loc/BindModal.jsx |   76 +++++++++++++++++++++++---------------
 1 files changed, 46 insertions(+), 30 deletions(-)

diff --git a/rsf-admin/src/page/basicInfo/loc/BindModal.jsx b/rsf-admin/src/page/basicInfo/loc/BindModal.jsx
index 38854f7..5b2e606 100644
--- a/rsf-admin/src/page/basicInfo/loc/BindModal.jsx
+++ b/rsf-admin/src/page/basicInfo/loc/BindModal.jsx
@@ -2,7 +2,6 @@
 import {
     CreateBase,
     useTranslate,
-    SearchInput,
     TextInput,
     NumberInput,
     BooleanInput,
@@ -25,9 +24,11 @@
     Form,
     useCreateController,
     useListContext,
+    SearchInput,
     useRefresh,
     List,
-    SelectArrayInput
+    SelectArrayInput,
+    useListController
 } from 'react-admin';
 import {
     Dialog,
@@ -56,10 +57,11 @@
 import request from '@/utils/request';
 import { Add, Edit, Delete } from '@mui/icons-material';
 import _ from 'lodash';
+import { DataGrid } from '@mui/x-data-grid';
 import StatusSelectInput from "../../components/StatusSelectInput";
 import TreeSelectInput from "@/page/components/TreeSelectInput";
 import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_ITEM_PAGE_SIZE } from '@/config/setting';
-
+import ConfirmationNumber from '@mui/icons-material/ConfirmationNumber';
 
 const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({
     '& .css-1vooibu-MuiSvgIcon-root': {
@@ -73,7 +75,7 @@
 }));
 
 const filters = [
-  <SearchInput source="condition" alwaysOn />
+    <SearchInput source="condition" alwaysOn />,
 ]
 
 const MatnrModal = ({ open, setOpen }) => {
@@ -134,12 +136,12 @@
             groupId: formData.groupId,
             matnrId: formData.matnrId,
         }
-        // const res = await request.post(`/locAreaMatRela/matnr/bind`, parmas);
-        // if (res?.data?.code === 200) {
-        //     handleClose()
-        // } else {
-        //     notify(res.data.msg);
-        // }
+        const res = await request.post(`/locAreaMatRela/matnr/bind`, parmas);
+        if (res?.data?.code === 200) {
+            handleClose()
+        } else {
+            notify(res.data.msg);
+        }
     }
 
     const [groupId, setGroupId] = useState();
@@ -147,16 +149,14 @@
         setGroupId(e.target.value)
     }
 
-
-
     return (
-        <Dialog open={open} maxWidth="1" fullWidth>
+        <Dialog open={open} maxWidth="md" fullWidth>
             <Form onSubmit={handleSubmit}>
                 <DialogCloseButton onClose={handleClose} />
                 <DialogTitle>{translate('toolbar.bindmatnr')}</DialogTitle>
                 <DialogContent sx={{ mt: 2 }}>
-                    <Box sx={{ display: 'flex', flexDirection: 'column', gap: 3, height: 900 }}>
-                        <Grid container spacing={2}>
+                    <Box sx={{ display: 'flex', flexDirection: 'column', gap: 3, height: 200 }}>
+                        <Grid container spacing={3}>
                             <Grid item xs={3}>
                                 <ReferenceInput
                                     source="areaMatId"
@@ -181,19 +181,20 @@
                                     onChange={(e) => handleChange(e.target.value, 'groupId')}
                                 />
                             </Grid>
-                        </Grid>
-                        <Grid item xs={4}>
-                            <List
+                            <Grid  item xs={3}>
+                                {/* </Grid> */}
+                                {/* <Grid item xs={4}> */}
+                                {/* <List
                                 resource="matnr"
                                 filter={{ groupId: formData.groupId }}
-                                queryOptions={{}}
-                                // filters={filters}
+                                storeKey="matnrSelectList"
+                                filters={filters}
                                 empty={false}
                                 actions={<></>}
                             >
                                 <StyledDatagrid
                                     preferenceKey='matnr'
-                                    bulkActionButtons={<></>}
+                                    bulkActionButtons={<> <SelectMatnrs></SelectMatnrs> </>}
                                     rowClick={false}
                                     omit={['id', 'createTime', 'createBy', 'memo', 'poDetlId', 'matnrId', 'asnId']}
                                 >
@@ -216,14 +217,15 @@
                                     <BooleanField key="statusBool" source="statusBool" label="common.field.status" sortable={false} />,
                                     <TextField key="memo" source="memo" label="common.field.memo" sortable={false} />,
                                 </StyledDatagrid>
-                            </List>
-                            {/* <ReferenceArrayInput source="matnrId" reference="matnr" filter={{ groupId: formData.groupId }}>
-                                <SelectArrayInput
-                                    label="table.field.locAreaMatRela.matnrId"
-                                    value={formData.matnrId}
-                                    onChange={(e) => handleChange(e.target.value, 'matnrId')}
-                                />
-                            </ReferenceArrayInput> */}
+                            </List> */}
+                                <ReferenceArrayInput source="matnrId" reference="matnr" filter={{ groupId: formData.groupId }}>
+                                    <SelectArrayInput
+                                        label="table.field.locAreaMatRela.matnrId"
+                                        value={formData.matnrId}
+                                        onChange={(e) => handleChange(e.target.value, 'matnrId')}
+                                    />
+                                </ReferenceArrayInput>
+                            </Grid>
                         </Grid>
                     </Box>
                 </DialogContent>
@@ -239,4 +241,18 @@
     );
 }
 
-export default MatnrModal;
\ No newline at end of file
+export default MatnrModal;
+
+const SelectMatnrs = () => {
+    const { selectedIds, data, isPending, onUnselectItems } = useListContext();
+    const clickMatnrs = () => {
+        console.log(selectedIds);
+        onUnselectItems()
+    }
+
+    return (
+        <Button label={"toolbar.confirmSelect"} onClick={clickMatnrs}>
+            <ConfirmationNumber />
+        </Button>
+    )
+}

--
Gitblit v1.9.1