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
d7bee40b
Commit
d7bee40b
authored
Aug 11, 2021
by
zhangleyuan
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feature/zhangleyuan/20210719/personnel-organization' into rc
parents
1e44451d
33d85cba
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
274 additions
and
25 deletions
+274
-25
src/modules/college-manage/EmployeeManage.less
+2
-1
src/modules/college-manage/EmployeeManage.tsx
+2
-2
src/modules/college-manage/components/DepartMentTabCon.jsx
+11
-5
src/modules/college-manage/components/DepartMentTabCon.less
+1
-0
src/modules/college-manage/components/LeftStructureTree.jsx
+8
-1
src/modules/college-manage/components/LeftStructureTree.less
+14
-0
src/modules/college-manage/components/MemberTree.less
+6
-0
src/modules/college-manage/components/SearchUser.jsx
+33
-13
src/modules/college-manage/components/SearchUser.less
+27
-0
src/modules/college-manage/modal/NewChooseMembersModal.jsx
+2
-2
src/modules/college-manage/modal/NewChooseMembersModal.less
+167
-0
src/modules/college-manage/modal/SetEmployeeModal.less
+1
-1
No files found.
src/modules/college-manage/EmployeeManage.less
View file @
d7bee40b
...
...
@@ -24,6 +24,6 @@
white-space: nowrap;
}
.edit-disable{
color:#666;
color:#666
!important
;
}
}
\ No newline at end of file
src/modules/college-manage/EmployeeManage.tsx
View file @
d7bee40b
...
...
@@ -334,7 +334,7 @@ function EmployeeManage() {
if
(
num
<
3
){
return
confirm
({
title
:
"确定更新列表数据吗?"
,
content
:
`员工数据来源企微通讯录,一天只能更新3次,今日还能更新
${
3
-
num
}
次。`
,
content
:
<
span
>
员工数据来源企微通讯录,一天只能更新3次,今日还能更新
<
span
style=
{
{
color
:
'#2966FF'
}
}
>
{
3
-
num
}
</
span
>
次。
</
span
>
,
icon
:
(
<
span
className=
"icon iconfont default-confirm-icon"
>

</
span
>
),
...
...
@@ -348,7 +348,7 @@ function EmployeeManage() {
Modal
.
warning
({
title
:
'提示'
,
okText
:
'我知道了'
,
content
:
'员工数据今日更新次数已达上限(3次),无法继续更新。'
,
content
:
<
span
>
员工数据今日更新次数已达上限
<
span
style=
{
{
color
:
'#2966FF'
}
}
>
(3次)
</
span
>
,无法继续更新。
</
span
>
,
icon
:
(
<
span
className=
'icon iconfont default-confirm-icon'
style=
{
{
color
:
'#FFBB54 !important'
}
}
>

...
...
src/modules/college-manage/components/DepartMentTabCon.jsx
View file @
d7bee40b
...
...
@@ -126,7 +126,11 @@ function DepartMentTabCon(props) {
<
span
>
-
</
span
>
// <div className="operate__item" onClick=
{()
=>
delUser
(
'single'
,
item
.
userId
)}
>
删除
<
/div
>
:
<
div
className=
"operate__item"
onClick=
{
()
=>
delUser
(
'single'
,
item
.
userId
)
}
>
移出
</
div
>
(
selectDep
.
depLevel
>
0
?
<
div
className=
"operate__item"
onClick=
{
()
=>
delUser
(
'single'
,
item
.
userId
)
}
>
移出
</
div
>
:
<
span
>
-
</
span
>
)
}
</
div
>
);
...
...
@@ -290,7 +294,7 @@ function DepartMentTabCon(props) {
if
(
num
<
3
){
return
confirm
({
title
:
"确定更新列表数据吗?"
,
content
:
`学员数据来源企微通讯录,一天只能更新3次,今日还能更新
${
3
-
num
}
次。`
,
content
:
<
span
>
学员数据来源企微通讯录,一天只能更新3次,今日还能更新
<
span
style=
{
{
color
:
'#2966FF'
}
}
>
{
3
-
num
}
</
span
>
次。
</
span
>
,
icon
:
(
<
span
className=
"icon iconfont default-confirm-icon"
>

</
span
>
),
...
...
@@ -304,7 +308,7 @@ function DepartMentTabCon(props) {
Modal
.
warning
({
title
:
'提示'
,
okText
:
'我知道了'
,
content
:
'学员数据今日更新次数已达上限(3次),无法继续更新。'
,
content
:
<
span
>
学员数据今日更新次数已达上限
<
span
style=
{
{
color
:
'#2966FF'
}
}
>
(3次)
</
span
>
,无法继续更新。
</
span
>
,
icon
:
(
<
span
className=
'icon iconfont default-confirm-icon'
style=
{
{
color
:
'#FFBB54 !important'
}
}
>

...
...
@@ -379,7 +383,9 @@ function DepartMentTabCon(props) {
添加学员
</
Button
>
}
<
Button
className=
"del-user-btn"
onClick=
{
()
=>
delUser
(
'multiple'
)
}
>
移出学员
</
Button
>
{
selectDep
.
depLevel
>
0
&&
<
Button
className=
"del-user-btn"
onClick=
{
()
=>
delUser
(
'multiple'
)
}
>
移出学员
</
Button
>
}
</
div
>
)
}
<
div
className=
"user-table"
>
...
...
@@ -388,7 +394,7 @@ function DepartMentTabCon(props) {
image
:
college
,
description
:
"暂无数据"
,
}
}
scroll=
{
{
x
:
8
00
}
}
scroll=
{
{
x
:
12
00
}
}
bordered
size=
"middle"
pagination=
{
false
}
...
...
src/modules/college-manage/components/DepartMentTabCon.less
View file @
d7bee40b
...
...
@@ -2,6 +2,7 @@
display: flex;
.table-con{
flex:1;
max-width: calc(100% - 290px);
.post-name{
max-width: 200px;
overflow: hidden;
...
...
src/modules/college-manage/components/LeftStructureTree.jsx
View file @
d7bee40b
...
...
@@ -86,7 +86,10 @@ function LeftStructureTree(props) {
});
const
notFoundContentNode
=
()
=>
{
return
<
span
>
暂无数据
</
span
>
return
<
div
className=
"empty-con"
>
<
img
src=
"https://image.xiaomaiketang.com/xm/wRDrb2pJFb.png"
className=
"empty-img"
/>
<
div
className=
"empty-text"
>
暂无数据
</
div
>
</
div
>
}
function
handlePlaceHolder
(){
let
placeholder
=
''
;
...
...
@@ -497,6 +500,10 @@ function LeftStructureTree(props) {
onSelect=
{
confirmSearchSelect
}
placeholder=
{
handlePlaceHolder
()
}
>
<
Search
style=
{
{
width
:
250
}
}
enterButton=
{
<
span
className=
'icon iconfont'
>

</
span
>
}
/>
</
AutoComplete
>
</
div
>
{
(
props
.
treeType
===
'postGrouptab'
||
props
.
treeType
===
'customGroupTab'
)
&&
(
...
...
src/modules/college-manage/components/LeftStructureTree.less
View file @
d7bee40b
...
...
@@ -70,7 +70,20 @@
color: #666666;
}
}
}
}
.certain-category-search-dropdown{
.empty-con{
text-align:center;
.empty-img{
width:150px;
height:150px;
}
.empty-text{
color:#666;
}
}
}
\ No newline at end of file
src/modules/college-manage/components/MemberTree.less
View file @
d7bee40b
...
...
@@ -3,7 +3,12 @@
color:#666;
font-size:14px;
.title-icon{
font-size:14px;
color:#999;
margin-right:8px;
}
}
.ant-tree.ant-tree-directory .ant-tree-treenode-selected:hover::before, .ant-tree.ant-tree-directory .ant-tree-treenode-selected::before{
background: none;
}
}
\ No newline at end of file
src/modules/college-manage/components/SearchUser.jsx
View file @
d7bee40b
import
React
,
{
useEffect
,
useState
}
from
"react"
;
import
{
withRouter
}
from
"react-router-dom"
;
import
{
Input
,
Checkbox
}
from
"antd"
;
import
{
Input
,
Checkbox
,
Tooltip
}
from
"antd"
;
import
StoreService
from
"@/domains/store-domain/storeService"
;
import
User
from
'@/common/js/user'
;
import
WWOpenDataCom
from
'@/components/WWOpenDataCom'
;
...
...
@@ -41,6 +41,12 @@ function SearchUser(props) {
};
}
function
handleDepName
(
depArray
){
const
depArrayDom
=
depArray
.
map
((
item
,
index
)
=>
{
return
<
span
><
WWOpenDataCom
type=
"departmentName"
openid=
{
item
}
/>
;
</
span
>
});
return
depArrayDom
;
};
return
(
<
div
className=
"search-user"
style=
{
{
width
:
'300px'
}
}
id=
"search-user"
>
<
Search
...
...
@@ -55,7 +61,7 @@ function SearchUser(props) {
<
div
className=
"drop-down"
>
<
div
className=
"drop-down__list"
>
{
props
.
data
.
departmentUserVOList
&&
<
div
>
(
props
.
data
.
departmentUserVOList
.
length
>
0
&&
<
div
className=
"drop-down__item-user"
>
<
div
className=
"drop-down__item__title"
>
员工
</
div
>
...
...
@@ -67,13 +73,16 @@ function SearchUser(props) {
<
div
className=
"drop-down__item__con__item"
>
<
div
className=
"drop-down__item__con__item__left"
>
<
span
className=
"icon iconfont title-icon"
>

</
span
>
<
WWOpenDataCom
type=
"userName"
openid=
{
item
.
userName
}
/>
<
WWOpenDataCom
type=
"userName"
openid=
{
item
.
userName
}
/>
</
div
>
<
div
className=
"drop-down__item__con__item__right"
>
{
item
.
depNamesList
.
map
((
_item
,
index
)
=>
{
return
<
span
>
<
WWOpenDataCom
type=
"departmentName"
openid=
{
_item
}
/>
{
index
<
(
item
.
depNamesList
.
length
-
1
)?
';'
:
''
}
</
span
>
})
}
<
Tooltip
title=
{
<
div
>
{
handleDepName
(
item
.
depNamesList
)
}
</
div
>
}
placement=
'top'
arrowPointAtCenter
>
{
item
.
depNamesList
.
map
((
_item
,
index
)
=>
{
return
<
span
>
<
WWOpenDataCom
type=
"departmentName"
openid=
{
_item
}
/>
{
index
<
(
item
.
depNamesList
.
length
-
1
)?
';'
:
''
}
</
span
>
})
}
</
Tooltip
>
</
div
>
</
div
>
</
Checkbox
>
...
...
@@ -82,11 +91,11 @@ function SearchUser(props) {
}
</
div
>
</
div
>
</
div
>
</
div
>
)
}
{
props
.
data
.
departmentVOList
&&
<
div
>
<
div
className=
"drop-down__item__title"
>
{
props
.
data
.
departmentVOList
&&
(
props
.
data
.
departmentVOList
.
length
>
0
&&
<
div
>
<
div
className=
"drop-down__item__title
drop-down__item__title-dep
"
>
部门
</
div
>
<
div
className=
"drop-down__item__con"
>
...
...
@@ -104,10 +113,21 @@ function SearchUser(props) {
}
</
div
>
</
div
>
</
div
>
</
div
>
)
}
{
(
!
props
.
data
.
departmentUserVOList
&&
!
props
.
data
.
departmentVOList
)
&&
<
div
>
暂无数据
</
div
>
<
div
className=
"empty-con"
>
<
img
src=
"https://image.xiaomaiketang.com/xm/wRDrb2pJFb.png"
className=
"empty-img"
/>
<
div
className=
"empty-text"
>
暂无数据
</
div
>
</
div
>
}
{
(
props
.
data
.
departmentUserVOList
&&
props
.
data
.
departmentVOList
)
&&
(
(
props
.
data
.
departmentUserVOList
.
length
===
0
&&
props
.
data
.
departmentVOList
.
length
===
0
)
&&
<
div
className=
"empty-con"
>
<
img
src=
"https://image.xiaomaiketang.com/xm/wRDrb2pJFb.png"
className=
"empty-img"
/>
<
div
className=
"empty-text"
>
暂无数据
</
div
>
</
div
>
)
}
</
div
>
</
div
>
...
...
src/modules/college-manage/components/SearchUser.less
View file @
d7bee40b
...
...
@@ -10,14 +10,30 @@
box-shadow: 0px 2px 15px 6px rgba(0, 0, 0, 0.05);
border-radius:2px;
width:270px;
// .drop-down__item-user{
// margin-bottom:30px;
// }
.drop-down__item__title{
font-size:14px;
color:#666;
margin-bottom:14px;
}
.ant-checkbox-wrapper{
width:100%;
.drop-down__item__con__item{
margin-bottom:24px;
display:flex;
width:220px;
justify-content:space-between;
color:#333;
font-size:14px;
.drop-down__item__con__item__left{
.title-icon{
color:#999;
margin-right:3px;
}
}
.drop-down__item__con__item__right{
width:84px;
text-align:right;
...
...
@@ -28,5 +44,15 @@
}
}
}
.empty-con{
text-align:center;
.empty-img{
width:150px;
height:150px;
}
.empty-text{
color:#666;
}
}
}
}
\ No newline at end of file
src/modules/college-manage/modal/NewChooseMembersModal.jsx
View file @
d7bee40b
...
...
@@ -17,7 +17,7 @@ import { DepType } from "@/domains/store-domain/constants";
import
StoreService
from
"@/domains/store-domain/storeService"
;
import
SearchUser
from
"../components/SearchUser"
import
WWOpenDataCom
from
'@/components/WWOpenDataCom'
;
import
'./ChooseMembersModal.less'
;
import
'./
New
ChooseMembersModal.less'
;
import
_
from
'underscore'
;
const
{
Search
}
=
Input
;
...
...
@@ -57,7 +57,7 @@ class NewChooseMembersModal extends React.Component {
<
div
className=
'avatar'
>
<
span
className=
"icon iconfont avatar-icon"
>

</
span
>
<
Tooltip
title=
{
<
WWOpenDataCom
type=
"userName"
openid=
{
userName
}
/>
}
>
<
span
className=
'user
Img
'
>
<
span
className=
'user
Name
'
>
<
WWOpenDataCom
type=
"userName"
openid=
{
userName
}
/>
{
/* {userName} */
}
</
span
>
...
...
src/modules/college-manage/modal/NewChooseMembersModal.less
View file @
d7bee40b
.choose-member-modal {
.member-container{
display: flex;
height: 417px;
.container-left{
width: 50%;
padding-right: 10px;
margin-left: 10px;
.container-left-header{
margin-bottom: 12px;
}
.container-left-body{
border: 1px solid #E9E9E9;
height: 100%;
.ant-table-thead > tr > th {
font-weight:400!important;
}
.search{
width: 305px;
padding: 7px 7px;
}
.container-left-body-table{
width: 300px;
height: 330px;
overflow: scroll;
.ant-table {
border: none;
min-height: 250px !important;
.ant-table-header{
margin-bottom: -7px !important;
>table > .ant-table-thead > tr > th {
background-color: #fff !important;
}
}
.ant-table-tbody{
>tr {
>td {
border-bottom: none;
background-color: #fff !important;
padding: 11px 0!important;
}
&:hover {
>td {
background: #F3F6FA !important;
}
}
}
}
}
.ant-empty-normal {
margin: 80px 0 !important;
}
.avatar{
display: flex;
align-items: center;
.avatar-icon {
font-size:14px;
color:#999;
margin-right: 6px;
}
.userName {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
font-size:14px;
color:#333;
}
}
}
}
}
.container-right{
width: 50%;
border: 1px solid #E9E9E9;
.span-left{
line-height: 45px;
margin-left: 10px;
.span-left-l{
color: #2966FF;
cursor: pointer;
}
}
.span-right{
line-height: 45px;
float: right;
margin-right: 10px;
color: #999;
.span-right-l{
color: #2966FF;
cursor: pointer;
}
}
.container-right-body{
min-height:376px;
border-top: 1px solid #e8e8e8;
.edit {
.edit-icon {
color:#999;
font-size:14px;
}
}
.edit-img{
width: 16px;
height: 16px;
}
.ant-table .ant-table-body {
overflow: auto;
max-height: 376px!important;
}
.ant-table tbody {
tr{
background: #fff;
&:first-child {
display: block;
overflow: hidden;
}
td{
padding:12px 18px !important;
}
}
}
.ant-empty-normal {
margin: 120px 0 !important;
}
.ant-empty {
margin-top: 76px;
}
.avatar{
display: flex;
align-items: center;
.avatar-icon {
font-size:14px;
color:#999;
margin-right: 6px;
}
.userName {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
font-size:14px;
color:#333;
}
}
.ant-table-tbody{
>tr >td {
border-bottom:none;
}
>tr .ant-table-selection-column{
width: 30px !important;
}
}
}
}
}
}
\ No newline at end of file
src/modules/college-manage/modal/SetEmployeeModal.less
View file @
d7bee40b
...
...
@@ -47,7 +47,7 @@
flex-shrink: 0;
}
&.selected {
background:
rgba(255, 183, 20,
0.1);
background:
rgba(41, 102, 255,
0.1);
&::after {
content: '';
position: absolute;
...
...
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