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