zjj
2025-05-23 eab76cd34bff799686f68e6b70f86c9001e4913f
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,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 }}>
@@ -111,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"
@@ -126,28 +152,14 @@
                            </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"
                                />
                            </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"
                                />
                                <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}>
@@ -155,7 +167,7 @@
                                    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"
                                    validate={[required()]}
@@ -167,7 +179,7 @@
                                    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"
                                    validate={[required()]}
@@ -179,7 +191,7 @@
                                    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"
                                    validate={[required()]}
@@ -191,7 +203,7 @@
                                    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"
                                    validate={[required()]}
@@ -203,7 +215,7 @@
                                    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"
                                    validate={[required()]}
@@ -215,7 +227,7 @@
                                    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"
                                    validate={[required()]}
@@ -228,10 +240,11 @@
                </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>