import { Checkbox, Input, Pagination, Radio, Space } from 'antd'; import DepartSelect from '../DepartSelect/Controlled'; import { memo, useEffect, useState } from 'react'; import { useIntl, useRequest } from 'umi'; import { formatUserRender } from '../utils'; interface UserDepartProps { type: 'User' | 'Depart'; data: { id: number }[]; } const UserDepart = ({ disabled = false, show = false, appId, value = { type: 'User', data: [] }, onChange, }: { disabled?: boolean; show?: boolean; appId: number; value?: UserDepartProps; onChange?: (value: UserDepartProps) => void; }) => { const [page, setPage] = useState(1); const [size, setSize] = useState(10); const [search, setSearch] = useState(''); const { formatMessage } = useIntl(); const { data, run } = useRequest( { url: '/goapi/app/users', method: 'Post', data: { condition: { appId: appId, search, }, pagination: { page: page, size: size, }, }, }, { manual: true, debounceInterval: 800, }, ); const UserList = () => { return ( setSearch(e.target.value)} /> user.id - 0)}> {data?.list?.map((user) => ( { if (e.target.checked) { onChange?.({ ...value, data: [...value?.data, { id: user.id }] }); } else { onChange?.({ ...value, data: value?.data?.filter((item) => `${item.id}` !== `${user.id}`), }); } }} > {formatUserRender(user)} ))}
`${formatMessage({ id: 'components.ManageAdmin.userDepart.all', })} ${total} ${formatMessage({ id: 'components.ManageAdmin.userDepart.item' })}` } pageSize={size} current={page} onChange={(current, pageSize) => { setPage(current); setSize(pageSize); }} />
); }; useEffect(() => { if (show && value?.type === 'User') { run(); } }, [run, show, value, page, size, search]); const DepartList = () => { return ( depart.id)} onChange={(ids) => { onChange?.({ ...value, data: ids?.map((id) => ({ id })) as { id: number }[], }); }} /> ); }; return ( onChange?.({ ...value, type: e.target.value, data: [] })} > {formatMessage({ id: 'components.ManageAdmin.userDepart.user' })} {formatMessage({ id: 'components.ManageAdmin.userDepart.depart' })} {value?.type === 'User' ? UserList() : DepartList()} ); }; export default memo(UserDepart);