|  |  | 
 |  |  | import request from '@/utils/request'; | 
 |  |  |  | 
 |  |  | const DictionarySelect = (props) => { | 
 |  |  |     const { dictTypeCode, name, multiple = false, ...parmas } = 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 [list, setList] = useState([]); | 
 |  |  |     const [loading, setLoading] = useState(false); | 
 |  |  |  | 
 |  |  |     useEffect(() => { | 
 |  |  |         http() | 
 |  |  |     }, [dictTypeCode]); | 
 |  |  |         http(); | 
 |  |  |     }, [dictTypeCode, page, perPage]); | 
 |  |  |  | 
 |  |  |     const http = async () => { | 
 |  |  |         const res = await request.post('/dictData/page', { dictTypeCode }); | 
 |  |  |         if (res?.data?.code === 200) { | 
 |  |  |  | 
 |  |  |             setList(res.data.data.records.map((item) => { | 
 |  |  |                 return { | 
 |  |  |                     id: item.value, | 
 |  |  |                     name: item.label | 
 |  |  |                 } | 
 |  |  |             })) | 
 |  |  |         } else { | 
 |  |  |             notify(res.data.msg); | 
 |  |  |         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} | 
 |  |  |         /> | 
 |  |  |  | 
 |  |  |     ); | 
 |  |  | }; | 
 |  |  |  |