|
@@ -1,7 +1,7 @@
|
|
|
import { queryAcountListByInstitutionID } from '@/services/api/institution'
|
|
|
import { queryInstitutionRoleList } from '@/services/api/project'
|
|
|
import consts from '@/utils/consts'
|
|
|
-import { isArray } from '@/utils/is'
|
|
|
+import { isArray, isString } from '@/utils/is'
|
|
|
import { useRequest } from '@umijs/max'
|
|
|
import { Select, TreeSelect } from 'antd'
|
|
|
import { useState } from 'react'
|
|
@@ -19,9 +19,9 @@ const auditTypeOptions = [
|
|
|
]
|
|
|
|
|
|
type MemberItemProps = {
|
|
|
- value: {
|
|
|
- type: AuditType
|
|
|
- value: string | string[]
|
|
|
+ value?: {
|
|
|
+ type?: AuditType
|
|
|
+ value?: string | string[]
|
|
|
}
|
|
|
onChange: (value?: { type: AuditType; value: string[] }) => void
|
|
|
}
|
|
@@ -64,6 +64,7 @@ const MemberItem: React.FC<MemberItemProps> = ({ value, onChange }) => {
|
|
|
memberOptions: [],
|
|
|
members: value
|
|
|
})
|
|
|
+
|
|
|
useRequest(
|
|
|
() => {
|
|
|
let requestFn: Nullable<() => Promise<void>> = null
|
|
@@ -93,38 +94,45 @@ const MemberItem: React.FC<MemberItemProps> = ({ value, onChange }) => {
|
|
|
}
|
|
|
)
|
|
|
const toggleChange = value => {
|
|
|
+ let val = value
|
|
|
+ if (!isArray(val)) {
|
|
|
+ val = [value]
|
|
|
+ }
|
|
|
if (value) {
|
|
|
- onChange?.({ type: state.auditType, value })
|
|
|
+ onChange?.({ type: state.auditType, value: val })
|
|
|
}
|
|
|
- setState({ ...state, members: { ...state.members, value } })
|
|
|
+ setState({ ...state, members: { ...state.members, value: val } })
|
|
|
}
|
|
|
const toggleAuditType = (value: AuditType) =>
|
|
|
setState({ ...state, auditType: value, members: { type: value, value: [] } })
|
|
|
|
|
|
return (
|
|
|
- <div>
|
|
|
+ <div className="flex flex-row">
|
|
|
<Select
|
|
|
value={state.auditType}
|
|
|
options={auditTypeOptions}
|
|
|
onChange={toggleAuditType}
|
|
|
- style={{ width: '100%' }}
|
|
|
+ style={{ width: '30%' }}
|
|
|
/>
|
|
|
{state.auditType === AuditType.ACCOUNT ? (
|
|
|
<TreeSelect
|
|
|
- value={state.members?.value.map(item => item.ID)}
|
|
|
+ value={state.members?.value.map(item => {
|
|
|
+ if (isString(item)) return item
|
|
|
+ return item.ID
|
|
|
+ })}
|
|
|
treeData={state.memberOptions}
|
|
|
onChange={toggleChange}
|
|
|
multiple
|
|
|
maxTagCount="responsive"
|
|
|
- style={{ width: '100%', marginTop: '4px' }}
|
|
|
+ style={{ width: '70%', marginLeft: '4px' }}
|
|
|
/>
|
|
|
) : (
|
|
|
<Select
|
|
|
- value={state.members?.value.map(item => item.ID)}
|
|
|
+ value={state.members?.value?.[0]?.ID || state.members?.value?.[0]}
|
|
|
options={state.memberOptions}
|
|
|
onChange={toggleChange}
|
|
|
fieldNames={{ label: 'title' }}
|
|
|
- style={{ width: '100%', marginTop: '4px' }}
|
|
|
+ style={{ width: '70%', marginLeft: '4px' }}
|
|
|
/>
|
|
|
)}
|
|
|
</div>
|