skyouc
5 天以前 83bebf33f2a141a13a7adef66d09b43145fc29e9
rsf-admin/src/page/locItem/LocItemEdit.jsx
@@ -10,6 +10,7 @@
    DateInput,
    SelectInput,
    ReferenceInput,
    SelectArrayInput,
    ReferenceArrayInput,
    AutocompleteInput,
    SaveButton,
@@ -19,6 +20,7 @@
    required,
    useRecordContext,
    DeleteButton,
    useNotify,
} from 'react-admin';
import { useWatch, useFormContext } from "react-hook-form";
import { Stack, Grid, Box, Typography } from '@mui/material';
@@ -28,153 +30,175 @@
import CustomerTopToolBar from "../components/EditTopToolBar";
import MemoInput from "../components/MemoInput";
import StatusSelectInput from "../components/StatusSelectInput";
import request from '@/utils/request';
import DictionarySelect from "../components/DictionarySelect";
import LocQueryList from "./LocQueryList";
const FormToolbar = () => {
    const { getValues } = useFormContext();
    return (
        <Toolbar sx={{ justifyContent: 'end' }}>
            <SaveButton />
            {/* <DeleteButton mutationMode="optimistic" /> */}
        </Toolbar>
    )
}
const LocItemEdit = () => {
    const translate = useTranslate();
    const dicts = JSON.parse(localStorage.getItem('sys_dicts'))?.filter(dict => (dict.dictTypeCode == 'sys_loc_type')) || [];
    const [warehouseId, setWrehouseId] = useState();
    const warehouseChange = (val) => {
        setWrehouseId(val)
    }
    return (
        <Edit
            redirect="list"
            mutationMode={EDIT_MODE}
            actions={<CustomerTopToolBar />}
            aside={<EditBaseAside />}
        >
            <SimpleForm
                shouldUnregister
                warnWhenUnsavedChanges
                toolbar={<FormToolbar />}
                mode="onTouched"
                defaultValues={{}}
            // validate={(values) => { }}
        <>
            <Edit
                redirect="list"
                mutationMode={EDIT_MODE}
                actions={<CustomerTopToolBar />}
                aside={<EditBaseAside />}
                title={"menu.loc"}
            >
                <Grid container width={{ xs: '100%', xl: '100%' }} rowSpacing={3} columnSpacing={3}>
                    <Grid item xs={14} md={10}>
                        <Typography variant="h6" gutterBottom>
                            {translate('common.edit.title.main')}
                        </Typography>
                        <Stack direction='row' gap={2}>
                            <NumberInput
                                label="table.field.locItem.locId"
                                source="locId"
                                autoFocus
                            />
                            <TextInput
                                label="table.field.locItem.locCode"
                                source="locCode"
                                parse={v => v}
                            />
                            <NumberInput
                                label="table.field.locItem.orderId"
                                source="orderId"
                            />
                            <TextInput
                                label="table.field.locItem.type"
                                source="type$"
                                parse={v => v}
                            />
                        </Stack>
                        <Stack direction='row' gap={2}>
                            <NumberInput
                                label="table.field.locItem.orderItemId"
                                source="orderItemId"
                            />
                            <NumberInput
                                label="table.field.locItem.wkType"
                                source="wkType"
                            />
                            <NumberInput
                                label="table.field.locItem.matnrId"
                                source="matnrId"
                            />
                        </Stack>
                        <Stack direction='row' gap={2}>
                            <TextInput
                                label="table.field.locItem.maktx"
                                source="maktx"
                                parse={v => v}
                            />
                <SimpleForm
                    shouldUnregister
                    warnWhenUnsavedChanges
                    toolbar={false}
                    mode="onTouched"
                    defaultValues={{}}
                // validate={(values) => { }}
                >
                    <Grid container width={{ xs: '100%', xl: '90%' }} rowSpacing={3} columnSpacing={3}
                        sx={{
                            "& .MuiFormLabel-root.MuiInputLabel-root.Mui-disabled": {
                                bgcolor: 'white',
                                WebkitTextFillColor: "rgba(0, 0, 0)"
                            },
                            <TextInput
                                label="table.field.locItem.matnrCode"
                                source="matnrCode"
                                parse={v => v}
                            />
                            <TextInput
                                label="table.field.locItem.trackCode"
                                source="trackCode"
                                parse={v => v}
                            />
                            <TextInput
                                label="table.field.locItem.unit"
                                source="unit"
                                parse={v => v}
                            />
                        </Stack>
                        <Stack direction='row' gap={2}>
                            <NumberInput
                                label="table.field.locItem.anfme"
                                source="anfme"
                            />
                            <NumberInput
                                label="table.field.locItem.qty"
                                source="qty"
                            />
                            <NumberInput
                                label="table.field.locItem.workQty"
                                source="workQty"
                            />
                            <TextInput
                                label="table.field.locItem.batch"
                                source="batch"
                                parse={v => v}
                            />
                        </Stack>
                        <Stack direction='row' gap={2}>
                            <TextInput
                                label="table.field.locItem.splrBatch"
                                source="splrBatch"
                                parse={v => v}
                            />
                            <TextInput
                                label="table.field.locItem.spec"
                                source="spec"
                                parse={v => v}
                            />
                            <TextInput
                                label="table.field.locItem.model"
                                source="model"
                                parse={v => v}
                            />
                            <TextInput
                                label="table.field.locItem.fieldsIndex"
                                source="fieldsIndex"
                                parse={v => v}
                            />
                        </Stack>
                            "& .MuiInputBase-input.MuiFilledInput-input.Mui-disabled": {
                                bgcolor: 'white',
                                WebkitTextFillColor: "rgba(0, 0, 0)"
                            },
                            "& .MuiFilledInput-root.MuiInputBase-sizeSmall": {
                                bgcolor: 'white',
                            }
                        }}
                    >
                        <Grid item xs={12} md={10}>
                            <Typography variant="h6" gutterBottom>
                                {translate('common.edit.title.main')}
                            </Typography>
                            <Grid container rowSpacing={2} columnSpacing={2}>
                                <Grid item display="flex" gap={2}>
                                    <ReferenceInput
                                        source="warehouseId"
                                        reference="warehouse"
                                    >
                                        <AutocompleteInput
                                            label="table.field.loc.warehouseId"
                                            optionText="name"
                                            readOnly
                                            validate={[required()]}
                                            onChange={warehouseChange}
                                            filterToQuery={(val) => ({ name: val })}
                                        />
                                    </ReferenceInput>
                                    <ReferenceInput
                                        source="areaId"
                                        reference="warehouseAreas"
                                        filter={{ warehouseId }}
                                    >
                                        <AutocompleteInput
                                            label="table.field.loc.areaId"
                                            optionText="name"
                                            readOnly
                                            validate={[required()]}
                                            filterToQuery={(val) => ({ name: val })}
                                        />
                                    </ReferenceInput>
                                    <TextInput
                                        label="table.field.loc.code"
                                        source="code"
                                        parse={v => v}
                                        readOnly
                                        validate={required()}
                                    />
                                    <NumberInput
                                        label="table.field.loc.length"
                                        source="length"
                                        readOnly
                                        validate={required()}
                                    />
                                    <NumberInput
                                        label="table.field.loc.width"
                                        source="width"
                                        readOnly
                                        validate={required()}
                                    />
                                    <NumberInput
                                        label="table.field.loc.height"
                                        source="height"
                                        readOnly
                                        validate={required()}
                                    />
                                </Grid>
                                <Grid item display="flex" gap={1}>
                                    <ReferenceArrayInput source="typeIds" reference="locType" >
                                        <SelectArrayInput label="table.field.loc.type" readOnly validate={[required()]} />
                                    </ReferenceArrayInput>
                                    <TextInput
                                        label="table.field.loc.unit"
                                        source="unit"
                                        readOnly
                                        parse={v => v}
                                    />
                                    <DictionarySelect
                                        label={translate("table.field.loc.useStatus")}
                                        name="useStatus"
                                        validate={[required()]}
                                        readOnly
                                        size="small"
                                        dictTypeCode="sys_loc_use_stas"
                                    />
                                    <NumberInput
                                        label="table.field.loc.row"
                                        source="row"
                                        readOnly
                                        validate={required()}
                                    />
                                    <NumberInput
                                        label="table.field.loc.col"
                                        source="col"
                                        readOnly
                                        validate={required()}
                                    />
                                    <NumberInput
                                        label="table.field.loc.lev"
                                        source="lev"
                                        readOnly
                                        validate={required()}
                                    />
                                </Grid>
                            </Grid>
                        </Grid>
                        <Grid item xs={12} md={2}>
                            <Typography variant="h6" gutterBottom>
                                {translate('common.edit.title.common')}
                            </Typography>
                            <StatusSelectInput readOnly />
                            <Box mt="2em" />
                            <MemoInput />
                        </Grid>
                    </Grid>
                    <Grid item xs={10} md={2}>
                        <Typography variant="h6" gutterBottom>
                            {translate('common.edit.title.common')}
                        </Typography>
                        <StatusSelectInput />
                        <Box mt="2em" />
                        <MemoInput />
                    </Grid>
                </Grid>
            </SimpleForm>
        </Edit >
                </SimpleForm>
            </Edit >
            <LocQueryList />
        </>
    )
}