From 1d71e8d6e37f7e992c9db9a77b9be86cb240afa1 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期五, 18 四月 2025 11:00:28 +0800
Subject: [PATCH] #修改 1. 收货通知单导入报错问题修复
---
rsf-admin/src/page/basicInfo/loc/InitModal.jsx | 125 ++++++++++++++++++++++-------------------
1 files changed, 68 insertions(+), 57 deletions(-)
diff --git a/rsf-admin/src/page/basicInfo/loc/InitModal.jsx b/rsf-admin/src/page/basicInfo/loc/InitModal.jsx
index ed84903..7d7ee4b 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,
@@ -60,8 +61,10 @@
const notify = useNotify();
+ const [disabled, setDisabled] = useState(false)
const [formData, setFormData] = useState({
+ "warehouseId": null,
"areaId": undefined,
"endBay": undefined,
"endLev": undefined,
@@ -70,7 +73,8 @@
"startBay": undefined,
"startLev": undefined,
"startRow": undefined,
- "type": ""
+ "type": "",
+ "typeIds": undefined,
});
const handleClose = (event, reason) => {
@@ -86,11 +90,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 +103,40 @@
} 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}>
+ <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
+ 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 +150,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