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
87216c4f
Commit
87216c4f
authored
Aug 10, 2023
by
廖旭伟
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
69ebf551
47ca8729
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
408 additions
and
340 deletions
+408
-340
attendance-performance-manager-ui/admin/src/views/attendance/record/error/drawershow.vue
...ui/admin/src/views/attendance/record/error/drawershow.vue
+174
-156
attendance-performance-manager-ui/admin/src/views/attendance/record/error/list.vue
...nager-ui/admin/src/views/attendance/record/error/list.vue
+219
-177
attendance-performance-manager-ui/admin/src/views/attendance/stat/list.vue
...mance-manager-ui/admin/src/views/attendance/stat/list.vue
+15
-7
No files found.
attendance-performance-manager-ui/admin/src/views/attendance/record/error/drawershow.vue
View file @
87216c4f
<
template
>
<!-- 弹出框表单 -->
<el-drawer
title=
"批量处理"
:visible.sync=
"open"
:direction=
"direction"
size=
"50%"
>
<div
style=
"padding:20px;font-size:15px"
>
<div>
已选择
{{
selection
.
length
}}
个:
</div>
<div
class=
"staffList mt20"
>
<div
v-for=
"item in selection"
:key=
"item"
class=
"mt10"
>
将
<span>
{{
item
.
staffName
}}
</span>
<span>
的
{{
item
.
goOrOff
}}
时间
{{
item
.
goOffDateTime
}}
打卡异常状态
</span>
<span
class=
"ml10"
style=
"color:#f56c6c"
>
{{
dict
[
'
errorStatus
'
][
item
.
errorStatus
]
}}
</span>
<span
class=
"ml10"
>
修改为
</span>
</div>
<div
class=
"mt10"
>
<!--
<!-- 弹出框表单 -->
<el-drawer
title=
"批量处理"
:visible.sync=
"open"
:direction=
"direction"
size=
"50%"
>
<div
style=
"padding:20px;font-size:15px"
>
<div>
已选择
{{
selection
.
length
}}
个:
</div>
<div
class=
"staffList mt20"
>
<div
v-for=
"item in selection"
:key=
"item"
class=
"mt10"
>
将
<span>
{{
item
.
staffName
}}
</span>
<span
>
的
{{
item
.
goOrOff
}}
时间
{{
item
.
goOffDateTime
}}
打卡异常状态
</span
>
<span
class=
"ml10"
style=
"color:#f56c6c"
>
{{
dict
[
"
errorStatus
"
][
item
.
errorStatus
]
}}
</span>
<span
class=
"ml10"
>
修改为
</span>
</div>
<div
class=
"mt10"
>
<!--
<Field
label=
""
v-model=
"dealParams.processResult"
type=
"select"
:enumData=
"dict.errorStatus"
/>
-->
<!-- 处理异常状态 -->
<el-select
v-model=
"dealParams.processResult"
>
<el-option
v-for=
'($label, $value) in dict.errorStatus'
:key=
"$value"
:label=
"$label"
:value=
"$value"
>
</el-option>
</el-select>
<!-- 早退/迟到 -->
<el-input
style=
"width:220px"
placeholder=
"请输入数字"
:maxlength=
"4"
v-model=
"duration"
v-if=
"dealParams.processResult == '1'|| dealParams.processResult == '2'"
class=
"ml20"
type=
"number"
>
<template
slot=
"append"
>
分钟
</
template
>
</el-input>
</div>
<div
class=
"mt10"
>
<span>
备注:
</span>
<el-input
placeholder=
"请输入备注"
type=
"textarea"
show-word-limit
class=
"mt10"
:maxlength=
"50"
v-model=
"dealParams.remark"
></el-input>
</div>
</div>
<div
class=
"mt20"
>
<el-button
type=
"primary"
@
click=
"saveForm"
>
确定
</el-button>
<el-button
@
click=
"cancleFn"
>
取消
</el-button>
</div>
<!-- 处理异常状态 -->
<el-select
v-model=
"dealParams.errorStatus"
>
<el-option
v-for=
"($label, $value) in dict.errorStatus"
:key=
"$value"
:label=
"$label"
:value=
"$value"
>
</el-option>
</el-select>
<!-- 早退/迟到 -->
<el-input
style=
"width:220px"
placeholder=
"请输入数字"
:maxlength=
"4"
v-model=
"duration"
v-if=
"
dealParams.errorStatus == '1' || dealParams.errorStatus == '2'
"
class=
"ml20"
type=
"number"
>
<template
slot=
"append"
>
分钟
</
template
>
</el-input>
</div>
</el-drawer>
<div
class=
"mt10"
>
<span>
处理结果:
</span>
<el-input
placeholder=
"请输入处理结果"
type=
"textarea"
show-word-limit
class=
"mt10"
:maxlength=
"50"
v-model=
"dealParams.processResult"
></el-input>
</div>
</div>
<div
class=
"mt20"
>
<el-button
type=
"primary"
@
click=
"saveForm"
>
确定
</el-button>
<el-button
@
click=
"cancleFn"
>
取消
</el-button>
</div>
</div>
</el-drawer>
</template>
<
script
>
export
default
{
name
:
"
AttendanceRecordDetail
"
,
created
()
{
},
data
()
{
return
{
// 遮罩层
loading
:
true
,
// 弹出层标题
title
:
"
考勤打卡记录信息
"
,
// 是否显示弹出层
open
:
false
,
direction
:
"
rtl
"
,
toString
:
[
"
processResult
"
],
// 表单校验
rules
:
{
staffName
:
[
{
required
:
true
,
message
:
"
请输入员工姓名
"
,
trigger
:
"
blur
"
},
{
max
:
64
,
message
:
"
最多只能录入64个字符
"
,
trigger
:
"
blur
"
,},
],
createTime
:
[
{
required
:
true
,
message
:
"
请选择创建时间
"
},
],
},
dealParams
:{
remark
:
''
,
errorStatus
:
null
,
durtion
:
0
,
processResult
:
''
,
recordErrorEntities
:[],
//处理员工
processStatus
:
1
//处理状态
},
selection
:[],
query
:{},
urls
:{
currUrl
:
''
,
saveUrl
:
'
attendance/record/error/save
'
},
dict
:{
errorStatus
:
''
},
duration
:
''
}
},
export
default
{
name
:
"
AttendanceRecordDetail
"
,
created
()
{},
data
()
{
return
{
// 遮罩层
loading
:
true
,
// 弹出层标题
title
:
"
考勤打卡记录信息
"
,
// 是否显示弹出层
open
:
false
,
direction
:
"
rtl
"
,
toString
:
[
"
processResult
"
,
"
errorStatus
"
],
// 表单校验
rules
:
{
staffName
:
[
{
required
:
true
,
message
:
"
请输入员工姓名
"
,
trigger
:
"
blur
"
},
{
max
:
64
,
message
:
"
最多只能录入64个字符
"
,
trigger
:
"
blur
"
},
],
createTime
:
[{
required
:
true
,
message
:
"
请选择创建时间
"
}],
},
dealParams
:
{
remark
:
""
,
errorStatus
:
null
,
durtion
:
0
,
processResult
:
""
,
recordErrorEntities
:
[],
//处理员工
processStatus
:
1
,
//处理状态
},
selection
:
[],
query
:
{},
urls
:
{
currUrl
:
""
,
saveUrl
:
"
attendance/record/error/save
"
,
},
dict
:
{
errorStatus
:
""
,
},
duration
:
""
,
};
},
methods
:
{
// 渲染前置处理
beforeRender
(
data
)
{
return
data
},
/** 编辑 */
edit
(
row
,
selection
)
{
if
(
selection
.
length
<
1
)
{
this
.
selection
=
[
row
]
this
.
query
=
{
id
:
row
.
id
};
}
else
{
this
.
selection
=
selection
this
.
query
=
{
id
:
this
.
selection
[
0
].
id
}
}
this
.
dealParams
.
recordErrorEntities
=
this
.
selection
this
.
urls
.
currUrl
=
"
attendance/record/error/edit
"
;
this
.
getInital
(
this
.
query
.
id
)
},
/**获取数据后弹框 */
afterRender
(
data
)
{
this
.
open
=
true
;
},
methods
:
{
// 渲染前置处理
beforeRender
(
data
)
{
return
data
;
},
/** 编辑 */
edit
(
row
,
selection
)
{
if
(
selection
.
length
<
1
)
{
this
.
selection
=
[
row
];
this
.
query
=
{
id
:
row
.
id
};
}
else
{
this
.
selection
=
selection
;
this
.
query
=
{
id
:
this
.
selection
[
0
].
id
};
}
this
.
dealParams
.
recordErrorEntities
=
this
.
selection
;
this
.
urls
.
currUrl
=
"
attendance/record/error/edit
"
;
this
.
getInital
(
this
.
query
.
id
);
},
/**获取数据后弹框 */
afterRender
(
data
)
{
this
.
open
=
true
;
},
getInital
(
id
){
this
.
$post
(
this
.
urls
.
currUrl
+
'
?id=
'
+
id
).
then
(
res
=>
{
if
(
res
.
code
==
1
){
this
.
afterRender
()
this
.
dict
=
res
.
data
.
dict
}
})
},
// 保存
saveForm
(){
if
(
this
.
dealParams
.
processResult
==
''
){
this
.
$message
.
error
(
'
请选择处理结果
'
)
return
}
this
.
dealParams
.
errorStatus
=
this
.
dealParams
.
processResult
if
(
this
.
duration
&&
(
this
.
dealParams
.
processResult
==
'
1
'
||
this
.
dealParams
.
processResult
==
'
2
'
)){
this
.
dealParams
.
processResult
=
this
.
dict
.
errorStatus
[
this
.
dealParams
.
processResult
]
+
this
.
duration
+
'
分钟
'
this
.
dealParams
.
durtion
=
this
.
duration
}
// 保存结果处理
this
.
$post
(
this
.
urls
.
saveUrl
,
this
.
dealParams
).
then
(
res
=>
{
if
(
res
.
code
==
1
){
this
.
cancleFn
()
}
})
},
cancleFn
(){
this
.
open
=
false
this
.
dealParams
=
{
remark
:
''
,
errorStatus
:
null
,
durtion
:
0
,
processResult
:
''
,
recordErrorEntities
:[],
//处理员工
processStatus
:
1
//处理状态
}
this
.
$emit
(
"
ok
"
)
}
getInital
(
id
)
{
this
.
$post
(
this
.
urls
.
currUrl
+
"
?id=
"
+
id
).
then
((
res
)
=>
{
if
(
res
.
code
==
1
)
{
this
.
afterRender
();
this
.
dict
=
res
.
data
.
dict
;
}
});
},
// 保存
saveForm
()
{
if
(
this
.
dealParams
.
errorStatus
==
""
)
{
this
.
$message
.
error
(
"
请选择处理结果
"
);
return
;
}
this
.
dealParams
.
errorStatus
=
this
.
dealParams
.
errorStatus
;
if
(
this
.
duration
&&
(
this
.
dealParams
.
errorStatus
==
"
1
"
||
this
.
dealParams
.
errorStatus
==
"
2
"
)
)
{
this
.
dealParams
.
errorStatus
=
this
.
dict
.
errorStatus
[
this
.
dealParams
.
errorStatus
]
+
this
.
duration
+
"
分钟
"
;
this
.
dealParams
.
durtion
=
this
.
duration
;
}
// 保存结果处理
this
.
$post
(
this
.
urls
.
saveUrl
,
this
.
dealParams
).
then
((
res
)
=>
{
if
(
res
.
code
==
1
)
{
this
.
cancleFn
();
}
}
});
},
cancleFn
()
{
this
.
open
=
false
;
this
.
dealParams
=
{
remark
:
""
,
errorStatus
:
null
,
durtion
:
0
,
processResult
:
""
,
recordErrorEntities
:
[],
//处理员工
processStatus
:
1
,
//处理状态
};
this
.
$emit
(
"
ok
"
);
},
},
};
</
script
>
attendance-performance-manager-ui/admin/src/views/attendance/record/error/list.vue
View file @
87216c4f
<
template
>
<div
class=
"page"
>
<LayoutTable
:data=
"tableData"
:config=
"tableConfig"
notDel
notAdd
>
<el-button
slot=
"table-head-left2"
style=
"margin-left: 10px"
size=
"mini"
type=
"primary"
@
click=
"morehandle"
>
批量处理
</el-button>
</LayoutTable>
<drawer-show
ref=
"drawerShow"
@
ok=
"getData"
/>
<!-- 撤销提示 -->
<el-dialog
:visible.sync=
"dialogVisible"
title=
"提示"
width=
"40%"
>
<div>
撤销异常处理结果后,当天的考勤结果将会重新计算,系统需要花费一点时间。
</div>
<div
class=
"flex flex_end"
>
<el-button
@
click=
"dialogVisible = false"
>
取消
</el-button>
<el-button
type=
"primary"
@
click=
"resetError"
>
确定
</el-button>
</div>
</el-dialog>
</div>
<div
class=
"page"
>
<LayoutTable
:data=
"tableData"
:config=
"tableConfig"
notDel
notAdd
>
<el-button
slot=
"table-head-left2"
style=
"margin-left: 10px"
size=
"mini"
type=
"primary"
@
click=
"morehandle"
>
批量处理
</el-button
>
</LayoutTable>
<drawer-show
ref=
"drawerShow"
@
ok=
"getData"
/>
<!-- 撤销提示 -->
<el-dialog
:visible.sync=
"dialogVisible"
title=
"提示"
width=
"40%"
>
<div>
撤销异常处理结果后,当天的考勤结果将会重新计算,系统需要花费一点时间。
</div>
<div
class=
"flex flex_end"
>
<el-button
@
click=
"dialogVisible = false"
>
取消
</el-button>
<el-button
type=
"primary"
@
click=
"resetError"
>
确定
</el-button>
</div>
</el-dialog>
</div>
</
template
>
<
script
>
/** 表单弹出框模式需引入 */
import
drawerShow
from
"
./drawershow
"
;
import
table
from
"
@/assets/mixins/table
"
;
export
default
{
name
:
"
AttendanceRecordErrorList
"
,
components
:
{
drawerShow
},
mixins
:
[
table
],
created
()
{
},
methods
:
{
/** 重写新增方法 */
// toAdd(row) {
// this.$refs.dialogform.add(row);
// },
// /** 重写编辑方法 */
// toEdit(row) {
// this.$refs.dialogform.edit(row);
// },
// /** 重写查看方法 */
// toView(row) {
// this.$refs.dialogform.view(row);
// },
/** 表单弹出框模式需引入 */
import
drawerShow
from
"
./drawershow
"
;
import
table
from
"
@/assets/mixins/table
"
;
export
default
{
name
:
"
AttendanceRecordErrorList
"
,
components
:
{
drawerShow
,
},
mixins
:
[
table
],
created
()
{},
methods
:
{
/** 重写新增方法 */
// toAdd(row) {
// this.$refs.dialogform.add(row);
// },
// /** 重写编辑方法 */
// toEdit(row) {
// this.$refs.dialogform.edit(row);
// },
// /** 重写查看方法 */
// toView(row) {
// this.$refs.dialogform.view(row);
// },
morehandle
()
{
let
arr
=
this
.
tableData
.
data
.
filter
(
item
=>
{
if
(
this
.
selection
.
includes
(
item
.
id
)
&&
item
.
processStatus
==
0
)
{
return
item
}
})
this
.
$nextTick
(()
=>
{
this
.
selection
=
arr
.
map
(
item
=>
item
.
id
)
})
if
(
arr
.
length
<
1
)
{
this
.
$message
.
error
(
'
请至少选择一条处理
'
)
return
}
morehandle
()
{
let
arr
=
this
.
tableData
.
data
.
filter
((
item
)
=>
{
if
(
this
.
selection
.
includes
(
item
.
id
)
&&
item
.
processStatus
==
0
)
{
return
item
;
}
});
this
.
$nextTick
(()
=>
{
this
.
selection
=
arr
.
map
((
item
)
=>
item
.
id
);
});
if
(
arr
.
length
<
1
)
{
this
.
$message
.
error
(
"
请至少选择一条处理
"
);
return
;
}
this
.
$refs
.
drawerShow
.
edit
(
arr
[
0
],
arr
);
},
// 处理
handle
(
err
){
console
.
log
(
err
)
this
.
$refs
.
drawerShow
.
edit
(
err
,[]);
},
// 撤销
reCancle
(
err
){
console
.
log
(
err
)
this
.
currentParams
=
err
this
.
dialogVisible
=
true
},
resetError
(){
this
.
$post
(
'
attendance/record/error/revokeError
'
,{...
this
.
currentParams
}).
then
(
res
=>
{
if
(
res
.
code
==
1
){
this
.
dialogVisible
=
false
this
.
getData
()
}
})
}
},
data
()
{
return
{
config
:
{
isshowTabPane
:
true
,
search
:
[
{
name
:
"
deptId
"
,
type
:
"
select
"
,
label
:
"
全部部门
"
},
{
name
:
"
groupId
"
,
type
:
"
select
"
,
label
:
"
全部考勤组
"
},
/* {
this
.
$refs
.
drawerShow
.
edit
(
arr
[
0
],
arr
);
},
// 处理
handle
(
err
)
{
console
.
log
(
err
);
this
.
$refs
.
drawerShow
.
edit
(
err
,
[]);
},
// 撤销
reCancle
(
err
)
{
console
.
log
(
err
);
this
.
currentParams
=
err
;
this
.
dialogVisible
=
true
;
},
resetError
()
{
this
.
$post
(
"
attendance/record/error/revokeError
"
,
{
...
this
.
currentParams
,
}).
then
((
res
)
=>
{
if
(
res
.
code
==
1
)
{
this
.
dialogVisible
=
false
;
this
.
getData
();
}
});
},
},
data
()
{
return
{
config
:
{
isshowTabPane
:
true
,
search
:
[
{
name
:
"
deptId
"
,
type
:
"
select
"
,
label
:
"
全部部门
"
,
},
{
name
:
"
groupId
"
,
type
:
"
select
"
,
label
:
"
全部考勤组
"
,
},
/* {
name: "classId",
type: "select",
label: "全部班次",
fuzzy: false
},*/
{
name
:
"
errorStatus
"
,
type
:
"
select
"
,
label
:
"
全部异常状态
"
},
{
name
:
"
processStatus
"
,
type
:
"
select
"
,
label
:
"
全部处理状态
"
},
{
name
:
'
errorDateTimeStart
'
,
type
:
"
date
"
,
label
:
"
异常开始时间
"
},
{
name
:
'
attendanceDateEnd
'
,
type
:
"
date
"
,
label
:
"
errorDateTimeEnd
"
},
{
name
:
"
staffName
"
,
type
:
"
text
"
,
label
:
"
员工姓名
"
,
fuzzy
:
true
},
{
name
:
"
phoneNumber
"
,
type
:
"
text
"
,
label
:
"
手机号
"
,
fuzzy
:
true
},
],
columns
:
[
{
type
:
"
selection
"
,
width
:
60
,
fixed
:
'
left
'
},
{
type
:
"
index
"
,
label
:
"
序号
"
,
width
:
50
,
fixed
:
'
left
'
},
{
label
:
"
员工姓名
"
,
prop
:
"
staffName
"
,
fixed
:
'
left
'
,
width
:
100
},
{
label
:
"
工号
"
,
prop
:
"
workNum
"
},
{
label
:
"
部门
"
,
prop
:
"
deptName
"
},
{
label
:
"
考勤组
"
,
prop
:
"
attendanceGroupName
"
},
/* {label: "班次", prop: "shiftsName"},*/
{
label
:
"
异常状态
"
,
prop
:
"
errorStatus
"
,
formatter
:
this
.
formattereErrorStatus
},
{
label
:
"
异常时间
"
,
prop
:
"
errorDateTime
"
,
formatter
:
this
.
formatterDate
},
{
label
:
"
处理结果
"
,
prop
:
"
processResult
"
,
formatter
:
this
.
formatters
},
{
label
:
"
上下班时间
"
,
prop
:
"
goOffDateTime
"
,
formatter
:(
row
)
=>
{
return
row
.
goOrOff
+
"
"
+
row
.
goOffDateTime
}},
{
label
:
"
实际打卡时间
"
,
prop
:
"
actualAttendanceDateTime
"
,
formatter
:
this
.
formatterDate
},
{
label
:
"
处理时间
"
,
prop
:
"
operDateTime
"
,
formatter
:
this
.
formatterDate
},
{
label
:
"
处理状态
"
,
prop
:
"
processStatus
"
,
formatter
:
this
.
formattereDealStatus
},
{
label
:
"
处理人
"
,
prop
:
"
opertor
"
,
formatter
:
this
.
formatters
},
{
label
:
"
备注
"
,
prop
:
"
remark
"
,
formatter
:
this
.
formatters
},
{
label
:
"
操作
"
,
width
:
240
,
formatter
:
(
row
)
=>
{
if
(
row
.
processStatus
==
0
||
!
row
.
processStatus
){
return
(
<
el
-
button
type
=
"
text
"
size
=
'
mini
'
onClick
=
{()
=>
{
this
.
handle
(
row
)
}}
>
处理
<
/el-button
>
)
}
else
{
return
(
<
span
>
<
el
-
button
type
=
"
text
"
size
=
'
mini
'
onClick
=
{()
=>
{
this
.
reCancle
(
row
)
}}
>
撤销
<
/el-button
>
<
/span
>
)
}
}
}
]
},
dialogVisible
:
false
,
currentParams
:{}
}
}
}
{
name
:
"
errorStatus
"
,
type
:
"
select
"
,
label
:
"
全部异常状态
"
,
},
{
name
:
"
processStatus
"
,
type
:
"
select
"
,
label
:
"
全部处理状态
"
,
},
{
name
:
"
errorDateTimeStart
"
,
type
:
"
date
"
,
label
:
"
异常开始时间
"
,
},
{
name
:
"
attendanceDateEnd
"
,
type
:
"
date
"
,
label
:
"
errorDateTimeEnd
"
,
},
{
name
:
"
staffName
"
,
type
:
"
text
"
,
label
:
"
员工姓名
"
,
fuzzy
:
true
,
},
{
name
:
"
phoneNumber
"
,
type
:
"
text
"
,
label
:
"
手机号
"
,
fuzzy
:
true
,
},
],
columns
:
[
{
type
:
"
selection
"
,
width
:
60
,
fixed
:
"
left
"
},
{
type
:
"
index
"
,
label
:
"
序号
"
,
width
:
50
,
fixed
:
"
left
"
},
{
label
:
"
员工姓名
"
,
prop
:
"
staffName
"
,
fixed
:
"
left
"
,
width
:
100
},
{
label
:
"
工号
"
,
prop
:
"
workNum
"
},
{
label
:
"
部门
"
,
prop
:
"
deptName
"
},
{
label
:
"
考勤组
"
,
prop
:
"
attendanceGroupName
"
},
/* {label: "班次", prop: "shiftsName"},*/
{
label
:
"
异常状态
"
,
prop
:
"
errorStatus
"
,
formatter
:
this
.
formattereErrorStatus
,
},
{
label
:
"
异常时间
"
,
prop
:
"
errorDateTime
"
,
formatter
:
this
.
formatterDate
,
},
{
label
:
"
处理结果
"
,
prop
:
"
processResult
"
,
formatter
:
this
.
formatters
,
},
{
label
:
"
上下班时间
"
,
prop
:
"
goOffDateTime
"
,
formatter
:
(
row
)
=>
{
return
row
.
goOrOff
+
"
"
+
row
.
goOffDateTime
;
},
},
{
label
:
"
实际打卡时间
"
,
prop
:
"
actualAttendanceDateTime
"
,
formatter
:
this
.
formatterDate
,
},
{
label
:
"
处理时间
"
,
prop
:
"
operDateTime
"
,
formatter
:
this
.
formatterDate
,
},
{
label
:
"
处理状态
"
,
prop
:
"
processStatus
"
,
formatter
:
this
.
formattereDealStatus
,
},
{
label
:
"
处理人
"
,
prop
:
"
opertor
"
,
formatter
:
this
.
formatters
},
{
label
:
"
备注
"
,
prop
:
"
remark
"
,
formatter
:
this
.
formatters
},
{
label
:
"
操作
"
,
width
:
240
,
formatter
:
(
row
)
=>
{
if
(
row
.
processStatus
==
0
||
!
row
.
processStatus
)
{
return
(
<
el
-
button
type
=
"
text
"
size
=
"
mini
"
onClick
=
{()
=>
{
this
.
handle
(
row
);
}}
>
处理
<
/el-button
>
);
}
else
{
return
(
<
span
>
<
el
-
button
type
=
"
text
"
size
=
"
mini
"
onClick
=
{()
=>
{
this
.
reCancle
(
row
);
}}
>
撤销
<
/el-button
>
<
/span
>
);
}
},
},
],
},
dialogVisible
:
false
,
currentParams
:
{},
};
},
};
</
script
>
attendance-performance-manager-ui/admin/src/views/attendance/stat/list.vue
View file @
87216c4f
...
...
@@ -102,8 +102,11 @@ export default {
methods
:
{
// 处理
handleArr
(
arr
,
currentTime
)
{
let
index
=
arr
.
findIndex
((
item
)
=>
item
.
createTime
===
currentTime
);
console
.
log
(
currentTime
);
console
.
log
(
arr
);
let
index
=
arr
.
findIndex
((
item
)
=>
item
.
createTime
==
currentTime
);
if
(
index
>
-
1
)
{
console
.
log
(
arr
[
index
].
attendanceSummary
);
return
arr
[
index
].
attendanceSummary
;
}
else
{
return
"
-
"
;
...
...
@@ -263,16 +266,21 @@ export default {
{
label
:
"
出勤天数
"
,
prop
:
"
goTimes
"
,
formatter
:
this
.
formatter
},
{
label
:
"
上午
缺卡次数
"
,
label
:
"
缺卡次数
"
,
prop
:
"
morningTimes
"
,
formatter
:
this
.
formatter
,
},
// {
// label: "上午缺卡次数",
// prop: "morningTimes",
// formatter: this.formatter,
// },
{
label
:
"
下午缺卡次数
"
,
prop
:
"
afternoonTimes
"
,
formatter
:
this
.
formatter
,
},
//
{
//
label: "下午缺卡次数",
//
prop: "afternoonTimes",
//
formatter: this.formatter,
//
},
{
label
:
"
回单位(天)
"
,
prop
:
"
backToUnit
"
},
{
label
:
"
因公请假(天)
"
,
prop
:
"
onDutyLeave
"
},
...
...
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