Commit a9707f53 by zhaochengxiang

oa用户接口替换

parent 5a440613
......@@ -92,6 +92,8 @@ export default FC
const Basic = React.forwardRef(function ({}, ref) {
const [uploading, setUploading] = React.useState(false)
const [loadingUsers, setLoadingUsers] = React.useState(false)
const [users, setUsers] = React.useState()
const [form] = Form.useForm()
......@@ -106,9 +108,38 @@ const Basic = React.forwardRef(function ({}, ref) {
uploading,
}), [form, uploading])
React.useEffect(() => {
getUsers()
}, [])
const marginBottom = React.useMemo(() => {
return 15
}, [])
const getUsers = () => {
setLoadingUsers(true)
// setTimeout(() => {
// setLoadingUsers(false)
// setUsers(
// Array.from({ length: 10000 }).map((_, i) => ({
// id: `${i}`,
// loginName: `test${i}`,
// realName: `测试${i}`,
// }))
// )
// }, 1000)
dispatch({
type: 'user.getOAUsers',
callback: data => {
setLoadingUsers(false)
setUsers(data)
},
error: () => {
setLoadingUsers(false)
}
})
}
const onValuesChange = (changedValues, allValues) => {
......@@ -167,7 +198,7 @@ const Basic = React.forwardRef(function ({}, ref) {
style={{ marginBottom }}
rules={[{ required: true, message: '请选择设计评审人员!' }]}
>
<DesignUsersItem />
<DesignUsersItem loading={loadingUsers} users={users} />
</Form.Item>
<Form.Item
......@@ -190,7 +221,7 @@ const Basic = React.forwardRef(function ({}, ref) {
}
}]}
>
<RuleReviewItem />
<RuleReviewItem loading={loadingUsers} users={users} />
</Form.Item>
<Form.Item
......@@ -212,46 +243,21 @@ const Basic = React.forwardRef(function ({}, ref) {
)
})
const RuleReviewItem = ({ value = {}, onChange }) => {
const RuleReviewItem = ({ value = {}, onChange, loading, users }) => {
const [ruleReviewSelected, setRuleReviewSelected] = React.useState()
const [loading, setLoading] = React.useState(false)
const [users, setUsers] = React.useState()
const [searchValue, setSearchValue] = React.useState()
const [options, setOptions] = React.useState()
useDebounceEffect(() => {
if (searchValue) {
getUsers()
}
}, [searchValue], { wait: 300 })
const getUsers = () => {
setLoading(true)
dispatch({
type: 'datamodel.getApprovalUsers',
payload: {
userName: searchValue
},
callback: data => {
setLoading(false)
const newUsers = produce(data?[data]:[], (draft) => {
draft?.forEach(item => {
item.id = `${item.id}`
})
})
setUsers(newUsers)
setOptions((newUsers??[]).map(item => ({
setOptions(
(users??[])
.filter(item => !searchValue|| (item.loginName??'').indexOf(searchValue)!==-1 || (item.realName??'').indexOf(searchValue)!==-1)
.map(item => ({
label: `${item.realName}(${item.loginName})`,
value: item.id,
})))
},
error: () => {
setLoading(false)
}
})
}
value: `${item.id}`,
}))
)
}, [searchValue, users], { wait: 300 })
const triggerChange = (changedValue) => {
onChange?.({
......@@ -398,45 +404,20 @@ const List = React.forwardRef(function ({ items }, ref) {
)
})
const DesignUsersItem = ({ value, onChange }) => {
const [loading, setLoading] = React.useState(false)
const [users, setUsers] = React.useState()
const DesignUsersItem = ({ value, onChange, loading, users }) => {
const [searchValue, setSearchValue] = React.useState()
const [options, setOptions] = React.useState()
useDebounceEffect(() => {
if (searchValue) {
getUsers()
}
}, [searchValue], { wait: 300 })
const getUsers = () => {
setLoading(true)
dispatch({
type: 'datamodel.getApprovalUsers',
payload: {
userName: searchValue
},
callback: data => {
setLoading(false)
const newUsers = produce(data?[data]:[], (draft) => {
draft?.forEach(item => {
item.id = `${item.id}`
})
})
setUsers(newUsers)
setOptions((newUsers??[]).map(item => ({
setOptions(
(users??[])
.filter(item => !searchValue|| (item.loginName??'').indexOf(searchValue)!==-1 || (item.realName??'').indexOf(searchValue)!==-1)
.map(item => ({
label: `${item.realName}(${item.loginName})`,
value: item.id,
})))
},
error: () => {
setLoading(false)
}
})
}
value: `${item.id}`,
}))
)
}, [searchValue, users], { wait: 300 })
return (
<Select showSearch loading={loading} allowClear
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment