From ded5c2c6594aa59e8fd3b2366806a841a4991c0b Mon Sep 17 00:00:00 2001 From: verou <857149855@qq.com> Date: 星期五, 11 四月 2025 14:18:41 +0800 Subject: [PATCH] fix:动态字段默认值 --- rsf-admin/src/page/basicInfo/matnr/MatnrEdit.jsx | 38 +++++++++++++++++++++++++++++++------- 1 files changed, 31 insertions(+), 7 deletions(-) diff --git a/rsf-admin/src/page/basicInfo/matnr/MatnrEdit.jsx b/rsf-admin/src/page/basicInfo/matnr/MatnrEdit.jsx index c86aeef..2d14bcd 100644 --- a/rsf-admin/src/page/basicInfo/matnr/MatnrEdit.jsx +++ b/rsf-admin/src/page/basicInfo/matnr/MatnrEdit.jsx @@ -22,7 +22,7 @@ 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'; @@ -33,7 +33,7 @@ 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 /> @@ -87,6 +87,7 @@ } = await request.get("/fields/enable/list"); if (code === 200) { setDynamicFields(data || []) + } else { notify(msg); @@ -266,16 +267,14 @@ {dynamicFields.map((item) => { return ( <Grid key={item.id} item xs={6} display="flex" gap={1}> - <TextInput + <DynamicFields label={item.fieldsAlise} - source={`extendFields.[${item.fields}]`} - validate={required()} + source={item.fields} + validate={item.unique === 1 ? required() : false} /> </Grid> ) })} - - </Grid> @@ -318,6 +317,16 @@ 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}> @@ -355,3 +364,18 @@ } export default MatnrEdit; + +const DynamicFields = (props) => { + const { ...parmas } = props; + const form = useFormContext(); + const field = `extendFields.${parmas.source}`; + + const value = form.getValues(field) || form.formState.defaultValues?.extendFields?.[parmas.source]; + + value && form.setValue(parmas.source, value); + return ( + <TextInput + {...parmas} + /> + ) +} -- Gitblit v1.9.1