From ea3ca5f67756a7f3afd1493f86d1265deb8fdf42 Mon Sep 17 00:00:00 2001
From: verou <857149855@qq.com>
Date: 星期二, 25 三月 2025 15:07:52 +0800
Subject: [PATCH] 2

---
 rsf-admin/src/page/warehouseAreas/WarehouseAreasList.jsx   |   59 ++++++++++++++++++-
 rsf-admin/src/page/warehouseAreas/BatchModal.jsx           |   63 ++++++++++++++++----
 rsf-admin/src/page/basicInfo/matnrGroup/MatnrGroupEdit.jsx |    4 -
 rsf-admin/src/i18n/zh.js                                   |    3 +
 rsf-admin/src/i18n/en.js                                   |    3 +
 rsf-admin/src/page/basicInfo/matnr/MatnrCreate.jsx         |    5 -
 rsf-admin/src/page/basicInfo/matnr/MatnrEdit.jsx           |    4 
 7 files changed, 116 insertions(+), 25 deletions(-)

diff --git a/rsf-admin/src/i18n/en.js b/rsf-admin/src/i18n/en.js
index dfb832c..b970d00 100644
--- a/rsf-admin/src/i18n/en.js
+++ b/rsf-admin/src/i18n/en.js
@@ -646,6 +646,9 @@
         bindmatnr: 'bind matnr',
         bindloc: 'bind loc',
         batchMatnrGropu: 'batchMatnrGropu',
+        batchStatus: 'batchStatus',
+        batchMix: 'batchFiexed',
+        batchWarehouse: 'batchWarehouse',
     },
 };
 
diff --git a/rsf-admin/src/i18n/zh.js b/rsf-admin/src/i18n/zh.js
index a1976a7..6e7ede8 100644
--- a/rsf-admin/src/i18n/zh.js
+++ b/rsf-admin/src/i18n/zh.js
@@ -648,6 +648,9 @@
         bindmatnr: '缁戝畾鐗╂枡',
         bindloc: '缁戝畾搴撲綅',
         batchMatnrGropu: '鎵归噺鐗╂枡鍒嗙粍',
+        batchStatus: '鎵归噺鐘舵��',
+        batchMix: '鎵归噺娣锋斁',
+        batchWarehouse: '鎵归噺浠撳簱',
     },
 };
 
diff --git a/rsf-admin/src/page/basicInfo/matnr/MatnrCreate.jsx b/rsf-admin/src/page/basicInfo/matnr/MatnrCreate.jsx
index 04b4d48..0d5ff70 100644
--- a/rsf-admin/src/page/basicInfo/matnr/MatnrCreate.jsx
+++ b/rsf-admin/src/page/basicInfo/matnr/MatnrCreate.jsx
@@ -172,7 +172,6 @@
                                             <AutocompleteInput
                                                 label="table.field.matnr.shipperId"
                                                 optionText="name"
-                                                validate={[required()]}
                                                 filterToQuery={(val) => ({ name: val })}
                                             />
                                         </ReferenceInput>
@@ -188,7 +187,6 @@
                                         <TextInput
                                             label="table.field.matnr.platCode"
                                             source="platCode"
-                                            validate={[required()]}
                                             parse={v => v}
                                         />
                                     </Grid>
@@ -287,7 +285,8 @@
                                             <Grid key={item.id} item xs={6} display="flex" gap={1}>
                                                 <TextInput
                                                     label={item.fieldsAlise}
-                                                    source={item.fields}
+                                                    source={`extendFields.[${item.fields}]`}
+                                                    validate={required()}
                                                 />
                                             </Grid>
                                         )
