Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
A
attendance-performance-platform
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
赵啸非
attendance-performance-platform
Commits
767f6e95
Commit
767f6e95
authored
Apr 12, 2023
by
dll
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
'提交'
parent
dddd0bca
Changes
14
Show whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
460 additions
and
294 deletions
+460
-294
attendance-performance-manager-ui/admin/src/router.js
attendance-performance-manager-ui/admin/src/router.js
+5
-3
attendance-performance-manager-ui/admin/src/views/attendance/class/dialogshow.vue
...anager-ui/admin/src/views/attendance/class/dialogshow.vue
+115
-96
attendance-performance-manager-ui/admin/src/views/attendance/class/list.vue
...ance-manager-ui/admin/src/views/attendance/class/list.vue
+25
-18
attendance-performance-manager-ui/admin/src/views/attendance/group/responsible/list.vue
...-ui/admin/src/views/attendance/group/responsible/list.vue
+1
-0
attendance-performance-manager-ui/admin/src/views/attendance/group/view.vue
...ance-manager-ui/admin/src/views/attendance/group/view.vue
+191
-74
attendance-performance-manager-ui/admin/src/views/attendance/leave/record/list.vue
...nager-ui/admin/src/views/attendance/leave/record/list.vue
+23
-6
attendance-performance-manager-ui/admin/src/views/attendance/vacation/balance/drawershow.vue
...dmin/src/views/attendance/vacation/balance/drawershow.vue
+36
-16
attendance-performance-manager-ui/admin/src/views/attendance/vacation/balance/list.vue
...r-ui/admin/src/views/attendance/vacation/balance/list.vue
+29
-53
attendance-performance-manager-ui/admin/src/views/dept/list.vue
...ance-performance-manager-ui/admin/src/views/dept/list.vue
+1
-1
attendance-performance-manager-ui/admin/src/views/staff/drawershow.vue
...rformance-manager-ui/admin/src/views/staff/drawershow.vue
+2
-6
attendance-performance-manager-ui/admin/src/views/system/log/list.vue
...erformance-manager-ui/admin/src/views/system/log/list.vue
+28
-20
attendance-performance-manager-ui/admin/src/views/system/menu/list.vue
...rformance-manager-ui/admin/src/views/system/menu/list.vue
+1
-0
attendance-performance-manager-ui/admin/src/views/system/role/list.vue
...rformance-manager-ui/admin/src/views/system/role/list.vue
+1
-0
attendance-performance-manager-ui/admin/src/views/system/user/list.vue
...rformance-manager-ui/admin/src/views/system/user/list.vue
+2
-1
No files found.
attendance-performance-manager-ui/admin/src/router.js
View file @
767f6e95
...
...
@@ -21,7 +21,6 @@ const router = new Router({
builder
(
'
/authentication
'
,
'
login/authentication
'
),
builder
(
'
/login
'
,
'
login/login
'
),
builder
(
'
/sso
'
,
'
SSO
'
),
{
path
:
'
/
'
,
name
:
'
layout
'
,
...
...
@@ -38,6 +37,7 @@ const router = new Router({
...
restBuilder
(
'
user
'
,
'
system/user
'
),
// 用户管理 -- 管理用户
...
restBuilder
(
'
param
'
,
'
system/param
'
),
// 系统管理--参数管理
...
restBuilder
(
'
task
'
,
'
system/task
'
),
// 系统管理--任务管理
//部门
...
restBuilder
(
'
dept
'
,
'
dept
'
),
//部门
...
restBuilder
(
'
staff
'
,
'
staff
'
),
//花名册 员工信息
...
...
@@ -64,6 +64,8 @@ const router = new Router({
...
restBuilder
(
'
attendance/leave/record
'
,
'
attendance/leave/record
'
),
// 请假记录信息
...
restBuilder
(
'
attendance/vacation/balance
'
,
'
attendance/vacation/balance
'
),
// 员工假期余额信息
// 绩效负责人
...
restBuilder
(
'
attendance/group/responsible
'
,
'
attendance/group/responsible
'
),
//以下为基础路由配置
builder
(
'
blank
'
,
'
blank
'
),
...
...
attendance-performance-manager-ui/admin/src/views/attendance/class/dialogshow.vue
View file @
767f6e95
<
template
>
<!--
弹出框
表单 -->
<el-d
ialog
:title=
"title"
:visible.sync=
"open"
width=
"90%"
append-to-body
>
<!--
班次
表单 -->
<el-d
rawer
:title=
"title"
:visible.sync=
"open"
size=
"60%"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"120px"
>
<el-row>
<Field
label=
"班次名称"
prop=
"className"
v-model=
"form.className"
placeholder=
"请输入班次名称"
/>
<Field
label=
"班次负责人ID"
prop=
"classResponsiblePersonId"
v-model=
"form.classResponsiblePersonId"
placeholder=
"请输入班次负责人ID"
/>
<Field
label=
"班次负责人名称"
prop=
"classResponsiblePersonName"
v-model=
"form.classResponsiblePersonName"
placeholder=
"请输入班次负责人名称"
/>
<Field
label=
"备注"
prop=
"remark"
v-model=
"form.remark"
type=
"textarea"
placeholder=
"请输入备注"
/>
</el-row>
<el-divider
content-position=
"center"
>
考勤班次详细信息信息
</el-divider>
<br/>
<el-row
:gutter=
"10"
class=
"mb8"
>
<el-col
:span=
"1.5"
>
<el-button
type=
"primary"
icon=
"el-icon-plus"
size=
"mini"
@
click=
"handleAddAttendanceClassDetail"
>
添加
</el-button>
</el-col>
<el-col
:span=
"1.5"
>
<el-button
type=
"danger"
icon=
"el-icon-delete"
size=
"mini"
@
click=
"handleDeleteAttendanceClassDetail"
>
删除
</el-button>
</el-col>
<Field
label=
"班次负责人"
prop=
"classResponsiblePersonId"
type=
"select"
v-model=
"form.classResponsiblePersonId"
placeholder=
"请选择班次负责人"
/>
</el-row>
<el-table
:data=
"attendanceClassDetailList"
:row-class-name=
"rowAttendanceClassDetailIndex"
@
selection-change=
"handleAttendanceClassDetailSelectionChange"
ref=
"attendanceClassDetail"
>
<el-table-column
type=
"selection"
width=
"50"
align=
"center"
/>
<el-table-column
label=
"序号"
align=
"center"
prop=
"index"
width=
"50"
/>
<el-table-column
label=
"上班打卡时间"
prop=
"goWorkDate"
>
<template
slot-scope=
"scope"
>
<el-input
v-model=
"scope.row.goWorkDate"
placeholder=
"请输入上班打卡时间"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"上班打卡前时间段,单位分钟"
prop=
"goWorkDateBefore"
>
<
template
slot-scope=
"scope"
>
<el-input
v-model=
"scope.row.goWorkDateBefore"
placeholder=
"请输入上班打卡前时间段,单位分钟"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"上班打卡前时间段,单位分钟"
prop=
"goWorkDateAfter"
>
<
template
slot-scope=
"scope"
>
<el-input
v-model=
"scope.row.goWorkDateAfter"
placeholder=
"请输入上班打卡前时间段,单位分钟"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"下班打卡时间"
prop=
"offWorkDate"
>
<
template
slot-scope=
"scope"
>
<el-input
v-model=
"scope.row.offWorkDate"
placeholder=
"请输入下班打卡时间"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"下班打卡前时间段,单位分钟"
prop=
"offWorkDateBefore"
>
<
template
slot-scope=
"scope"
>
<el-input
v-model=
"scope.row.offWorkDateBefore"
placeholder=
"请输入下班打卡前时间段,单位分钟"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"下班打卡前时间段,单位分钟"
prop=
"offWorkDateAfter"
>
<
template
slot-scope=
"scope"
>
<el-input
v-model=
"scope.row.offWorkDateAfter"
placeholder=
"请输入下班打卡前时间段,单位分钟"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"备注"
prop=
"remark"
>
<
template
slot-scope=
"scope"
>
<el-input
v-model=
"scope.row.remark"
placeholder=
"请输入备注"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"创建用户"
prop=
"createUserId"
>
<
template
slot-scope=
"scope"
>
<el-input
v-model=
"scope.row.createUserId"
placeholder=
"请输入创建用户"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"创建时间"
prop=
"createTime"
>
<
template
slot-scope=
"scope"
>
<el-input
v-model=
"scope.row.createTime"
placeholder=
"请输入创建时间"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"更新用户"
prop=
"updateUserId"
>
<
template
slot-scope=
"scope"
>
<el-input
v-model=
"scope.row.updateUserId"
placeholder=
"请输入更新用户"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"更新时间"
prop=
"updateTime"
>
<
template
slot-scope=
"scope"
>
<el-input
v-model=
"scope.row.updateTime"
placeholder=
"请输入更新时间"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"班次名称"
prop=
"className"
>
<
template
slot-scope=
"scope"
>
<el-input
v-model=
"scope.row.className"
placeholder=
"请输入班次名称"
/>
</
template
>
</el-table-column>
</el-table>
<el-form-item
label=
"上下班时间"
prop=
"attendanceClassDetailList"
>
<el-button
type=
"text"
@
click=
"handleAddAttendanceClassDetail"
>
添加
</el-button>
<div
class=
"bancifor"
v-for=
"(item,index) in attendanceClassDetailList"
:key=
"index"
>
<div
class=
"title flex flex-align-center flex-pack-justify"
>
<span>
第
{{
index
+
1
}}
次上班时间
</span>
<el-button
type=
"danger"
size=
"mini"
@
click=
"handleDeleteAttendanceClassDetail(index)"
>
删除
</el-button>
</div>
<div>
<span>
上班时间
</span>
<el-time-picker
size=
"mini"
style=
"width:150px"
class=
"ml20"
value-format=
"HH:mm"
v-model=
"goWorkDate"
placeholder=
"上班时间"
>
</el-time-picker>
</div>
<div>
<span>
打开时段
</span>
<span>
上班前
</span>
<el-time-picker
size=
"mini"
style=
"width:150px"
class=
"ml20"
v-model=
"goWorkDateBefore"
value-format=
"HH:mm"
format=
"HH小时mm分钟"
placeholder=
"未设置"
>
</el-time-picker>
<span
class=
"ml20"
>
——
</span>
<span
class=
"ml20"
>
下班后
</span>
<el-time-picker
size=
"mini"
style=
"width:150px"
class=
"ml20"
v-model=
"goWorkDateAfter"
value-format=
"HH:mm"
format=
"HH小时mm分钟"
placeholder=
"未设置"
>
</el-time-picker>
</div>
<div>
<span>
下班时间
</span>
<el-time-picker
size=
"mini"
style=
"width:150px"
class=
"ml20"
value-format=
"HH:mm"
v-model=
"offWorkDate"
placeholder=
"下班时间"
>
</el-time-picker>
</div>
<div>
<span>
打开时段
</span>
<span>
上班前
</span>
<el-time-picker
size=
"mini"
style=
"width:150px"
class=
"ml20"
v-model=
"offWorkDateBefore"
value-format=
"HH:mm"
format=
"HH小时mm分钟"
placeholder=
"未设置"
>
</el-time-picker>
<span
class=
"ml20"
>
——
</span>
<span
class=
"ml20"
>
下班后
</span>
<el-time-picker
size=
"mini"
style=
"width:150px"
class=
"ml20"
v-model=
"offWorkDateAfter"
value-format=
"HH:mm"
format=
"HH小时mm分钟"
placeholder=
"未设置"
>
</el-time-picker>
</div>
</div>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer
"
>
<el-button
type=
"primary"
v-if=
"pageInfo.type !== 'view'"
@
click=
"submitForm"
>
确 定
</el-button>
<el-button
@
click=
"cancel"
>
取 消
</el-button>
<div
class=
"dialog-footer ml20
"
>
<el-button
type=
"primary"
size=
"mini"
v-if=
"pageInfo.type !== 'view'"
@
click=
"submitForm"
>
确 定
</el-button>
<el-button
@
click=
"cancel"
size=
"mini"
>
取 消
</el-button>
</div>
</el-d
ialog
>
</el-d
rawer
>
</
template
>
<
script
>
import
form
from
"
@/assets/mixins/formdialog
"
;
import
dialogShow
from
"
./dialogshow
"
;
...
...
@@ -117,9 +119,15 @@
],
// 表单校验
rules
:
{
c
reateTi
me
:
[
{
required
:
true
,
message
:
"
请
选择创建时间
"
},
c
lassNa
me
:
[
{
required
:
true
,
message
:
"
请
输入班次名称
"
},
],
classResponsiblePersonId
:[
{
required
:
true
,
message
:
"
请选择班次负责人
"
},
],
attendanceClassDetailList
:[
{
required
:
true
,
message
:
"
请添加
"
}
]
}
};
},
...
...
@@ -147,12 +155,13 @@
this
.
attendanceClassDetailList
.
push
(
obj
);
},
/** 考勤班次详细信息删除按钮操作 */
handleDeleteAttendanceClassDetail
()
{
if
(
this
.
checkedAttendanceClassDetail
.
length
==
0
)
{
this
.
$alert
(
"
请先选择要删除的考勤班次详细信息数据
"
,
"
提示
"
,
{
confirmButtonText
:
"
确定
"
,
});
}
else
{
this
.
attendanceClassDetailList
.
splice
(
this
.
checkedAttendanceClassDetail
[
0
].
index
-
1
,
1
);
handleDeleteAttendanceClassDetail
(
index
)
{
this
.
$alert
(
'
确定要删除这条设置吗
'
,
'
删除提醒
'
,
{
confirmButtonText
:
'
确定
'
,
callback
:
action
=>
{
this
.
attendanceClassDetailList
.
splice
(
index
,
1
)
}
})
},
/** 单选框选中数据 */
handleAttendanceClassDetailSelectionChange
(
selection
)
{
...
...
@@ -228,3 +237,13 @@
},
};
</
script
>
<
style
scoped
lang=
"less"
>
.bancifor{
background-color: #f5f5f5;
padding: 10px;
margin-bottom: 15px;
.title{
border-bottom: 1px solid rgb(206, 206, 206);
}
}
</
style
>
attendance-performance-manager-ui/admin/src/views/attendance/class/list.vue
View file @
767f6e95
...
...
@@ -13,7 +13,7 @@
name
:
"
AttendanceClassList
"
,
components
:
{
dialogShow
},
},
mixins
:
[
table
],
created
()
{
},
...
...
@@ -64,34 +64,41 @@
{
prop
:
"
className
"
,
label
:
"
班次名称
"
,
width
:
100
}
],
config
:
{
search
:
[
{
name
:
"
className
"
,
type
:
"
text
"
,
label
:
"
班次名称
"
,
fuzzy
:
true
}
],
isshowTabPane
:
true
,
columns
:
[
{
type
:
"
selection
"
,
width
:
60
},
{
type
:
"
index
"
,
label
:
"
序号
"
,
width
:
50
},
{
label
:
"
创建用户
"
,
prop
:
"
createUserId
"
,
formatter
:
this
.
formatter
},
{
label
:
"
考勤班次详细信息
"
,
width
:
120
,
prop
:
"
subColumns
"
,
formatter
:
(
row
)
=>
{
let
widthsize
=
this
.
columnSet
.
reduce
((
pre
,
cur
)
=>
{
return
pre
+
Number
(
cur
.
width
);
},
50
);
return
(
<
el
-
popover
placement
=
"
right
"
width
=
{
widthsize
}
trigger
=
"
click
"
>
{
this
.
renderTable
(
row
.
attendanceClassDetailList
)}
<
el
-
button
type
=
"
text
"
slot
=
"
reference
"
>
详细
<
/el-button
>
<
/el-popover
>
);
},
},
{
label
:
"
班次名称
"
,
prop
:
"
className
"
},
{
label
:
"
考勤时间
"
,
prop
:
"
className
"
},
// {label: "考勤班次详细信息",
// width: 120,
// prop: "subColumns",
// formatter: (row) => {
// let widthsize = this.columnSet.reduce((pre, cur) => {
// return pre + Number(cur.width);
// }, 50);
// return (
//
<
el
-
popover
placement
=
"
right
"
width
=
{
widthsize
}
trigger
=
"
click
"
>
// {this.renderTable(row.attendanceClassDetailList)}
//
<
el
-
button
type
=
"
text
"
slot
=
"
reference
"
>
详细
<
/el-button
>
//
<
/el-popover
>
// );
// },
// },
{
label
:
"
操作
"
,
width
:
240
,
formatter
:
row
=>
{
return
(
<
table
-
buttons
noAdd
row
=
{
row
}
onEdit
=
{
this
.
toEdit
}
onView
=
{
this
.
toView
}
onDel
=
{
this
.
toDel
}
/
>
<
table
-
buttons
noAdd
noView
row
=
{
row
}
onEdit
=
{
this
.
toEdit
}
onView
=
{
this
.
toView
}
onDel
=
{
this
.
toDel
}
/
>
);
}
}
...
...
attendance-performance-manager-ui/admin/src/views/attendance/group/responsible/list.vue
View file @
767f6e95
...
...
@@ -38,6 +38,7 @@
data
()
{
return
{
config
:
{
isshowTabPane
:
true
,
search
:
[
{
name
:
"
responsibleName
"
,
...
...
attendance-performance-manager-ui/admin/src/views/attendance/group/view.vue
View file @
767f6e95
...
...
@@ -12,7 +12,7 @@
<div
class=
"flex flex-align-center mt20"
>
<div>
考勤人员
</div>
<el-button
type=
"text"
class=
"ml20"
@
click=
"drawer
1= true
"
>
设置
</el-button>
<el-button
type=
"text"
class=
"ml20"
@
click=
"drawer
show('drawer1')
"
>
设置
</el-button>
</div>
<div
class=
"flex flex-align-center mt10"
style=
"color:#999;font-size:14px"
>
...
...
@@ -29,7 +29,7 @@
<div
class=
"flex flex-align-center mt20"
>
<div>
考勤组负责人
</div>
<el-button
type=
"text"
class=
"ml20"
@
click=
"drawer
2= true
"
>
设置
</el-button>
<el-button
type=
"text"
class=
"ml20"
@
click=
"drawer
show('drawer2')
"
>
设置
</el-button>
</div>
<div
class=
"flex flex-align-center mt10"
style=
"color:#999;font-size:14px"
>
...
...
@@ -48,7 +48,7 @@
<div
class=
"flex flex-align-center mt20"
>
<div>
考勤时间
</div>
<el-button
type=
"text"
class=
"ml20"
@
click=
"drawer
3= true
"
>
设置
</el-button>
<el-button
type=
"text"
class=
"ml20"
@
click=
"drawer
show('drawer3')
"
>
设置
</el-button>
</div>
<div
class=
"flex flex-align-center mt10"
style=
"color:#999;font-size:14px"
>
<div>
考勤类型
</div>
...
...
@@ -63,7 +63,7 @@
<div
class=
"flex flex-align-center mt20"
>
<div>
打卡方式
</div>
<el-button
type=
"text"
class=
"ml20"
@
click=
"drawer
4= true
"
>
设置
</el-button>
<el-button
type=
"text"
class=
"ml20"
@
click=
"drawer
show('drawer4')
"
>
设置
</el-button>
</div>
<div
class=
"flex flex-align-center mt10"
style=
"color:#999;font-size:14px"
>
...
...
@@ -78,51 +78,64 @@
<!-- 设置考勤人员 -->
<el-drawer
title=
"考勤人员"
:beforeClose=
"closedrawer"
:visible.sync=
"drawer"
direction=
"rtl"
:before-close=
"handleClose
"
>
direction=
"rtl"
>
<div
style=
"padding:20px
"
>
<!-- 考勤人员 -->
<div
>
<div
v-if=
"drawer1"
>
<div>
参与考勤人员(0)
</div>
<el-input
@
focus=
"selectGroup()
"
size=
"mini"
placeholder=
"请选择"
></el-input>
<el-input
@
focus=
"selectGroup()"
style=
"width:220px
"
size=
"mini"
placeholder=
"请选择"
></el-input>
</div>
<div
>
<div
class=
"mt10"
v-if=
"drawer1"
>
<div>
无需考勤人员(0)
</div>
<el-input
@
focus=
"selectGroup()
"
size=
"mini"
placeholder=
"请选择"
></el-input>
<el-input
@
focus=
"selectGroup()"
style=
"width:220px
"
size=
"mini"
placeholder=
"请选择"
></el-input>
</div>
<!-- 考勤组 -->
<div
>
<span>
考勤组负责人:
</span
>
<div
class=
"mt10"
v-if=
"drawer2"
>
<div>
考勤组负责人:
</div
>
<el-select></el-select>
</div>
<div
>
<span>
主负责人:
</span
>
<div
class=
"mt10"
v-if=
"drawer2"
>
<div>
主负责人:
</div
>
<el-select></el-select>
</div>
<div
>
<span>
子负责人:
</span
>
<div
class=
"mt10"
v-if=
"drawer2"
>
<div>
子负责人:
</div
>
<el-select></el-select>
</div>
<div
>
<span>
子负责人权限:
</span
>
<div
class=
"mt10"
v-if=
"drawer2"
>
<div>
子负责人权限:
</div
>
<el-select>
<el-option></el-option>
</el-select>
</div>
<!-- 考勤时间 -->
<div
>
<div
class=
"mt20"
v-if=
"drawer3"
>
<el-radio-group>
<div
class=
"mt10"
>
<el-radio
label=
""
>
固定班制(固定时间上下班)
</el-radio>
<div
class=
"tips"
>
考勤组中所有人按照相同的时间打卡,适用于办公室坐班,例如朝九晚五
</div>
</div>
<div
class=
"mt10"
>
<el-radio
label=
""
>
排班制(按排班上下班)
</el-radio>
<div
class=
"tips"
>
自定义设置每人的班次,适用于工厂、门店等,例如三班倒
</div>
</div>
<div
class=
"mt10"
>
<el-radio
label=
""
>
自由工时(不固定时间上下班)
</el-radio>
<div
class=
"tips"
>
上下班时间不固定,可随时打卡,适用于销售以及装修、家政等计时工
</div>
</div>
</el-radio-group>
</div>
<div>
<div
class=
"mt20"
v-if=
"drawer3"
>
<!-- 固定班次设置 -->
<div>
工作日设置:
</div>
<div
>
<div
class=
"mt10"
>
<el-tag
type=
"primary"
>
快捷设置班次
</el-tag>
<span
>
班次名称:
</span>
<el-button
type=
"text
"
>
更改班次
</el-button>
<span
class=
"ml20"
>
班次名称:
</span>
<el-button
type=
"text"
@
click=
"changeBanci('1')
"
>
更改班次
</el-button>
</div>
<!-- 班次表 -->
<el-table
:data=
"weekList"
>
...
...
@@ -134,25 +147,53 @@
</
template
>
</el-table-column>
</el-table>
<div>
<!-- 自用工时设置 -->
<div
class=
"mt20"
>
工作日
</div>
<div
class=
"mt10"
>
<el-checkbox-group
v-model=
"week"
>
<el-checkbox
label=
""
>
周一
</el-checkbox>
<el-checkbox
label=
""
>
周二
</el-checkbox>
<el-checkbox
label=
""
>
周三
</el-checkbox>
<el-checkbox
label=
""
>
周四
</el-checkbox>
<el-checkbox
label=
""
>
周五
</el-checkbox>
<el-checkbox
label=
""
>
周六
</el-checkbox>
<el-checkbox
label=
""
>
周日
</el-checkbox>
</el-checkbox-group>
</div>
<div
class=
"mt20"
>
工作时长
</div>
<div
class=
"mt10"
>
<el-input
style=
"width:100px"
></el-input>
<span
class=
"ml20"
>
小时
</span>
</div>
<div
class=
"mt10"
>
<el-checkbox>
法定节假日自动排休
</el-checkbox>
</div>
<div
>
<div
class=
"mt10"
>
<div>
特殊日期
</div>
</div>
<div
class=
"mt10"
>
<el-button
>
+新增必须打卡的日期
</el-button>
<el-button
@
click=
"mustDaka = true"
>
+新增必须打卡的日期
</el-button>
</div>
<div
class=
"mt10"
>
<el-button
>
+新增无需打卡的日期
</el-button>
<el-button
@
click=
"noneedDaka = true"
>
+新增无需打卡的日期
</el-button>
</div>
<div>
</div>
<div
class=
"mt20"
v-if=
"drawer4"
>
<div>
考勤方式
</div>
<el-checkbox-group
v-model=
"type"
>
<div
class=
"mt10"
>
<el-checkbox
label=
"地点打卡"
></el-checkbox>
</div>
<div
class=
"mt10"
>
<el-checkbox
label=
"Wi-Fi打卡"
></el-checkbox>
</div>
<div
class=
"mt10"
>
<el-checkbox
label=
"蓝牙打卡"
></el-checkbox>
</div>
<div
class=
"mt10"
>
<el-checkbox
label=
"考勤机打卡"
></el-checkbox>
</div>
</el-checkbox-group>
</div>
</div>
...
...
@@ -181,12 +222,49 @@
</el-scrollbar>
</div>
</el-dialog>
<!-- 选择班次 -->
<el-dialog
:visible.sync=
"isshowBanci"
title=
"选择班次"
>
<div>
选择班次
</div>
</el-dialog>
<!-- 新增必须打卡时间 -->
<el-dialog
:visible.sync=
"mustDaka"
title=
"新增必须打卡日期"
>
<div>
<span>
选择日期
</span>
<el-date-picker
type=
"date"
placeholder=
"年/月/日"
></el-date-picker>
</div>
<div>
选择班次
</div>
</el-dialog>
<!-- 新增无需打卡时间 -->
<el-dialog
:visible.sync=
"noneedDaka"
title=
"新增无需打卡日期"
>
<div>
<span>
选择添加方式
</span>
<el-radio-group
class=
"ml20"
>
<el-radio
label=
""
>
单个日期
</el-radio>
<el-radio
label=
""
>
时间段
</el-radio>
</el-radio-group>
</div>
<div>
<span>
选择日期
</span>
<!-- 单个日期 -->
<el-date-picker
type=
"date"
class=
"ml20"
></el-date-picker>
<!-- 日期段 -->
<el-date-picker
type=
"daterange"
class=
"ml20"
range-separator=
"至"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
>
</el-date-picker>
</div>
</el-dialog>
</div>
</template>
...
...
@@ -203,6 +281,35 @@
},
selectGroup
(){
this
.
isshowgroup
=
true
},
drawershow
(
from
){
switch
(
from
){
case
'
drawer1
'
:
this
.
drawer
=
true
this
.
drawer1
=
true
break
;
case
'
drawer2
'
:
this
.
drawer
=
true
this
.
drawer2
=
true
break
;
case
'
drawer3
'
:
this
.
drawer
=
true
this
.
drawer3
=
true
break
;
case
'
drawer4
'
:
this
.
drawer
=
true
this
.
drawer4
=
true
break
;
default
:
break
;
}
},
closedrawer
(){
this
.
drawer
=
false
this
.
drawer1
=
false
this
.
drawer2
=
false
this
.
drawer3
=
false
this
.
drawer4
=
false
}
},
data
()
{
...
...
@@ -237,17 +344,23 @@
attendanceTime
:
''
,
remark
:
''
},
drawer
:
tru
e
,
drawer
:
fals
e
,
weekList
:[],
isshowBanci
:
false
,
//班次展示
isshowgroup
:
false
,
isshowgroup
:
false
,
//人员选择
mustDaka
:
false
,
//必须打卡设置
noneedDaka
:
false
,
//无需打卡
areaData
:[],
type
:[]
type
:[],
week
:[]
}
}
}
</
script
>
<
style
lang=
"less"
>
.container{
font-size: 15px;
}
.labelClass{
width: 200px;
}
...
...
@@ -274,4 +387,8 @@
display: inline-block;
margin-right: 10px;
}
.tips{
color: #999;
font-size: 12px;
}
</
style
>
\ No newline at end of file
attendance-performance-manager-ui/admin/src/views/attendance/leave/record/list.vue
View file @
767f6e95
<
template
>
<div
class=
"page"
>
<LayoutTable
:data=
"tableData"
:config=
"tableConfig"
></LayoutTable>
<LayoutTable
:data=
"tableData"
:config=
"tableConfig"
notDel
>
<el-button
type=
"primary"
@
click=
"doExport"
:disabled=
"isExport"
size=
"mini"
slot=
"table-head-left2"
>
导出
</el-button>
</LayoutTable>
<drawer-show
ref=
"drawerform"
@
ok=
"getData"
/>
</div>
</
template
>
...
...
@@ -32,17 +33,27 @@
toView
(
row
)
{
this
.
$refs
.
drawerform
.
view
(
row
);
},
doExport
(){
this
.
isExport
=
true
;
this
.
$download
(
"
/leave/record/exportExcel
"
,
{
"
idList
"
:
this
.
selection
,
'
name
'
:
this
.
$route
.
query
[
'
name
'
],
},
{
type
:
"
excel
"
}).
then
(()
=>
this
.
isExport
=
false
).
catch
(
error
=>
{
this
.
isExport
=
false
;
this
.
$message
.
error
(
error
.
message
);
})
},
},
data
()
{
return
{
isExport
:
false
,
config
:
{
isshowTabPane
:
true
,
search
:
[
{
name
:
"
leavePerson
Id
"
,
name
:
"
leavePerson
"
,
type
:
"
text
"
,
label
:
"
请假人
id
"
,
label
:
"
请假人
"
,
fuzzy
:
true
},
{
...
...
@@ -51,6 +62,12 @@
label
:
"
电话号码
"
,
fuzzy
:
true
},
{
name
:
"
leaveType
"
,
type
:
"
select
"
,
label
:
"
全部部门
"
,
fuzzy
:
true
},
{
name
:
"
leaveType
"
,
type
:
"
select
"
,
...
...
attendance-performance-manager-ui/admin/src/views/attendance/vacation/balance/drawershow.vue
View file @
767f6e95
<
template
>
<!-- 弹出框表单 -->
<el-drawer
:title=
"title
"
title=
"假期使用记录
"
:visible.sync=
"open"
:direction=
"direction"
size=
"50%"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"120px"
>
<div
class=
"mt20"
>
<span>
当前假期余额:20天
</span>
<el-tag
type=
"success"
size=
"mini"
>
修改余额
</el-tag>
</div>
<div
class=
"mt20"
>
<el-steps
direction=
"vertical"
:active=
"1"
>
<el-step
title=
"步骤 1"
></el-step>
<el-step
title=
"步骤 2"
></el-step>
<el-step
title=
"步骤 3"
description=
"这是一段很长很长很长的描述性文字"
></el-step>
</el-steps>
</div>
<div
class=
"tips mt20"
>
当前病假规则:每年1月1日自动发放 30天
</div>
<!--
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"120px"
>
<el-row>
<Field
label=
"员工id"
prop=
"staffId"
v-model=
"form.staffId"
placeholder=
"请输入员工id"
/>
<Field
label=
"员工姓名"
prop=
"staffName"
v-model=
"form.staffName"
type=
"textarea"
placeholder=
"请输入员工姓名"
/>
...
...
@@ -18,12 +32,12 @@
<Field
label=
"年假"
prop=
"annualLeaveDays"
v-model=
"form.annualLeaveDays"
placeholder=
"请输入年假"
/>
<Field
label=
"婚假"
prop=
"marriageLeaveDays"
v-model=
"form.marriageLeaveDays"
placeholder=
"请输入婚假"
/>
<Field
label=
"备注"
prop=
"remark"
v-model=
"form.remark"
type=
"textarea"
placeholder=
"请输入备注"
/>
</el-row>
<form-buttons
@
submit=
'submitForm'
noCancelBtn
/>
</el-form>
</el-form>
-->
<div>
</div>
</el-drawer>
</
template
>
...
...
@@ -124,3 +138,9 @@
},
};
</
script
>
<
style
scoped
>
.tips
{
font-size
:
14px
;
color
:
#999
;
}
</
style
>
attendance-performance-manager-ui/admin/src/views/attendance/vacation/balance/list.vue
View file @
767f6e95
<
template
>
<div
class=
"page"
>
<LayoutTable
:data=
"tableData"
:config=
"tableConfig"
>
<LayoutTable
:data=
"tableData"
:config=
"tableConfig"
notAdd
notDel
>
<el-button
type=
"primary"
@
click=
"doExport"
:disabled=
"isExport"
size=
"mini"
slot=
"table-head-left2"
>
导出
</el-button>
</LayoutTable>
<drawer-show
ref=
"drawerform"
@
ok=
"getData"
/>
</div>
</
template
>
...
...
@@ -33,58 +33,33 @@
toView
(
row
)
{
this
.
$refs
.
drawerform
.
view
(
row
);
},
doExport
(){
this
.
isExport
=
true
;
this
.
$download
(
"
/leave/record/exportExcel
"
,
{
"
idList
"
:
this
.
selection
,
'
name
'
:
this
.
$route
.
query
[
'
name
'
],
},
{
type
:
"
excel
"
}).
then
(()
=>
this
.
isExport
=
false
).
catch
(
error
=>
{
this
.
isExport
=
false
;
this
.
$message
.
error
(
error
.
message
);
})
},
},
data
()
{
return
{
isExport
:
false
,
config
:
{
isshowTabPane
:
true
,
search
:
[
{
name
:
"
staffId
"
,
type
:
"
text
"
,
label
:
"
员工
id
"
,
label
:
"
员工
"
,
fuzzy
:
true
},
{
name
:
"
deptId
"
,
type
:
"
text
"
,
label
:
"
部门id
"
,
fuzzy
:
true
},
{
name
:
"
entryTime
"
,
type
:
"
date
"
,
label
:
"
入职时间
"
,
fuzzy
:
true
},
{
name
:
"
personalLeaveDays
"
,
type
:
"
text
"
,
label
:
"
事假
"
,
fuzzy
:
true
},
{
name
:
"
compensatedLeaveDays
"
,
type
:
"
text
"
,
label
:
"
调休
"
,
fuzzy
:
true
},
{
name
:
"
sickLeaveDays
"
,
type
:
"
text
"
,
label
:
"
病假
"
,
fuzzy
:
true
},
{
name
:
"
annualLeaveDays
"
,
type
:
"
text
"
,
label
:
"
年假
"
,
fuzzy
:
true
},
{
name
:
"
marriageLeaveDays
"
,
type
:
"
text
"
,
label
:
"
婚假
"
,
type
:
"
select
"
,
label
:
"
全部部门
"
,
fuzzy
:
true
},
],
...
...
@@ -92,33 +67,34 @@
{
type
:
"
selection
"
,
width
:
60
},
{
type
:
"
index
"
,
label
:
"
序号
"
,
width
:
50
},
{
label
:
"
员工id
"
,
prop
:
"
staffId
"
,
formatter
:
this
.
formatter
},
//
{label: "员工id", prop: "staffId", formatter: this.formatter},
{
label
:
"
员工姓名
"
,
prop
:
"
staffName
"
},
{
label
:
"
部门id
"
,
prop
:
"
deptId
"
,
formatter
:
this
.
formatter
},
//
{label: "部门id", prop: "deptId", formatter: this.formatter},
{
label
:
"
部门名称
"
,
prop
:
"
deptName
"
},
{
label
:
"
入职时间
"
,
prop
:
"
entryTime
"
,
formatter
:
this
.
formatterDate
},
{
label
:
"
事假
"
,
prop
:
"
personalLeaveDays
"
,
formatter
:
this
.
formatterMoney
},
{
label
:
"
事假
(天)
"
,
prop
:
"
personalLeaveDays
"
,
formatter
:
this
.
formatterMoney
},
{
label
:
"
调休
"
,
prop
:
"
compensatedLeaveDays
"
,
formatter
:
this
.
formatterMoney
},
{
label
:
"
调休
(天)
"
,
prop
:
"
compensatedLeaveDays
"
,
formatter
:
this
.
formatterMoney
},
{
label
:
"
病假
"
,
prop
:
"
sickLeaveDays
"
,
formatter
:
this
.
formatterMoney
},
{
label
:
"
病假
(天)
"
,
prop
:
"
sickLeaveDays
"
,
formatter
:
this
.
formatterMoney
},
{
label
:
"
年假
"
,
prop
:
"
annualLeaveDays
"
,
formatter
:
this
.
formatterMoney
},
{
label
:
"
年假
(天)
"
,
prop
:
"
annualLeaveDays
"
,
formatter
:
this
.
formatterMoney
},
{
label
:
"
婚假
"
,
prop
:
"
marriageLeaveDays
"
,
formatter
:
this
.
formatterMoney
},
{
label
:
"
婚假
(tian)
"
,
prop
:
"
marriageLeaveDays
"
,
formatter
:
this
.
formatterMoney
},
{
label
:
"
创建用户
"
,
prop
:
"
createUserId
"
,
formatter
:
this
.
formatter
},
//
{label: "创建用户", prop: "createUserId", formatter: this.formatter},
{
label
:
"
操作
"
,
width
:
240
,
formatter
:
row
=>
{
return
(
<
table
-
buttons
noAdd
row
=
{
row
}
onEdit
=
{
this
.
toEdit
}
onView
=
{
this
.
toView
}
onDel
=
{
this
.
toDel
}
/
>
<
table
-
buttons
noAdd
noEdit
noView
noDel
row
=
{
row
}
onEdit
=
{
this
.
toEdit
}
onView
=
{
this
.
toView
}
onDel
=
{
this
.
toDel
}
/
>
);
}
}
...
...
attendance-performance-manager-ui/admin/src/views/dept/list.vue
View file @
767f6e95
...
...
@@ -57,7 +57,7 @@
// {label: "祖级列表", prop: "ancestors"},
{
label
:
"
部门名称
"
,
prop
:
"
deptName
"
},
{
label
:
"
成员数量
"
,
prop
:
"
deptName
"
},
{
label
:
"
负责人
"
,
prop
:
"
dept
Name
"
},
{
label
:
"
负责人
"
,
prop
:
"
work
Name
"
},
// {label: "部门状态", prop: "deptStatus",formatter: this.formatter},
...
...
attendance-performance-manager-ui/admin/src/views/staff/drawershow.vue
View file @
767f6e95
...
...
@@ -24,12 +24,8 @@
<Field
label=
"所属部门"
prop=
"deptName"
v-model=
"form.deptName"
placeholder=
"请选择所属部门"
@
focus=
"ishowBumen = true"
/>
<!--
<Field
label=
"职位"
prop=
"positionId"
v-model=
"form.positionId"
:enumData=
"dict.politicalstatus"
type=
"select"
placeholder=
"请选择职位"
/>
-->
<el-form-item
label=
"职位"
prop=
"positionId"
>
<el-select
v-model=
"form.positionId"
placeholder=
"请选择职位"
>
<el-option></el-option>
</el-select>
</el-form-item>
<Field
label=
"职位"
prop=
"positionId"
v-model=
"form.positionId"
:enumData=
"dict.positionId"
type=
"select"
placeholder=
"请选择职位"
/>
<Field
label=
"工号"
prop=
"workNum"
v-model=
"form.workNum"
placeholder=
"请输入工号"
/>
<!--
<Field
label=
"是否在政务大厅"
prop=
"positionId"
v-model=
"form.positionId"
placeholder=
"请选择"
type=
"select"
/>
-->
...
...
attendance-performance-manager-ui/admin/src/views/system/log/list.vue
View file @
767f6e95
<
template
>
<div
class=
"page"
>
<LayoutTable
:data=
"tableData"
notAdd
notDel
:config=
"tableConfig"
/>
<LayoutTable
:data=
"tableData"
not
Search
not
Add
notDel
:config=
"tableConfig"
/>
</div>
</
template
>
...
...
@@ -13,17 +13,18 @@ export default {
data
()
{
return
{
config
:
{
isshowTabPane
:
true
,
search
:
[
{
name
:
"
loginName
"
,
type
:
"
text
"
,
label
:
"
登录名
"
,
},
{
name
:
"
requestUrl
"
,
type
:
"
text
"
,
label
:
"
请求地址
"
,
},
//
{
//
name: "loginName",
//
type: "text",
//
label: "登录名",
//
},
//
{
//
name: "requestUrl",
//
type: "text",
//
label: "请求地址",
//
},
],
columns
:
[
{
type
:
"
index
"
,
label
:
"
序号
"
,
align
:
"
center
"
,
width
:
50
},
...
...
@@ -33,13 +34,27 @@ export default {
label
:
"
用户名称
"
,
align
:
"
center
"
,
},
{
prop
:
"
logDate
"
,
label
:
"
操作日期
"
,
align
:
"
center
"
,
formatter
:
this
.
formatterDate
,
},
{
prop
:
"
loginName
"
,
label
:
"
用户登录名
"
,
align
:
"
center
"
,
},
{
prop
:
"
loginName
"
,
label
:
"
日志类型
"
,
align
:
"
center
"
,
},
{
prop
:
"
loginName
"
,
label
:
"
操作类型
"
,
align
:
"
center
"
,
},
{
prop
:
"
requestUrl
"
,
label
:
"
请求地址
"
,
...
...
@@ -57,13 +72,6 @@ export default {
label
:
"
操作IP地址
"
,
align
:
"
center
"
,
},
{
prop
:
"
logDate
"
,
label
:
"
操作时间
"
,
align
:
"
center
"
,
formatter
:
this
.
formatterDate
,
},
],
},
};
...
...
attendance-performance-manager-ui/admin/src/views/system/menu/list.vue
View file @
767f6e95
...
...
@@ -114,6 +114,7 @@ export default {
data
()
{
return
{
config
:
{
isshowTabPane
:
true
,
/** 树表是否默认展开 */
expand
:
false
,
showType
:
"
treetable
"
,
...
...
attendance-performance-manager-ui/admin/src/views/system/role/list.vue
View file @
767f6e95
...
...
@@ -439,6 +439,7 @@ export default {
form
:
this
.
initForm
(),
},
config
:
{
isshowTabPane
:
true
,
search
:
[
{
name
:
"
name
"
,
...
...
attendance-performance-manager-ui/admin/src/views/system/user/list.vue
View file @
767f6e95
...
...
@@ -276,6 +276,7 @@ export default {
visible
:
false
,
},
config
:
{
isshowTabPane
:
true
,
columns
:
[
{
type
:
"
selection
"
,
reserveSelection
:
true
,
width
:
60
},
{
type
:
"
index
"
,
label
:
"
序号
"
,
align
:
"
center
"
,
width
:
50
},
...
...
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