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
47cba295
Commit
47cba295
authored
Aug 18, 2021
by
yuananting
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix:指派对象弹窗搜索、左树右选中项关联修改
parent
7e03883a
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
27 additions
and
21 deletions
+27
-21
src/modules/task-center/train-task/modal/ChooseAssignorModal.jsx
+27
-21
No files found.
src/modules/task-center/train-task/modal/ChooseAssignorModal.jsx
View file @
47cba295
...
...
@@ -2,7 +2,7 @@
* @Author: yuananting
* @Date: 2021-08-05 17:09:36
* @LastEditors: yuananting
* @LastEditTime: 2021-08-18 1
5:41:13
* @LastEditTime: 2021-08-18 1
6:23:22
* @Description: 新建培训任务-选择指派学员
* @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
...
...
@@ -38,7 +38,7 @@ function ChooseAssignorModal(props) {
const
[
structureData
,
setStructureData
]
=
useState
([]);
const
[
activeKey
,
setActiveKey
]
=
useState
(
'departMentTab'
);
const
[
checkedAssignorList
,
setCheckedAssignorList
]
=
useState
(
props
.
currentAssignorList
||
[]);
// 勾选的指派学员
const
[
checkedAssignorKeys
,
setCheckedAssignorKeys
]
=
useState
(
handleCheckedKeys
(
props
.
currentAssignorList
,
[]));
const
[
checkedAssignorKeys
,
setCheckedAssignorKeys
]
=
useState
(
handleCheckedKeys
(
props
.
currentAssignorList
,
props
.
currentAssignorList
,
[]));
const
[
queryName
,
setQueryName
]
=
useState
(
''
);
// 搜索框内的值
const
[
departmentUserVOList
,
setDepartmentUserVOList
]
=
useState
([]);
const
[
departmentVOList
,
setDepartmentVOList
]
=
useState
([]);
...
...
@@ -82,19 +82,19 @@ function ChooseAssignorModal(props) {
StoreService
.
getDepartmentUserNotPage
(
params
).
then
((
res
)
=>
{
const
{
result
=
[]
}
=
res
;
const
structureData
=
handleStructureData
(
result
.
departmentVOList
);
const
checkedKeys
=
handleCheckedKeys
(
structureData
,
[]);
const
checkedKeys
=
handleCheckedKeys
(
structureData
,
checkedAssignorList
,
[]);
setStructureData
(
structureData
);
setCheckedAssignorKeys
(
checkedKeys
);
});
}
function
handleCheckedKeys
(
dataArray
,
checkedKeys
)
{
function
handleCheckedKeys
(
dataArray
,
checked
AssignorList
,
checked
Keys
)
{
dataArray
.
map
((
item
,
index
)
=>
{
if
(
checkedAssignorList
.
find
((
checkedItem
)
=>
checkedItem
.
checkedId
===
item
.
checkedId
))
{
checkedKeys
.
push
(
item
.
id
);
}
if
(
item
.
children
?.
length
>
0
)
{
handleCheckedKeys
(
item
.
children
,
checkedKeys
);
handleCheckedKeys
(
item
.
children
,
checked
AssignorList
,
checked
Keys
);
}
});
return
checkedKeys
;
...
...
@@ -140,9 +140,9 @@ function ChooseAssignorModal(props) {
});
}
const
_checkedAssignorKeys
=
_checkedAssignorList
.
map
((
item
)
=>
item
.
id
);
setCheckedAssignorKeys
(
_checkedAssignorKeys
);
const
_checkedAssignorKeys
=
handleCheckedKeys
(
structureData
,
_checkedAssignorList
,
[]);
setCheckedAssignorList
(
_checkedAssignorList
);
setCheckedAssignorKeys
(
_checkedAssignorKeys
);
}
function
removeCheckedAssignor
(
item
)
{
...
...
@@ -180,14 +180,15 @@ function ChooseAssignorModal(props) {
return
item
;
});
const
_departmentVOList
=
departmentVOList
.
map
((
item
)
=>
{
item
.
disabled
=
activeKey
!==
'departMentTab'
;
item
.
checkedName
=
item
.
name
;
item
.
checkedId
=
item
.
id
;
item
.
checked
=
checkedAssignorList
.
find
((
checkedItem
)
=>
checkedItem
.
checkedId
===
item
.
checkedId
);
item
.
checkedType
=
AssignTypeEnum
[
activeKey
];
return
item
;
});
const
_subLevelDepartmentVOList
=
subLevelDepartmentVOList
.
map
((
item
)
=>
{
item
.
disableCheckbox
=
true
;
item
.
checkedName
=
item
.
name
;
item
.
checkedId
=
item
.
id
;
item
.
checked
=
checkedAssignorList
.
find
((
checkedItem
)
=>
checkedItem
.
checkedId
===
item
.
checkedId
);
...
...
@@ -279,7 +280,7 @@ function ChooseAssignorModal(props) {
setSubLevelDepartmentVOList
(
_subLevelDepartmentVOList
);
}
const
_checkedAssignorKeys
=
_checkedAssignorList
.
map
((
item
)
=>
item
.
id
);
const
_checkedAssignorKeys
=
handleCheckedKeys
(
structureData
,
_checkedAssignorList
,
[]
);
setCheckedAssignorKeys
(
_checkedAssignorKeys
);
setCheckedAssignorList
(
_checkedAssignorList
);
}
...
...
@@ -345,31 +346,36 @@ function ChooseAssignorModal(props) {
})
}
</
div
>
)
}
{
d
epartmentVOList
.
length
>
0
&&
(
{
subLevelD
epartmentVOList
.
length
>
0
&&
(
<
div
>
<
div
>
{
DeptTypeEnum
[
activeKey
][
0
]
}
</
div
>
{
d
epartmentVOList
.
map
((
record
)
=>
{
{
subLevelD
epartmentVOList
.
map
((
record
)
=>
{
return
(
<
Checkbox
checked=
{
record
.
checked
}
value=
{
record
}
key=
{
record
.
checkedId
}
onChange=
{
(
e
)
=>
handleCheckedSearchAssignor
(
e
,
'
DEPART
'
)
}
>
<
Checkbox
checked=
{
record
.
checked
}
value=
{
record
}
key=
{
record
.
checkedId
}
onChange=
{
(
e
)
=>
handleCheckedSearchAssignor
(
e
,
'
GROUP
'
)
}
>
<
div
className=
'search-result-item'
depId=
{
record
.
checkedId
}
type=
{
type
}
>
<
div
className=
'search-result-item__left'
>
{
activeKey
===
'departMentTab'
?
<
WWOpenDataCom
type=
'departmentName'
openid=
{
record
.
name
}
/>
:
<
span
>
{
record
.
name
}
</
span
>
}
</
div
>
<
div
className=
'search-result-item__right'
>
{
activeKey
===
'postGrouptab'
&&
<
span
>
{
record
.
parentName
}
</
span
>
}
</
div
>
<
div
className=
'search-result-item__left'
>
{
<
WWOpenDataCom
type=
'departmentName'
openid=
{
record
.
name
}
/>
}
</
div
>
</
div
>
</
Checkbox
>
);
})
}
</
div
>
)
}
{
subLevelD
epartmentVOList
.
length
>
0
&&
(
{
d
epartmentVOList
.
length
>
0
&&
(
<
div
>
<
div
>
{
DeptTypeEnum
[
activeKey
][
1
]
}
</
div
>
{
subLevelD
epartmentVOList
.
map
((
record
)
=>
{
<
div
>
{
activeKey
===
'departMentTab'
?
DeptTypeEnum
[
activeKey
][
0
]
:
DeptTypeEnum
[
activeKey
][
1
]
}
</
div
>
{
d
epartmentVOList
.
map
((
record
)
=>
{
return
(
<
Checkbox
checked=
{
record
.
checked
}
value=
{
record
}
key=
{
record
.
checkedId
}
onChange=
{
(
e
)
=>
handleCheckedSearchAssignor
(
e
,
'GROUP'
)
}
>
<
Checkbox
disabled=
{
record
.
disabled
}
checked=
{
record
.
checked
}
value=
{
record
}
key=
{
record
.
checkedId
}
onChange=
{
(
e
)
=>
handleCheckedSearchAssignor
(
e
,
'DEPART'
)
}
>
<
div
className=
'search-result-item'
depId=
{
record
.
checkedId
}
type=
{
type
}
>
<
div
className=
'search-result-item__left'
>
{
<
WWOpenDataCom
type=
'departmentName'
openid=
{
record
.
name
}
/>
}
</
div
>
<
div
className=
'search-result-item__left'
>
{
activeKey
===
'departMentTab'
?
<
WWOpenDataCom
type=
'departmentName'
openid=
{
record
.
name
}
/>
:
<
span
>
{
record
.
name
}
</
span
>
}
</
div
>
<
div
className=
'search-result-item__right'
>
{
activeKey
===
'postGrouptab'
&&
<
span
>
{
record
.
parentName
}
</
span
>
}
</
div
>
</
div
>
</
Checkbox
>
);
...
...
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