|  |  | 
 |  |  |     useCreateController, | 
 |  |  |     useListContext, | 
 |  |  |     useRefresh, | 
 |  |  |     SelectArrayInput | 
 |  |  | } from 'react-admin'; | 
 |  |  | import { | 
 |  |  |     Dialog, | 
 |  |  | 
 |  |  | 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, | 
 |  |  | 
 |  |  |         "startBay": undefined, | 
 |  |  |         "startLev": undefined, | 
 |  |  |         "startRow": undefined, | 
 |  |  |         "type": "" | 
 |  |  |         "type": "", | 
 |  |  |         "typeIds": undefined, | 
 |  |  |     }); | 
 |  |  |  | 
 |  |  |     const handleClose = (event, reason) => { | 
 |  |  | 
 |  |  |     }; | 
 |  |  |  | 
 |  |  |     const handleSubmit = async () => { | 
 |  |  |         setDisabled(true) | 
 |  |  |         const res = await request.post(`/loc/init`, formData); | 
 |  |  |         if (res?.data?.code === 200) { | 
 |  |  |             setOpen(false); | 
 |  |  | 
 |  |  |         } else { | 
 |  |  |             notify(res.data.msg); | 
 |  |  |         } | 
 |  |  |         setDisabled(false) | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     return ( | 
 |  |  |         <Dialog open={open} maxWidth="md" fullWidth> | 
 |  |  |             <Form onSubmit={handleSubmit}> | 
 |  |  |             <Form onSubmit={handleSubmit} defaultValues={filterValues}> | 
 |  |  |                 <DialogCloseButton onClose={handleClose} /> | 
 |  |  |                 <DialogTitle>{translate('toolbar.locInit')}</DialogTitle> | 
 |  |  |                 <DialogContent sx={{ mt: 2 }}> | 
 |  |  | 
 |  |  |                         <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" | 
 |  |  | 
 |  |  |                                         filterToQuery={(val) => ({ name: val })} | 
 |  |  |                                     /> | 
 |  |  |                                 </ReferenceInput> | 
 |  |  |  | 
 |  |  |                             </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" | 
 |  |  |                                     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}> | 
 |  |  |                                 <TextInput | 
 |  |  |                                     label={translate("table.field.loc.startBay")} | 
 |  |  |                                     name="startBay" | 
 |  |  |                                     value={formData.startBay} | 
 |  |  |                                     onChange={(e) => handleChange(+e.target.value, 'startBay')} | 
 |  |  |                                     size="small" | 
 |  |  |                                     type="number" | 
 |  |  |                                     validate={[required()]} | 
 |  |  |                                 /> | 
 |  |  |                             </Grid> | 
 |  |  |  | 
 |  |  |                             <Grid item xs={4}> | 
 |  |  |                                 <TextInput | 
 |  |  |                                     label={translate("table.field.loc.startLev")} | 
 |  |  |                                     name="startLev" | 
 |  |  |                                     value={formData.startLev} | 
 |  |  |                                     onChange={(e) => handleChange(+e.target.value, 'startLev')} | 
 |  |  |                                     size="small" | 
 |  |  |                                     type="number" | 
 |  |  |                                     validate={[required()]} | 
 |  |  |                                 /> | 
 |  |  |                             </Grid> | 
 |  |  |  | 
 |  |  |                             <Grid item xs={4}> | 
 |  |  |                                 <TextInput | 
 |  |  |                                     label={translate("table.field.loc.startRow")} | 
 |  |  | 
 |  |  |                                     validate={[required()]} | 
 |  |  |                                 /> | 
 |  |  |                             </Grid> | 
 |  |  |  | 
 |  |  |                             <Grid item xs={4}> | 
 |  |  |                                 <TextInput | 
 |  |  |                                     label={translate("table.field.loc.endBay")} | 
 |  |  |                                     name="endBay" | 
 |  |  |                                     value={formData.endBay} | 
 |  |  |                                     onChange={(e) => handleChange(+e.target.value, 'endBay')} | 
 |  |  |                                     label={translate("table.field.loc.startBay")} | 
 |  |  |                                     name="startBay" | 
 |  |  |                                     value={formData.startBay} | 
 |  |  |                                     onChange={(e) => handleChange(+e.target.value, 'startBay')} | 
 |  |  |                                     size="small" | 
 |  |  |                                     type="number" | 
 |  |  |                                     validate={[required()]} | 
 |  |  |                                 /> | 
 |  |  |                             </Grid> | 
 |  |  |  | 
 |  |  |                             <Grid item xs={4}> | 
 |  |  |                                 <TextInput | 
 |  |  |                                     label={translate("table.field.loc.endLev")} | 
 |  |  |                                     name="endLev" | 
 |  |  |                                     value={formData.endLev} | 
 |  |  |                                     onChange={(e) => handleChange(+e.target.value, 'endLev')} | 
 |  |  |                                     label={translate("table.field.loc.startLev")} | 
 |  |  |                                     name="startLev" | 
 |  |  |                                     value={formData.startLev} | 
 |  |  |                                     onChange={(e) => handleChange(+e.target.value, 'startLev')} | 
 |  |  |                                     size="small" | 
 |  |  |                                     type="number" | 
 |  |  |                                     validate={[required()]} | 
 |  |  |                                 /> | 
 |  |  |                             </Grid> | 
 |  |  |  | 
 |  |  |                             <Grid item xs={4}> | 
 |  |  |                                 <TextInput | 
 |  |  |                                     label={translate("table.field.loc.endRow")} | 
 |  |  | 
 |  |  |                                     validate={[required()]} | 
 |  |  |                                 /> | 
 |  |  |                             </Grid> | 
 |  |  |  | 
 |  |  |                             <Grid item xs={4}> | 
 |  |  |                                 <TextInput | 
 |  |  |                                     label={translate("table.field.loc.endBay")} | 
 |  |  |                                     name="endBay" | 
 |  |  |                                     value={formData.endBay} | 
 |  |  |                                     onChange={(e) => handleChange(+e.target.value, 'endBay')} | 
 |  |  |                                     size="small" | 
 |  |  |                                     type="number" | 
 |  |  |                                     validate={[required()]} | 
 |  |  |                                 /> | 
 |  |  |                             </Grid> | 
 |  |  |                             <Grid item xs={4}> | 
 |  |  |                                 <TextInput | 
 |  |  |                                     label={translate("table.field.loc.endLev")} | 
 |  |  |                                     name="endLev" | 
 |  |  |                                     value={formData.endLev} | 
 |  |  |                                     onChange={(e) => handleChange(+e.target.value, 'endLev')} | 
 |  |  |                                     size="small" | 
 |  |  |                                     type="number" | 
 |  |  |                                     validate={[required()]} | 
 |  |  |                                 /> | 
 |  |  |                             </Grid> | 
 |  |  |                             <Grid item xs={4}> | 
 |  |  |                                 <TextInput | 
 |  |  |                                     label={"table.field.loc.channel"} | 
 |  |  |                                     name="channel" | 
 |  |  |                                     value={formData.channel} | 
 |  |  |                                     onChange={(e) => handleChange(+e.target.value, 'channel')} | 
 |  |  |                                     size="small" | 
 |  |  |                                     type="number" | 
 |  |  |                                     validate={[required()]} | 
 |  |  |                                 /> | 
 |  |  |                             </Grid> | 
 |  |  |                             <Grid item xs={4}> | 
 |  |  |                                 <TextInput | 
 |  |  |                                     label={"table.field.loc.startChannel"} | 
 |  |  |                                     name="startChannel" | 
 |  |  |                                     value={formData.startChannel} | 
 |  |  |                                     onChange={(e) => handleChange(+e.target.value, 'startChannel')} | 
 |  |  |                                     size="small" | 
 |  |  |                                     type="number" | 
 |  |  |                                     validate={[required()]} | 
 |  |  |                                 /> | 
 |  |  |                             </Grid> | 
 |  |  |                         </Grid> | 
 |  |  |  | 
 |  |  |                     </Box> | 
 |  |  |                 </DialogContent> | 
 |  |  |                 <DialogActions sx={{ position: 'sticky', bottom: 0, backgroundColor: 'background.paper', zIndex: 1000 }}> | 
 |  |  |                     <Box sx={{ width: '100%', display: 'flex', justifyContent: 'space-between' }}> | 
 |  |  |                         <Button type="submit" variant="contained" startIcon={<SaveIcon />}> | 
 |  |  |                             确认 | 
 |  |  |                         <Button disabled={disabled} type="submit" variant="contained" startIcon={<SaveIcon />} > | 
 |  |  |                             {translate('toolbar.confirm')} | 
 |  |  |                         </Button> | 
 |  |  |                     </Box> | 
 |  |  |  | 
 |  |  |                 </DialogActions> | 
 |  |  |             </Form> | 
 |  |  |         </Dialog> | 
 |  |  |     ); | 
 |  |  | } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  | export default InitModal; |