zjj
6 天以前 eab76cd34bff799686f68e6b70f86c9001e4913f
rsf-admin/src/page/basicInfo/loc/BatchModal.jsx
@@ -19,6 +19,7 @@
    useCreateController,
    useListContext,
    useRefresh,
    SelectArrayInput
} from 'react-admin';
import {
    Dialog,
@@ -38,7 +39,8 @@
    TableCell,
    Tooltip,
    IconButton,
    styled
    styled,
} from '@mui/material';
@@ -53,8 +55,7 @@
import StatusSelectInput from "../../components/StatusSelectInput";
const InitModal = ({ open, setOpen }) => {
const BatchModal = ({ open, setOpen, fieldType }) => {
    const refresh = useRefresh();
    const translate = useTranslate();
@@ -62,25 +63,29 @@
    const notify = useNotify();
    const [formData, setFormData] = useState({
        "warehouseId": null,
        "areaId": null,
        "type": null,
        'status': null
    });
    const { selectedIds } = useListContext();
    const { selectedIds, onUnselectItems } = useListContext();
    const handleClose = (event, reason) => {
        if (reason !== "backdropClick") {
            setOpen(false);
            reset()
            refresh();
            onUnselectItems()
        }
    };
    const reset = () => {
        setFormData({
            "warehouseId": null,
            "areaId": null,
            "type": null,
            "typeIds": null,
            'status': null
        })
    }
@@ -94,6 +99,7 @@
            ...prevData,
            [name]: value
        }));
        refresh()
    };
    const removeEmptyKeys = (obj) => {
@@ -122,48 +128,70 @@
    }
    return (
        <Dialog open={open} maxWidth="md" fullWidth>
        <Dialog open={open} maxWidth="xs" fullWidth>
            <Form onSubmit={handleSubmit}>
                <DialogCloseButton onClose={handleClose} />
                <DialogTitle>{translate('toolbar.batch')}</DialogTitle>
                <DialogContent sx={{ mt: 2 }}>
                    <Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}>
                        <Grid container spacing={2}>
                            <Grid item xs={4}>
                                <ReferenceInput
                                    source="areaId"
                                    reference="warehouseAreas"
                                >
                                    <AutocompleteInput
                                        label="table.field.loc.areaId"
                                        optionText="name"
                                        onChange={(value) => handleChange(value, 'areaId')}
                                        value={formData.areaId}
                                        filterToQuery={(val) => ({ name: val })}
                                    />
                                </ReferenceInput>
                            {fieldType === 'warehouseId' &&
                                <Grid item xs={6}>
                                    <ReferenceInput
                                        source="warehouseId"
                                        reference="warehouse"
                                    >
                                        <AutocompleteInput
                                            label="table.field.loc.warehouseId"
                                            optionText="name"
                                            value={formData.warehouseId}
                                            filterToQuery={(val) => ({ name: val })}
                                        />
                                    </ReferenceInput>
                                </Grid>
                            }
                            {fieldType === 'areaId' &&
                                <Grid item xs={6}>
                                    <ReferenceInput
                                        source="areaId"
                                        reference="warehouseAreas"
                                    >
                                        <AutocompleteInput
                                            label="table.field.loc.areaId"
                                            optionText="name"
                                            onChange={(value) => handleChange(value, 'areaId')}
                                            value={formData.areaId}
                                            filterToQuery={(val) => ({ name: val })}
                                        />
                                    </ReferenceInput>
                            </Grid>
                            <Grid item xs={4}>
                                <DictionarySelect
                                </Grid>
                            }
                            {fieldType === 'typeIds' &&
                                <Grid item xs={6}>
                                    {/* <DictionarySelect
                                    label={translate("table.field.loc.type")}
                                    name="type"
                                    value={formData.type}
                                    onChange={(e) => handleChange(+e.target.value, 'type')}
                                    onChange={(e) => handleChange(e.target.value, 'type')}
                                    size="small"
                                    dictTypeCode="sys_loc_type"
                                />
                            </Grid>
                                /> */}
                                    <ReferenceArrayInput source="typeIds" reference="locType" >
                                        <SelectArrayInput label="table.field.loc.type" onChange={(e) => handleChange(e.target.value, 'typeIds')} />
                                    </ReferenceArrayInput>
                                </Grid>
                            }
                            <Grid item xs={4}>
                                <StatusSelectInput
                                    onChange={(e) => handleChange(e.target.value, 'status')}
                                    defaultValue={''}
                                    require={false}
                                />
                            </Grid>
                            {fieldType === 'status' &&
                                <Grid item xs={6}>
                                    <StatusSelectInput
                                        onChange={(e) => handleChange(e.target.value, 'status')}
                                        defaultValue={''}
                                        require={false}
                                    />
                                </Grid>
                            }
                        </Grid>
                    </Box>
@@ -171,7 +199,7 @@
                <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 />}>
                            确认
                            {translate('toolbar.confirm')}
                        </Button>
                    </Box>
                </DialogActions>
@@ -180,4 +208,4 @@
    );
}
export default InitModal;
export default BatchModal;