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
cd5f3152
Commit
cd5f3152
authored
Jul 28, 2021
by
zhangleyuan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:修改添加学员
parent
fe98d086
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
264 additions
and
221 deletions
+264
-221
src/data-source/store/request-apis.ts
+2
-1
src/domains/store-domain/constants.ts
+3
-2
src/modules/college-manage/NewUsersManagePage.jsx
+9
-8
src/modules/college-manage/components/CustomGroupTabCon.jsx
+0
-113
src/modules/college-manage/components/DepartMentTabCon.jsx
+135
-14
src/modules/college-manage/components/LeftStructureTree.jsx
+26
-6
src/modules/college-manage/components/LeftStructureTree.less
+62
-58
src/modules/college-manage/components/MemberTree.jsx
+3
-4
src/modules/college-manage/modal/AddOrEditPostGroupModal.jsx
+3
-3
src/modules/college-manage/modal/NewChooseMembersModal.jsx
+21
-12
No files found.
src/data-source/store/request-apis.ts
View file @
cd5f3152
...
@@ -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
7 15:08:02
* @LastEditTime: 2021-07-2
8 15:59:30
* @Description: Description
* @Description: Description
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
*/
*/
...
@@ -95,3 +95,4 @@ export function delDepartment(params: object) {
...
@@ -95,3 +95,4 @@ export function delDepartment(params: object) {
}
}
src/domains/store-domain/constants.ts
View file @
cd5f3152
...
@@ -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
7 15:29:08
* @LastEditTime: 2021-07-2
8 18:07:31
* @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_
ORG
'
,
'departMentTab'
:
'DEP_
CHAT
'
,
'postGrouptab'
:
'DEP_POST'
,
'postGrouptab'
:
'DEP_POST'
,
'customGroupTab'
:
'DEP_CUSTOM'
'customGroupTab'
:
'DEP_CUSTOM'
}
}
\ No newline at end of file
src/modules/college-manage/NewUsersManagePage.jsx
View file @
cd5f3152
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
* @Author: wufan
* @Author: wufan
* @Date: 2020-11-30 10:47:38
* @Date: 2020-11-30 10:47:38
* @LastEditors: Please set LastEditors
* @LastEditors: Please set LastEditors
* @LastEditTime: 2021-07-2
3 16:18:17
* @LastEditTime: 2021-07-2
8 15:50:38
* @Description: 学员管理页面
* @Description: 学员管理页面
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
*/
*/
...
@@ -20,7 +20,7 @@ const { TabPane } = Tabs;
...
@@ -20,7 +20,7 @@ const { TabPane } = Tabs;
function
UserManagePage
()
{
function
UserManagePage
()
{
const
[
currentTab
,
setCurrentTab
]
=
useState
(
"depart
ment
"
);
const
[
currentTab
,
setCurrentTab
]
=
useState
(
"depart
MentTab
"
);
const
[
courseList
,
setCourseList
]
=
useState
([]);
const
[
courseList
,
setCourseList
]
=
useState
([]);
const
[
total
,
setTotal
]
=
useState
(
0
);
const
[
total
,
setTotal
]
=
useState
(
0
);
const
[
query
,
setQuery
]
=
useState
({
const
[
query
,
setQuery
]
=
useState
({
...
@@ -41,21 +41,22 @@ function UserManagePage() {
...
@@ -41,21 +41,22 @@ function UserManagePage() {
}
}
}
}
activeKey=
{
currentTab
}
activeKey=
{
currentTab
}
>
>
<
TabPane
key=
"depart
ment
"
tab=
"部门"
></
TabPane
>
<
TabPane
key=
"depart
MentTab
"
tab=
"部门"
></
TabPane
>
<
TabPane
key=
"postGroup"
tab=
"岗位组"
></
TabPane
>
<
TabPane
key=
"postGroup
tab
"
tab=
"岗位组"
></
TabPane
>
<
TabPane
key=
"customGroup"
tab=
"自定义分组"
></
TabPane
>
<
TabPane
key=
"customGroup
Tab
"
tab=
"自定义分组"
></
TabPane
>
</
Tabs
>
</
Tabs
>
</
div
>
</
div
>
<
div
className=
"box-body tab-con"
>
<
div
className=
"box-body tab-con"
>
{
currentTab
===
'department'
&&
<
DepartMentTabCon
currentTab=
{
currentTab
}
/>
<
DepartMentTabCon
/>
{
/* {currentTab=== 'department' &&
}
}
{currentTab=== 'postGroup' &&
{currentTab=== 'postGroup' &&
<PostGroupTabCon/>
<PostGroupTabCon/>
}
}
{currentTab=== 'customGroup' &&
{currentTab=== 'customGroup' &&
<CustomGroupTabCon/>
<CustomGroupTabCon/>
}
}
*/
}
</
div
>
</
div
>
</
div
>
</
div
>
</
div
>
</
div
>
...
...
src/modules/college-manage/components/CustomGroupTabCon.jsx
View file @
cd5f3152
...
@@ -9,106 +9,9 @@ import UserTable from "./UserTable";
...
@@ -9,106 +9,9 @@ import UserTable from "./UserTable";
import
"./PostGroupTabCon.less"
;
import
"./PostGroupTabCon.less"
;
const
{
Search
}
=
Input
;
const
{
Search
}
=
Input
;
function
CustomGroupTabCon
()
{
function
CustomGroupTabCon
()
{
// const [addOrEditPostGroupShow, setAddOrEditPostGroupShow] = useState(false);
// const [postGroupModalType, setPostGroupModalType] = useState(""); // 初始化弹框类型为岗位组
// const [operatePostGroupModalType,setOperatePostGroupModalType] = useState(""); // 初始化弹框操作为添加操作
// const [postGroupModalTitle,setPostGroupModalTitle] = useState("");
// const [postGroupModalLable,setPostGroupModalLable] = useState("");
// const [postGroupName, setPostGroupName] = useState("");
const
[
postGroupTreeData
,
setPostGroupTreeData
]
=
useState
([]);
const
[
postGroupTreeData
,
setPostGroupTreeData
]
=
useState
([]);
// function closeAddOrEditPostGroupModal() {
// setAddOrEditPostGroupShow(false);
// }
// //添加岗位组/岗位
// function addPostGroup(type) {
// if (postGroupTreeData.length === 10) {
// message.error("岗位组数量已达10个上限");
// return;
// }
// setAddOrEditPostGroupShow(true);
// setOperatePostGroupModalType("add");
// if(type==='parentGroup'){
// setPostGroupModalType('parentGroup'); //parentGroup 代表岗位组
// setPostGroupModalTitle('添加分组集合');
// setPostGroupModalLable('分组集合');
// }else{
// setPostGroupModalType('sub');
// setPostGroupModalTitle('添加分组'); // sub代表岗位
// setPostGroupModalLable('分组');
// }
// }
//编辑岗位组/岗位
// function editPostGroup(record){
// setAddOrEditPostGroupShow(true);
// setOperatePostGroupModalType("edit");
// //level为0的时候编辑的是岗位组 大于0的时候
// if(record.level===0){
// setPostGroupModalType('parentGroup');
// setPostGroupModalTitle('编辑分组集合');
// setPostGroupModalLable('分组集合');
// }else{
// setPostGroupModalType('sub');
// setPostGroupModalTitle('编辑分组');
// setPostGroupModalLable('分组');
// }
// }
// function getPostGroupTreeData(){
// }
// function confirmAddOrEditPostGroup() {
// getPostGroupTreeData()
// }
// function delPostGroup(record){
// let title = '确认删除该分组集合吗?';
// let content= '删除后,该分组集合下的岗位及也将全部删除。';
// if(record.level>0){
// title = '确认删除该分组吗?';
// content = '删除后,不可恢复';
// }
// Modal.confirm({
// title,
// content,
// icon: <span className='icon iconfont default-confirm-icon'></span>,
// okText: '确定',
// okType: 'danger',
// cancelText: '取消',
// onOk: () => {
// },
// });
// }
return
(
return
(
<
div
className=
"post-group-tab-con"
>
<
div
className=
"post-group-tab-con"
>
{
/* <div className="organization">
<div className="search-con">
<Search
placeholder="搜索部门/学员姓名"
className="search search-input"
style={{ width: 245 }}
enterButton={<span className="icon iconfont"></span>}
/>
</div>
<div className="operate">
<Button
className="add-btn"
onClick={() => {
addPostGroup('postGroup');
}}
>
添加自定义分组
</Button>
</div>
<LeftStructureTree
treeData={postGroupTreeData}
treeType={"customGroupTab"}
editPostGroup={(record)=>editPostGroup(record)}
addPostGroup={(record)=>addPostGroup('post')}
/>
</div> */
}
<
LeftStructureTree
<
LeftStructureTree
treeData=
{
postGroupTreeData
}
treeData=
{
postGroupTreeData
}
treeType=
{
"customGroupTab"
}
treeType=
{
"customGroupTab"
}
...
@@ -124,22 +27,6 @@ function CustomGroupTabCon() {
...
@@ -124,22 +27,6 @@ function CustomGroupTabCon() {
</
div
>
</
div
>
<
UserTable
/>
<
UserTable
/>
</
div
>
</
div
>
{
/* {addOrEditPostGroupShow && (
<AddOrEditPostGroupModal
onClose={() => {
closeAddOrEditPostGroupModal();
}}
onConfirm={() => {
confirmAddOrEditPostGroup();
}}
title={postGroupModalTitle}
modalType={postGroupModalType}
modalOperateType={operatePostGroupModalType}
postGroupName={postGroupName}
postGroupTreeData={postGroupTreeData}
label={postGroupModalLable}
/>
)} */
}
</
div
>
</
div
>
);
);
}
}
...
...
src/modules/college-manage/components/DepartMentTabCon.jsx
View file @
cd5f3152
...
@@ -3,35 +3,156 @@ import { withRouter } from "react-router-dom";
...
@@ -3,35 +3,156 @@ import { withRouter } from "react-router-dom";
import
{
Button
,
Input
}
from
"antd"
;
import
{
Button
,
Input
}
from
"antd"
;
import
NewChooseMembersModal
from
"@/modules/college-manage/modal/NewChooseMembersModal"
;
import
NewChooseMembersModal
from
"@/modules/college-manage/modal/NewChooseMembersModal"
;
import
LeftStructureTree
from
'./LeftStructureTree'
;
import
LeftStructureTree
from
'./LeftStructureTree'
;
import
UserTable
from
'./UserTable'
import
{
XMTable
,
PageControl
}
from
'@/components'
;
import
college
from
'@/common/lottie/college.json'
;
import
{
DepType
}
from
'@/domains/store-domain/constants'
;
import
"./DepartMentTabCon.less"
;
import
"./DepartMentTabCon.less"
;
const
{
Search
}
=
Input
;
const
{
Search
}
=
Input
;
function
DepartMentTabCon
()
{
const
DefaultQuery
=
{
size
:
10
,
current
:
1
}
function
DepartMentTabCon
(
props
)
{
const
[
chooseMembersModalVisible
,
setChooseMembersModalVisible
]
=
useState
(
false
);
const
[
chooseMembersModalVisible
,
setChooseMembersModalVisible
]
=
useState
(
false
);
const
[
query
,
setQuery
]
=
useState
(
DefaultQuery
);
const
[
total
,
setTotal
]
=
useState
(
0
);
const
{
userParams
,
setUserParams
}
=
useState
({})
const
[
userListdata
,
setUserListData
]
=
useState
([]);
const
columns
=
[
{
title
:
'学员'
,
dataIndex
:
'user'
,
width
:
220
,
render
:
(
val
,
record
)
=>
{
return
<
span
>
{
val
}
</
span
>
}
},
{
title
:
'真实姓名'
,
dataIndex
:
'nickname'
,
width
:
'15%'
,
render
:
(
val
,
record
)
=>
{
return
<
span
>
{
val
}
</
span
>
}
},
{
title
:
'账号'
,
dataIndex
:
'account'
,
width
:
'15%'
,
render
:
(
val
,
record
)
=>
{
return
<
span
>
{
val
}
</
span
>
}
},
{
title
:
'岗位'
,
dataIndex
:
'post'
,
render
:
(
val
,
record
)
=>
{
return
<
span
>
{
val
}
</
span
>
}
},
{
title
:
'手机号'
,
dataIndex
:
'phone'
,
render
:
(
val
,
record
)
=>
{
return
<
span
>
{
val
}
</
span
>;
}
},
{
title
:
'注册时间'
,
dataIndex
:
'registerTime'
,
render
:
(
val
,
record
)
=>
{
return
<
span
>
{
val
}
</
span
>;
}
},
{
title
:
"操作"
,
key
:
"operate"
,
dataIndex
:
"operate"
,
render
:
(
val
,
record
)
=>
{
return
(
<
div
className=
"operate"
>
<
div
className=
"operate__item"
>
删除
</
div
>
</
div
>
)
}
},
];
function
closeChooseMembersModal
(){
function
closeChooseMembersModal
(){
setChooseMembersModalVisible
(
false
);
setChooseMembersModalVisible
(
false
);
}
}
function
getUserList
(
params
){
StoreService
.
getDepartmentUser
(
params
).
then
((
res
)
=>
{
const
{
records
=
[],
current
,
size
,
total
}
=
res
.
result
;
setUserListData
(
records
);
setQuery
({
current
,
size
});
setTotal
(
total
);
});
}
return
(
return
(
<
div
className=
"department-tab-con"
>
<
div
className=
"department-tab-con"
>
<
LeftStructureTree
treeType=
{
'departMentTab'
}
/>
{
props
.
currentTab
&&
<
LeftStructureTree
treeType=
{
props
.
currentTab
}
searchUserList=
{
(
params
)
=>
getUserList
(
params
)
}
/>
}
<
div
className=
"table-con"
>
<
div
className=
"table-con"
>
<
div
className=
"operate-area"
>
{
props
.
currentTab
===
'departMentTab'
&&
<
Button
type=
"primary"
className=
"add-user-btn"
onClick=
{
()
=>
{
setChooseMembersModalVisible
(
true
)}
}
>
添加学员
</
Button
>
<
div
className=
"operate-area"
>
<
Button
className=
"del-user-btn"
>
删除学员
</
Button
>
<
Button
type=
"primary"
className=
"add-user-btn"
onClick=
{
()
=>
{
setChooseMembersModalVisible
(
true
)}
}
>
添加学员
</
Button
>
<
Button
className=
"update-user-btn"
>
更新列表数据
</
Button
>
<
Button
className=
"del-user-btn"
>
删除学员
</
Button
>
<
span
className=
"origin-text"
>
数据来源企业微信通讯录
</
span
>
<
Button
className=
"update-user-btn"
>
更新列表数据
</
Button
>
<
span
className=
"view-text"
>
查看数据更新说明
</
span
>
<
span
className=
"origin-text"
>
数据来源企业微信通讯录
</
span
>
<
a
href=
'https://www.yuque.com/wangzhong-zkqw0/qixue'
target=
"_blank"
>
<
span
className=
"view-text"
>
查看数据更新说明
</
span
>
</
a
>
</
div
>
}
{
(
props
.
currentTab
===
'postGrouptab'
||
props
.
currentTab
===
'customGroupTab'
)
&&
<
div
className=
"operate-area"
>
<
Button
type=
"primary"
className=
"add-user-btn"
>
添加学员
</
Button
>
<
Button
className=
"del-user-btn"
>
移出学员
</
Button
>
</
div
>
}
<
div
className=
"user-table"
>
<
XMTable
renderEmpty=
{
{
image
:
college
,
description
:
'暂无数据'
,
}
}
bordered
size=
'middle'
pagination=
{
false
}
columns=
{
columns
}
scroll=
{
{
x
:
1300
}
}
dataSource=
{
userListdata
}
/>
<
div
className=
'box-footer'
>
<
PageControl
current=
{
query
.
current
}
pageSize=
{
query
.
size
}
total=
{
total
}
toPage=
{
(
page
)
=>
{
const
queryStates
=
_
.
clone
(
query
);
queryStates
.
current
=
page
;
setQuery
(
queryStates
);
}
}
/>
</
div
>
</
div
>
</
div
>
<
UserTable
/>
</
div
>
</
div
>
{
{
chooseMembersModalVisible
&&
chooseMembersModalVisible
&&
<
NewChooseMembersModal
visible=
{
chooseMembersModalVisible
}
type=
"CUSTOMER"
close=
{
()
=>
{
closeChooseMembersModal
()}
}
onConfirm=
{
()
=>
{}
}
/>
<
NewChooseMembersModal
visible=
{
chooseMembersModalVisible
}
type=
"CUSTOMER"
depType=
{
DepType
[
props
.
currentTab
]
}
close=
{
()
=>
{
closeChooseMembersModal
()}
}
onConfirm=
{
()
=>
{}
}
/>
}
}
</
div
>
</
div
>
);
);
}
}
...
...
src/modules/college-manage/components/LeftStructureTree.jsx
View file @
cd5f3152
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
}
from
"antd"
;
import
{
Tree
,
Input
,
Dropdown
,
Menu
,
Button
,
Modal
,
message
}
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"
;
...
@@ -21,7 +21,7 @@ function LeftStructureTree(props) {
...
@@ -21,7 +21,7 @@ function LeftStructureTree(props) {
const
[
currentGroupData
,
setCurrentGroupData
]
=
useState
({});
const
[
currentGroupData
,
setCurrentGroupData
]
=
useState
({});
useEffect
(()
=>
{
useEffect
(()
=>
{
getTreeData
();
getTreeData
();
},[]);
},[
props
.
treeType
]);
function
getTreeData
(){
function
getTreeData
(){
const
params
=
{
const
params
=
{
...
@@ -133,10 +133,25 @@ function LeftStructureTree(props) {
...
@@ -133,10 +133,25 @@ function LeftStructureTree(props) {
okType
:
'danger'
,
okType
:
'danger'
,
cancelText
:
'取消'
,
cancelText
:
'取消'
,
onOk
:
()
=>
{
onOk
:
()
=>
{
delGroup
(
record
);
},
},
});
});
}
}
function
delGroup
(
record
){
let
parmas
=
{
departmentId
:
record
.
id
,
enterpriseId
:
User
.
getEnterpriseId
(),
source
:
0
,
storeId
:
User
.
getStoreId
(),
userId
:
User
.
getUserId
()
}
StoreService
.
delDepartment
(
parmas
).
then
((
res
)
=>
{
message
.
success
(
`删除成功`
)
getTreeData
();
});
}
//添加自定义分组集合/分组
//添加自定义分组集合/分组
function
addCustomGroup
(
level
,
record
)
{
function
addCustomGroup
(
level
,
record
)
{
...
@@ -188,7 +203,7 @@ function LeftStructureTree(props) {
...
@@ -188,7 +203,7 @@ function LeftStructureTree(props) {
okType
:
'danger'
,
okType
:
'danger'
,
cancelText
:
'取消'
,
cancelText
:
'取消'
,
onOk
:
()
=>
{
onOk
:
()
=>
{
delGroup
(
record
)
},
},
});
});
}
}
...
@@ -199,6 +214,10 @@ function LeftStructureTree(props) {
...
@@ -199,6 +214,10 @@ function LeftStructureTree(props) {
getTreeData
()
getTreeData
()
}
}
function
selectUserList
(){
props
.
searchUserList
()
}
return
(
return
(
<
div
className=
"left-structure-tree"
>
<
div
className=
"left-structure-tree"
>
<
div
className=
"organization"
>
<
div
className=
"organization"
>
...
@@ -216,7 +235,7 @@ function LeftStructureTree(props) {
...
@@ -216,7 +235,7 @@ function LeftStructureTree(props) {
<
Button
<
Button
className=
"add-btn"
className=
"add-btn"
onClick=
{
()
=>
{
onClick=
{
()
=>
{
addPostGroup
(
0
)
addPostGroup
(
0
)
}
}
}
}
>
>
添加岗位组
添加岗位组
...
@@ -239,6 +258,7 @@ function LeftStructureTree(props) {
...
@@ -239,6 +258,7 @@ function LeftStructureTree(props) {
defaultExpandAll
defaultExpandAll
showIcon=
{
false
}
showIcon=
{
false
}
treeData=
{
treeData
}
treeData=
{
treeData
}
onSelect=
{
selectUserList
}
titleRender=
{
(
nodeData
)
=>
{
titleRender=
{
(
nodeData
)
=>
{
return
(
return
(
<
div
<
div
...
...
src/modules/college-manage/components/LeftStructureTree.less
View file @
cd5f3152
.left-structure-tree {
.left-structure-tree {
margin-right: 24px;
margin-right: 24px;
overflow: scroll
;
width:250px
;
height: calc(~'100vh - 260px');
height: calc(~'100vh - 260px');
.organization{
.search-con{
overflow: scroll;
margin-bottom: 10px;
.search-con{
}
margin-bottom: 10px;
.operate {
margin-bottom:16px;
.add-btn {
width: 230px;
height:32px;
}
}
}
.operate {
margin-bottom:16px;
&::-webkit-scrollbar {
.add-btn {
display: none;
width: 230px;
}
height:32px;
.node-title-div {
display: flex;
justify-content: space-between;
white-space: nowrap;
.item-icon {
img {
width: 16px;
height: 16px;
}
}
}
}
.item-title {
position: absolute;
&::-webkit-scrollbar {
overflow: hidden;
display: none;
white-space: nowrap;
text-overflow: ellipsis;
width: 55%;
left: 28px;
}
.item-more {
visibility: hidden;
position: absolute;
right: 8px;
text-align: right;
}
.item-count {
visibility: visible;
position: absolute;
right: 12px;
text-align: right;
}
}
// 修改树样式
.ant-tree .ant-tree-treenode {
padding: 10px 0 14px 0;
}
.ant-tree.ant-tree-directory {
.ant-tree-node-selected{
color:#2966FF !important;
}
}
.ant-tree-treenode-selected:hover::before,
.node-title-div {
.ant-tree-treenode-selected::before {
display: flex;
background: #f3f6fa;
justify-content: space-between;
white-space: nowrap;
.item-icon {
img {
width: 16px;
height: 16px;
}
}
.item-title {
position: absolute;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
width: 55%;
left: 28px;
}
.item-more {
visibility: hidden;
position: absolute;
right: 8px;
text-align: right;
}
.item-count {
visibility: visible;
position: absolute;
right: 12px;
text-align: right;
}
}
}
.ant-tree-treenode-selected .ant-tree-switcher {
// 修改树样式
color: #666666;
.ant-tree .ant-tree-treenode {
padding: 10px 0 14px 0;
}
}
.ant-tree-treenode .ant-tree-node-content-wrapper {
.ant-tree.ant-tree-directory {
color: #666666;
.ant-tree-node-selected{
color:#2966FF !important;
}
.ant-tree-treenode-selected:hover::before,
.ant-tree-treenode-selected::before {
background: #f3f6fa;
}
.ant-tree-treenode-selected .ant-tree-switcher {
color: #666666;
}
.ant-tree-treenode .ant-tree-node-content-wrapper {
color: #666666;
}
}
}
}
}
}
}
\ No newline at end of file
src/modules/college-manage/components/MemberTree.jsx
View file @
cd5f3152
...
@@ -4,18 +4,17 @@ import { Tree} from "antd";
...
@@ -4,18 +4,17 @@ import { Tree} from "antd";
import
StoreService
from
"@/domains/store-domain/storeService"
;
import
StoreService
from
"@/domains/store-domain/storeService"
;
import
User
from
'@/common/js/user'
import
User
from
'@/common/js/user'
import
"./MemberTree.less"
;
import
"./MemberTree.less"
;
import
_
from
'underscore'
;
const
{
DirectoryTree
}
=
Tree
;
const
{
DirectoryTree
}
=
Tree
;
function
MemberTree
(
props
)
{
function
MemberTree
(
props
)
{
const
{
treeType
}
=
props
;
const
[
treeData
,
setTreeData
]
=
useState
([]);
const
[
treeData
,
setTreeData
]
=
useState
([]);
useEffect
(()
=>
{
useEffect
(()
=>
{
getTreeData
();
getTreeData
();
},[]);
},[]);
function
getTreeData
(){
function
getTreeData
(){
const
params
=
{
const
params
=
{
depType
:
'DEP_CHAT'
,
depType
:
props
.
depType
||
'DEP_CHAT'
,
enterpriseId
:
User
.
getEnterpriseId
(),
enterpriseId
:
User
.
getEnterpriseId
(),
source
:
0
,
//0代表来自企培
source
:
0
,
//0代表来自企培
storeId
:
User
.
getStoreId
(),
storeId
:
User
.
getStoreId
(),
...
@@ -54,7 +53,6 @@ function MemberTree(props) {
...
@@ -54,7 +53,6 @@ function MemberTree(props) {
_checkedNodes
.
map
((
item
,
index
)
=>
{
_checkedNodes
.
map
((
item
,
index
)
=>
{
if
(
item
.
userId
){
if
(
item
.
userId
){
_selectNodes
.
push
(
item
);
_selectNodes
.
push
(
item
);
}
}
})
})
console
.
log
(
'_selectNodes'
,
_selectNodes
);
console
.
log
(
'_selectNodes'
,
_selectNodes
);
...
@@ -68,6 +66,7 @@ function MemberTree(props) {
...
@@ -68,6 +66,7 @@ function MemberTree(props) {
checkable
checkable
showIcon=
{
false
}
showIcon=
{
false
}
treeData=
{
treeData
}
treeData=
{
treeData
}
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/AddOrEditPostGroupModal.jsx
View file @
cd5f3152
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
* @Author: wufan
* @Author: wufan
* @Date: 2020-11-27 16:21:49
* @Date: 2020-11-27 16:21:49
* @LastEditors: Please set LastEditors
* @LastEditors: Please set LastEditors
* @LastEditTime: 2021-07-2
7 18:25:35
* @LastEditTime: 2021-07-2
8 10:15:37
* @Description: Description
* @Description: Description
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
*/
*/
...
@@ -63,7 +63,7 @@ function AddOrEditPostGroupModal(props) {
...
@@ -63,7 +63,7 @@ function AddOrEditPostGroupModal(props) {
const
{
postGroupModalLevel
,
currentTab
,
currentGroupData
,
label
}
=
props
const
{
postGroupModalLevel
,
currentTab
,
currentGroupData
,
label
}
=
props
let
parmas
=
{
let
parmas
=
{
departmentLevel
:
postGroupModalLevel
,
departmentLevel
:
postGroupModalLevel
,
departmentId
:
props
.
currentGroupData
.
id
,
departmentId
:
currentGroupData
.
id
,
depType
:
DepType
[
currentTab
],
depType
:
DepType
[
currentTab
],
departmentName
:
postGroupName
,
departmentName
:
postGroupName
,
enterpriseId
:
User
.
getEnterpriseId
(),
enterpriseId
:
User
.
getEnterpriseId
(),
...
@@ -74,7 +74,7 @@ function AddOrEditPostGroupModal(props) {
...
@@ -74,7 +74,7 @@ function AddOrEditPostGroupModal(props) {
if
(
postGroupModalLevel
===
0
){
if
(
postGroupModalLevel
===
0
){
parmas
.
parentId
=
0
;
parmas
.
parentId
=
0
;
}
else
{
}
else
{
parmas
.
parentId
=
currentGroupData
.
i
d
parmas
.
parentId
=
currentGroupData
.
parentI
d
}
}
StoreService
.
editDepartment
(
parmas
).
then
((
res
)
=>
{
StoreService
.
editDepartment
(
parmas
).
then
((
res
)
=>
{
message
.
success
(
`
${
label
}
修改成功`
)
message
.
success
(
`
${
label
}
修改成功`
)
...
...
src/modules/college-manage/modal/NewChooseMembersModal.jsx
View file @
cd5f3152
...
@@ -82,12 +82,12 @@ class NewChooseMembersModal extends React.Component {
...
@@ -82,12 +82,12 @@ class NewChooseMembersModal extends React.Component {
}
}
clearOneUser
=
(
record
)
=>
{
clearOneUser
=
(
record
)
=>
{
console
.
log
(
"record"
,
record
);
const
{
selectUserList
}
=
this
.
state
;
const
{
selectUserList
}
=
this
.
state
;
const
_selectUserList
=
selectUserList
.
map
((
item
,
index
)
=>
{
const
_selectUserList
=
selectUserList
.
filter
((
item
,
index
)
=>
{
if
(
item
.
userId
!==
record
.
userId
){
return
item
.
userId
!==
record
.
userId
return
item
}
})
})
console
.
log
(
'selectUserList'
,
selectUserList
);
this
.
setState
({
this
.
setState
({
selectUserList
:
_selectUserList
selectUserList
:
_selectUserList
})
})
...
@@ -101,16 +101,25 @@ class NewChooseMembersModal extends React.Component {
...
@@ -101,16 +101,25 @@ class NewChooseMembersModal extends React.Component {
addCustomer
=
()
=>
{
addCustomer
=
()
=>
{
const
{
selectUserList
}
=
this
.
state
;
const
{
selectUserList
}
=
this
.
state
;
let
enterpriseVisibleUserIdList
=
[];
// 保存新加进去的成员
const
{
depType
}
=
this
.
props
;
selectUserList
.
map
((
item
)
=>
{
let
enterpriseUserList
=
[];
// 保存新加进去的成员
enterpriseVisibleUserIdList
.
push
(
item
.
enterpriseVisibleUserId
)
enterpriseUserList
=
selectUserList
.
map
((
item
)
=>
{
return
enterpriseVisibleUserIdList
const
_item
=
{}
if
(
depType
===
'DEP_CHAT'
){
_item
.
depUserType
=
'VISIBLE_USER'
;
}
else
{
_item
.
depUserType
=
'STORE_USER'
;
}
_item
.
departmentId
=
item
.
depId
;
_item
.
enterpriseVisibleUserId
=
item
.
userId
;
return
_item
})
})
const
_params
=
{
const
_params
=
{
storeId
:
User
.
getStoreId
(),
storeId
:
User
.
getStoreId
(),
enterpriseVisibleUserIdList
,
depType
:
depType
,
enterpriseUserList
,
}
}
Service
.
Hades
(
'public/hades/addBatch
Enterprise
StoreCustomer'
,
_params
).
then
((
res
)
=>
{
Service
.
Hades
(
'public/hades/addBatch
UserAndDepartment
StoreCustomer'
,
_params
).
then
((
res
)
=>
{
this
.
props
.
onConfirm
();
this
.
props
.
onConfirm
();
})
})
}
}
...
@@ -139,7 +148,7 @@ class NewChooseMembersModal extends React.Component {
...
@@ -139,7 +148,7 @@ class NewChooseMembersModal extends React.Component {
}
}
render
()
{
render
()
{
const
{
type
}
=
this
.
props
;
const
{
type
,
depType
}
=
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
(
...
@@ -175,7 +184,7 @@ class NewChooseMembersModal extends React.Component {
...
@@ -175,7 +184,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
onSelect=
{
(
record
)
=>
{
this
.
treeSelect
(
record
)}
}
/>
<
MemberTree
depType=
{
depType
}
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