From 028ef9e952135505871d7a05d9c3af3a8fbcce79 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期日, 11 五月 2025 15:18:59 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/devlop' into devlop

---
 rsf-admin/src/page/basicInfo/loc/InitModal.jsx |  131 ++++++++++++++++++++++++-------------------
 1 files changed, 72 insertions(+), 59 deletions(-)

diff --git a/rsf-admin/src/page/basicInfo/loc/InitModal.jsx b/rsf-admin/src/page/basicInfo/loc/InitModal.jsx
index ed84903..8704732 100644
--- a/rsf-admin/src/page/basicInfo/loc/InitModal.jsx
+++ b/rsf-admin/src/page/basicInfo/loc/InitModal.jsx
@@ -19,6 +19,7 @@
     useCreateController,
     useListContext,
     useRefresh,
+    SelectArrayInput
 } from 'react-admin';
 import {
     Dialog,
@@ -57,12 +58,15 @@
 const InitModal = ({ open, setOpen }) => {
     const refresh = useRefresh();
     const translate = useTranslate();
-
+    const {filterValues} = useListContext(); // 鑾峰彇鍒楄〃涓婁笅鏂�   
+    
 
     const notify = useNotify();
+    const [disabled, setDisabled] = useState(false)
 
     const [formData, setFormData] = useState({
-        "areaId": undefined,
+        "warehouseId": filterValues.warehouseId,
+        "areaId": filterValues.areaId,
         "endBay": undefined,
         "endLev": undefined,
         "endRow": undefined,
@@ -70,7 +74,8 @@
         "startBay": undefined,
         "startLev": undefined,
         "startRow": undefined,
-        "type": ""
+        "type": "",
+        "typeIds": undefined,
     });
 
     const handleClose = (event, reason) => {
@@ -86,11 +91,12 @@
     const handleChange = (value, name) => {
         setFormData((prevData) => ({
             ...prevData,
-            [name]: ['locType', 'type'].includes(name) ? value : +value
+            [name]: value
         }));
     };
 
     const handleSubmit = async () => {
+        setDisabled(true)
         const res = await request.post(`/loc/init`, formData);
         if (res?.data?.code === 200) {
             setOpen(false);
@@ -98,22 +104,41 @@
         } else {
             notify(res.data.msg);
         }
+        setDisabled(false)
     }
 
 
     return (
         <Dialog open={open} maxWidth="md" fullWidth>
-            <DialogCloseButton onClose={handleClose} />
-            <DialogTitle>{translate('toolbar.locInit')}</DialogTitle>
-            <DialogContent sx={{ mt: 2 }}>
-                <Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}>
-                    <Form>
-
+            <Form onSubmit={handleSubmit} defaultValues={filterValues}>
+                <DialogCloseButton onClose={handleClose} />
+                <DialogTitle>{translate('toolbar.locInit')}</DialogTitle>
+                <DialogContent sx={{ mt: 2 }}>
+                    <Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}>
                         <Grid container spacing={2}>
+                            <Grid item xs={4}>
+                                <ReferenceInput
+                                    source="warehouseId"
+                                    reference="warehouse"
+                                >
+                                    <AutocompleteInput
+                                        debounce
+                                        label="table.field.loc.warehouseId"
+                                        optionText="name"
+                                        onChange={(value) => handleChange(value, 'warehouseId')}
+                                        value={formData.warehouseId}
+                                        validate={[required()]}
+                                        filterToQuery={(val) => ({ name: val })}
+                                    />
+                                </ReferenceInput>
+
+                            </Grid>
+
                             <Grid item xs={4}>
                                 <ReferenceInput
                                     source="areaId"
                                     reference="warehouseAreas"
+                                    filter={{ warehouseId: formData.warehouseId }}
                                 >
                                     <AutocompleteInput
                                         label="table.field.loc.areaId"
@@ -127,113 +152,101 @@
 
                             </Grid>
 
+
                             <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"
-                                />
+                                <ReferenceArrayInput source="typeIds" reference="locType" >
+                                    <SelectArrayInput label="table.field.loc.type" validate={[required()]} onChange={(e) => handleChange(e.target.value, 'typeIds')} />
+                                </ReferenceArrayInput>
+                                {/* <ReferenceArrayInput source="typeIds" reference="dictData" filter={{}}>
+                                    <SelectArrayInput label="table.field.loc.type" onChange={(e) => handleChange(e.target.value, 'typeIds')} validate={[required()]} />
+                                </ReferenceArrayInput> */}
                             </Grid>
 
                             <Grid item xs={4}>
-                                <DictionarySelect
-                                    label={translate("table.field.loc.type")}
-                                    name="type"
-                                    value={formData.type}
-                                    onChange={(e) => handleChange(e.target.value, 'type')}
-                                    size="small"
-                                    validate={[required()]}
-                                    dictTypeCode="sys_loc_type"
-                                />
-                            </Grid>
-
-                            <Grid item xs={4}>
-                                <TextField
+                                <TextInput
                                     label={translate("table.field.loc.startBay")}
                                     name="startBay"
                                     value={formData.startBay}
-                                    onChange={(e) => handleChange(e.target.value, 'startBay')}
+                                    onChange={(e) => handleChange(+e.target.value, 'startBay')}
                                     size="small"
                                     type="number"
-                                    required
+                                    validate={[required()]}
                                 />
                             </Grid>
 
                             <Grid item xs={4}>
-                                <TextField
+                                <TextInput
                                     label={translate("table.field.loc.startLev")}
                                     name="startLev"
                                     value={formData.startLev}
-                                    onChange={(e) => handleChange(e.target.value, 'startLev')}
+                                    onChange={(e) => handleChange(+e.target.value, 'startLev')}
                                     size="small"
                                     type="number"
-                                    required
+                                    validate={[required()]}
                                 />
                             </Grid>
 
                             <Grid item xs={4}>
-                                <TextField
+                                <TextInput
                                     label={translate("table.field.loc.startRow")}
                                     name="startRow"
                                     value={formData.startRow}
-                                    onChange={(e) => handleChange(e.target.value, 'startRow')}
+                                    onChange={(e) => handleChange(+e.target.value, 'startRow')}
                                     size="small"
                                     type="number"
-                                    required
+                                    validate={[required()]}
                                 />
                             </Grid>
 
                             <Grid item xs={4}>
-                                <TextField
+                                <TextInput
                                     label={translate("table.field.loc.endBay")}
                                     name="endBay"
                                     value={formData.endBay}
-                                    onChange={(e) => handleChange(e.target.value, 'endBay')}
+                                    onChange={(e) => handleChange(+e.target.value, 'endBay')}
                                     size="small"
                                     type="number"
-                                    required
+                                    validate={[required()]}
                                 />
                             </Grid>
 
                             <Grid item xs={4}>
-                                <TextField
+                                <TextInput
                                     label={translate("table.field.loc.endLev")}
                                     name="endLev"
                                     value={formData.endLev}
-                                    onChange={(e) => handleChange(e.target.value, 'endLev')}
+                                    onChange={(e) => handleChange(+e.target.value, 'endLev')}
                                     size="small"
                                     type="number"
-                                    required
+                                    validate={[required()]}
                                 />
                             </Grid>
 
                             <Grid item xs={4}>
-                                <TextField
+                                <TextInput
                                     label={translate("table.field.loc.endRow")}
                                     name="endRow"
                                     value={formData.endRow}
-                                    onChange={(e) => handleChange(e.target.value, 'endRow')}
+                                    onChange={(e) => handleChange(+e.target.value, 'endRow')}
                                     size="small"
                                     type="number"
-                                    required
+                                    validate={[required()]}
                                 />
                             </Grid>
 
                         </Grid>
-                    </Form>
-                </Box>
-            </DialogContent>
-            <DialogActions sx={{ position: 'sticky', bottom: 0, backgroundColor: 'background.paper', zIndex: 1000 }}>
-                <Box sx={{ width: '100%', display: 'flex', justifyContent: 'space-between' }}>
-                    <Button onClick={handleSubmit} variant="contained" startIcon={<SaveIcon />}>
-                        纭
-                    </Button>
-                </Box>
-            </DialogActions>
+
+                    </Box>
+                </DialogContent>
+                <DialogActions sx={{ position: 'sticky', bottom: 0, backgroundColor: 'background.paper', zIndex: 1000 }}>
+                    <Box sx={{ width: '100%', display: 'flex', justifyContent: 'space-between' }}>
+                        <Button disabled={disabled} type="submit" variant="contained" startIcon={<SaveIcon />} >
+                            {translate('toolbar.confirm')}
+                        </Button>
+                    </Box>
+
+                </DialogActions>
+            </Form>
         </Dialog>
     );
 }

--
Gitblit v1.9.1