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
01e90fb6
Commit
01e90fb6
authored
Apr 12, 2023
by
dll
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
提交
parent
991a067c
Changes
14
Show whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
288 additions
and
90 deletions
+288
-90
attendance-performance-manager-ui/admin/src/assets/mixins/table.js
...e-performance-manager-ui/admin/src/assets/mixins/table.js
+6
-0
attendance-performance-manager-ui/admin/src/components/FileUpload.vue
...erformance-manager-ui/admin/src/components/FileUpload.vue
+1
-1
attendance-performance-manager-ui/admin/src/components/tabPane.vue
...e-performance-manager-ui/admin/src/components/tabPane.vue
+1
-1
attendance-performance-manager-ui/admin/src/components/tools/TableButtons.vue
...ce-manager-ui/admin/src/components/tools/TableButtons.vue
+1
-0
attendance-performance-manager-ui/admin/src/router.js
attendance-performance-manager-ui/admin/src/router.js
+1
-1
attendance-performance-manager-ui/admin/src/views/attendance/class/dialogshow.vue
...anager-ui/admin/src/views/attendance/class/dialogshow.vue
+124
-35
attendance-performance-manager-ui/admin/src/views/attendance/group/responsible/dialogshow.vue
...min/src/views/attendance/group/responsible/dialogshow.vue
+9
-8
attendance-performance-manager-ui/admin/src/views/attendance/leave/record/drawershow.vue
...ui/admin/src/views/attendance/leave/record/drawershow.vue
+14
-10
attendance-performance-manager-ui/admin/src/views/attendance/record/error/list.vue
...nager-ui/admin/src/views/attendance/record/error/list.vue
+21
-2
attendance-performance-manager-ui/admin/src/views/attendance/vacation/balance/list.vue
...r-ui/admin/src/views/attendance/vacation/balance/list.vue
+33
-8
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/job/drawershow.vue
...performance-manager-ui/admin/src/views/job/drawershow.vue
+13
-10
attendance-performance-manager-ui/admin/src/views/job/list.vue
...dance-performance-manager-ui/admin/src/views/job/list.vue
+12
-6
attendance-performance-manager-ui/admin/src/views/staff/list.vue
...nce-performance-manager-ui/admin/src/views/staff/list.vue
+51
-7
No files found.
attendance-performance-manager-ui/admin/src/assets/mixins/table.js
View file @
01e90fb6
...
...
@@ -217,6 +217,12 @@ export default {
formatterMoney
(
row
,
column
,
val
)
{
return
((
val
||
0
)
/
1000
).
toFixed
(
2
)
},
// 查看天数
formatterDay
(
row
,
column
,
val
)
{
return
<
el
-
tag
onClick
=
{()
=>
{
this
.
handleCountDays
(
row
,
column
)
}}
>
{((
val
||
0
)
/
1000
).
toFixed
(
2
)}
<
/el-tag
>
},
// 格式化单元格数据
formatterDate
(
row
,
column
)
{
//console.log("date:",row,column)
...
...
attendance-performance-manager-ui/admin/src/components/FileUpload.vue
View file @
01e90fb6
...
...
@@ -100,7 +100,7 @@ export default {
data
()
{
return
{
number
:
0
,
uploadFileUrl
:
"
/
study/
file/commonupload
"
,
// 上传的地址
uploadFileUrl
:
"
/file/commonupload
"
,
// 上传的地址
uploadList
:
[],
headers
:{},
fileList
:
[],
...
...
attendance-performance-manager-ui/admin/src/components/tabPane.vue
View file @
01e90fb6
<
template
>
<div>
<div
style=
"margin-bottom:20px"
>
<el-menu
:default-active=
"activeName"
class=
"el-menu-demo"
mode=
"horizontal"
@
select=
"handleClick"
v-if=
"thirdList.length>0"
>
<el-menu-item
:index=
"item.path"
v-for=
"(item,index) in thirdList"
:key=
"index"
>
{{
item
.
name
}}
</el-menu-item>
</el-menu>
...
...
attendance-performance-manager-ui/admin/src/components/tools/TableButtons.vue
View file @
01e90fb6
...
...
@@ -7,6 +7,7 @@
<Confirm
@
confirm=
'$emit("del", row.id)'
message=
'确定要删除该条记录吗?'
>
<el-button
v-if=
'!noDel'
type=
"text"
icon=
"el-icon-delete"
size=
'mini'
title=
"删除"
>
删除
</el-button>
</Confirm>
</span>
</
template
>
...
...
attendance-performance-manager-ui/admin/src/router.js
View file @
01e90fb6
...
...
@@ -36,7 +36,7 @@ const router = new Router({
...
restBuilder
(
'
role
'
,
'
system/role
'
),
// 系统管理--角色管理
...
restBuilder
(
'
user
'
,
'
system/user
'
),
// 用户管理 -- 管理用户
...
restBuilder
(
'
param
'
,
'
system/param
'
),
// 系统管理--参数管理
...
restBuilder
(
'
task
'
,
'
system/task
'
),
// 系统管理--任务管理
//
...restBuilder('task', 'system/task'), // 系统管理--任务管理
//部门
...
restBuilder
(
'
dept
'
,
'
dept
'
),
//部门
...
...
attendance-performance-manager-ui/admin/src/views/attendance/class/dialogshow.vue
View file @
01e90fb6
<
template
>
<!-- 班次表单 -->
<el-drawer
:title=
"title"
:visible.sync=
"open"
size=
"
60
%"
>
<el-drawer
:title=
"title"
:visible.sync=
"open"
size=
"
55
%"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"120px"
>
<el-row>
<Field
label=
"班次名称"
prop=
"className"
v-model=
"form.className"
placeholder=
"请输入班次名称"
/>
...
...
@@ -12,7 +12,7 @@
<div
class=
"bancifor"
v-for=
"(item,index) in attendanceClassDetailList"
:key=
"index"
>
<div
class=
"title flex flex-align-center flex-pack-justify"
>
<span>
第
{{
index
+
1
}}
次上班
时间
第
{{
index
+
1
}}
次上班
</span>
<el-button
type=
"danger"
size=
"mini"
@
click=
"handleDeleteAttendanceClassDetail(index)"
>
删除
</el-button>
</div>
...
...
@@ -23,31 +23,32 @@
style=
"width:150px"
class=
"ml20"
value-format=
"HH:mm"
v-model=
"goWorkDate"
format=
"HH:mm"
v-model=
"item.goWorkDate"
placeholder=
"上班时间"
>
</el-time-picker>
</div>
<div>
<span>
打开时段
</span>
<span>
打开时段
:
</span>
<span>
上班前
</span>
<el-time-picker
size=
"mini"
style=
"width:150px"
class=
"ml20"
v-model=
"goWorkDateBefore"
value-format=
"H
H
:mm"
format=
"H
H
小时mm分钟"
v-model=
"
item.
goWorkDateBefore"
value-format=
"H:mm"
format=
"H小时mm分钟"
placeholder=
"未设置"
>
</el-time-picker>
<span
class=
"ml20"
>
——
</span>
<span
class=
"ml20"
>
下
班后
</span>
<span
class=
"ml20"
>
上
班后
</span>
<el-time-picker
size=
"mini"
style=
"width:150px"
class=
"ml20"
v-model=
"goWorkDateAfter"
v-model=
"
item.
goWorkDateAfter"
value-format=
"HH:mm"
format=
"H
H
小时mm分钟"
format=
"H小时mm分钟"
placeholder=
"未设置"
>
</el-time-picker>
</div>
...
...
@@ -57,21 +58,22 @@
size=
"mini"
style=
"width:150px"
class=
"ml20"
format=
"HH:mm"
value-format=
"HH:mm"
v-model=
"offWorkDate"
v-model=
"
item.
offWorkDate"
placeholder=
"下班时间"
>
</el-time-picker>
</div>
<div>
<span>
打开时段
</span>
<span>
上
班前
</span>
<span>
打开时段
:
</span>
<span>
下
班前
</span>
<el-time-picker
size=
"mini"
style=
"width:150px"
class=
"ml20"
v-model=
"offWorkDateBefore"
v-model=
"
item.
offWorkDateBefore"
value-format=
"HH:mm"
format=
"H
H
小时mm分钟"
format=
"H小时mm分钟"
placeholder=
"未设置"
>
</el-time-picker>
<span
class=
"ml20"
>
——
</span>
...
...
@@ -80,9 +82,9 @@
size=
"mini"
style=
"width:150px"
class=
"ml20"
v-model=
"offWorkDateAfter"
v-model=
"
item.
offWorkDateAfter"
value-format=
"HH:mm"
format=
"H
H
小时mm分钟"
format=
"H小时mm分钟"
placeholder=
"未设置"
>
</el-time-picker>
</div>
...
...
@@ -104,6 +106,15 @@
dialogShow
,
},
data
()
{
var
validteList
=
(
rule
,
value
,
callback
)
=>
{
if
(
!
value
)
{
return
callback
(
new
Error
(
'
请添加上班时间
'
))
}
else
if
(
!
this
.
judgeStatus
(
value
)
){
callback
(
new
Error
(
'
请完成输入
'
))
}
else
{
callback
()
}
}
return
{
// 子表选中数据
checkedAttendanceClassDetail
:
[],
...
...
@@ -126,19 +137,40 @@
{
required
:
true
,
message
:
"
请选择班次负责人
"
},
],
attendanceClassDetailList
:[
{
required
:
true
,
message
:
"
请添加
"
}
{
required
:
true
,
message
:
"
请添加
"
},
{
validator
:
validteList
,
trigger
:
'
change
'
}
]
}
},
currentIndex
:
0
//当前索引值
};
},
created
(){
// this.transFormMinut('09:03')
},
methods
:
{
// 时间转分钟
transFormMinut
(
String
){
if
(
!
String
){
return
0
}
let
arr
=
String
.
split
(
'
:
'
)
let
hour
=
arr
[
0
].
indexOf
(
'
0
'
)
===
0
?
arr
[
0
].
substring
(
1
,
arr
[
0
].
length
):
arr
[
0
]
let
minu
=
arr
[
1
].
indexOf
(
'
0
'
)
===
0
?
arr
[
1
].
substring
(
1
,
arr
[
1
].
length
):
arr
[
1
]
return
hour
*
60
+
minu
*
1
},
/** 考勤班次详细信息序号 */
rowAttendanceClassDetailIndex
({
row
,
rowIndex
})
{
row
.
index
=
rowIndex
+
1
;
},
/** 考勤班次详细信息添加按钮操作 */
handleAddAttendanceClassDetail
()
{
let
value
=
this
.
judgeStatus
(
this
.
attendanceClassDetailList
)
if
(
value
){
if
(
this
.
attendanceClassDetailList
.
length
==
0
){
this
.
currentIndex
=
0
}
else
{
this
.
currentIndex
++
}
let
obj
=
{};
obj
.
goWorkDate
=
""
;
obj
.
goWorkDateBefore
=
""
;
...
...
@@ -146,13 +178,69 @@
obj
.
offWorkDate
=
""
;
obj
.
offWorkDateBefore
=
""
;
obj
.
offWorkDateAfter
=
""
;
obj
.
remark
=
""
;
obj
.
createUserId
=
""
;
obj
.
createTime
=
""
;
obj
.
updateUserId
=
""
;
obj
.
updateTime
=
""
;
obj
.
className
=
""
;
this
.
attendanceClassDetailList
.
push
(
obj
);
}
else
{
this
.
$message
.
error
(
"
请完成当前设置再添加
"
)
}
},
// 判断添加上下班时间
judgeStatus
(
arr
){
let
status
=
true
if
(
arr
.
length
==
0
){
}
else
if
(
arr
.
length
==
1
){
console
.
log
(
arr
[
this
.
currentIndex
])
for
(
let
key
in
arr
[
this
.
currentIndex
]){
if
(
!
arr
[
this
.
currentIndex
][
key
]){
status
=
false
return
}
}
//比较下班和上班
let
workTime
=
this
.
transFormMinut
(
arr
[
this
.
currentIndex
].
goWorkDate
)
+
this
.
transFormMinut
(
arr
[
this
.
currentIndex
].
goWorkDateAfter
)
let
offworkTime
=
this
.
transFormMinut
(
arr
[
this
.
currentIndex
].
offWorkDate
)
-
this
.
transFormMinut
(
arr
[
this
.
currentIndex
].
offWorkDateBefore
)
if
(
offworkTime
<=
workTime
){
this
.
$message
.
error
(
'
下班打卡时间不能小于上班打卡时间
'
)
status
=
false
return
}
}
else
{
for
(
let
key
in
arr
[
this
.
currentIndex
]){
if
(
!
this
.
arr
[
this
.
currentIndex
][
key
]){
status
=
false
return
}
}
// 上一次比较
let
lastworkTime
=
this
.
transFormMinut
(
arr
[
this
.
currentIndex
-
1
].
goWorkDate
)
+
this
.
transFormMinut
(
arr
[
this
.
currentIndex
-
1
].
goWorkDateAfter
)
let
currentwokeTime
=
this
.
transFormMinut
(
arr
[
this
.
currentIndex
].
goWorkDate
)
-
this
.
transFormMinut
(
arr
[
this
.
currentIndex
].
goWorkDateBefore
)
//当前
let
workTime
=
this
.
transFormMinut
(
arr
[
this
.
currentIndex
].
goWorkDate
)
+
this
.
transFormMinut
(
arr
[
this
.
currentIndex
].
goWorkDateAfter
)
let
offworkTime
=
this
.
transFormMinut
(
arr
[
this
.
currentIndex
].
offWorkDate
)
-
this
.
transFormMinut
(
arr
[
this
.
currentIndex
].
offWorkDateBefore
)
if
(
currentwokeTime
<=
lastworkTime
){
this
.
$message
.
error
(
`第
${
this
.
currentIndex
}
上班时间需大于第
${
this
.
currentIndex
-
1
}
上班时间`
)
status
=
false
return
}
if
(
offworkTime
<=
workTime
){
this
.
$message
.
error
(
'
下班打卡时间不能小于上班打卡时间
'
)
status
=
false
return
}
}
return
status
},
/** 考勤班次详细信息删除按钮操作 */
handleDeleteAttendanceClassDetail
(
index
)
{
...
...
@@ -160,6 +248,7 @@
confirmButtonText
:
'
确定
'
,
callback
:
action
=>
{
this
.
attendanceClassDetailList
.
splice
(
index
,
1
)
this
.
currentIndex
--
}
})
},
...
...
attendance-performance-manager-ui/admin/src/views/attendance/group/responsible/dialogshow.vue
View file @
01e90fb6
<
template
>
<!-- 弹出框表单 -->
<el-dialog
:title=
"title"
:visible.sync=
"open"
width=
"
9
0%"
append-to-body
>
<el-dialog
:title=
"title"
:visible.sync=
"open"
width=
"
6
0%"
append-to-body
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"120px"
>
<el-row>
<Field
label=
"姓名"
prop=
"responsibleName"
v-model=
"form.responsibleName"
placeholder=
"请输入负责人名称"
/>
<Field
label=
"电话号码"
prop=
"responsibleName"
v-model=
"form.responsibleName"
placeholder=
"请输入电话号码"
/>
<Field
label=
"考勤组"
prop=
"groupId"
v-model=
"form.groupId"
placeholder=
"请输入考勤组"
/>
<Field
label=
"考勤组名称"
prop=
"groupName"
v-model=
"form.groupName"
placeholder=
"请输入考勤组名称"
/>
<Field
label=
"负责人ID"
prop=
"responsibleId"
v-model=
"form.responsibleId"
placeholder=
"请输入负责人ID"
/>
<Field
label=
"负责人名称"
prop=
"responsibleName"
v-model=
"form.responsibleName"
placeholder=
"请输入负责人名称"
/>
<Field
label=
"负责人类型"
prop=
"responsibleType"
v-model=
"form.responsibleType"
type=
"select"
:enumData=
"dict.responsibleType"
placeholder=
"请选择负责人类型"
/>
<Field
label=
"备注"
prop=
"remark"
v-model=
"form.remark"
type=
"textarea"
placeholder=
"请输入备注"
/>
...
...
@@ -68,7 +69,7 @@
this
.
urls
.
currUrl
=
"
attendance/group/responsible/add
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
add
"
this
.
title
=
"
新增考勤组负责人
员信息
"
;
this
.
title
=
"
新增考勤组负责人
"
;
},
/** 查看*/
view
(
row
)
{
...
...
attendance-performance-manager-ui/admin/src/views/attendance/leave/record/drawershow.vue
View file @
01e90fb6
...
...
@@ -7,24 +7,25 @@
size=
"50%"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"120px"
>
<el-row>
<Field
label=
"请假人
id
"
prop=
"leavePersonId"
v-model=
"form.leavePersonId"
placeholder=
"请输入请假人id"
/>
<
Field
label=
"请假人"
prop=
"leavePerson"
v-model=
"form.leavePerson"
placeholder=
"请输入请假人"
/
>
<Field
label=
"所属部门
id
"
prop=
"deptId"
v-model=
"form.deptId"
placeholder=
"请输入所属部门id"
/>
<
Field
label=
"所属部门"
prop=
"deptName"
v-model=
"form.deptName"
type=
"textarea"
placeholder=
"请输入所属部门"
/
>
<Field
label=
"请假人"
prop=
"leavePersonId"
v-model=
"form.leavePersonId"
placeholder=
"请输入请假人id"
/>
<
!--
<Field
label=
"请假人"
prop=
"leavePerson"
v-model=
"form.leavePerson"
placeholder=
"请输入请假人"
/>
--
>
<Field
label=
"所属部门"
prop=
"deptId"
v-model=
"form.deptId"
placeholder=
"请输入所属部门id"
/>
<
!--
<Field
label=
"所属部门"
prop=
"deptName"
v-model=
"form.deptName"
type=
"textarea"
placeholder=
"请输入所属部门"
/>
--
>
<Field
label=
"电话号码"
prop=
"phoneNumber"
v-model=
"form.phoneNumber"
placeholder=
"请输入电话号码"
/>
<Field
label=
"请假类型"
prop=
"leaveType"
v-model=
"form.leaveType"
type=
"select"
:enumData=
"dict.leaveType"
placeholder=
"请选择请假类型"
/>
<Field
label=
"开始时间"
prop=
"startTime"
v-model=
"form.startTime"
type=
"date"
/>
<Field
label=
"结束时间"
prop=
"endTime"
v-model=
"form.endTime"
type=
"date"
/>
<Field
label=
"时长
,单位秒
"
prop=
"duration"
v-model=
"form.duration"
placeholder=
"请输入时长,单位秒"
/>
<Field
label=
"时长"
prop=
"duration"
v-model=
"form.duration"
placeholder=
"请输入时长,单位秒"
/>
<Field
label=
"请假事由"
prop=
"reason"
v-model=
"form.reason"
type=
"textarea"
placeholder=
"请输入请假事由"
/>
<Field
label=
"审批负责人Id"
prop=
"approverId"
v-model=
"form.approverId"
placeholder=
"请输入审批负责人Id"
/>
<Field
label=
"审批负责人"
prop=
"approver"
v-model=
"form.approver"
placeholder=
"请输入审批负责人"
/>
<Field
label=
"附件"
prop=
"attachment"
v-model=
"form.attachment"
type=
"textarea"
placeholder=
"请输入附件"
/>
<Field
label=
"附件路径"
prop=
"attachmentPath"
v-model=
"form.attachmentPath"
type=
"textarea"
placeholder=
"请输入附件路径"
/>
<Field
label=
"审批负责人"
prop=
"approverId"
v-model=
"form.approverId"
placeholder=
"请输入审批负责人Id"
/>
<!--
<Field
label=
"审批负责人"
prop=
"approver"
v-model=
"form.approver"
placeholder=
"请输入审批负责人"
/>
-->
<!--
<Field
label=
"附件"
prop=
"attachment"
v-model=
"form.attachment"
type=
"textarea"
placeholder=
"请输入附件"
/>
-->
<Field
label=
"备注"
prop=
"remark"
v-model=
"form.remark"
type=
"textarea"
placeholder=
"请输入备注"
/>
</el-row>
<el-form-item
label=
"附件路径"
prop=
"attachmentPath"
>
<FileUpload
@
input=
"uploadFn"
/>
</el-form-item>
<form-buttons
@
submit=
'submitForm'
noCancelBtn
/>
</el-form>
...
...
@@ -65,6 +66,9 @@
},
methods
:
{
uploadFn
(
e
){
this
.
form
.
attachmentPath
=
e
},
/** 编辑 */
edit
(
row
)
{
this
.
reset
()
...
...
attendance-performance-manager-ui/admin/src/views/attendance/record/error/list.vue
View file @
01e90fb6
...
...
@@ -40,6 +40,14 @@
},
morehandle
(){
console
.
log
(
this
.
selection
)
},
// 处理
handle
(
err
){
console
.
log
(
err
)
},
// 撤销
reCancle
(
err
){
console
.
log
(
err
)
}
},
data
()
{
...
...
@@ -109,6 +117,10 @@
{
type
:
"
index
"
,
label
:
"
序号
"
,
width
:
50
},
{
label
:
"
员工姓名
"
,
prop
:
"
staffName
"
},
{
label
:
"
工号
"
,
prop
:
"
staffName
"
},
{
label
:
"
部门
"
,
prop
:
"
staffName
"
},
{
label
:
"
考勤组
"
,
prop
:
"
staffName
"
},
{
label
:
"
班次
"
,
prop
:
"
staffName
"
},
{
label
:
"
异常状态
"
,
prop
:
"
errorStatus
"
,
formatter
:
this
.
formatter
},
{
label
:
"
异常时间
"
,
prop
:
"
errorDateTime
"
,
formatter
:
this
.
formatterDate
},
{
label
:
"
处理结果
"
,
prop
:
"
errorDateTime
"
,
formatter
:
this
.
formatterDate
},
...
...
@@ -123,8 +135,15 @@
width
:
240
,
formatter
:
row
=>
{
return
(
<
table
-
buttons
noAdd
noEdit
noView
noDel
row
=
{
row
}
onEdit
=
{
this
.
toEdit
}
onView
=
{
this
.
toView
}
onDel
=
{
this
.
toDel
}
/
>
);
<
span
>
<
el
-
button
type
=
"
text
"
size
=
'
mini
'
onClick
=
{(
row
)
=>
{
this
.
handle
(
row
)
}}
>
处理
<
/el-button
>
<
el
-
button
type
=
"
text
"
size
=
'
mini
'
onClick
=
{(
row
)
=>
{
this
.
reCancle
(
row
)
}}
>
撤销
<
/el-button
>
<
/span
>
)
}
}
]
...
...
attendance-performance-manager-ui/admin/src/views/attendance/vacation/balance/list.vue
View file @
01e90fb6
...
...
@@ -21,6 +21,17 @@ export default {
created
()
{
},
methods
:
{
// 导出
doExport
(){
this
.
isExport
=
true
;
this
.
$download
(
"
/attendance/vacation/balance/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
);
})
},
/** 重写新增方法 */
toAdd
(
row
)
{
this
.
$refs
.
drawerform
.
add
(
row
);
...
...
@@ -49,14 +60,27 @@ export default {
})
.
catch
((
error
)
=>
{
this
.
$message
.
error
(
error
.
message
);
})
;
})
}
},
data
()
{
return
{
config
:
{
isshowTabPane
:
true
,
search
:
[
{
name
:
"
deptId
"
,
type
:
"
select
"
,
label
:
"
全部部门
"
,
fuzzy
:
true
},
{
name
:
"
staffName
"
,
type
:
"
text
"
,
label
:
"
员工姓名
"
,
fuzzy
:
true
},
],
columns
:
[
{
type
:
"
selection
"
,
width
:
60
},
...
...
@@ -64,11 +88,11 @@ export default {
{
label
:
"
员工姓名
"
,
prop
:
"
staffName
"
},
{
label
:
"
部门名称
"
,
prop
:
"
deptName
"
},
{
label
:
"
入职时间
"
,
prop
:
"
entryTime
"
,
formatter
:
this
.
formatterDate
},
{
label
:
"
事假(天)
"
,
prop
:
"
personalLeaveDays
"
,
formatter
:
this
.
formatter
Mone
y
},
{
label
:
"
调休(天)
"
,
prop
:
"
compensatedLeaveDays
"
,
formatter
:
this
.
formatter
Mone
y
},
{
label
:
"
病假(天)
"
,
prop
:
"
sickLeaveDays
"
,
formatter
:
this
.
formatter
Mone
y
},
{
label
:
"
年假(天)
"
,
prop
:
"
annualLeaveDays
"
,
formatter
:
this
.
formatter
Mone
y
},
{
label
:
"
婚假(
tian)
"
,
prop
:
"
marriageLeaveDays
"
,
formatter
:
this
.
formatterMone
y
},
{
label
:
"
事假(天)
"
,
prop
:
"
personalLeaveDays
"
,
formatter
:
this
.
formatter
Da
y
},
{
label
:
"
调休(天)
"
,
prop
:
"
compensatedLeaveDays
"
,
formatter
:
this
.
formatter
Da
y
},
{
label
:
"
病假(天)
"
,
prop
:
"
sickLeaveDays
"
,
formatter
:
this
.
formatter
Da
y
},
{
label
:
"
年假(天)
"
,
prop
:
"
annualLeaveDays
"
,
formatter
:
this
.
formatter
Da
y
},
{
label
:
"
婚假(
天)
"
,
prop
:
"
marriageLeaveDays
"
,
formatter
:
this
.
formatterDa
y
},
// {label: "创建用户", prop: "createUserId", formatter: this.formatter},
{
label
:
"
操作
"
,
...
...
@@ -80,7 +104,8 @@ export default {
)
}
}
]
],
isExport
:
false
}
}
}
...
...
attendance-performance-manager-ui/admin/src/views/dept/list.vue
View file @
01e90fb6
...
...
@@ -56,7 +56,7 @@
{
type
:
"
index
"
,
label
:
"
序号
"
,
width
:
50
},
// {label: "祖级列表", prop: "ancestors"},
{
label
:
"
部门名称
"
,
prop
:
"
deptName
"
},
{
label
:
"
成员数量
"
,
prop
:
"
deptName
"
},
{
label
:
"
成员数量
"
,
prop
:
"
personNum
"
},
{
label
:
"
负责人
"
,
prop
:
"
workName
"
},
// {label: "部门状态", prop: "deptStatus",formatter: this.formatter},
...
...
attendance-performance-manager-ui/admin/src/views/job/drawershow.vue
View file @
01e90fb6
...
...
@@ -5,16 +5,15 @@
:visible.sync=
"open"
:direction=
"direction"
size=
"50%"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"120px"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"120px"
style=
"padding:20px"
>
<el-row>
<Field
label=
"分组id"
prop=
"groupId"
v-model=
"form.groupId"
placeholder=
"请输入分组id
"
/>
<Field
label=
"分组"
prop=
"groupId"
v-model=
"form.groupId"
type=
"select"
placeholder=
"请选择分组
"
/>
<Field
label=
"分组名称"
prop=
"groupName"
v-model=
"form.groupName"
placeholder=
"请输入分组名称"
/>
<Field
label=
"职位编码"
prop=
"jobCode"
v-model=
"form.jobCode"
placeholder=
"请输入职位编码"
/>
<Field
label=
"职位名称"
prop=
"jobName"
v-model=
"form.jobName"
placeholder=
"请输入职位名称"
/>
<Field
label=
"类型"
prop=
"type"
v-model=
"form.type"
type=
"select"
:enumData=
"dict.type"
placeholder=
"请选择类型"
/>
<Field
label=
"备注"
prop=
"remark"
v-model=
"form.remark"
type=
"textarea"
placeholder=
"请输入备注"
/>
</el-row>
<form-buttons
@
submit=
'submitForm'
noCancelBtn
/>
</el-form>
...
...
@@ -47,7 +46,8 @@
],
// 表单校验
rules
:
{
}
},
from
:
''
};
},
...
...
@@ -63,11 +63,14 @@
},
/** 新增 */
add
(
row
)
{
// console.log(row,'添加')
this
.
from
=
row
this
.
title
=
row
===
'
group
'
?
"
新增分组信息
"
:
'
新增职位信息
'
;
this
.
reset
()
this
.
urls
.
currUrl
=
"
job/add
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
add
"
this
.
title
=
"
新增员工信息
"
;
},
/** 查看*/
view
(
row
)
{
...
...
attendance-performance-manager-ui/admin/src/views/job/list.vue
View file @
01e90fb6
...
...
@@ -5,9 +5,9 @@
</div>
<el-row
:gutter=
"20"
>
<el-col
:span=
"6"
:xs=
"12"
class=
"mytree"
>
<div
class=
"title
s
"
>
<el-button
type=
"primary"
>
新增分组
</el-button>
<el-button
type=
"success"
>
新增职位
</el-button>
<div
class=
"title"
>
<el-button
type=
"primary"
size=
"mini"
@
click=
"saveFn('group')"
>
新增分组
</el-button>
<el-button
type=
"success"
size=
"mini"
@
click=
"saveFn('position')"
>
新增职位
</el-button>
</div>
<el-scrollbar
style=
"height: 100%"
>
<el-tree
...
...
@@ -65,6 +65,9 @@
}
},
methods
:
{
saveFn
(
from
){
this
.
$refs
.
drawerform
.
add
(
from
)
},
renderContent
:
function
(
h
,
{
node
,
data
,
store
})
{
return
(
<
span
>
...
...
@@ -95,7 +98,8 @@
},
/** 重写新增方法 */
toAdd
(
row
)
{
this
.
$refs
.
drawerform
.
add
(
row
);
// console.log(row,'ssss')
// this.$refs.drawerform.add(row);
},
/** 重写编辑方法 */
toEdit
(
row
)
{
...
...
@@ -164,9 +168,11 @@
)
}
}
]
]
,
},
isExport
:
false
isExport
:
false
,
saveFrom
:
''
,
addShow
:
false
,
}
}
};
...
...
attendance-performance-manager-ui/admin/src/views/staff/list.vue
View file @
01e90fb6
...
...
@@ -8,8 +8,6 @@
<div
class=
"item flex"
>
<div>
全职
<span
class=
"num"
>
{{
tableData
.
staff
.
fullStaff
}}
</span></div>
<div>
实习
<span
class=
"num"
>
{{
tableData
.
staff
.
pricateStaff
}}
</span></div>
<!-- 兼职未对 -->
<div>
兼职
<span
class=
"num"
>
{{
tableData
.
staff
.
concurrentlyStaff
}}
</span></div>
</div>
...
...
@@ -51,10 +49,18 @@
更多操作
<i
class=
"el-icon-arrow-down el-icon--right"
></i>
</el-button>
<el-dropdown-menu
slot=
"dropdown"
>
<el-dropdown-item>
同步数据
</el-dropdown-item>
<el-dropdown-item
@
click=
"handleImport"
>
导入花名册
</el-dropdown-item>
<el-dropdown-item>
历史花名册
</el-dropdown-item>
<el-dropdown-item>
自定义列表字段
</el-dropdown-item>
<el-dropdown-item>
<el-button
type=
"text"
>
同步数据
</el-button>
</el-dropdown-item>
<el-dropdown-item>
<el-button
type=
"text"
@
click=
"handleImport"
>
导入花名册
</el-button>
</el-dropdown-item>
<el-dropdown-item>
<el-button
type=
"text"
@
click=
"lookDetailHis"
>
历史花名册
</el-button>
</el-dropdown-item>
<el-dropdown-item>
<el-button
type=
"text"
>
自定义列表字段
</el-button>
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
...
...
@@ -107,6 +113,25 @@
<el-button
@
click=
"upload.open = false"
>
取 消
</el-button>
</div>
</el-dialog>
<!-- 花名册记录查看 -->
<el-drawer
title=
"花名册记录"
:visible.sync=
"drawerhistory"
direction=
"rtl"
>
<div
class=
"hisList"
>
<div
class=
"list mt10"
v-for=
"item in 10"
:key=
"item"
>
<div
class=
"flex flex-align-center flex-pack-justify"
>
<div>
花名册记录
</div>
<el-button
type=
"text"
>
查看
</el-button>
</div>
<div
class=
"times"
>
导出时间:2020-08-13
</div>
</div>
</div>
</el-drawer>
<drawer-show
ref=
"drawerform"
@
ok=
"getData"
:bumentree=
"areaData"
/>
</div>
</
template
>
...
...
@@ -178,6 +203,11 @@
this
.
isExport
=
false
;
this
.
$message
.
error
(
error
.
message
);
})
},
// 导出花名册
lookDetailHis
(){
console
.
log
(
'
1111
'
)
this
.
drawerhistory
=
true
}
},
data
()
{
...
...
@@ -236,7 +266,8 @@
isshowHome
:
false
,
personData
:[],
isExport
:
false
,
staffInfo
:{}
staffInfo
:{},
drawerhistory
:
false
}
},
computed
:{
...
...
@@ -268,6 +299,19 @@
.page
{
min-width
:
1400px
;
}
.hisList
{
padding
:
15px
;
.list
{
background-color
:
rgba
(
64
,
158
,
255
,
0
.1
);
font-size
:
14px
;
border-radius
:
10px
;
padding
:
10px
;
.times
{
font-size
:
12px
;
color
:
#999
;
}
}
}
.totalNum
{
background
:
rgba
(
64
,
158
,
255
,
0
.2
);
padding
:
15px
;
...
...
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