| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
 | | import EditIcon from '@mui/icons-material/Edit'; |  | import { useState, useEffect } from 'react'; |  | import { |  |     Button, useListContext, SelectInput, |  |     required, SelectArrayInput, |  |     useTranslate, useNotify |  | } from 'react-admin'; |  | import request from '@/utils/request'; |  |   |  | const DictionarySelect = (props) => { |  |     const {  |  |         dictTypeCode,  |  |         name,  |  |         group, |  |         multiple = false,  |  |         perPage = 100,  // 默认每页显示100条数据 |  |         page = 1,       // 默认第一页 |  |         ...parmas  |  |     } = props; |  |     const translate = useTranslate(); |  |     const notify = useNotify(); |  |     const [list, setList] = useState([]); |  |     const [loading, setLoading] = useState(false); |  |   |  |     useEffect(() => { |  |         http(); |  |     }, [dictTypeCode, page, perPage]); |  |   |  |     const http = async () => { |  |         setLoading(true); |  |         try { |  |             const res = await request.post('/dictData/page', {  |  |                 dictTypeCode, |  |                 group, |  |                 current: page, |  |                 pageSize: perPage |  |             }); |  |              |  |             if (res?.data?.code === 200) { |  |                 setList(res.data.data.records.map((item) => { |  |                     return { |  |                         id: item.value, |  |                         name: item.label |  |                     } |  |                 })); |  |             } else { |  |                 notify(res.data.msg); |  |             } |  |         } catch (error) { |  |             notify('加载字典数据失败', 'error'); |  |             console.error('加载字典数据失败:', error); |  |         } finally { |  |             setLoading(false); |  |         } |  |     }; |  |   |  |     const InputComponent = multiple ? SelectArrayInput : SelectInput; |  |   |  |     return ( |  |         <InputComponent |  |             source={name} |  |             choices={list} |  |             isLoading={loading} |  |             {...parmas} |  |         /> |  |     ); |  | }; |  |   |  | export default DictionarySelect; | 
 |