diff --git a/rsf-admin/src/page/basicInfo/matnr/MatnrEdit.jsx b/rsf-admin/src/page/basicInfo/matnr/MatnrEdit.jsx
index def6d1a..c86aeef 100644
--- a/rsf-admin/src/page/basicInfo/matnr/MatnrEdit.jsx
+++ b/rsf-admin/src/page/basicInfo/matnr/MatnrEdit.jsx
@@ -144,7 +144,6 @@
                                 <Grid item xs={6} display="flex" gap={1}>
                                     <ReferenceInput source="shipperId" reference="companys" filter={{ type: 'shipper' }}>
                                         <AutocompleteInput
-                                            validate={[required()]}
                                             label="table.field.matnr.shipperId"
                                             optionText="name"
                                             filterToQuery={(val) => ({ name: val })}
@@ -269,7 +268,8 @@
                                         <Grid key={item.id} item xs={6} display="flex" gap={1}>
                                             <TextInput
                                                 label={item.fieldsAlise}
-                                                source={item.fields}
+                                                source={`extendFields.[${item.fields}]`}
+                                                validate={required()}
                                             />
                                         </Grid>
                                     )
diff --git a/rsf-admin/src/page/basicInfo/matnrGroup/MatnrGroupEdit.jsx b/rsf-admin/src/page/basicInfo/matnrGroup/MatnrGroupEdit.jsx
index 4fbd112..01b56be 100644
--- a/rsf-admin/src/page/basicInfo/matnrGroup/MatnrGroupEdit.jsx
+++ b/rsf-admin/src/page/basicInfo/matnrGroup/MatnrGroupEdit.jsx
@@ -79,8 +79,7 @@
                 <TextInput
                     label="table.field.matnrGroup.parCode"
                     source="parCode"
-                    value={editRecord?.parCode}
-                    parse={v => v}
+                    value={'11'}
                     readOnly
                 />
             </Grid>
