From fac10dcb68a892be100960e267d0a1501f34e984 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期三, 19 三月 2025 10:28:06 +0800
Subject: [PATCH] #修改 基础数据添加空管字段

---
 rsf-admin/src/page/basicInfo/loc/BatchModal.jsx |   67 +++++++++++++++++++++------------
 1 files changed, 43 insertions(+), 24 deletions(-)

diff --git a/rsf-admin/src/page/basicInfo/loc/BatchModal.jsx b/rsf-admin/src/page/basicInfo/loc/BatchModal.jsx
index 5e9cfb7..a3448a2 100644
--- a/rsf-admin/src/page/basicInfo/loc/BatchModal.jsx
+++ b/rsf-admin/src/page/basicInfo/loc/BatchModal.jsx
@@ -50,7 +50,7 @@
 import { Add, Edit, Delete } from '@mui/icons-material';
 import _ from 'lodash';
 import { DataGrid } from '@mui/x-data-grid';
-
+import StatusSelectInput from "../../components/StatusSelectInput";
 
 
 
@@ -62,16 +62,28 @@
     const notify = useNotify();
 
     const [formData, setFormData] = useState({
-        "areaId": undefined,
-        "locType": "",
-        "type": ""
+        "areaId": null,
+        "type": null,
+        'status': null
     });
+
+    const { selectedIds } = useListContext();
 
     const handleClose = (event, reason) => {
         if (reason !== "backdropClick") {
             setOpen(false);
+            reset()
+            refresh();
         }
     };
+
+    const reset = () => {
+        setFormData({
+            "areaId": null,
+            "type": null,
+            'status': null
+        })
+    }
 
     const handleReset = (e) => {
         e.preventDefault();
@@ -80,20 +92,34 @@
     const handleChange = (value, name) => {
         setFormData((prevData) => ({
             ...prevData,
-            [name]: ['locType', 'type'].includes(name) ? value : +value
+            [name]: value
         }));
     };
 
+    const removeEmptyKeys = (obj) => {
+        return _.pickBy(obj, (value) => {
+            if (_.isObject(value)) {
+                const newObj = removeEmptyKeys(value);
+                return !_.isEmpty(newObj);
+            }
+            return !_.isNil(value) && (_.isNumber(value) ? value !== 0 : !_.isEmpty(value));
+        });
+    }
+
     const handleSubmit = async () => {
-        const res = await request.post(`/loc/init`, formData);
+        const parmas = {
+            id: selectedIds,
+            loc: removeEmptyKeys(formData)
+        }
+
+        const res = await request.post(`/loc/modify`, parmas);
         if (res?.data?.code === 200) {
-            setOpen(false);
-            refresh();
+            handleClose()
+
         } else {
             notify(res.data.msg);
         }
     }
-
 
     return (
         <Dialog open={open} maxWidth="md" fullWidth>
@@ -113,7 +139,6 @@
                                         optionText="name"
                                         onChange={(value) => handleChange(value, 'areaId')}
                                         value={formData.areaId}
-                                        validate={[required()]}
                                         filterToQuery={(val) => ({ name: val })}
                                     />
                                 </ReferenceInput>
@@ -122,28 +147,22 @@
 
                             <Grid item xs={4}>
                                 <DictionarySelect
-                                    label={translate("table.field.loc.locType")}
-                                    name="locType"
-                                    value={formData.locType}
-                                    onChange={(e) => handleChange(e.target.value, 'locType')}
-                                    size="small"
-                                    validate={[required()]}
-                                    dictTypeCode="sys_width_type"
-                                />
-                            </Grid>
-
-                            <Grid item xs={4}>
-                                <DictionarySelect
                                     label={translate("table.field.loc.type")}
                                     name="type"
                                     value={formData.type}
-                                    onChange={(e) => handleChange(e.target.value, 'type')}
+                                    onChange={(e) => handleChange(+e.target.value, 'type')}
                                     size="small"
-                                    validate={[required()]}
                                     dictTypeCode="sys_loc_type"
                                 />
                             </Grid>
 
+                            <Grid item xs={4}>
+                                <StatusSelectInput
+                                    onChange={(e) => handleChange(e.target.value, 'status')}
+                                    defaultValue={''}
+                                    require={false}
+                                />
+                            </Grid>
 
                         </Grid>
 

--
Gitblit v1.9.1