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
306a9e02
Commit
306a9e02
authored
Jul 29, 2021
by
zhangleyuan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:处理学员的删除
parent
cd5f3152
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
173 additions
and
27 deletions
+173
-27
src/data-source/store/request-apis.ts
+11
-4
src/domains/store-domain/constants.ts
+3
-2
src/domains/store-domain/storeService.ts
+12
-2
src/modules/college-manage/EmployeeManage.tsx
+1
-0
src/modules/college-manage/components/DepartMentTabCon.jsx
+0
-0
src/modules/college-manage/components/DepartMentTabCon.less
+7
-0
src/modules/college-manage/components/LeftStructureTree.jsx
+129
-10
src/modules/college-manage/components/MemberTree.jsx
+2
-2
src/modules/college-manage/modal/NewChooseMembersModal.jsx
+8
-7
No files found.
src/data-source/store/request-apis.ts
View file @
306a9e02
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
* @Author: wufan
* @Author: wufan
* @Date: 2020-11-25 18:25:02
* @Date: 2020-11-25 18:25:02
* @LastEditors: Please set LastEditors
* @LastEditors: Please set LastEditors
* @LastEditTime: 2021-07-2
8 15:59:30
* @LastEditTime: 2021-07-2
9 19:57:16
* @Description: Description
* @Description: Description
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
*/
*/
...
@@ -93,6 +93,12 @@ export function editDepartment(params: object) {
...
@@ -93,6 +93,12 @@ export function editDepartment(params: object) {
export
function
delDepartment
(
params
:
object
)
{
export
function
delDepartment
(
params
:
object
)
{
return
Service
.
Hades
(
"public/hades/delDepartment"
,
params
);
return
Service
.
Hades
(
"public/hades/delDepartment"
,
params
);
}
}
export
function
queryDepartmentTree
(
params
:
object
)
{
return
Service
.
Hades
(
"public/hades/queryDepartmentTree"
,
params
);
}
export
function
getStoreCustomerAndDepNamePage
(
params
:
object
)
{
return
Service
.
Hades
(
"public/hades/getStoreCustomerAndDepNamePage"
,
params
);
}
export
function
delDepartmentUser
(
params
:
object
)
{
return
Service
.
Hades
(
"public/hades/delDepartmentUser"
,
params
);
}
\ No newline at end of file
src/domains/store-domain/constants.ts
View file @
306a9e02
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
* @Author: zhangleyuan
* @Author: zhangleyuan
* @Date: 2021-01-19 11:27:56
* @Date: 2021-01-19 11:27:56
* @LastEditors: Please set LastEditors
* @LastEditors: Please set LastEditors
* @LastEditTime: 2021-07-2
8 18:07:31
* @LastEditTime: 2021-07-2
9 13:37:10
* @Description: 描述一下
* @Description: 描述一下
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
*/
*/
...
@@ -32,7 +32,7 @@ export const childIndustryList = {
...
@@ -32,7 +32,7 @@ export const childIndustryList = {
"其他行业"
:[
"科学研究和技术服务业"
,
"社会组织"
,
"水利和环境管理"
,
"国际组织"
,
"其他"
]
"其他行业"
:[
"科学研究和技术服务业"
,
"社会组织"
,
"水利和环境管理"
,
"国际组织"
,
"其他"
]
}
}
export
const
DepType
=
{
export
const
DepType
=
{
'departMentTab'
:
'DEP_
CHAT
'
,
'departMentTab'
:
'DEP_
ORG
'
,
'postGrouptab'
:
'DEP_POST'
,
'postGrouptab'
:
'DEP_POST'
,
'customGroupTab'
:
'DEP_CUSTOM'
'customGroupTab'
:
'DEP_CUSTOM'
}
}
\ No newline at end of file
src/domains/store-domain/storeService.ts
View file @
306a9e02
...
@@ -2,14 +2,14 @@
...
@@ -2,14 +2,14 @@
* @Author: wufan
* @Author: wufan
* @Date: 2020-11-25 18:25:02
* @Date: 2020-11-25 18:25:02
* @LastEditors: Please set LastEditors
* @LastEditors: Please set LastEditors
* @LastEditTime: 2021-07-2
7 15:09:1
2
* @LastEditTime: 2021-07-2
9 19:57:5
2
* @Description: Description
* @Description: Description
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
*/
*/
import
{
getEmployeeList
,
getUserList
,
getStoreDecorationList
,
getStoreRole
,
addEmployee
,
editEmployee
,
deleteEmployee
,
getCourseCatalogList
,
import
{
getEmployeeList
,
getUserList
,
getStoreDecorationList
,
getStoreRole
,
addEmployee
,
editEmployee
,
deleteEmployee
,
getCourseCatalogList
,
getAllSonCategory
,
addCourseCategory
,
delCourseCategory
,
editCourseCategory
,
deleteStoreDecorationList
,
addStoreBanner
,
editStoreBanner
,
getAllSonCategory
,
addCourseCategory
,
delCourseCategory
,
editCourseCategory
,
deleteStoreDecorationList
,
addStoreBanner
,
editStoreBanner
,
moveBannerSequence
,
getStoreUserBasicPage
,
updateStoreMessage
,
getStoreDetail
,
getByDepartmentId
,
getDepartmentUser
,
getDepartmentUserNotPage
,
addDepartment
,
moveBannerSequence
,
getStoreUserBasicPage
,
updateStoreMessage
,
getStoreDetail
,
getByDepartmentId
,
getDepartmentUser
,
getDepartmentUserNotPage
,
addDepartment
,
editDepartment
,
delDepartment
editDepartment
,
delDepartment
,
queryDepartmentTree
,
getStoreCustomerAndDepNamePage
,
delDepartmentUser
}
from
'@/data-source/store/request-apis'
;
}
from
'@/data-source/store/request-apis'
;
export
default
class
StoreService
{
export
default
class
StoreService
{
...
@@ -109,4 +109,13 @@ export default class StoreService {
...
@@ -109,4 +109,13 @@ export default class StoreService {
static
delDepartment
(
params
:
any
){
static
delDepartment
(
params
:
any
){
return
delDepartment
(
params
);
return
delDepartment
(
params
);
}
}
static
queryDepartmentTree
(
params
:
any
){
return
queryDepartmentTree
(
params
);
}
static
getStoreCustomerAndDepNamePage
(
params
:
any
){
return
getStoreCustomerAndDepNamePage
(
params
);
}
static
delDepartmentUser
(
params
:
any
){
return
delDepartmentUser
(
params
);
}
}
}
\ No newline at end of file
src/modules/college-manage/EmployeeManage.tsx
View file @
306a9e02
...
@@ -410,6 +410,7 @@ function EmployeeManage() {
...
@@ -410,6 +410,7 @@ function EmployeeManage() {
{
model
}
{
model
}
{
employeeModal
&&
{
employeeModal
&&
<
NewChooseMembersModal
<
NewChooseMembersModal
treeDepType=
"DEP_CHAT"
visible=
{
employeeModal
}
visible=
{
employeeModal
}
type=
"USER"
type=
"USER"
close=
{
()
=>
{
setEmployeeModal
(
false
)}
}
close=
{
()
=>
{
setEmployeeModal
(
false
)}
}
...
...
src/modules/college-manage/components/DepartMentTabCon.jsx
View file @
306a9e02
This diff is collapsed.
Click to expand it.
src/modules/college-manage/components/DepartMentTabCon.less
View file @
306a9e02
...
@@ -23,5 +23,11 @@
...
@@ -23,5 +23,11 @@
color:#5289FA;
color:#5289FA;
}
}
}
}
.operate{
.operate__item{
color:#2966FF;
cursor: pointer;
}
}
}
}
}
}
\ No newline at end of file
src/modules/college-manage/components/LeftStructureTree.jsx
View file @
306a9e02
import
React
,
{
useEffect
,
useState
}
from
"react"
;
import
React
,
{
useEffect
,
useState
}
from
"react"
;
import
{
withRouter
}
from
"react-router-dom"
;
import
{
withRouter
}
from
"react-router-dom"
;
import
{
Tree
,
Input
,
Dropdown
,
Menu
,
Button
,
Modal
,
message
}
from
"antd"
;
import
{
Tree
,
Input
,
Dropdown
,
Menu
,
Button
,
Modal
,
message
,
AutoComplete
}
from
"antd"
;
import
AddOrEditPostGroupModal
from
"../modal/AddOrEditPostGroupModal"
;
import
AddOrEditPostGroupModal
from
"../modal/AddOrEditPostGroupModal"
;
import
User
from
'@/common/js/user'
import
User
from
'@/common/js/user'
import
StoreService
from
"@/domains/store-domain/storeService"
;
import
StoreService
from
"@/domains/store-domain/storeService"
;
import
{
DepType
}
from
'@/domains/store-domain/constants'
;
import
{
DepType
}
from
'@/domains/store-domain/constants'
;
import
Bus
from
'@/core/bus'
;
import
"./LeftStructureTree.less"
;
import
"./LeftStructureTree.less"
;
const
{
Search
}
=
Input
;
const
{
Search
}
=
Input
;
...
@@ -19,25 +20,141 @@ function LeftStructureTree(props) {
...
@@ -19,25 +20,141 @@ function LeftStructureTree(props) {
const
[
postGroupModalLable
,
setPostGroupModalLable
]
=
useState
(
""
);
const
[
postGroupModalLable
,
setPostGroupModalLable
]
=
useState
(
""
);
const
[
postGroupName
,
setPostGroupName
]
=
useState
(
""
);
const
[
postGroupName
,
setPostGroupName
]
=
useState
(
""
);
const
[
currentGroupData
,
setCurrentGroupData
]
=
useState
({});
const
[
currentGroupData
,
setCurrentGroupData
]
=
useState
({});
const
[
selectUserParams
,
setSelectUserParams
]
=
useState
({});
const
[
completeOptions
,
setCompleteOption
]
=
useState
([]);
const
renderTitle
=
(
title
)
=>
(
<
span
>
{
title
}
</
span
>
);
const
renderItem
=
(
record
,
type
)
=>
({
value
:
record
.
userName
||
record
.
name
,
label
:
(
<
div
style=
{
{
display
:
'flex'
,
justifyContent
:
'space-between'
,
}
}
>
{
type
===
'user'
?
<
div
>
{
record
.
userName
}
</
div
>
:
<
div
>
{
record
.
name
}
</
div
>
}
{
type
===
'user'
&&
record
.
postDepNamesList
.
map
((
item
,
index
)
=>
{
return
<
span
>
{
item
}
</
span
>
})
}
</
div
>
),
});
const
notFoundContentNode
=
()
=>
{
return
<
span
>
暂无数据
</
span
>
}
const
Complete
=
()
=>
(
<
AutoComplete
dropdownClassName=
"certain-category-search-dropdown"
dropdownMatchSelectWidth=
{
250
}
allowClear
onChange=
{
getCompleteOptionData
}
notFoundContent=
{
notFoundContentNode
()
}
style=
{
{
width
:
250
,
}
}
options=
{
completeOptions
}
>
<
Input
size=
"large"
placeholder=
"搜索部门/学员姓名"
/>
</
AutoComplete
>
);
function
getCompleteOptionData
(
value
){
const
params
=
{
depType
:
DepType
[
treeType
],
queryName
:
value
,
enterpriseId
:
User
.
getEnterpriseId
(),
source
:
0
,
//0代表来自企培
storeId
:
User
.
getStoreId
(),
userId
:
User
.
getUserId
(),
whetherCount
:
false
}
StoreService
.
getDepartmentUser
(
params
).
then
((
res
)
=>
{
const
_completeOptions
=
[];
const
userObj
=
{};
const
departmentGroupObj
=
{};
const
postobj
=
{};
const
{
departmentUserVOList
,
departmentVOList
}
=
res
.
result
;
if
(
departmentUserVOList
.
records
.
length
>
0
){
userObj
.
label
=
renderTitle
(
'员工'
);
userObj
.
options
=
departmentUserVOList
.
records
.
map
((
item
,
index
)
=>
{
return
renderItem
(
item
,
'user'
);
})
}
if
(
departmentVOList
.
length
>
0
){
switch
(
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
(
Object
.
keys
(
userObj
).
length
!==
0
){
_completeOptions
.
push
(
userObj
);
}
if
(
Object
.
keys
(
departmentGroupObj
).
length
!==
0
){
_completeOptions
.
push
(
departmentGroupObj
);
}
console
.
log
(
'_completeOptions'
,
_completeOptions
);
// setCompleteOption(_completeOptions);
});
}
useEffect
(()
=>
{
useEffect
(()
=>
{
getTreeData
();
getTreeData
();
},[
props
.
treeType
]);
},[
props
.
treeType
]);
useEffect
(()
=>
{
Bus
.
bind
(
"addCustomer"
,
addCustomer
)
},[]);
async
function
addCustomer
(){
await
getTreeData
();
props
.
searchUserList
(
setSelectUserParams
)
}
function
getTreeData
(){
function
getTreeData
(){
return
new
Promise
((
resolve
,
reject
)
=>
{
const
params
=
{
const
params
=
{
depType
:
DepType
[
treeType
],
departmentTypeEnum
:
DepType
[
treeType
],
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
:
true
whetherCount
:
true
}
}
StoreService
.
getDepartmentUser
(
params
).
then
((
res
)
=>
{
StoreService
.
queryDepartmentTree
(
params
).
then
((
res
)
=>
{
let
{
departmentVOList
=
[]}
=
res
.
result
;
// let { departmentVOList=[]} = res.result;
let
_treeData
=
handleData
(
departmentVOList
);
let
_treeData
=
handleData
(
res
.
result
);
console
.
log
(
"_treeData"
,
_treeData
);
setTreeData
(
_treeData
);
setTreeData
(
_treeData
);
resolve
();
});
});
})
}
}
function
handleData
(
dataArray
){
function
handleData
(
dataArray
){
const
_dataArray
=
dataArray
.
map
((
item
,
index
)
=>
{
const
_dataArray
=
dataArray
.
map
((
item
,
index
)
=>
{
...
@@ -214,20 +331,22 @@ function LeftStructureTree(props) {
...
@@ -214,20 +331,22 @@ function LeftStructureTree(props) {
getTreeData
()
getTreeData
()
}
}
function
selectUserList
(){
function
selectUserList
(
record
,
e
){
props
.
searchUserList
()
console
.
log
(
'e'
,
e
);
props
.
searchUserList
(
e
.
selectedNodes
[
0
]);
}
}
return
(
return
(
<
div
className=
"left-structure-tree"
>
<
div
className=
"left-structure-tree"
>
<
div
className=
"organization"
>
<
div
className=
"organization"
>
<
div
className=
"search-con"
>
<
div
className=
"search-con"
>
<
Search
{
/*
<Search
placeholder="搜索部门/学员姓名"
placeholder="搜索部门/学员姓名"
className="search search-input"
className="search search-input"
style={{ width: 245 }}
style={{ width: 245 }}
enterButton={<span className="icon iconfont"></span>}
enterButton={<span className="icon iconfont"></span>}
/>
/> */
}
<
Complete
/>
</
div
>
</
div
>
{
(
treeType
===
'postGrouptab'
||
treeType
===
'customGroupTab'
)
&&
(
{
(
treeType
===
'postGrouptab'
||
treeType
===
'customGroupTab'
)
&&
(
<
div
className=
"operate"
>
<
div
className=
"operate"
>
...
...
src/modules/college-manage/components/MemberTree.jsx
View file @
306a9e02
...
@@ -14,7 +14,7 @@ function MemberTree(props) {
...
@@ -14,7 +14,7 @@ function MemberTree(props) {
},[]);
},[]);
function
getTreeData
(){
function
getTreeData
(){
const
params
=
{
const
params
=
{
depType
:
props
.
depType
||
'DEP_CHAT'
,
depType
:
props
.
treeDepType
,
enterpriseId
:
User
.
getEnterpriseId
(),
enterpriseId
:
User
.
getEnterpriseId
(),
source
:
0
,
//0代表来自企培
source
:
0
,
//0代表来自企培
storeId
:
User
.
getStoreId
(),
storeId
:
User
.
getStoreId
(),
...
@@ -66,7 +66,7 @@ function MemberTree(props) {
...
@@ -66,7 +66,7 @@ function MemberTree(props) {
checkable
checkable
showIcon=
{
false
}
showIcon=
{
false
}
treeData=
{
treeData
}
treeData=
{
treeData
}
checkedKeys=
{
_
.
pluck
(
props
.
selectUserList
,
'id'
)
}
//
checkedKeys={_.pluck(props.selectUserList, 'id')}
onCheck=
{
(
selectedKeys
,
e
)
=>
treeSelected
(
selectedKeys
,
e
)
}
onCheck=
{
(
selectedKeys
,
e
)
=>
treeSelected
(
selectedKeys
,
e
)
}
titleRender=
{
(
nodeData
)
=>
{
titleRender=
{
(
nodeData
)
=>
{
return
(
return
(
...
...
src/modules/college-manage/modal/NewChooseMembersModal.jsx
View file @
306a9e02
...
@@ -101,25 +101,26 @@ class NewChooseMembersModal extends React.Component {
...
@@ -101,25 +101,26 @@ class NewChooseMembersModal extends React.Component {
addCustomer
=
()
=>
{
addCustomer
=
()
=>
{
const
{
selectUserList
}
=
this
.
state
;
const
{
selectUserList
}
=
this
.
state
;
const
{
d
epType
}
=
this
.
props
;
const
{
addD
epType
}
=
this
.
props
;
let
enterpriseUserList
=
[];
// 保存新加进去的成员
let
enterpriseUserList
=
[];
// 保存新加进去的成员
enterpriseUserList
=
selectUserList
.
map
((
item
)
=>
{
enterpriseUserList
=
selectUserList
.
map
((
item
)
=>
{
const
_item
=
{}
const
_item
=
{}
if
(
depType
===
'DEP_CHAT
'
){
if
(
addDepType
===
'DEP_ORG
'
){
_item
.
depUserType
=
'VISIBLE_USER'
;
_item
.
depUserType
=
'VISIBLE_USER'
;
}
else
{
}
else
{
_item
.
depUserType
=
'STORE_USER'
;
_item
.
depUserType
=
'STORE_USER'
;
}
}
_item
.
departmentId
=
item
.
depId
;
_item
.
departmentId
=
item
.
dep
artment
Id
;
_item
.
enterpriseVisibleUserId
=
item
.
userId
;
_item
.
enterpriseVisibleUserId
=
item
.
userId
;
return
_item
return
_item
})
})
const
_params
=
{
const
_params
=
{
storeId
:
User
.
getStoreId
(),
storeId
:
User
.
getStoreId
(),
depType
:
d
epType
,
depType
:
addD
epType
,
enterpriseUserList
,
userAndDepartmentList
:
enterpriseUserList
}
}
Service
.
Hades
(
'public/hades/addBatchUserAndDepartmentStoreCustomer'
,
_params
).
then
((
res
)
=>
{
Service
.
Hades
(
'public/hades/addBatchUserAndDepartmentStoreCustomer'
,
_params
).
then
((
res
)
=>
{
this
.
handleClose
();
this
.
props
.
onConfirm
();
this
.
props
.
onConfirm
();
})
})
}
}
...
@@ -148,7 +149,7 @@ class NewChooseMembersModal extends React.Component {
...
@@ -148,7 +149,7 @@ class NewChooseMembersModal extends React.Component {
}
}
render
()
{
render
()
{
const
{
type
,
d
epType
}
=
this
.
props
;
const
{
type
,
treeD
epType
}
=
this
.
props
;
const
{
selectUserList
,
selectObject
,
visible
,
openSetModal
}
=
this
.
state
;
const
{
selectUserList
,
selectObject
,
visible
,
openSetModal
}
=
this
.
state
;
const
title
=
type
===
'USER'
?
'添加员工'
:
'添加学员'
;
const
title
=
type
===
'USER'
?
'添加员工'
:
'添加学员'
;
return
(
return
(
...
@@ -184,7 +185,7 @@ class NewChooseMembersModal extends React.Component {
...
@@ -184,7 +185,7 @@ class NewChooseMembersModal extends React.Component {
enterButton=
{
<
span
className=
"icon iconfont"
>

</
span
>
}
enterButton=
{
<
span
className=
"icon iconfont"
>

</
span
>
}
/>
/>
<
div
className=
'container-left-body-table'
>
<
div
className=
'container-left-body-table'
>
<
MemberTree
depType=
{
d
epType
}
onSelect=
{
(
record
)
=>
{
this
.
treeSelect
(
record
)}
}
selectUserList=
{
selectUserList
}
/>
<
MemberTree
treeDepType=
{
treeD
epType
}
onSelect=
{
(
record
)
=>
{
this
.
treeSelect
(
record
)}
}
selectUserList=
{
selectUserList
}
/>
</
div
>
</
div
>
</
div
>
</
div
>
</
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