skyouc
2025-03-19 95c82344c563b10f55ca6163a6f3299f0f025e0f
rsf-admin/src/page/basicInfo/loc/BatchModal.jsx
@@ -50,7 +50,7 @@
import { Add, Edit, Delete } from '@mui/icons-material';
import _ from 'lodash';
import { DataGrid } from '@mui/x-data-grid';
import StatusSelectInput from "../../components/StatusSelectInput";
@@ -62,16 +62,28 @@
    const notify = useNotify();
    const [formData, setFormData] = useState({
        "areaId": undefined,
        "locType": "",
        "type": ""
        "areaId": null,
        "type": null,
        'status': null
    });
    const { selectedIds } = useListContext();
    const handleClose = (event, reason) => {
        if (reason !== "backdropClick") {
            setOpen(false);
            reset()
            refresh();
        }
    };
    const reset = () => {
        setFormData({
            "areaId": null,
            "type": null,
            'status': null
        })
    }
    const handleReset = (e) => {
        e.preventDefault();
@@ -80,20 +92,34 @@
    const handleChange = (value, name) => {
        setFormData((prevData) => ({
            ...prevData,
            [name]: ['locType', 'type'].includes(name) ? value : +value
            [name]: value
        }));
    };
    const removeEmptyKeys = (obj) => {
        return _.pickBy(obj, (value) => {
            if (_.isObject(value)) {
                const newObj = removeEmptyKeys(value);
                return !_.isEmpty(newObj);
            }
            return !_.isNil(value) && (_.isNumber(value) ? value !== 0 : !_.isEmpty(value));
        });
    }
    const handleSubmit = async () => {
        const res = await request.post(`/loc/init`, formData);
        const parmas = {
            id: selectedIds,
            loc: removeEmptyKeys(formData)
        }
        const res = await request.post(`/loc/modify`, parmas);
        if (res?.data?.code === 200) {
            setOpen(false);
            refresh();
            handleClose()
        } else {
            notify(res.data.msg);
        }
    }
    return (
        <Dialog open={open} maxWidth="md" fullWidth>
@@ -113,7 +139,6 @@
                                        optionText="name"
                                        onChange={(value) => handleChange(value, 'areaId')}
                                        value={formData.areaId}
                                        validate={[required()]}
                                        filterToQuery={(val) => ({ name: val })}
                                    />
                                </ReferenceInput>
@@ -122,28 +147,22 @@
                            <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')}
                                    onChange={(e) => handleChange(+e.target.value, 'type')}
                                    size="small"
                                    validate={[required()]}
                                    dictTypeCode="sys_loc_type"
                                />
                            </Grid>
                            <Grid item xs={4}>
                                <StatusSelectInput
                                    onChange={(e) => handleChange(e.target.value, 'status')}
                                    defaultValue={''}
                                    require={false}
                                />
                            </Grid>
                        </Grid>