From e0921e578658cc5181bcb9ff76f61ba47e6f0d76 Mon Sep 17 00:00:00 2001
From: 1 <1@123>
Date: 星期六, 24 一月 2026 08:25:49 +0800
Subject: [PATCH] lsh#
---
rsf-admin/src/page/components/WarehouseSelect.jsx | 32 ++++++++++++++++++++++----------
1 files changed, 22 insertions(+), 10 deletions(-)
diff --git a/rsf-admin/src/page/components/WarehouseSelect.jsx b/rsf-admin/src/page/components/WarehouseSelect.jsx
index 33ead33..18e5507 100644
--- a/rsf-admin/src/page/components/WarehouseSelect.jsx
+++ b/rsf-admin/src/page/components/WarehouseSelect.jsx
@@ -2,21 +2,36 @@
import {
useTranslate, useNotify, required
} from 'react-admin';
+import { useController } from 'react-hook-form';
import request from '@/utils/request';
import { Select, MenuItem, FormControl, InputLabel } from '@mui/material';
const WarehouseSelect = (props) => {
- const { dictTypeCode, label, value, onChange, ...params } = props;
+ const { dictTypeCode, label, name, validate, ...params } = props;
const translate = useTranslate();
const notify = useNotify();
const [list, setList] = useState([]);
+
+ // 浣跨敤 useController 涓� react-hook-form 闆嗘垚
+ const { field, fieldState } = useController({
+ name: name,
+ rules: validate ? {
+ validate: (value) => {
+ for (const rule of validate) {
+ const result = rule(value);
+ if (result) return result;
+ }
+ return true;
+ }
+ } : undefined
+ });
useEffect(() => {
http();
}, [dictTypeCode]);
const http = async () => {
- const res = await request.post('/warehouseAreas/page', {current: 1, pageSize: 100});
+ const res = await request.post('/warehouseAreas/page', { current: 1, pageSize: 100 });
if (res?.data?.code === 200) {
setList(res.data.data.records.map((item) => {
return {
@@ -31,19 +46,16 @@
const handleChange = (event) => {
const selectedValue = event.target.value;
- console.log(event);
- if (onChange) {
- onChange(event);
- }
+ field.onChange(selectedValue);
};
- const validValue = list.some(item => item.id === value) ? value : '';
+ const validValue = list.some(item => item.id === field.value) ? field.value : '';
return (
- <FormControl fullWidth>
- <InputLabel id="demo-select-small-label">{label}</InputLabel>
+ <FormControl required fullWidth error={!!fieldState.error}>
+ <InputLabel id={`${name}-label`}>{label}</InputLabel>
<Select
- labelId="demo-select-small-label"
+ labelId={`${name}-label`}
value={validValue}
variant="filled"
onChange={handleChange}
--
Gitblit v1.9.1