Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
X
xiaomai-cloud-class-web
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
xiaomai-cloud-class
xiaomai-cloud-class-web
Commits
090763d8
Commit
090763d8
authored
Aug 12, 2021
by
yuananting
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:新建培训任务选择指派学员和协同人员
parent
254df036
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
325 additions
and
134 deletions
+325
-134
src/modules/task-center/train-task/AddTrainTask.jsx
+22
-30
src/modules/task-center/train-task/components/BasicInfo.jsx
+17
-14
src/modules/task-center/train-task/modal/ChooseAssignorModal.jsx
+231
-46
src/modules/task-center/train-task/modal/ChooseCollaboratorModal.jsx
+55
-44
No files found.
src/modules/task-center/train-task/AddTrainTask.jsx
View file @
090763d8
...
@@ -2,13 +2,13 @@
...
@@ -2,13 +2,13 @@
* @Author: yuananting
* @Author: yuananting
* @Date: 2021-07-29 13:57:03
* @Date: 2021-07-29 13:57:03
* @LastEditors: yuananting
* @LastEditors: yuananting
* @LastEditTime: 2021-08-1
1 12:46:17
* @LastEditTime: 2021-08-1
2 11:58:16
* @Description: 任务中心-培训任务-新建页面
* @Description: 任务中心-培训任务-新建页面
* @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
* @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
*/
*/
import
React
,
{
useEffect
,
useState
,
useRef
}
from
'react'
;
import
React
,
{
useEffect
,
useState
,
useRef
}
from
'react'
;
import
{
Button
,
message
,
Modal
,
Space
}
from
'antd'
;
import
{
Button
,
message
}
from
'antd'
;
import
ShowTips
from
'@/components/ShowTips'
;
import
ShowTips
from
'@/components/ShowTips'
;
import
Breadcrumbs
from
'@/components/Breadcrumbs'
;
import
Breadcrumbs
from
'@/components/Breadcrumbs'
;
import
BasicInfo
from
'./components/BasicInfo'
;
import
BasicInfo
from
'./components/BasicInfo'
;
...
@@ -53,7 +53,6 @@ const DEFAULT_FINISH_STANDARD = {
...
@@ -53,7 +53,6 @@ const DEFAULT_FINISH_STANDARD = {
function
AddTrainTask
()
{
function
AddTrainTask
()
{
const
type
=
getParameterByName
(
'type'
);
const
type
=
getParameterByName
(
'type'
);
const
taskId
=
getParameterByName
(
'taskId'
);
const
taskId
=
getParameterByName
(
'taskId'
);
const
taskState
=
getParameterByName
(
'taskState'
);
const
[
activeStep
,
setActiveStep
]
=
useState
(
'BASIC_INFO'
);
const
[
activeStep
,
setActiveStep
]
=
useState
(
'BASIC_INFO'
);
const
[
basicInfo
,
setBasicInfo
]
=
useState
(
DEFAULT_BASIC_INFO
);
const
[
basicInfo
,
setBasicInfo
]
=
useState
(
DEFAULT_BASIC_INFO
);
...
@@ -88,9 +87,8 @@ function AddTrainTask() {
...
@@ -88,9 +87,8 @@ function AddTrainTask() {
},
},
}
=
res
;
}
=
res
;
const
_helpStoreUserIds
=
helpStoreUsers
.
map
((
item
)
=>
{
const
_assignList
=
assignList
.
map
((
item
)
=>
{
item
.
nickName
=
item
.
storeUserName
;
item
.
checkedId
=
item
.
assignId
;
item
.
userId
=
item
.
storeUserId
;
return
item
;
return
item
;
});
});
...
@@ -98,7 +96,14 @@ function AddTrainTask() {
...
@@ -98,7 +96,14 @@ function AddTrainTask() {
const
coverUrl
=
coverInfo
?
coverInfo
.
mediaUrl
:
defaultCover
;
const
coverUrl
=
coverInfo
?
coverInfo
.
mediaUrl
:
defaultCover
;
const
coverId
=
coverInfo
?
coverInfo
.
mediaContent
:
null
;
const
coverId
=
coverInfo
?
coverInfo
.
mediaContent
:
null
;
const
_helpStoreUserIds
=
helpStoreUsers
.
map
((
item
)
=>
{
item
.
checkedName
=
item
.
storeUserName
;
item
.
checkedId
=
item
.
storeUserId
;
return
item
;
});
const
ITEM_BASIC_INFO
=
{
const
ITEM_BASIC_INFO
=
{
assignList
:
_assignList
,
taskName
,
taskName
,
coverUrl
,
coverUrl
,
coverId
,
coverId
,
...
@@ -107,7 +112,6 @@ function AddTrainTask() {
...
@@ -107,7 +112,6 @@ function AddTrainTask() {
startTime
,
startTime
,
endTime
,
endTime
,
learnType
,
learnType
,
assignList
,
// introduce: null, // 培训目的
// introduce: null, // 培训目的
};
};
...
@@ -161,7 +165,7 @@ function AddTrainTask() {
...
@@ -161,7 +165,7 @@ function AddTrainTask() {
// 确认保存新建
// 确认保存新建
function
submitRemote
(
introduceId
,
issue
)
{
function
submitRemote
(
introduceId
,
issue
)
{
const
{
endTime
,
helpStoreUserIds
,
learnType
,
startTime
,
taskName
,
timeType
,
coverId
,
coverUrl
}
=
basicInfo
;
const
{
assignList
,
endTime
,
helpStoreUserIds
,
learnType
,
startTime
,
taskName
,
timeType
,
coverId
,
coverUrl
}
=
basicInfo
;
const
{
percentCompleteLive
,
percentCompletePicture
,
percentCompleteVideo
}
=
finishStandard
;
const
{
percentCompleteLive
,
percentCompletePicture
,
percentCompleteVideo
}
=
finishStandard
;
...
@@ -178,21 +182,15 @@ function AddTrainTask() {
...
@@ -178,21 +182,15 @@ function AddTrainTask() {
return
item
.
userId
;
return
item
.
userId
;
});
});
const
assignList
=
[
const
_assignList
=
assignList
.
map
((
item
)
=>
{
{
return
{
assignId
:
'1379762403510968321'
,
assignId
:
item
.
checkedId
,
assignType
:
'CUSTOM'
,
assignType
:
item
.
assignType
,
},
};
];
});
// const _assignList = assignList((item) => {
// if (item.depType === 'DEP_CUSTOM') {
// // item.
// }
// });
// console.log(assignList);
const
commonParams
=
{
const
commonParams
=
{
assignList
,
assignList
:
_assignList
,
createId
:
User
.
getStoreUserId
(),
createId
:
User
.
getStoreUserId
(),
endTime
,
endTime
,
helpStoreUserIds
:
_helpStoreUserIds
,
// 协同者集合
helpStoreUserIds
:
_helpStoreUserIds
,
// 协同者集合
...
@@ -219,11 +217,6 @@ function AddTrainTask() {
...
@@ -219,11 +217,6 @@ function AddTrainTask() {
trainingStageList
:
_stageList
,
trainingStageList
:
_stageList
,
};
};
// if (type === 'edit' && timeType === 'FOREVER') {
// delete commonParams.startTime;
// delete commonParams.endTime;
// }
if
(
type
===
'edit'
)
{
if
(
type
===
'edit'
)
{
TaskCenterService
.
updateTrainingTask
({
...
commonParams
,
id
:
taskId
}).
then
((
res
)
=>
{
TaskCenterService
.
updateTrainingTask
({
...
commonParams
,
id
:
taskId
}).
then
((
res
)
=>
{
message
.
success
(
'保存成功'
);
message
.
success
(
'保存成功'
);
...
@@ -244,14 +237,13 @@ function AddTrainTask() {
...
@@ -244,14 +237,13 @@ function AddTrainTask() {
setStartCheck
(
true
);
setStartCheck
(
true
);
const
{
taskName
,
assignList
}
=
basicInfo
;
const
{
taskName
,
assignList
}
=
basicInfo
;
const
{
percentCompleteLive
,
percentCompleteVideo
,
percentCompletePicture
}
=
finishStandard
;
const
{
percentCompleteLive
,
percentCompleteVideo
,
percentCompletePicture
}
=
finishStandard
;
console
.
log
(
percentCompleteLive
,
percentCompleteVideo
,
percentCompletePicture
);
if
(
!
taskName
)
{
if
(
!
taskName
)
{
return
message
.
warning
(
'请输入培训任务名称'
);
return
message
.
warning
(
'请输入培训任务名称'
);
}
}
//
if (assignList.length === 0) {
if
(
assignList
.
length
===
0
)
{
//
return message.warning('请选择指派对象');
return
message
.
warning
(
'请选择指派对象'
);
//
}
}
if
(
stageList
.
length
===
0
)
{
if
(
stageList
.
length
===
0
)
{
return
message
.
warning
(
'请添加阶段'
);
return
message
.
warning
(
'请添加阶段'
);
}
}
...
...
src/modules/task-center/train-task/components/BasicInfo.jsx
View file @
090763d8
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
* @Author: yuananting
* @Author: yuananting
* @Date: 2021-07-29 14:32:24
* @Date: 2021-07-29 14:32:24
* @LastEditors: yuananting
* @LastEditors: yuananting
* @LastEditTime: 2021-08-1
1 10:20:33
* @LastEditTime: 2021-08-1
2 10:43:27
* @Description: 任务中心-培训任务-新建-基本信息
* @Description: 任务中心-培训任务-新建-基本信息
* @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
* @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
...
@@ -29,6 +29,9 @@ function BasicInfo(props) {
...
@@ -29,6 +29,9 @@ function BasicInfo(props) {
const
{
basicInfo
,
startCheck
}
=
props
;
const
{
basicInfo
,
startCheck
}
=
props
;
const
{
taskName
,
coverUrl
,
helpStoreUserIds
,
timeType
,
startTime
,
endTime
,
learnType
,
assignList
,
introduce
}
=
basicInfo
;
const
{
taskName
,
coverUrl
,
helpStoreUserIds
,
timeType
,
startTime
,
endTime
,
learnType
,
assignList
,
introduce
}
=
basicInfo
;
console
.
log
(
assignList
);
const
depAssignList
=
assignList
.
filter
((
item
)
=>
[
0
,
1
].
includes
(
item
.
depLevel
));
const
userAssignList
=
assignList
.
filter
((
item
)
=>
!
[
0
,
1
].
includes
(
item
.
depLevel
));
const
[
imageFile
,
setImageFile
]
=
useState
(
null
);
// 需要被截取的图片
const
[
imageFile
,
setImageFile
]
=
useState
(
null
);
// 需要被截取的图片
const
[
showSelectFileModal
,
setShowSelectFileModal
]
=
useState
(
false
);
const
[
showSelectFileModal
,
setShowSelectFileModal
]
=
useState
(
false
);
const
[
imgClipVisible
,
setImgClipVisible
]
=
useState
(
false
);
const
[
imgClipVisible
,
setImgClipVisible
]
=
useState
(
false
);
...
@@ -105,12 +108,12 @@ function BasicInfo(props) {
...
@@ -105,12 +108,12 @@ function BasicInfo(props) {
}
}
function
removeSelectedCollaborator
(
tag
)
{
function
removeSelectedCollaborator
(
tag
)
{
const
_helpStoreUserIds
=
helpStoreUserIds
.
filter
((
item
)
=>
item
.
userId
!==
tag
);
const
_helpStoreUserIds
=
helpStoreUserIds
.
filter
((
item
)
=>
item
.
checkedId
!==
tag
.
checkedId
);
props
.
onChange
(
'helpStoreUserIds'
,
_helpStoreUserIds
);
props
.
onChange
(
'helpStoreUserIds'
,
_helpStoreUserIds
);
}
}
function
removeCheckedAssignor
(
tag
)
{
function
removeCheckedAssignor
(
tag
)
{
const
_assignList
=
assignList
.
filter
((
item
)
=>
item
.
id
!==
tag
.
i
d
);
const
_assignList
=
assignList
.
filter
((
item
)
=>
item
.
checkedId
!==
tag
.
checkedI
d
);
props
.
onChange
(
'assignList'
,
_assignList
);
props
.
onChange
(
'assignList'
,
_assignList
);
}
}
...
@@ -249,30 +252,30 @@ function BasicInfo(props) {
...
@@ -249,30 +252,30 @@ function BasicInfo(props) {
}
}
>
}
}
>
添加指派对象
添加指派对象
</
Button
>
</
Button
>
{
/* {
assignList.length > 0 && (
{
assignList
.
length
>
0
&&
(
<
Space
size=
{
'12'
}
direction=
{
'vertical'
}
className=
'select-obj'
>
<
Space
size=
{
'12'
}
direction=
{
'vertical'
}
className=
'select-obj'
>
{
a
ssignList.length > 0 && (
{
depA
ssignList
.
length
>
0
&&
(
<
div
className=
'obj-type-container'
>
<
div
className=
'obj-type-container'
>
<
div
className=
'type-title'
>
已选组织:
</
div
>
<
div
className=
'type-title'
>
已选组织:
</
div
>
<
div
className=
'tag-box'
>
<
div
className=
'tag-box'
>
{_.map(
a
ssignList, (tag) => {
{
_
.
map
(
depA
ssignList
,
(
tag
)
=>
{
return
(
return
(
<Tag key={tag.
i
d} onClose={() => removeCheckedAssignor(tag)} closable>
<
Tag
key=
{
tag
.
checkedI
d
}
onClose=
{
()
=>
removeCheckedAssignor
(
tag
)
}
closable
>
{tag.name}
<
WWOpenDataCom
type=
'departmentName'
openid=
{
tag
.
name
}
/>
</
Tag
>
</
Tag
>
);
);
})
}
})
}
</
div
>
</
div
>
</
div
>
</
div
>
)
}
)
}
{
a
ssignList.length > 0 && (
{
userA
ssignList
.
length
>
0
&&
(
<
div
className=
'obj-type-container'
>
<
div
className=
'obj-type-container'
>
<
div
className=
'type-title'
>
已选学员:
</
div
>
<
div
className=
'type-title'
>
已选学员:
</
div
>
<
div
className=
'tag-box'
>
<
div
className=
'tag-box'
>
{_.map(
a
ssignList, (tag) => {
{
_
.
map
(
userA
ssignList
,
(
tag
)
=>
{
return
(
return
(
<Tag key={tag.
i
d} onClose={() => removeCheckedAssignor(tag)} closable>
<
Tag
key=
{
tag
.
checkedI
d
}
onClose=
{
()
=>
removeCheckedAssignor
(
tag
)
}
closable
>
{tag.name}
<
WWOpenDataCom
type=
'userName'
openid=
{
tag
.
userName
}
/>
</
Tag
>
</
Tag
>
);
);
})
}
})
}
...
@@ -280,7 +283,7 @@ function BasicInfo(props) {
...
@@ -280,7 +283,7 @@ function BasicInfo(props) {
</
div
>
</
div
>
)
}
)
}
</
Space
>
</
Space
>
)}
*/
}
)
}
</
FormItem
>
</
FormItem
>
<
FormItem
<
FormItem
label=
{
label=
{
...
@@ -313,7 +316,7 @@ function BasicInfo(props) {
...
@@ -313,7 +316,7 @@ function BasicInfo(props) {
{
_
.
map
(
helpStoreUserIds
,
(
tag
)
=>
{
{
_
.
map
(
helpStoreUserIds
,
(
tag
)
=>
{
return
(
return
(
<
Tag
key=
{
tag
.
userId
}
onClose=
{
()
=>
removeSelectedCollaborator
(
tag
)
}
closable
>
<
Tag
key=
{
tag
.
userId
}
onClose=
{
()
=>
removeSelectedCollaborator
(
tag
)
}
closable
>
<
WWOpenDataCom
type=
'userName'
openid=
{
tag
.
nick
Name
}
/>
<
WWOpenDataCom
type=
'userName'
openid=
{
tag
.
checked
Name
}
/>
</
Tag
>
</
Tag
>
);
);
})
}
})
}
...
...
src/modules/task-center/train-task/modal/ChooseAssignorModal.jsx
View file @
090763d8
...
@@ -2,29 +2,19 @@
...
@@ -2,29 +2,19 @@
* @Author: yuananting
* @Author: yuananting
* @Date: 2021-08-05 17:09:36
* @Date: 2021-08-05 17:09:36
* @LastEditors: yuananting
* @LastEditors: yuananting
* @LastEditTime: 2021-08-1
0 20:21:36
* @LastEditTime: 2021-08-1
2 11:53:59
* @Description: 新建培训任务-选择指派对象
* @Description: 新建培训任务-选择指派对象
* @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
* @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
*/
*/
import
React
,
{
useState
,
useEffect
}
from
'react'
;
import
React
,
{
useState
,
useEffect
}
from
'react'
;
import
{
Modal
,
Input
,
Tree
,
Dropdown
,
Tooltip
,
AutoComplete
,
Tabs
}
from
'antd'
;
import
{
Modal
,
Tree
,
Tooltip
,
AutoComplete
,
Tabs
}
from
'antd'
;
import
{
XMTable
}
from
'@/components'
;
// import college from '@/common/lottie/college.json';
// import Service from '@/common/js/service';
import
User
from
'@/common/js/user'
;
import
User
from
'@/common/js/user'
;
// import SetEmployeeModal from './SetEmployeeModal';
// import search from '../../lottie/search/data.json';
// import MemberTree from '../components/MemberTree';
import
{
DepType
}
from
'@/domains/store-domain/constants'
;
import
{
DepType
}
from
'@/domains/store-domain/constants'
;
import
StoreService
from
'@/domains/store-domain/storeService'
;
import
StoreService
from
'@/domains/store-domain/storeService'
;
// import SearchUser from '../components/SearchUser';
import
WWOpenDataCom
from
'@/components/WWOpenDataCom'
;
import
WWOpenDataCom
from
'@/components/WWOpenDataCom'
;
import
'./ChooseAssignorModal.less'
;
import
'./ChooseAssignorModal.less'
;
import
Item
from
'antd/lib/list/Item'
;
// import _ from 'underscore';
const
{
Search
}
=
Input
;
const
{
TabPane
}
=
Tabs
;
const
{
TabPane
}
=
Tabs
;
const
{
DirectoryTree
}
=
Tree
;
const
{
DirectoryTree
}
=
Tree
;
...
@@ -32,58 +22,90 @@ function ChooseAssignorModal(props) {
...
@@ -32,58 +22,90 @@ function ChooseAssignorModal(props) {
const
[
structureData
,
setStructureData
]
=
useState
([]);
const
[
structureData
,
setStructureData
]
=
useState
([]);
const
[
activeKey
,
setActiveKey
]
=
useState
(
'departMentTab'
);
const
[
activeKey
,
setActiveKey
]
=
useState
(
'departMentTab'
);
const
[
checkedAssignorList
,
setCheckedAssignorList
]
=
useState
(
props
.
currentAssignorList
||
[]);
// 勾选的指派对象
const
[
checkedAssignorList
,
setCheckedAssignorList
]
=
useState
(
props
.
currentAssignorList
||
[]);
// 勾选的指派对象
const
[
checkedAssignorKeys
,
setCheckedAssignorKeys
]
=
useState
(
props
.
currentAssignorList
.
map
((
item
)
=>
item
.
id
)
||
[]);
const
[
checkedAssignorKeys
,
setCheckedAssignorKeys
]
=
useState
(
props
.
currentAssignorList
.
map
((
item
)
=>
item
.
checkedId
)
||
[]);
const
[
completeOptions
,
setCompleteOption
]
=
useState
([]);
const
[
searchKey
,
setSearchKey
]
=
useState
(
''
);
const
[
open
,
setOpen
]
=
useState
(
false
);
const
AssignTypeEnum
=
{
departMentTab
:
'SECTION'
,
postGrouptab
:
'POST'
,
customGroupTab
:
'CUSTOM'
,
};
useEffect
(()
=>
{
useEffect
(()
=>
{
getStructureData
();
getStructureData
();
},
[
activeKey
]);
},
[
activeKey
]);
function
getStructureData
()
{
function
getStructureData
()
{
const
params
=
{
const
params
=
{
dep
artmentTypeEnum
:
DepType
[
activeKey
],
dep
Type
:
DepType
[
activeKey
],
enterpriseId
:
User
.
getEnterpriseId
(),
enterpriseId
:
User
.
getEnterpriseId
(),
source
:
0
,
//
0代表来自企培
source
:
0
,
//0代表来自企培
storeId
:
User
.
getStoreId
(),
storeId
:
User
.
getStoreId
(),
userId
:
User
.
getUserId
(),
userId
:
User
.
getUserId
(),
whetherCount
:
false
,
whetherCount
:
false
,
distinct
:
false
,
queryType
:
'CUSTOMER'
,
};
};
StoreService
.
queryDepartmentTre
e
(
params
).
then
((
res
)
=>
{
StoreService
.
getDepartmentUserNotPag
e
(
params
).
then
((
res
)
=>
{
const
{
result
=
[]
}
=
res
;
const
{
result
=
[]
}
=
res
;
setStructureData
(
handleStructureData
(
result
));
const
structureData
=
handleStructureData
(
result
.
departmentVOList
);
const
checkedKeys
=
checkedAssignorList
.
map
((
item
)
=>
item
.
checkedId
);
setStructureData
(
structureData
);
setCheckedAssignorKeys
(
checkedKeys
);
});
});
}
}
function
handleStructureData
(
dataArray
)
{
function
handleStructureData
(
dataArray
)
{
const
_dataArray
=
dataArray
.
map
((
item
,
index
)
=>
{
const
_dataArray
=
dataArray
.
map
((
item
,
index
)
=>
{
item
.
key
=
item
.
id
;
item
.
title
=
''
;
if
(
item
.
depLevel
===
0
)
{
item
.
checkedId
=
[
0
,
1
].
includes
(
item
.
depLevel
)
?
item
.
id
:
item
.
userId
;
item
.
key
=
item
.
checkedId
;
item
.
children
=
[];
if
(
activeKey
!==
'departMentTab'
&&
item
.
depLevel
===
0
)
{
item
.
disableCheckbox
=
true
;
item
.
disableCheckbox
=
true
;
}
}
item
.
assignType
=
[
0
,
1
].
includes
(
item
.
depLevel
)
?
AssignTypeEnum
[
activeKey
]
:
'CUSTOMER'
;
if
(
item
.
departmentUserVOList
)
{
item
.
children
=
item
.
departmentUserVOList
;
}
if
(
item
.
sonDepartmentVOList
)
{
if
(
item
.
sonDepartmentVOList
)
{
item
.
children
=
item
.
sonDepartmentVOList
;
item
.
children
=
[...
item
.
children
,
...
item
.
sonDepartmentVOList
];
handleStructureData
(
item
.
sonDepartmentVOList
);
}
if
(
item
.
children
.
length
>
0
)
{
handleStructureData
(
item
.
children
);
}
else
{
delete
item
.
children
;
}
}
return
item
;
return
item
;
});
});
return
_dataArray
;
return
_dataArray
;
}
}
function
onCheckAssignor
(
key
,
e
)
{
function
onCheckAssignor
(
key
,
e
)
{
const
{
node
,
checked
}
=
e
;
const
{
node
,
checked
}
=
e
;
let
_checkedAssignorList
=
[...
checkedAssignorList
];
let
_checkedAssignorList
=
[...
checkedAssignorList
];
if
(
checked
)
{
if
(
checked
)
{
_checkedAssignorList
.
push
(
node
);
_checkedAssignorList
.
push
(
node
);
}
else
{
}
else
{
_checkedAssignorList
=
checkedAssignorList
.
filter
((
item
)
=>
item
.
id
!==
node
.
id
);
_checkedAssignorList
=
_checkedAssignorList
.
filter
((
item
)
=>
{
return
item
.
checkedId
!==
node
.
checkedId
;
});
}
}
const
_checkedAssignorKeys
=
_checkedAssignorList
.
map
((
item
)
=>
item
.
id
);
const
_checkedAssignorKeys
=
_checkedAssignorList
.
map
((
item
)
=>
item
.
checkedId
);
setCheckedAssignorKeys
(
_checkedAssignorKeys
);
setCheckedAssignorKeys
(
_checkedAssignorKeys
);
setCheckedAssignorList
(
_checkedAssignorList
);
setCheckedAssignorList
(
_checkedAssignorList
);
}
}
function
removeCheckedAssignor
(
item
)
{
function
removeCheckedAssignor
(
item
)
{
const
_checkedAssignorList
=
checkedAssignorList
.
filter
((
innerItem
)
=>
innerItem
.
id
!==
item
.
i
d
);
const
_checkedAssignorList
=
checkedAssignorList
.
filter
((
innerItem
)
=>
innerItem
.
checkedId
!==
item
.
checkedI
d
);
const
_checkedAssignorKeys
=
_checkedAssignorList
.
map
((
item
)
=>
item
.
i
d
);
const
_checkedAssignorKeys
=
_checkedAssignorList
.
map
((
item
)
=>
item
.
checkedI
d
);
setCheckedAssignorKeys
(
_checkedAssignorKeys
);
setCheckedAssignorKeys
(
_checkedAssignorKeys
);
setCheckedAssignorList
(
_checkedAssignorList
);
setCheckedAssignorList
(
_checkedAssignorList
);
}
}
...
@@ -93,10 +115,142 @@ function ChooseAssignorModal(props) {
...
@@ -93,10 +115,142 @@ function ChooseAssignorModal(props) {
setCheckedAssignorList
([]);
setCheckedAssignorList
([]);
}
}
function
renderTitle
(
title
)
{
return
<
span
>
{
title
}
</
span
>;
}
function
renderItem
(
record
,
type
)
{
return
{
value
:
record
.
userName
||
record
.
name
,
label
:
(
<
div
style=
{
{
display
:
'flex'
,
justifyContent
:
'space-between'
,
}
}
depId=
{
record
.
id
}
type=
{
type
}
>
{
type
===
'user'
?
(
<
div
>
<
WWOpenDataCom
type=
'userName'
openid=
{
record
.
userName
}
/>
</
div
>
)
:
(
<
div
>
<
WWOpenDataCom
type=
'departmentName'
openid=
{
record
.
name
}
/>
</
div
>
)
}
{
type
===
'user'
&&
record
.
postDepNamesList
.
map
((
item
,
index
)
=>
{
return
(
<
span
>
<
WWOpenDataCom
type=
'departmentName'
openid=
{
item
}
/>
</
span
>
);
})
}
{
type
===
'post'
&&
(
<
span
type=
'post'
openid=
{
record
.
parentName
}
>
{
record
.
parentName
}
</
span
>
)
}
</
div
>
),
};
}
function
getCompleteOptionData
(
value
)
{
setCompleteOption
([]);
const
params
=
{
depType
:
DepType
[
props
.
treeType
],
queryName
:
value
,
enterpriseId
:
User
.
getEnterpriseId
(),
source
:
0
,
//0代表来自企培
storeId
:
User
.
getStoreId
(),
userId
:
User
.
getUserId
(),
whetherCount
:
false
,
distinct
:
false
,
queryType
:
'CUSTOMER'
,
};
StoreService
.
getDepartmentUser
(
params
).
then
((
res
)
=>
{
const
_completeOptions
=
[];
const
userObj
=
{};
const
departmentGroupObj
=
{};
const
postobj
=
{};
const
{
result
=
{}
}
=
res
;
const
{
departmentUserVOList
=
[],
departmentVOList
=
[],
subLevelDepartmentVOList
=
[]
}
=
result
;
if
(
departmentUserVOList
.
length
>
0
)
{
userObj
.
label
=
renderTitle
(
'学员'
);
userObj
.
options
=
departmentUserVOList
.
map
((
item
,
index
)
=>
{
return
renderItem
(
item
,
'user'
);
});
}
if
(
departmentVOList
.
length
>
0
)
{
switch
(
props
.
treeType
)
{
case
'departMentTab'
:
departmentGroupObj
.
label
=
renderTitle
(
'部门'
);
break
;
case
'postGrouptab'
:
departmentGroupObj
.
label
=
renderTitle
(
'岗位组'
);
break
;
case
'customGroupTab'
:
departmentGroupObj
.
label
=
renderTitle
(
'分组集合'
);
break
;
default
:
break
;
}
departmentGroupObj
.
options
=
departmentVOList
.
map
((
item
,
index
)
=>
{
return
renderItem
(
item
,
'group'
);
});
}
if
(
subLevelDepartmentVOList
.
length
>
0
)
{
switch
(
props
.
treeType
)
{
case
'postGrouptab'
:
postobj
.
label
=
renderTitle
(
'岗位'
);
break
;
case
'customGroupTab'
:
postobj
.
label
=
renderTitle
(
'分组'
);
break
;
default
:
break
;
}
postobj
.
options
=
subLevelDepartmentVOList
.
map
((
item
,
index
)
=>
{
return
renderItem
(
item
,
'post'
);
});
}
if
(
Object
.
keys
(
userObj
).
length
!==
0
)
{
_completeOptions
.
push
(
userObj
);
}
if
(
Object
.
keys
(
departmentGroupObj
).
length
!==
0
)
{
_completeOptions
.
push
(
departmentGroupObj
);
}
if
(
Object
.
keys
(
postobj
).
length
!==
0
)
{
_completeOptions
.
push
(
postobj
);
}
setCompleteOption
(
_completeOptions
);
});
}
function
handlePlaceHolder
()
{
let
placeholder
=
''
;
switch
(
props
.
treeType
)
{
case
'departMentTab'
:
placeholder
=
'搜索学员姓名、部门'
;
break
;
case
'postGrouptab'
:
placeholder
=
'搜索学员姓名/岗位/岗位组'
;
break
;
case
'customGroupTab'
:
placeholder
=
'搜索学员姓名/自定义分组集合/自定义分组'
;
break
;
default
:
break
;
}
return
placeholder
;
}
return
(
return
(
<
Modal
<
Modal
className=
'choose-assignor-modal'
className=
'choose-assignor-modal'
title=
'添加指派
对象
'
title=
'添加指派
学员
'
visible=
{
true
}
visible=
{
true
}
onCancel=
{
props
.
onClose
}
onCancel=
{
props
.
onClose
}
onOk=
{
()
=>
{
onOk=
{
()
=>
{
...
@@ -107,13 +261,29 @@ function ChooseAssignorModal(props) {
...
@@ -107,13 +261,29 @@ function ChooseAssignorModal(props) {
maskClosable=
{
false
}
>
maskClosable=
{
false
}
>
<
div
className=
'assignor-container'
>
<
div
className=
'assignor-container'
>
<
div
className=
'left-list'
>
<
div
className=
'left-list'
>
<
Search
{
/* <AutoComplete
placeholder=
'搜索学员、部门'
dropdownClassName='certain-category-search-dropdown'
// value={searchKey}
dropdownMatchSelectWidth={272}
// onChange={(e) => setSearchKey(e.target.value.trim())}
allowClear
className=
'search search-input'
onChange={(value) => setSearchKey(value)}
enterButton=
{
<
span
className=
'icon iconfont'
>

</
span
>
}
onSearch={(value) => {
/>
getCompleteOptionData(value);
}}
// notFoundContent={notFoundContentNode()}
value={searchKey}
open={open}
onFocus={() => {
setOpen(true);
}}
onBlur={() => {
setOpen(false);
}}
style={{
width: 272,
}}
options={completeOptions}
// onSelect={confirmSearchSelect}
placeholder={handlePlaceHolder()}></AutoComplete> */
}
<
div
className=
'data-body'
>
<
div
className=
'data-body'
>
<
Tabs
size=
{
'small'
}
onChange=
{
(
key
)
=>
setActiveKey
(
key
)
}
>
<
Tabs
size=
{
'small'
}
onChange=
{
(
key
)
=>
setActiveKey
(
key
)
}
>
<
TabPane
key=
'departMentTab'
tab=
'部门'
></
TabPane
>
<
TabPane
key=
'departMentTab'
tab=
'部门'
></
TabPane
>
...
@@ -124,6 +294,7 @@ function ChooseAssignorModal(props) {
...
@@ -124,6 +294,7 @@ function ChooseAssignorModal(props) {
<
DirectoryTree
<
DirectoryTree
defaultExpandAll
defaultExpandAll
checkable
checkable
checkStrictly
showIcon=
{
false
}
showIcon=
{
false
}
treeData=
{
structureData
}
treeData=
{
structureData
}
checkedKeys=
{
checkedAssignorKeys
}
checkedKeys=
{
checkedAssignorKeys
}
...
@@ -131,18 +302,21 @@ function ChooseAssignorModal(props) {
...
@@ -131,18 +302,21 @@ function ChooseAssignorModal(props) {
titleRender=
{
(
nodeData
)
=>
{
titleRender=
{
(
nodeData
)
=>
{
return
(
return
(
<
div
className=
'node-title-div'
>
<
div
className=
'node-title-div'
>
<
div
className=
'item-icon'
>
{
[
0
,
1
].
includes
(
nodeData
.
depLevel
)
?
(
<
span
className=
'icon iconfont title-icon'
>

</
span
>
<
div
>
</
div
>
<
span
className=
'icon iconfont title-icon'
>

</
span
>
<
div
className=
'item-title'
>
{
activeKey
===
'departMentTab'
?
(
<
span
>
<
span
>
<
WWOpenDataCom
type=
'departmentName'
openid=
{
nodeData
.
name
}
/>
<
WWOpenDataCom
type=
'departmentName'
openid=
{
nodeData
.
name
}
/>
</
span
>
</
span
>
)
:
(
</
div
>
<
span
>
{
nodeData
.
name
}
</
span
>
)
:
(
)
}
<
div
>
</
div
>
<
span
className=
'icon iconfont title-icon'
>

</
span
>
<
span
>
<
WWOpenDataCom
type=
'userName'
openid=
{
nodeData
.
userName
}
/>
</
span
>
</
div
>
)
}
</
div
>
</
div
>
);
);
}
}
}
}
...
@@ -162,10 +336,21 @@ function ChooseAssignorModal(props) {
...
@@ -162,10 +336,21 @@ function ChooseAssignorModal(props) {
return
(
return
(
<
div
className=
'selected-item'
>
<
div
className=
'selected-item'
>
<
span
className=
'item-name'
>
<
span
className=
'item-name'
>
<
span
className=
'icon iconfont avatar-icon'
>

</
span
>
{
[
0
,
1
].
indexOf
(
item
.
depLevel
)
===
-
1
?
(
<
Tooltip
title=
{
item
.
name
}
>
<
div
>
<
span
className=
'name-text'
>
{
item
.
name
}
</
span
>
<
span
className=
'icon iconfont title-icon'
>

</
span
>
</
Tooltip
>
<
Tooltip
title=
{
<
WWOpenDataCom
type=
'userName'
openid=
{
item
.
userName
}
/>
}
>
<
WWOpenDataCom
type=
'userName'
openid=
{
item
.
userName
}
/>
</
Tooltip
>
</
div
>
)
:
(
<
div
>
<
span
className=
'icon iconfont title-icon'
>

</
span
>
<
Tooltip
title=
{
<
WWOpenDataCom
type=
'departmentName'
openid=
{
item
.
userName
}
/>
}
>
<
WWOpenDataCom
type=
'departmentName'
openid=
{
item
.
name
}
/>
</
Tooltip
>
</
div
>
)
}
</
span
>
</
span
>
<
span
className=
'icon iconfont clear-icon'
onClick=
{
()
=>
removeCheckedAssignor
(
item
)
}
>
<
span
className=
'icon iconfont clear-icon'
onClick=
{
()
=>
removeCheckedAssignor
(
item
)
}
>


...
...
src/modules/task-center/train-task/modal/ChooseCollaboratorModal.jsx
View file @
090763d8
...
@@ -22,7 +22,8 @@ const { Search } = Input;
...
@@ -22,7 +22,8 @@ const { Search } = Input;
function
ChooseCollaboratorModal
(
props
)
{
function
ChooseCollaboratorModal
(
props
)
{
const
[
searchKey
,
setSearchKey
]
=
useState
(
''
);
// 搜索内容
const
[
searchKey
,
setSearchKey
]
=
useState
(
''
);
// 搜索内容
const
[
employeeList
,
setEmployeeList
]
=
useState
([]);
// 员工列表
const
[
employeeList
,
setEmployeeList
]
=
useState
([]);
// 员工列表
const
[
seletedCollaboratorList
,
setSeletedCollaboratorList
]
=
useState
(
props
.
currentCollaboratorList
||
[]);
// 勾选的协同人员
const
[
checkedCollaboratorList
,
setCheckedCollaboratorList
]
=
useState
(
props
.
currentCollaboratorList
||
[]);
// 勾选的协同人员
const
[
checkedCollaboratorKeys
,
setCheckedCollaboratorKeys
]
=
useState
(
props
.
currentCollaboratorList
.
map
((
item
)
=>
item
.
checkedId
)
||
[]);
const
[
allChecked
,
setAllChecked
]
=
useState
(
false
);
const
[
allChecked
,
setAllChecked
]
=
useState
(
false
);
useEffect
(()
=>
{
useEffect
(()
=>
{
...
@@ -40,19 +41,15 @@ function ChooseCollaboratorModal(props) {
...
@@ -40,19 +41,15 @@ function ChooseCollaboratorModal(props) {
StoreService
.
getEmployeeList
(
params
).
then
((
res
)
=>
{
StoreService
.
getEmployeeList
(
params
).
then
((
res
)
=>
{
const
{
records
}
=
res
.
result
;
const
{
records
}
=
res
.
result
;
records
.
map
((
item
)
=>
{
records
.
map
((
item
)
=>
{
item
.
checked
=
false
;
item
.
checkedName
=
item
.
nickName
;
seletedCollaboratorList
.
map
((
childItem
)
=>
{
item
.
checkedId
=
item
.
userId
;
if
(
item
.
id
===
childItem
.
id
)
{
item
.
checked
=
checkedCollaboratorKeys
.
includes
(
item
.
checkedId
);
item
.
checked
=
true
;
}
return
childItem
;
});
return
item
;
return
item
;
});
});
if
(
props
.
currentCollaboratorList
.
length
===
records
.
length
)
{
const
checkedEmployeeList
=
records
.
filter
((
item
)
=>
item
.
checked
);
setAllChecked
(
true
);
const
_checkedAll
=
records
.
length
===
checkedEmployeeList
.
length
;
}
setEmployeeList
(
records
);
setEmployeeList
(
records
);
setAllChecked
(
_checkedAll
);
});
});
}
}
...
@@ -70,79 +67,93 @@ function ChooseCollaboratorModal(props) {
...
@@ -70,79 +67,93 @@ function ChooseCollaboratorModal(props) {
});
});
}
}
function
handle
Selet
edCollaborator
(
e
)
{
function
handle
Check
edCollaborator
(
e
)
{
const
{
value
,
checked
}
=
e
.
target
;
const
{
value
,
checked
}
=
e
.
target
;
let
_
seletedCollaboratorList
=
[...
selet
edCollaboratorList
];
let
_
checkedCollaboratorList
=
[...
check
edCollaboratorList
];
let
_employeeList
=
[];
let
_employeeList
=
[];
if
(
checked
)
{
if
(
checked
)
{
_employeeList
=
employeeList
.
map
((
item
)
=>
{
_employeeList
=
employeeList
.
map
((
item
)
=>
{
if
(
item
.
id
===
value
.
i
d
)
{
if
(
item
.
checkedId
===
value
.
checkedI
d
)
{
item
.
checked
=
true
;
item
.
checked
=
true
;
}
}
return
item
;
return
item
;
});
});
_
selet
edCollaboratorList
.
push
({
...
value
,
checked
:
true
});
_
check
edCollaboratorList
.
push
({
...
value
,
checked
:
true
});
}
else
{
}
else
{
_employeeList
=
employeeList
.
map
((
item
)
=>
{
_employeeList
=
employeeList
.
map
((
item
)
=>
{
if
(
item
.
id
===
value
.
i
d
)
{
if
(
item
.
checkedId
===
value
.
checkedI
d
)
{
item
.
checked
=
false
;
item
.
checked
=
false
;
}
}
return
item
;
return
item
;
});
});
_
seletedCollaboratorList
=
seletedCollaboratorList
.
filter
((
item
)
=>
item
.
id
!==
value
.
i
d
);
_
checkedCollaboratorList
=
checkedCollaboratorList
.
filter
((
item
)
=>
item
.
checkedId
!==
value
.
checkedI
d
);
}
}
const
_checkedCollaboratorKeys
=
_checkedCollaboratorList
.
map
((
item
)
=>
item
.
checkedId
);
const
checkedEmployeeList
=
_employeeList
.
filter
((
item
)
=>
item
.
checked
);
const
_checkedAll
=
employeeList
.
length
===
checkedEmployeeList
.
length
;
setEmployeeList
(
_employeeList
);
setEmployeeList
(
_employeeList
);
setSeletedCollaboratorList
(
_seletedCollaboratorList
);
setCheckedCollaboratorList
(
_checkedCollaboratorList
);
setCheckedCollaboratorKeys
(
_checkedCollaboratorKeys
);
setAllChecked
(
_checkedAll
);
}
}
function
remove
Select
edCollaborator
(
record
)
{
function
remove
Check
edCollaborator
(
record
)
{
const
_employeeList
=
employeeList
.
map
((
item
)
=>
{
const
_employeeList
=
employeeList
.
map
((
item
)
=>
{
if
(
item
.
id
===
record
.
i
d
)
{
if
(
item
.
checkedId
===
record
.
checkedI
d
)
{
item
.
checked
=
false
;
item
.
checked
=
false
;
}
}
return
item
;
return
item
;
});
});
const
_seletedCollaboratorList
=
seletedCollaboratorList
.
filter
((
item
)
=>
item
.
id
!==
record
.
id
);
const
_checkedCollaboratorList
=
checkedCollaboratorList
.
filter
((
item
)
=>
item
.
checkedId
!==
record
.
checkedId
);
const
_checkedCollaboratorKeys
=
_checkedCollaboratorList
.
map
((
item
)
=>
item
.
checkedId
);
const
checkedEmployeeList
=
_employeeList
.
filter
((
item
)
=>
item
.
checked
);
const
_checkedAll
=
employeeList
.
length
===
checkedEmployeeList
.
length
;
setAllChecked
(
_checkedAll
);
setCheckedCollaboratorList
(
_checkedCollaboratorList
);
setCheckedCollaboratorKeys
(
_checkedCollaboratorKeys
);
setEmployeeList
(
_employeeList
);
setEmployeeList
(
_employeeList
);
setSeletedCollaboratorList
(
_seletedCollaboratorList
);
}
}
function
clear
Select
edCollaborator
()
{
function
clear
Check
edCollaborator
()
{
const
_employeeList
=
employeeList
.
map
((
item
)
=>
{
const
_employeeList
=
employeeList
.
map
((
item
)
=>
{
item
.
checked
=
false
;
item
.
checked
=
false
;
return
item
;
return
item
;
});
});
setEmployeeList
(
_employeeList
);
setEmployeeList
(
_employeeList
);
setSeletedCollaboratorList
([]);
setCheckedCollaboratorList
([]);
setCheckedCollaboratorKeys
([]);
setAllChecked
(
false
);
setAllChecked
(
false
);
props
.
onConfirm
([]);
}
}
function
handle
Selet
edAll
(
e
)
{
function
handle
Check
edAll
(
e
)
{
let
_employeeList
=
[];
let
_employeeList
=
[];
let
_
selet
edCollaboratorList
=
[];
let
_
check
edCollaboratorList
=
[];
if
(
e
.
target
.
checked
)
{
if
(
e
.
target
.
checked
)
{
_employeeList
=
employeeList
.
map
((
item
)
=>
{
_employeeList
=
employeeList
.
map
((
item
)
=>
{
item
.
checked
=
true
;
item
.
checked
=
true
;
return
item
;
return
item
;
});
});
_seletedCollaboratorList
=
seletedCollaboratorList
.
concat
([...
_employeeList
]);
const
filterList
=
employeeList
.
filter
((
item
)
=>
{
return
!
checkedCollaboratorKeys
.
includes
(
item
.
checkedId
);
});
_checkedCollaboratorList
=
checkedCollaboratorList
.
concat
([...
filterList
]);
}
else
{
}
else
{
_employeeList
=
employeeList
.
map
((
item
)
=>
{
_employeeList
=
employeeList
.
map
((
item
)
=>
{
item
.
checked
=
false
;
item
.
checked
=
false
;
return
item
;
return
item
;
});
});
const
removeIds
=
_employeeList
.
map
((
item
)
=>
item
.
i
d
);
const
removeIds
=
_employeeList
.
map
((
item
)
=>
item
.
checkedI
d
);
_
seletedCollaboratorList
=
selet
edCollaboratorList
.
filter
((
item
)
=>
{
_
checkedCollaboratorList
=
check
edCollaboratorList
.
filter
((
item
)
=>
{
return
removeIds
.
indexOf
(
item
.
id
)
<
0
;
return
!
removeIds
.
includes
(
item
.
checkedId
)
;
});
});
}
}
const
_checkedCollaboratorKeys
=
_checkedCollaboratorList
.
map
((
item
)
=>
item
.
checkedId
);
setEmployeeList
(
_employeeList
);
setEmployeeList
(
_employeeList
);
setSeletedCollaboratorList
(
_seletedCollaboratorList
);
setCheckedCollaboratorList
(
_checkedCollaboratorList
);
setCheckedCollaboratorKeys
(
_checkedCollaboratorKeys
);
setAllChecked
(
e
.
target
.
checked
);
setAllChecked
(
e
.
target
.
checked
);
}
}
...
@@ -153,7 +164,7 @@ function ChooseCollaboratorModal(props) {
...
@@ -153,7 +164,7 @@ function ChooseCollaboratorModal(props) {
visible=
{
true
}
visible=
{
true
}
onCancel=
{
props
.
onClose
}
onCancel=
{
props
.
onClose
}
onOk=
{
()
=>
{
onOk=
{
()
=>
{
props
.
onConfirm
(
selet
edCollaboratorList
);
props
.
onConfirm
(
check
edCollaboratorList
);
props
.
onClose
();
props
.
onClose
();
}
}
}
}
width=
{
680
}
width=
{
680
}
...
@@ -171,20 +182,20 @@ function ChooseCollaboratorModal(props) {
...
@@ -171,20 +182,20 @@ function ChooseCollaboratorModal(props) {
<
div
className=
'data-body'
>
<
div
className=
'data-body'
>
<
List
<
List
header=
{
header=
{
<
Checkbox
checked=
{
allChecked
}
onChange=
{
handle
Selet
edAll
}
>
<
Checkbox
checked=
{
allChecked
}
onChange=
{
handle
Check
edAll
}
>
全部
全部
</
Checkbox
>
</
Checkbox
>
}
}
dataSource=
{
employeeList
}
dataSource=
{
employeeList
}
renderItem=
{
(
item
,
index
)
=>
(
renderItem=
{
(
item
,
index
)
=>
(
<
List
.
Item
>
<
List
.
Item
>
<
Checkbox
checked=
{
item
.
checked
}
value=
{
item
}
key=
{
item
.
id
}
onChange=
{
handleSelet
edCollaborator
}
>
<
Checkbox
checked=
{
item
.
checked
}
value=
{
item
}
key=
{
item
.
checkedId
}
onChange=
{
handleCheck
edCollaborator
}
>
<
div
className=
'employee-item'
>
<
div
className=
'employee-item'
>
<
span
className=
'user-name'
>
<
span
className=
'user-name'
>
<
span
className=
'icon iconfont avatar-icon'
>

</
span
>
<
span
className=
'icon iconfont avatar-icon'
>

</
span
>
<
Tooltip
title=
{
<
WWOpenDataCom
type=
'userName'
openid=
{
item
.
nick
Name
}
/>
}
>
<
Tooltip
title=
{
<
WWOpenDataCom
type=
'userName'
openid=
{
item
.
checked
Name
}
/>
}
>
<
span
className=
'user-name'
>
<
span
className=
'user-name'
>
<
WWOpenDataCom
type=
'userName'
openid=
{
item
.
nick
Name
}
/>
<
WWOpenDataCom
type=
'userName'
openid=
{
item
.
checked
Name
}
/>
</
span
>
</
span
>
</
Tooltip
>
</
Tooltip
>
</
span
>
</
span
>
...
@@ -199,23 +210,23 @@ function ChooseCollaboratorModal(props) {
...
@@ -199,23 +210,23 @@ function ChooseCollaboratorModal(props) {
<
div
className=
'right-list'
>
<
div
className=
'right-list'
>
<
div
className=
'header-line'
>
<
div
className=
'header-line'
>
<
span
className=
'tip-text'
>
已选择
</
span
>
<
span
className=
'tip-text'
>
已选择
</
span
>
<
span
className=
'clear-btn'
onClick=
{
clear
Select
edCollaborator
}
>
<
span
className=
'clear-btn'
onClick=
{
clear
Check
edCollaborator
}
>
清空
清空
</
span
>
</
span
>
</
div
>
</
div
>
<
div
className=
'data-body'
>
<
div
className=
'data-body'
>
{
selet
edCollaboratorList
.
map
((
item
,
index
)
=>
{
{
check
edCollaboratorList
.
map
((
item
,
index
)
=>
{
return
(
return
(
<
div
className=
'selected-item'
>
<
div
className=
'selected-item'
>
<
span
className=
'item-name'
>
<
span
className=
'item-name'
>
<
span
className=
'icon iconfont avatar-icon'
>

</
span
>
<
span
className=
'icon iconfont avatar-icon'
>

</
span
>
<
Tooltip
title=
{
<
WWOpenDataCom
type=
'userName'
openid=
{
item
.
nick
Name
}
/>
}
>
<
Tooltip
title=
{
<
WWOpenDataCom
type=
'userName'
openid=
{
item
.
checked
Name
}
/>
}
>
<
span
className=
'name-text'
>
<
span
className=
'name-text'
>
<
WWOpenDataCom
type=
'userName'
openid=
{
item
.
nick
Name
}
/>
<
WWOpenDataCom
type=
'userName'
openid=
{
item
.
checked
Name
}
/>
</
span
>
</
span
>
</
Tooltip
>
</
Tooltip
>
</
span
>
</
span
>
<
span
className=
'icon iconfont clear-icon'
onClick=
{
()
=>
remove
Select
edCollaborator
(
item
)
}
>
<
span
className=
'icon iconfont clear-icon'
onClick=
{
()
=>
remove
Check
edCollaborator
(
item
)
}
>


</
span
>
</
span
>
</
div
>
</
div
>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment