From 48ad97c8a8afa2c9333bd00545dbc54bb4f0870a Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期五, 23 五月 2025 09:28:03 +0800 Subject: [PATCH] #盘点出库 --- rsf-admin/src/page/components/TreeSelectInput.jsx | 16 ++++++++++------ 1 files changed, 10 insertions(+), 6 deletions(-) diff --git a/rsf-admin/src/page/components/TreeSelectInput.jsx b/rsf-admin/src/page/components/TreeSelectInput.jsx index d53b767..fb5de88 100644 --- a/rsf-admin/src/page/components/TreeSelectInput.jsx +++ b/rsf-admin/src/page/components/TreeSelectInput.jsx @@ -1,17 +1,20 @@ import React, { useState, useEffect } from 'react'; -import { useCreateContext, useTranslate } from 'react-admin' +import { useCreateContext, useTranslate, useRecordContext } from 'react-admin' import { MenuItem, Select, FormControl, InputLabel, Typography } from '@mui/material'; import request from '@/utils/request'; import * as Common from '@/utils/common'; import { useFormContext } from 'react-hook-form'; -const TreeSelectInput = ({ resource, label, source = 'parentId', value, isTranslate = false, ...rest }) => { +const TreeSelectInput = ({ resource, required, onChange, label, source = 'parentId', value, isTranslate = false, ...rest }) => { const translate = useTranslate(); - const { setValue } = useFormContext(); + const form = useFormContext(); const [filter, setFilter] = React.useState(""); const [treeData, setTreeData] = React.useState([]); const [proxyVal, setProxyVal] = React.useState(''); + + const record = useRecordContext() + const val = value || record?.[source]; useEffect(() => { const http = async (resource) => { @@ -20,7 +23,7 @@ }); if (res?.data?.code === 200) { setTreeData(Common.flattenTree(res.data.data)); - setProxyVal(value); + setProxyVal(val); } else { notify(res.data.msg); } @@ -31,14 +34,15 @@ const handleChange = (event) => { const val = event.target.value; setProxyVal(val); - setValue(source, val, { + form?.setValue(source, val, { shouldValidate: true, shouldDirty: true, }); + onChange(event) }; return ( - <FormControl fullWidth> + <FormControl fullWidth required={required}> <InputLabel>{translate(label)}</InputLabel> <Select value={proxyVal || ''} -- Gitblit v1.9.1