@@ -132,7 +131,6 @@
     const onSubmit = (data) => {
         const _params = { ...data };
         if (editRecord) {
-            debugger
             if (_params.parentId === editRecord.id) {
                 notify('common.response.dataError', { type: 'error' });
                 return;
diff --git a/rsf-admin/src/page/warehouseAreas/BatchModal.jsx b/rsf-admin/src/page/warehouseAreas/BatchModal.jsx
index 34ebb10..1f64a7b 100644
--- a/rsf-admin/src/page/warehouseAreas/BatchModal.jsx
+++ b/rsf-admin/src/page/warehouseAreas/BatchModal.jsx
@@ -51,7 +51,7 @@
 import { DataGrid } from '@mui/x-data-grid';
 import StatusSelectInput from "../components/StatusSelectInput";
 
-const InitModal = ({ open, setOpen }) => {
+const InitModal = ({ open, setOpen, fieldType }) => {
     const refresh = useRefresh();
     const translate = useTranslate();
 
@@ -59,7 +59,9 @@
     const notify = useNotify();
 
     const [formData, setFormData] = useState({
-        'status': null
+        'status': null,
+        'wareId': null,
+        'flagMix': null,
     });
 
     const { selectedIds, onUnselectItems } = useListContext();
@@ -75,7 +77,9 @@
 
     const reset = () => {
         setFormData({
-            'status': null
+            'status': null,
+            'wareId': null,
+            'flagMix': null,
         })
     }
 
@@ -103,10 +107,10 @@
     const handleSubmit = async () => {
         const parmas = {
             id: selectedIds,
-            matnr: removeEmptyKeys(formData)
+            ...removeEmptyKeys(formData)
         }
 
-        const res = await request.post(`/matnr/modify`, parmas);
+        const res = await request.post(`/warehouseAreas/modify`, parmas);
         if (res?.data?.code === 200) {
             handleClose()
 
@@ -116,20 +120,53 @@
     }
 
     return (
-        <Dialog open={open} maxWidth="md" fullWidth>
+        <Dialog open={open} maxWidth="xs" fullWidth>
             <Form onSubmit={handleSubmit}>
                 <DialogCloseButton onClose={handleClose} />
                 <DialogTitle>{translate('toolbar.batch')}</DialogTitle>
                 <DialogContent sx={{ mt: 2 }}>
                     <Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}>
                         <Grid container spacing={2}>
-                            <Grid item xs={4}>
-                                <StatusSelectInput
-                                    onChange={(e) => handleChange(e.target.value, 'status')}
-                                    defaultValue={''}
-                                    require={false}
-                                />
-                            </Grid>
+                            {fieldType === 'status' &&
+                                <Grid item xs={6}>
+                                    <StatusSelectInput
+                                        onChange={(e) => handleChange(e.target.value, 'status')}
+                                        defaultValue={''}
+                                        require={false}
+                                    />
+                                </Grid>
+                            }
+                            {fieldType === 'flagMix' &&
+                                <Grid item xs={6}>
+                                    <SelectInput
+                                        label="table.field.warehouseAreas.flagMix"
+                                        source="flagMix"
+                                        validate={[required()]}
+                                        onChange={(e) => handleChange(e.target.value, 'flagMix')}
+                                        choices={[
+                                            { id: 0, name: '鍚�' },
+                                            { id: 1, name: '鏄�' },
+                                        ]}
+                                    />
+                                </Grid>
+                            }
+                            {fieldType === 'wareId' &&
+                                <Grid item xs={6}>
+                                    <ReferenceInput
+                                        source="warehouseId"
+                                        reference="warehouse"
+
+                                    >
+                                        <AutocompleteInput
+                                            onChange={(value) => handleChange(value, 'warehouseId')}
+                                            label="table.field.warehouseAreas.wareId"
+                                            optionText="name"
+                                            validate={[required()]}
+                                            filterToQuery={(val) => ({ name: val })}
+                                        />
+                                    </ReferenceInput>
+                                </Grid>
+                            }
                         </Grid>
 
                     </Box>
diff --git a/rsf-admin/src/page/warehouseAreas/WarehouseAreasList.jsx b/rsf-admin/src/page/warehouseAreas/WarehouseAreasList.jsx
index a44e1fb..180bcf2 100644
--- a/rsf-admin/src/page/warehouseAreas/WarehouseAreasList.jsx
+++ b/rsf-admin/src/page/warehouseAreas/WarehouseAreasList.jsx
@@ -63,7 +63,7 @@
 
 const filters = [
     <SearchInput source="condition" alwaysOn />,
-    <TextField source="warehouseId" label="table.field.warehouseAreas.wareId" alwaysOn />,
+    <TextField source="warehouseId" label="table.field.warehouseAreas.wareId" />,
     <TextInput source="uuid" label="table.field.warehouseAreas.uuid" />,
     <TextInput source="name" label="table.field.warehouseAreas.name" />,
     <TextInput source="code" label="table.field.warehouseAreas.code" />,
@@ -137,7 +137,9 @@
                     preferenceKey='warehouseAreas'
                     bulkActionButtons={
                         <>
-                            <BatchButton />
+                            <WareButton />
+                            <MixButton />
+                            <StatusButton />
                             <BulkDeleteButton mutationMode={OPERATE_MODE} />
                         </>
                     }
@@ -191,7 +193,7 @@
 export default WarehouseAreasList;
 
 
-const BatchButton = () => {
+const MixButton = () => {
     const record = useRecordContext();
     const notify = useNotify();
     const refresh = useRefresh();
@@ -201,13 +203,62 @@
 
     return (
         <>
-            <Button onClick={() => setCreateDialog(true)} label={"toolbar.batch"}>
+            <Button onClick={() => setCreateDialog(true)} label={"toolbar.batchMix"}>
                 <EditIcon />
             </Button>
 
             <BatchModal
                 open={createDialog}
                 setOpen={setCreateDialog}
+                fieldType={'flagMix'}
+            />
+        </>
+
+    )
+}
+
+const WareButton = () => {
+    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={'wareId'}
+            />
+        </>
+
+    )
+}
+
+const StatusButton = () => {
+    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