verou
2025-04-08 e1c400bd9953f5c58714de6082f8c6852cba01d9
rsf-admin/src/page/basicInfo/matnr/MatnrEdit.jsx
@@ -19,9 +19,10 @@
    required,
    useRecordContext,
    DeleteButton,
    useNotify,
} from 'react-admin';
import PropTypes from 'prop-types';
import { useWatch, useFormContext } from "react-hook-form";
import { useWatch, useFormContext, useForm, useFormState } from "react-hook-form";
import { Stack, Grid, Box, Typography, Tabs, Tab, } from '@mui/material';
import * as Common from '@/utils/common';
import { EDIT_MODE, REFERENCE_INPUT_PAGESIZE } from '@/config/setting';
@@ -30,9 +31,9 @@
import MemoInput from "@/page/components/MemoInput";
import StatusSelectInput from "@/page/components/StatusSelectInput";
import TreeSelectInput from "@/page/components/TreeSelectInput";
import request from '@/utils/request';
const FormToolbar = () => {
    const { getValues } = useFormContext();
    const { getValues } = useFormState();
    return (
        <Toolbar sx={{ justifyContent: 'space-between' }}>
            <SaveButton />
@@ -73,6 +74,25 @@
const MatnrEdit = () => {
    const translate = useTranslate();
    const [value, setValue] = React.useState(0);
    const notify = useNotify();
    const [dynamicFields, setDynamicFields] = useState([]);
    useEffect(() => {
        getDynamicFields();
    }, []);
    const getDynamicFields = async () => {
        const {
            data: { code, data, msg },
        } = await request.get("/fields/enable/list");
        if (code === 200) {
            setDynamicFields(data || [])
        } else {
            notify(msg);
        }
    };
    const handleChange = (event, newValue) => {
        setValue(newValue);
    };
@@ -81,7 +101,7 @@
            redirect="list"
            mutationMode={EDIT_MODE}
            actions={<CustomerTopToolBar />}
            aside={<EditBaseAside />}
            title={"menu.matnr"}
        >
            <SimpleForm
                shouldUnregister
@@ -125,7 +145,6 @@
                                <Grid item xs={6} display="flex" gap={1}>
                                    <ReferenceInput source="shipperId" reference="companys" filter={{ type: 'shipper' }}>
                                        <AutocompleteInput
                                            validate={[required()]}
                                            label="table.field.matnr.shipperId"
                                            optionText="name"
                                            filterToQuery={(val) => ({ name: val })}
@@ -152,19 +171,7 @@
                                        source="groupId"
                                    />
                                </Grid>
                                {/* <Grid item xs={6} display="flex" gap={1}>
                                    <ReferenceInput
                                        source="rglarId"
                                        reference="batchRegular"
                                        perPage={REFERENCE_INPUT_PAGESIZE}
                                    >
                                        <AutocompleteInput
                                            label="table.field.matnr.rglarId"
                                            optionText="code"
                                            filterToQuery={(val) => ({ code: val })}
                                        />
                                    </ReferenceInput>
                                </Grid> */}
                                <Grid item xs={6} display="flex" gap={1}>
                                    <TextInput
                                        label="table.field.matnr.platCode"
@@ -248,7 +255,7 @@
                                <Grid item xs={6} display="flex" gap={1}>
                                    <SelectInput
                                        label="table.field.matnr.isLabelMange"
                                        source="isLabelMange"
                                        source="flagLabelMange"
                                        choices={[
                                            { id: 0, name: ' 否' },
                                            { id: 1, name: ' 是' },
@@ -257,7 +264,17 @@
                                    />
                                </Grid>
                                {dynamicFields.map((item) => {
                                    return (
                                        <Grid key={item.id} item xs={6} display="flex" gap={1}>
                                            <DynamicFields
                                                label={item.fieldsAlise}
                                                source={item.fields}
                                                validate={item.unique === 1 ? required() : false}
                                            />
                                        </Grid>
                                    )
                                })}
                            </Grid>
@@ -300,15 +317,32 @@
                                        source="valid"
                                    />
                                </Grid>
                                <Grid item xs={6} display="flex" gap={1}>
                                    <SelectInput
                                        label="table.field.matnr.flagCheck"
                                        source="flagCheck"
                                        choices={[
                                            { id: 0, name: ' 否' },
                                            { id: 1, name: ' 是' },
                                        ]}
                                    />
                                </Grid>
                            </Grid>
                        </CustomTabPanel>
                        <CustomTabPanel value={value} index={2}>
                            <Grid container rowSpacing={2} columnSpacing={2}>
                                <Grid item xs={6} display="flex" gap={1}>
                                    <NumberInput
                                        label="table.field.matnr.flagCheck"
                                        source="flagCheck"
                                    />
                                    <ReferenceInput
                                        source="rglar_id"
                                        reference="serialRule"
                                        perPage={REFERENCE_INPUT_PAGESIZE}
                                    >
                                        <AutocompleteInput
                                            label="table.field.matnr.rglarId"
                                            optionText="name"
                                            filterToQuery={(val) => ({ name: val })}
                                        />
                                    </ReferenceInput>
                                </Grid>
                            </Grid>
                        </CustomTabPanel>
@@ -330,3 +364,16 @@
}
export default MatnrEdit;
const DynamicFields = (props) => {
    const { ...parmas } = props;
    const form = useFormContext();
    const field = `extendFields.${parmas.source}`;
    const value = form.getValues(field);
    value && form.setValue(parmas.source, value);
    return (
        <TextInput
            {...parmas}
        />
    )
}