|
@@ -1,4 +1,4 @@
|
|
|
-import React, { useContext, useEffect, useMemo, useState } from 'react'
|
|
|
+import React, { useContext, useEffect, useState } from 'react'
|
|
|
import { ApprovalWay, approvalWayConfigurationsEnum, ParticipantMode } from '../../enum'
|
|
|
import { ConfigureType } from '../../enum'
|
|
|
import { queryAccountList } from '@/services/api/institution'
|
|
@@ -47,6 +47,10 @@ const configureItemTitle = {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+interface iState {
|
|
|
+ configureArr: string[]
|
|
|
+ staffList: { label: string; value: string }[]
|
|
|
+}
|
|
|
const ParticipantCard: React.FC<ParticipantCardProps> = ({
|
|
|
approvalWay,
|
|
|
updateAction,
|
|
@@ -58,7 +62,7 @@ const ParticipantCard: React.FC<ParticipantCardProps> = ({
|
|
|
const curNode = elements.filter(item => isNode(item)).find(item => item.id === nodeID)
|
|
|
const lastEdge = elements.filter(item => isEdge(item)).find(item => item.target === eId)
|
|
|
|
|
|
- const [state, setState] = useState({
|
|
|
+ const [state, setState] = useState<iState>({
|
|
|
configureArr: approvalWayConfigurationsEnum[approvalWay],
|
|
|
staffList: []
|
|
|
})
|
|
@@ -89,7 +93,12 @@ const ParticipantCard: React.FC<ParticipantCardProps> = ({
|
|
|
) {
|
|
|
// 当前的node元素
|
|
|
// 最后一个edge及诶单
|
|
|
- if (lastEdge && curNode && lastEdge.source === curNode.id) {
|
|
|
+ if (
|
|
|
+ lastEdge &&
|
|
|
+ curNode &&
|
|
|
+ lastEdge.source === curNode.id &&
|
|
|
+ !state.configureArr.includes(ConfigureType.NEXTSECTOR)
|
|
|
+ ) {
|
|
|
setState({ ...state, configureArr: [...state.configureArr, ConfigureType.NEXTSECTOR] })
|
|
|
}
|
|
|
}
|
|
@@ -103,8 +112,8 @@ const ParticipantCard: React.FC<ParticipantCardProps> = ({
|
|
|
className="w-full"
|
|
|
defaultValue={defaultData.participantMode}
|
|
|
options={[
|
|
|
- { label: '仅用户模式', value: ParticipantMode.ACCOUNT }
|
|
|
- // { label: '角色模式', value: ParticipantMode.ROLE }
|
|
|
+ { label: '仅用户模式', value: ParticipantMode.ACCOUNT },
|
|
|
+ { label: '单位角色模式', value: ParticipantMode.ROLE }
|
|
|
]}
|
|
|
onChange={value => {
|
|
|
updateAction({ ...defaultData, participantMode: value })
|
|
@@ -114,24 +123,28 @@ const ParticipantCard: React.FC<ParticipantCardProps> = ({
|
|
|
<div>
|
|
|
<Select
|
|
|
className="w-full"
|
|
|
- defaultValue={defaultData.institutionID}
|
|
|
+ value={defaultData.institutionID}
|
|
|
options={institutionList}
|
|
|
- onChange={value => {
|
|
|
- if (value) tryUpdateStaffList(value)
|
|
|
- updateAction({ ...defaultData, institutionID: value })
|
|
|
- }}
|
|
|
- />
|
|
|
- </div>
|
|
|
- <div>
|
|
|
- <Select
|
|
|
- className="w-full"
|
|
|
- defaultValue={defaultData.ID}
|
|
|
- options={state.staffList}
|
|
|
- onChange={(_, options) => {
|
|
|
- updateAction({ ...defaultData, ID: options?.value, name: options?.label })
|
|
|
+ onChange={async value => {
|
|
|
+ if (value && defaultData.participantMode === ParticipantMode.ACCOUNT) {
|
|
|
+ await tryUpdateStaffList(value)
|
|
|
+ }
|
|
|
+ updateAction({ ...defaultData, institutionID: value, ID: null, name: null })
|
|
|
}}
|
|
|
/>
|
|
|
</div>
|
|
|
+ {defaultData.participantMode === ParticipantMode.ACCOUNT ? (
|
|
|
+ <div>
|
|
|
+ <Select
|
|
|
+ className="w-full"
|
|
|
+ value={defaultData.ID}
|
|
|
+ options={state.staffList}
|
|
|
+ onChange={(_, options) => {
|
|
|
+ updateAction({ ...defaultData, ID: options?.value, name: options?.label })
|
|
|
+ }}
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ ) : null}
|
|
|
</div>
|
|
|
<Collapse
|
|
|
defaultActiveKey={['1']}
|