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