skyouc
2025-05-24 c5e50d7aefa40b95d2c474c178de8a20950247b9
rsf-admin/src/page/basicInfo/loc/InitModal.jsx
@@ -58,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,
@@ -93,6 +96,7 @@
    };
    const handleSubmit = async () => {
        setDisabled(true)
        const res = await request.post(`/loc/init`, formData);
        if (res?.data?.code === 200) {
            setOpen(false);
@@ -100,12 +104,13 @@
        } 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 }}>
@@ -113,8 +118,27 @@
                        <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"
@@ -125,50 +149,15 @@
                                        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"
                                />
                            </Grid>
                            <Grid item xs={4}>
                                <ReferenceArrayInput source="typeIds" reference="locType" >
                                    <SelectArrayInput label="table.field.loc.type" onChange={(e) => handleChange(e.target.value, 'typeIds')} />
                                    <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}>
                                <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")}
@@ -180,31 +169,28 @@
                                    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")}
@@ -216,21 +202,55 @@
                                    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>
                    </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;