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
92071f5c
Commit
92071f5c
authored
Apr 20, 2023
by
dll
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
提交代码-end
parent
0ad72915
Changes
16
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
238 additions
and
233 deletions
+238
-233
attendance-performance-manager-ui/admin/src/assets/mixins/form.js
...ce-performance-manager-ui/admin/src/assets/mixins/form.js
+1
-0
attendance-performance-manager-ui/admin/src/assets/utils/ajax.js
...nce-performance-manager-ui/admin/src/assets/utils/ajax.js
+3
-7
attendance-performance-manager-ui/admin/src/assets/utils/dateFormat.js
...rformance-manager-ui/admin/src/assets/utils/dateFormat.js
+15
-5
attendance-performance-manager-ui/admin/src/assets/utils/table.js
...ce-performance-manager-ui/admin/src/assets/utils/table.js
+2
-2
attendance-performance-manager-ui/admin/src/components/FileUpload.vue
...erformance-manager-ui/admin/src/components/FileUpload.vue
+4
-3
attendance-performance-manager-ui/admin/src/components/ImageUpload.vue
...rformance-manager-ui/admin/src/components/ImageUpload.vue
+1
-1
attendance-performance-manager-ui/admin/src/views/Home.vue
attendance-performance-manager-ui/admin/src/views/Home.vue
+1
-0
attendance-performance-manager-ui/admin/src/views/attendance/class/dialogshow.vue
...anager-ui/admin/src/views/attendance/class/dialogshow.vue
+1
-1
attendance-performance-manager-ui/admin/src/views/attendance/group/groupTemplate.vue
...ger-ui/admin/src/views/attendance/group/groupTemplate.vue
+2
-1
attendance-performance-manager-ui/admin/src/views/attendance/leave/record/drawershow.vue
...ui/admin/src/views/attendance/leave/record/drawershow.vue
+57
-11
attendance-performance-manager-ui/admin/src/views/attendance/record/error/dialogshow.vue
...ui/admin/src/views/attendance/record/error/dialogshow.vue
+0
-144
attendance-performance-manager-ui/admin/src/views/attendance/record/error/drawershow.vue
...ui/admin/src/views/attendance/record/error/drawershow.vue
+66
-27
attendance-performance-manager-ui/admin/src/views/attendance/record/error/list.vue
...nager-ui/admin/src/views/attendance/record/error/list.vue
+17
-11
attendance-performance-manager-ui/admin/src/views/attendance/record/hik/list.vue
...manager-ui/admin/src/views/attendance/record/hik/list.vue
+8
-8
attendance-performance-manager-ui/admin/src/views/attendance/record/list.vue
...nce-manager-ui/admin/src/views/attendance/record/list.vue
+53
-7
attendance-performance-manager-ui/admin/src/views/attendance/stat/list.vue
...mance-manager-ui/admin/src/views/attendance/stat/list.vue
+7
-5
No files found.
attendance-performance-manager-ui/admin/src/assets/mixins/form.js
View file @
92071f5c
...
@@ -56,6 +56,7 @@ export default {
...
@@ -56,6 +56,7 @@ export default {
el
.
validate
((
valid
)
=>
{
el
.
validate
((
valid
)
=>
{
if
(
!
valid
)
return
;
if
(
!
valid
)
return
;
this
.
loading
=
true
;
this
.
loading
=
true
;
console
.
log
(
'
提交了
'
)
this
.
$post
(
this
.
urls
.
saveUrl
||
this
.
pageInfo
.
saveUrl
,
this
.
$post
(
this
.
urls
.
saveUrl
||
this
.
pageInfo
.
saveUrl
,
this
.
beforeSubmit
(
this
.
form
)
this
.
beforeSubmit
(
this
.
form
)
)
)
...
...
attendance-performance-manager-ui/admin/src/assets/utils/ajax.js
View file @
92071f5c
...
@@ -25,22 +25,18 @@ const instance = axios.create({
...
@@ -25,22 +25,18 @@ const instance = axios.create({
instance
.
interceptors
.
request
.
use
(
config
=>
{
instance
.
interceptors
.
request
.
use
(
config
=>
{
// 获取当前页面的主机名和端口号
// 获取当前页面的主机名和端口号
// const hostname = location.hostname;
const
hostname
=
location
.
hostname
;
const
hostname
=
location
.
hostname
;
// const hostname = location.hostname;
const
baseURL
=
config
.
baseURL
;
const
baseURL
=
config
.
baseURL
;
//
const port = location.port;
const
port
=
location
.
port
;
const
port
=
process
.
env
.
VUE_APP_PORTAL_PORT
==
'
undefined
'
?
'
11078
'
:
process
.
env
.
VUE_APP_PORTAL_PORT
;
//
const port =process.env.VUE_APP_PORTAL_PORT=='undefined'?'11078':process.env.VUE_APP_PORTAL_PORT;
// 测试用
// 测试用
//http://192.168.0.98:11039
//http://192.168.0.98:11039
// 温
// 温
// http://192.168.0.116/17500
// http://192.168.0.116/17500
// 代
// http://192.168.0.108/17500
//const hostname = '192.168.0.116'
//const port = '17500'
// const hostname = '192.168.0.116'
// const hostname = '192.168.0.116'
// const port = '17500'
// const port = '17500'
...
...
attendance-performance-manager-ui/admin/src/assets/utils/dateFormat.js
View file @
92071f5c
...
@@ -12,9 +12,9 @@ export const timestampToTime = (timestamp,transLength) => {
...
@@ -12,9 +12,9 @@ export const timestampToTime = (timestamp,transLength) => {
?
"
0
"
+
(
date
.
getMonth
()
+
1
)
?
"
0
"
+
(
date
.
getMonth
()
+
1
)
:
date
.
getMonth
()
+
1
)
+
"
-
"
;
:
date
.
getMonth
()
+
1
)
+
"
-
"
;
let
D
=
(
date
.
getDate
()
<
10
?
"
0
"
+
date
.
getDate
()
:
date
.
getDate
());
let
D
=
(
date
.
getDate
()
<
10
?
"
0
"
+
date
.
getDate
()
:
date
.
getDate
());
let
h
=
"
"
+
date
.
getHours
(
)
+
"
:
"
;
let
h
=
"
"
+
(
date
.
getHours
()
<
10
?
'
0
'
+
date
.
getHours
():
date
.
getHours
()
)
+
"
:
"
;
let
m
=
date
.
getMinutes
(
)
+
"
:
"
;
let
m
=
(
date
.
getMinutes
()
<
10
?
'
0
'
+
date
.
getMinutes
():
date
.
getMinutes
()
)
+
"
:
"
;
let
s
=
date
.
getSeconds
(
);
let
s
=
(
date
.
getSeconds
()
<
10
?
'
0
'
+
date
.
getSeconds
():
date
.
getSeconds
()
);
switch
(
transLength
){
switch
(
transLength
){
case
3
:
case
3
:
return
Y
+
M
+
D
;
return
Y
+
M
+
D
;
...
@@ -94,8 +94,9 @@ export const getdiffdate = (stime,etime) =>{
...
@@ -94,8 +94,9 @@ export const getdiffdate = (stime,etime) =>{
i
++
;
i
++
;
}
}
return
diffdate
;
return
diffdate
;
}
}
export
const
getMyDay
=
(
date
)
=>
{
// 获取某个日期是周几
export
const
getMyDay
=
(
date
)
=>
{
let
week
;
let
week
;
if
(
date
.
getDay
()
==
0
)
week
=
"
周日
"
if
(
date
.
getDay
()
==
0
)
week
=
"
周日
"
if
(
date
.
getDay
()
==
1
)
week
=
"
周一
"
if
(
date
.
getDay
()
==
1
)
week
=
"
周一
"
...
@@ -105,4 +106,13 @@ export const getdiffdate = (stime,etime) =>{
...
@@ -105,4 +106,13 @@ export const getdiffdate = (stime,etime) =>{
if
(
date
.
getDay
()
==
5
)
week
=
"
周五
"
if
(
date
.
getDay
()
==
5
)
week
=
"
周五
"
if
(
date
.
getDay
()
==
6
)
week
=
"
周六
"
if
(
date
.
getDay
()
==
6
)
week
=
"
周六
"
return
week
;
return
week
;
}
// 求两个日期的 分钟差
export
const
getMinu
=
(
s1
,
s2
)
=>
{
var
reDate
=
/
\d{4}
-
\d{1,2}
-
\d{1,2}
/
;
s1
=
new
Date
((
reDate
.
test
(
s1
)
?
s1
:
'
2023-01-01
'
+
s1
).
replace
(
/-/g
,
'
/
'
));
s2
=
new
Date
((
reDate
.
test
(
s2
)
?
s2
:
'
2023-01-01
'
+
s2
).
replace
(
/-/g
,
'
/
'
));
var
ms
=
s2
.
getTime
()
-
s1
.
getTime
();
if
(
ms
<
0
)
return
0
;
return
Math
.
floor
(
ms
/
1000
/
60
);
//分钟
}
}
\ No newline at end of file
attendance-performance-manager-ui/admin/src/assets/utils/table.js
View file @
92071f5c
...
@@ -46,7 +46,7 @@ const formatterAmount = (row, column) => {
...
@@ -46,7 +46,7 @@ const formatterAmount = (row, column) => {
const
formatterDate
=
(
row
,
column
)
=>
{
const
formatterDate
=
(
row
,
column
)
=>
{
const
property
=
column
.
property
;
const
property
=
column
.
property
;
const
time
=
row
[
property
];
const
time
=
row
[
property
];
if
(
!
time
)
return
''
;
if
(
!
time
)
return
'
-
'
;
let
date
=
time
.
length
<
13
?
new
Date
(
Number
(
time
)
*
1000
)
:
new
Date
(
Number
(
time
));
let
date
=
time
.
length
<
13
?
new
Date
(
Number
(
time
)
*
1000
)
:
new
Date
(
Number
(
time
));
let
Y
=
date
.
getFullYear
()
+
'
-
'
;
let
Y
=
date
.
getFullYear
()
+
'
-
'
;
let
M
=
(
date
.
getMonth
()
+
1
<
10
?
'
0
'
+
(
date
.
getMonth
()
+
1
)
:
date
.
getMonth
()
+
1
)
+
'
-
'
;
let
M
=
(
date
.
getMonth
()
+
1
<
10
?
'
0
'
+
(
date
.
getMonth
()
+
1
)
:
date
.
getMonth
()
+
1
)
+
'
-
'
;
...
@@ -67,7 +67,7 @@ const formatterDate = (row, column) => {
...
@@ -67,7 +67,7 @@ const formatterDate = (row, column) => {
const
formatterDateOnly
=
(
row
,
column
)
=>
{
const
formatterDateOnly
=
(
row
,
column
)
=>
{
const
property
=
column
.
property
;
const
property
=
column
.
property
;
const
time
=
row
[
property
];
const
time
=
row
[
property
];
if
(
!
time
)
return
''
;
if
(
!
time
)
return
'
-
'
;
let
date
=
new
Date
(
Number
(
time
));
let
date
=
new
Date
(
Number
(
time
));
let
Y
=
date
.
getFullYear
()
+
'
-
'
;
let
Y
=
date
.
getFullYear
()
+
'
-
'
;
let
M
=
(
date
.
getMonth
()
+
1
<
10
?
'
0
'
+
(
date
.
getMonth
()
+
1
)
:
date
.
getMonth
()
+
1
)
+
'
-
'
;
let
M
=
(
date
.
getMonth
()
+
1
<
10
?
'
0
'
+
(
date
.
getMonth
()
+
1
)
:
date
.
getMonth
()
+
1
)
+
'
-
'
;
...
...
attendance-performance-manager-ui/admin/src/components/FileUpload.vue
View file @
92071f5c
...
@@ -41,7 +41,7 @@
...
@@ -41,7 +41,7 @@
class=
"el-upload-list__item ele-upload-list__item-content"
class=
"el-upload-list__item ele-upload-list__item-content"
v-for=
"(file, index) in list"
v-for=
"(file, index) in list"
>
>
<el-link
:href=
"file.url"
:underline=
"false"
target=
"_blank"
>
<el-link
:href=
"
baseUrl+
file.url"
:underline=
"false"
target=
"_blank"
>
<span
class=
"el-icon-document"
style=
"font-size: 12px"
>
<span
class=
"el-icon-document"
style=
"font-size: 12px"
>
{{ getFileName(file.name) }}
{{ getFileName(file.name) }}
</span>
</span>
...
@@ -100,11 +100,12 @@ export default {
...
@@ -100,11 +100,12 @@ export default {
data
()
{
data
()
{
return
{
return
{
number
:
0
,
number
:
0
,
uploadFileUrl
:
"
/file/commonupload
"
,
// 上传的地址
baseUrl
:
process
.
env
.
VUE_APP_API_BASE_URL
+
'
/
'
,
uploadFileUrl
:
process
.
env
.
VUE_APP_API_BASE_URL
+
"
/attendance/file/commonupload
"
,
uploadList
:
[],
uploadList
:
[],
headers
:{},
headers
:{},
fileList
:
[],
fileList
:
[],
}
;
}
},
},
/* watch: {
/* watch: {
...
...
attendance-performance-manager-ui/admin/src/components/ImageUpload.vue
View file @
92071f5c
...
@@ -45,7 +45,7 @@ export default {
...
@@ -45,7 +45,7 @@ export default {
baseUrl
:
process
.
env
.
VUE_APP_API_BASE_URL
+
'
/
'
,
baseUrl
:
process
.
env
.
VUE_APP_API_BASE_URL
+
'
/
'
,
dialogVisible
:
false
,
dialogVisible
:
false
,
uploadImgUrl
:
process
.
env
.
VUE_APP_API_BASE_URL
+
"
/attendance/file/commonupload
"
,
// 上传的图片服务器地址
uploadImgUrl
:
process
.
env
.
VUE_APP_API_BASE_URL
+
"
/attendance/file/commonupload
"
,
// 上传的图片服务器地址
}
;
}
},
},
props
:
{
props
:
{
value
:
{
value
:
{
...
...
attendance-performance-manager-ui/admin/src/views/Home.vue
View file @
92071f5c
...
@@ -123,6 +123,7 @@ export default {
...
@@ -123,6 +123,7 @@ export default {
this
.
$store
.
commit
(
'
setThirdPath
'
,
''
)
this
.
$store
.
commit
(
'
setThirdPath
'
,
''
)
},
},
methods
:{
methods
:{
tabChildren
(
name
){
tabChildren
(
name
){
this
.
$store
.
commit
(
"
setCurrentParentName
"
,
name
)
//存储选择路由
this
.
$store
.
commit
(
"
setCurrentParentName
"
,
name
)
//存储选择路由
let
result
=
this
.
menu
.
find
(
item
=>
item
.
name
===
name
)
let
result
=
this
.
menu
.
find
(
item
=>
item
.
name
===
name
)
...
...
attendance-performance-manager-ui/admin/src/views/attendance/class/dialogshow.vue
View file @
92071f5c
...
@@ -3,7 +3,7 @@
...
@@ -3,7 +3,7 @@
<el-drawer
:title=
"title"
:visible.sync=
"open"
size=
"55%"
>
<el-drawer
:title=
"title"
:visible.sync=
"open"
size=
"55%"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"120px"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"120px"
>
<el-row>
<el-row>
<Field
label=
"班次名称"
prop=
"className"
v-model=
"form.className"
placeholder=
"请输入班次名称"
/>
<Field
label=
"班次名称"
prop=
"className"
v-model=
"form.className"
placeholder=
"请输入班次名称"
:maxLength=
"20"
/>
<Field
label=
"班次负责人"
prop=
"classResponsiblePersonId"
type=
"select"
:enumData=
"dict.workManId"
<Field
label=
"班次负责人"
prop=
"classResponsiblePersonId"
type=
"select"
:enumData=
"dict.workManId"
v-model=
"form.classResponsiblePersonId"
placeholder=
"请选择班次负责人"
/>
v-model=
"form.classResponsiblePersonId"
placeholder=
"请选择班次负责人"
/>
</el-row>
</el-row>
...
...
attendance-performance-manager-ui/admin/src/views/attendance/group/groupTemplate.vue
View file @
92071f5c
...
@@ -7,7 +7,8 @@
...
@@ -7,7 +7,8 @@
<tab-pane
:activeName=
"activeName"
:thirdList=
"thirdList"
></tab-pane>
<tab-pane
:activeName=
"activeName"
:thirdList=
"thirdList"
></tab-pane>
<div
class=
"mt20"
>
<div
class=
"mt20"
>
<div>
考勤组名称
</div>
<div>
考勤组名称
</div>
<el-input
placeholder=
"请输入考勤组名称"
v-model=
"setParams.groupName"
style=
"width:220px"
class=
"mt10"
></el-input>
<el-input
placeholder=
"请输入考勤组名称"
maxlength=
"20"
v-model=
"setParams.groupName"
style=
"width:320px"
class=
"mt10"
></el-input>
</div>
</div>
<div
class=
"flex flex-align-center mt20"
>
<div
class=
"flex flex-align-center mt20"
>
...
...
attendance-performance-manager-ui/admin/src/views/attendance/leave/record/drawershow.vue
View file @
92071f5c
...
@@ -9,14 +9,15 @@
...
@@ -9,14 +9,15 @@
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"120px"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"120px"
>
<el-row>
<el-row>
<!--
<Field
label=
"请假人"
prop=
"leavePersonId"
v-model=
"form.leavePersonId"
placeholder=
"请输入请假人"
/>
-->
<!--
<Field
label=
"请假人"
prop=
"leavePersonId"
v-model=
"form.leavePersonId"
placeholder=
"请输入请假人"
/>
-->
<Field
label=
"请假人"
prop=
"leavePerson"
v-model=
"form.leavePerson"
placeholder=
"请输入请假人"
/>
<Field
label=
"请假人"
prop=
"leavePerson"
v-model=
"form.leavePerson"
placeholder=
"请输入请假人"
:maxLength=
"10"
/>
<Field
label=
"所属部门"
prop=
"deptId"
v-model=
"form.deptId"
type=
"select"
placeholder=
"请选择所属部门"
:enumData=
"dict.deptId"
/>
<Field
label=
"所属部门"
prop=
"deptId"
v-model=
"form.deptId"
type=
"select"
placeholder=
"请选择所属部门"
:enumData=
"dict.deptId"
/>
<!--
<Field
label=
"所属部门"
prop=
"deptName"
v-model=
"form.deptName"
type=
"textarea"
placeholder=
"请输入所属部门"
/>
-->
<!--
<Field
label=
"所属部门"
prop=
"deptName"
v-model=
"form.deptName"
type=
"textarea"
placeholder=
"请输入所属部门"
/>
-->
<Field
label=
"电话号码"
prop=
"phoneNumber"
v-model=
"form.phoneNumber"
placeholder=
"请输入电话号码"
/>
<Field
label=
"电话号码"
prop=
"phoneNumber"
v-model=
"form.phoneNumber"
placeholder=
"请输入电话号码"
:maxLength=
"11"
/>
<Field
label=
"请假类型"
prop=
"leaveType"
v-model=
"form.leaveType"
type=
"select"
:enumData=
"dict.leaveType"
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=
"startTime"
v-model=
"form.startTime"
type=
"datetime"
@
change=
"changedate"
/>
<Field
label=
"结束时间"
prop=
"endTime"
v-model=
"form.endTime"
type=
"date"
/>
<Field
label=
"结束时间"
prop=
"endTime"
v-model=
"form.endTime"
type=
"datetime"
@
change=
"changedate"
/>
<Field
label=
"时长"
prop=
"duration"
v-model=
"form.duration"
placeholder=
"请输入时长"
/>
<Field
label=
"时长(单位:分钟)"
disabled
prop=
"duration"
v-model=
"form.duration"
placeholder=
"请输入时长(分钟)"
:maxLength=
"4"
/>
<Field
label=
"请假事由"
prop=
"reason"
v-model=
"form.reason"
type=
"textarea"
placeholder=
"请输入请假事由"
/>
<Field
label=
"请假事由"
prop=
"reason"
v-model=
"form.reason"
type=
"textarea"
placeholder=
"请输入请假事由"
/>
<Field
label=
"审批负责人"
prop=
"approverId"
type=
"select"
v-model=
"form.approverId"
placeholder=
"请选择审批负责人"
:enumData=
"dict.approverId"
/>
<Field
label=
"审批负责人"
prop=
"approverId"
type=
"select"
v-model=
"form.approverId"
placeholder=
"请选择审批负责人"
:enumData=
"dict.approverId"
/>
<!--
<Field
label=
"审批负责人"
prop=
"approver"
v-model=
"form.approver"
placeholder=
"请输入审批负责人"
/>
-->
<!--
<Field
label=
"审批负责人"
prop=
"approver"
v-model=
"form.approver"
placeholder=
"请输入审批负责人"
/>
-->
...
@@ -24,9 +25,9 @@
...
@@ -24,9 +25,9 @@
<Field
label=
"备注"
prop=
"remark"
v-model=
"form.remark"
type=
"textarea"
placeholder=
"请输入备注"
/>
<Field
label=
"备注"
prop=
"remark"
v-model=
"form.remark"
type=
"textarea"
placeholder=
"请输入备注"
/>
</el-row>
</el-row>
<el-form-item
label=
"附件路径"
prop=
"attachmentPath"
>
<el-form-item
label=
"附件路径"
prop=
"attachmentPath"
>
<FileUpload
@
input=
"uploadFn"
/>
<FileUpload
@
input=
"uploadFn"
:value=
"attachmentPath"
/>
</el-form-item>
</el-form-item>
<form-buttons
@
submit=
'submitForm'
noCancelBtn
/>
<form-buttons
@
submit=
"beforeSubmit"
noCancelBtn
/>
</el-form>
</el-form>
</div>
</div>
</el-drawer>
</el-drawer>
...
@@ -34,6 +35,8 @@
...
@@ -34,6 +35,8 @@
<
script
>
<
script
>
import
form
from
"
@/assets/mixins/formdialog
"
;
import
form
from
"
@/assets/mixins/formdialog
"
;
import
valid
from
'
@/assets/utils/vaild.js
'
import
{
getMinu
}
from
'
@/assets/utils/dateFormat.js
'
export
default
{
export
default
{
name
:
"
AttendanceLeaveRecordDetail
"
,
name
:
"
AttendanceLeaveRecordDetail
"
,
mixins
:
[
form
],
mixins
:
[
form
],
...
@@ -45,6 +48,7 @@
...
@@ -45,6 +48,7 @@
},
},
data
()
{
data
()
{
return
{
return
{
baseUrl
:
process
.
env
.
VUE_APP_API_BASE_URL
+
'
/
'
,
// 遮罩层
// 遮罩层
loading
:
true
,
loading
:
true
,
// 弹出层标题
// 弹出层标题
...
@@ -61,13 +65,43 @@
...
@@ -61,13 +65,43 @@
],
],
// 表单校验
// 表单校验
rules
:
{
rules
:
{
}
leavePerson
:[{
required
:
true
,
message
:
"
请输入请假人
"
,
trigger
:
"
blur
"
}],
deptId
:[{
required
:
true
,
message
:
"
请选择部门
"
,
trigger
:
"
change
"
}],
phoneNumber
:[
{
required
:
true
,
message
:
"
请输入电话号码
"
,
trigger
:
"
blur
"
},
{
validator
:
valid
.
phone
,
message
:
'
电话号码格式不正确
'
,
trigger
:
[
'
change
'
,
'
blur
'
]
}
],
leaveType
:[{
required
:
true
,
message
:
"
请选择请假类型
"
,
trigger
:
"
change
"
}],
startTime
:[{
required
:
true
,
message
:
"
请选择开始时间
"
,
trigger
:
"
change
"
}],
endTime
:[
{
required
:
true
,
message
:
"
请选择结束时间
"
,
trigger
:
"
change
"
},
],
duration
:[{
required
:
true
,
message
:
"
请输入时长
"
,
trigger
:
"
blur
"
}],
reason
:[{
required
:
true
,
message
:
"
请输入请假理由
"
,
trigger
:
"
blur
"
}],
approverId
:[{
required
:
true
,
message
:
"
请选择审批人
"
,
trigger
:
"
change
"
}],
attachmentPath
:[{
required
:
true
,
message
:
"
请上传附件文件
"
,
trigger
:
"
change
"
}],
},
attachmentPath
:
''
};
};
},
},
methods
:
{
methods
:
{
beforeSubmit
(){
if
(
this
.
form
.
endTime
.
valueOf
()
>
this
.
form
.
startTime
.
valueOf
()){
this
.
submitForm
()
}
else
{
this
.
$message
.
error
(
'
结束日期需大于请假日期
'
)
}
},
uploadFn
(
e
){
uploadFn
(
e
){
this
.
form
.
attachmentPath
=
e
this
.
attachmentPath
=
e
this
.
form
.
attachmentPath
=
this
.
attachmentPath
[
0
].
url
},
},
/** 编辑 */
/** 编辑 */
edit
(
row
)
{
edit
(
row
)
{
...
@@ -101,14 +135,26 @@
...
@@ -101,14 +135,26 @@
},
},
/**获取数据后弹框 */
/**获取数据后弹框 */
afterRender
(
data
)
{
afterRender
(
data
)
{
this
.
attachmentPath
=
[
{
name
:
'
请假附件
'
,
url
:
this
.
form
.
attachmentPath
}
]
this
.
open
=
true
;
this
.
open
=
true
;
},
},
afterSubmit
(
data
)
{
afterSubmit
(
data
)
{
this
.
open
=
false
;
this
.
open
=
false
;
this
.
$emit
(
"
ok
"
);
this
.
$emit
(
"
ok
"
);
},
},
changedate
(
val
){
if
(
this
.
form
.
startTime
&&
this
.
form
.
endTime
){
if
(
this
.
form
.
endTime
.
valueOf
()
>
this
.
form
.
startTime
.
valueOf
()){
this
.
form
.
duration
=
getMinu
(
this
.
form
.
startTime
,
this
.
form
.
endTime
)
}
else
{
this
.
$message
.
error
(
'
结束日期需大于请假日期
'
);
}
}
},
// 表单重置
// 表单重置
reset
()
{
reset
()
{
this
.
form
=
{
this
.
form
=
{
...
...
attendance-performance-manager-ui/admin/src/views/attendance/record/error/dialogshow.vue
deleted
100644 → 0
View file @
0ad72915
<
template
>
<!-- 弹出框表单 -->
<el-dialog
:title=
"title"
:visible.sync=
"open"
width=
"90%"
append-to-body
>
<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"
placeholder=
"请输入员工姓名"
/>
<Field
label=
"工号"
prop=
"workNum"
v-model=
"form.workNum"
placeholder=
"请输入工号"
/>
<Field
label=
"所属部门"
prop=
"deptId"
v-model=
"form.deptId"
placeholder=
"请输入所属部门"
/>
<Field
label=
"所属部门名称"
prop=
"deptName"
v-model=
"form.deptName"
placeholder=
"请输入所属部门名称"
/>
<Field
label=
"职位ID"
prop=
"positionId"
v-model=
"form.positionId"
placeholder=
"请输入职位ID"
/>
<Field
label=
"职位名称"
prop=
"positionName"
v-model=
"form.positionName"
placeholder=
"请输入职位名称"
/>
<Field
label=
"所属考勤组ID"
prop=
"attendanceGroupId"
v-model=
"form.attendanceGroupId"
placeholder=
"请输入所属考勤组ID"
/>
<Field
label=
"所属考勤组名称"
prop=
"attendanceGroupName"
v-model=
"form.attendanceGroupName"
placeholder=
"请输入所属考勤组名称"
/>
<Field
label=
"班次ID"
prop=
"shiftsId"
v-model=
"form.shiftsId"
placeholder=
"请输入班次ID"
/>
<Field
label=
"班次名称"
prop=
"shiftsName"
v-model=
"form.shiftsName"
placeholder=
"请输入班次名称"
/>
<Field
label=
"上下班时间"
prop=
"goOffDateTime"
v-model=
"form.goOffDateTime"
type=
"date"
/>
<Field
label=
"异常时间"
prop=
"errorDateTime"
v-model=
"form.errorDateTime"
type=
"date"
/>
<Field
label=
"实际打卡时间"
prop=
"actualAttendanceDateTime"
v-model=
"form.actualAttendanceDateTime"
type=
"date"
/>
<Field
label=
"处理时间"
prop=
"operDateTime"
v-model=
"form.operDateTime"
type=
"date"
/>
<Field
label=
"处理人"
prop=
"opertor"
v-model=
"form.opertor"
placeholder=
"请输入处理人"
/>
<Field
label=
"异常状态"
prop=
"errorStatus"
v-model=
"form.errorStatus"
type=
"select"
:enumData=
"dict.errorStatus"
placeholder=
"请选择异常状态"
/>
<Field
label=
"处理状态"
prop=
"processStatus"
v-model=
"form.processStatus"
type=
"select"
:enumData=
"dict.processStatus"
placeholder=
"请选择处理状态"
/>
<Field
label=
"处理结果"
prop=
"processResult"
v-model=
"form.processResult"
placeholder=
"请输入处理结果"
/>
<Field
label=
"备注"
prop=
"remark"
v-model=
"form.remark"
type=
"textarea"
placeholder=
"请输入备注"
/>
</el-row>
</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>
</el-dialog>
</
template
>
<
script
>
import
form
from
"
@/assets/mixins/formdialog
"
;
import
dialogShow
from
"
./dialogshow
"
;
export
default
{
mixins
:
[
form
],
components
:
{
dialogShow
,
},
data
()
{
return
{
// 遮罩层
loading
:
true
,
// 弹出层标题
title
:
"
考勤打卡记录异常信息
"
,
// 是否显示弹出层
open
:
false
,
toString
:[
"
errorStatus
"
,
"
processStatus
"
,
],
// 表单校验
rules
:
{
staffName
:
[
{
required
:
true
,
message
:
"
请输入员工姓名
"
,
trigger
:
"
blur
"
},
{
max
:
64
,
message
:
"
最多只能录入64个字符
"
,
trigger
:
"
blur
"
,},
],
createTime
:
[
{
required
:
true
,
message
:
"
请选择创建时间
"
},
],
}
};
},
methods
:
{
/** 编辑 */
edit
(
row
)
{
this
.
reset
()
this
.
query
=
{
id
:
row
.
id
};
this
.
urls
.
currUrl
=
"
attendance/record/error/edit
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
edit
"
this
.
title
=
"
修改考勤打卡记录异常信息
"
;
},
/** 新增 */
add
(
row
)
{
this
.
reset
()
this
.
urls
.
currUrl
=
"
attendance/record/error/add
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
add
"
this
.
title
=
"
新增考勤打卡记录异常信息
"
;
},
/** 查看*/
view
(
row
)
{
this
.
reset
()
this
.
query
=
{
id
:
row
.
id
};
this
.
urls
.
currUrl
=
"
attendance/record/error/view
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
view
"
this
.
title
=
"
考勤打卡记录异常信息详细
"
;
},
/**取消按钮 */
cancel
()
{
this
.
open
=
false
;
},
/**获取数据后弹框 */
afterRender
(
data
)
{
this
.
open
=
true
;
},
afterSubmit
(
data
)
{
this
.
open
=
false
;
this
.
$emit
(
"
ok
"
);
},
// 表单重置
reset
()
{
this
.
form
=
{
staffId
:
null
,
staffName
:
""
,
workNum
:
""
,
deptId
:
null
,
deptName
:
""
,
positionId
:
null
,
positionName
:
""
,
attendanceGroupId
:
null
,
attendanceGroupName
:
""
,
shiftsId
:
null
,
shiftsName
:
""
,
goOffDateTime
:
null
,
errorDateTime
:
null
,
actualAttendanceDateTime
:
null
,
operDateTime
:
null
,
opertor
:
""
,
errorStatus
:
0
,
processStatus
:
0
,
processResult
:
""
,
remark
:
""
,
};
this
.
resetForm
(
"
form
"
);
},
resetForm
(
refName
)
{
if
(
this
.
$refs
[
refName
])
{
this
.
$refs
[
refName
].
resetFields
();
}
},
},
};
</
script
>
attendance-performance-manager-ui/admin/src/views/attendance/record/error/drawershow.vue
View file @
92071f5c
...
@@ -14,17 +14,23 @@
...
@@ -14,17 +14,23 @@
将
<span>
{{
item
.
staffName
}}
</span>
将
<span>
{{
item
.
staffName
}}
</span>
<span>
的
{{
item
.
goOrOff
}}
时间
{{
item
.
goOffDateTime
}}
打卡异常状态
</span>
<span>
的
{{
item
.
goOrOff
}}
时间
{{
item
.
goOffDateTime
}}
打卡异常状态
</span>
<span
class=
"ml10"
style=
"color:#f56c6c"
>
<span
class=
"ml10"
style=
"color:#f56c6c"
>
<!--
{{
dict
[
'
errorStatus
'
][
item
.
errorStatus
]
}}
-->
{{
dict
[
'
errorStatus
'
][
item
.
errorStatus
]
}}
</span>
</span>
<span
class=
"ml10"
>
修改为
</span>
<span
class=
"ml10"
>
修改为
</span>
</div>
</div>
<div
class=
"mt10"
>
<div
class=
"mt10"
>
<!-- 处理异常状态 -->
<!-- 处理异常状态 -->
<el-select>
<el-select
v-model=
"dealParams.processResult"
>
<el-option></el-option>
<el-option
v-for=
'($label, $value) in dict.errorStatus'
:key=
"$value"
:label=
"$label"
:value=
"$label"
>
</el-option>
</el-select>
</el-select>
<!-- 早退/迟到 -->
<!-- 早退/迟到 -->
<el-input
style=
"width:220px"
placeholder=
"请输入数字"
:maxlength=
"4"
<el-input
style=
"width:220px"
placeholder=
"请输入数字"
:maxlength=
"4"
v-model=
"duration"
v-if=
"dealParams.processResult == '迟到'|| dealParams.processResult == '早退'"
class=
"ml20"
type=
"number"
>
class=
"ml20"
type=
"number"
>
<template
slot=
"append"
>
分钟
</
template
>
<template
slot=
"append"
>
分钟
</
template
>
</el-input>
</el-input>
...
@@ -34,22 +40,21 @@
...
@@ -34,22 +40,21 @@
<el-input
placeholder=
"请输入备注"
type=
"textarea"
show-word-limit
class=
"mt10"
<el-input
placeholder=
"请输入备注"
type=
"textarea"
show-word-limit
class=
"mt10"
:maxlength=
"50"
v-model=
"dealParams.remark"
></el-input>
:maxlength=
"50"
v-model=
"dealParams.remark"
></el-input>
</div>
</div>
</div>
</div>
<div
class=
"mt20"
>
<el-button
type=
"primary"
@
click=
"saveForm"
>
确定
</el-button>
<el-button
@
click=
"cancleFn"
>
取消
</el-button>
</div>
</div>
</div>
</el-drawer>
</el-drawer>
</template>
</template>
<
script
>
<
script
>
import
form
from
"
@/assets/mixins/formdialog
"
;
export
default
{
export
default
{
name
:
"
AttendanceRecordDetail
"
,
name
:
"
AttendanceRecordDetail
"
,
mixins
:
[
form
],
components
:
{
},
created
()
{
created
()
{
this
.
changePath
(
"
attendance/record
"
)
},
},
data
()
{
data
()
{
return
{
return
{
...
@@ -72,9 +77,20 @@
...
@@ -72,9 +77,20 @@
},
},
dealParams
:{
dealParams
:{
remark
:
''
,
remark
:
''
,
processResult
:
''
,
recordErrorEntities
:[],
//处理员工
processStatus
:
1
//处理状态
},
selection
:[],
query
:{},
urls
:{
currUrl
:
''
,
saveUrl
:
'
attendance/record/error/save
'
},
dict
:{
errorStatus
:
''
errorStatus
:
''
},
},
selection
:[]
duration
:
''
}
}
},
},
...
@@ -85,32 +101,55 @@
...
@@ -85,32 +101,55 @@
},
},
/** 编辑 */
/** 编辑 */
edit
(
row
,
selection
)
{
edit
(
row
,
selection
)
{
console
.
log
(
row
,
selection
)
if
(
selection
.
length
<
1
){
if
(
this
.
selection
.
length
<
1
){
this
.
selection
=
[
row
]
this
.
selection
=
[
row
]
this
.
query
=
{
id
:
row
.
id
};
}
else
{
}
else
{
this
.
selection
=
selection
this
.
selection
=
selection
this
.
query
=
{
id
:
this
.
selection
[
0
].
id
}
}
}
this
.
open
=
true
this
.
dealParams
.
recordErrorEntities
=
this
.
selection
this
.
query
=
{
id
:
row
.
id
};
this
.
urls
.
currUrl
=
"
attendance/record/error/edit
"
;
this
.
urls
.
currUrl
=
"
attendance/record/error/edit
"
;
this
.
getData
();
this
.
getInital
(
this
.
query
.
id
)
this
.
pageInfo
.
type
=
"
edit
"
this
.
title
=
"
处理异常
"
;
},
/**取消按钮 */
cancel
()
{
this
.
open
=
false
;
},
},
/**获取数据后弹框 */
/**获取数据后弹框 */
afterRender
(
data
)
{
afterRender
(
data
)
{
console
.
log
(
data
)
this
.
open
=
true
;
this
.
open
=
true
;
},
},
afterSubmit
(
data
)
{
getInital
(
id
){
this
.
open
=
false
;
this
.
$post
(
this
.
urls
.
currUrl
+
'
?id=
'
+
id
).
then
(
res
=>
{
this
.
$emit
(
"
ok
"
);
if
(
res
.
code
==
1
){
this
.
afterRender
()
this
.
dict
=
res
.
data
.
dict
}
})
},
// 保存
saveForm
(){
if
(
this
.
dealParams
.
processResult
==
''
){
this
.
$message
.
error
(
'
请选择处理结果
'
)
return
}
if
(
this
.
duration
&&
(
this
.
dealParams
.
processResult
==
'
早退
'
||
this
.
dealParams
.
processResult
==
'
迟到
'
)){
this
.
dealParams
.
processResult
=
this
.
dealParams
.
processResult
+
this
.
duration
+
'
分钟
'
}
// 保存结果处理
this
.
$post
(
this
.
urls
.
saveUrl
,
this
.
dealParams
).
then
(
res
=>
{
if
(
res
.
code
==
1
){
this
.
cancleFn
()
}
})
},
cancleFn
(){
this
.
open
=
false
this
.
dealParams
=
{
remark
:
''
,
processResult
:
''
,
recordErrorEntities
:[],
//处理员工
processStatus
:
1
//处理状态
}
this
.
$emit
(
"
ok
"
)
}
}
}
}
}
}
...
...
attendance-performance-manager-ui/admin/src/views/attendance/record/error/list.vue
View file @
92071f5c
...
@@ -48,16 +48,20 @@
...
@@ -48,16 +48,20 @@
// },
// },
morehandle
(){
morehandle
(){
if
(
this
.
selection
.
length
<
1
){
this
.
$message
.
error
(
'
请至少选择一条处理
'
)
return
}
let
arr
=
this
.
tableData
.
data
.
filter
(
item
=>
{
let
arr
=
this
.
tableData
.
data
.
filter
(
item
=>
{
if
(
this
.
selection
.
includes
(
item
.
id
)){
if
(
this
.
selection
.
includes
(
item
.
id
)
&&
item
.
processStatus
==
0
){
return
item
return
item
}
}
})
})
this
.
$refs
.
drawerShow
.
edit
(
''
,
arr
);
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
){
handle
(
err
){
...
@@ -67,10 +71,11 @@
...
@@ -67,10 +71,11 @@
// 撤销
// 撤销
reCancle
(
err
){
reCancle
(
err
){
console
.
log
(
err
)
console
.
log
(
err
)
this
.
currentParams
=
err
this
.
dialogVisible
=
true
this
.
dialogVisible
=
true
},
},
resetError
(
data
){
resetError
(){
this
.
$
get
(
'
attendance/record/error/delete
'
,{
id
:
data
.
id
}).
then
(
res
=>
{
this
.
$
post
(
'
attendance/record/error/revokeError
'
,{...
this
.
currentParams
}).
then
(
res
=>
{
if
(
res
.
code
==
1
){
if
(
res
.
code
==
1
){
this
.
dialogVisible
=
false
this
.
dialogVisible
=
false
this
.
getData
()
this
.
getData
()
...
@@ -153,7 +158,7 @@
...
@@ -153,7 +158,7 @@
return
row
.
goOrOff
+
"
"
+
row
.
goOffDateTime
return
row
.
goOrOff
+
"
"
+
row
.
goOffDateTime
}},
}},
{
label
:
"
实际打卡时间
"
,
prop
:
"
actualAttendanceDateTime
"
,
formatter
:
this
.
formatterDate
},
{
label
:
"
实际打卡时间
"
,
prop
:
"
actualAttendanceDateTime
"
,
formatter
:
this
.
formatterDate
},
{
label
:
"
处理时间
"
,
prop
:
"
operDateTime
"
,
formatter
:
this
.
formatter
s
},
{
label
:
"
处理时间
"
,
prop
:
"
operDateTime
"
,
formatter
:
this
.
formatter
Date
},
{
label
:
"
处理状态
"
,
prop
:
"
processStatus
"
,
formatter
:
this
.
formattereDealStatus
},
{
label
:
"
处理状态
"
,
prop
:
"
processStatus
"
,
formatter
:
this
.
formattereDealStatus
},
{
label
:
"
处理人
"
,
prop
:
"
opertor
"
,
formatter
:
this
.
formatters
},
{
label
:
"
处理人
"
,
prop
:
"
opertor
"
,
formatter
:
this
.
formatters
},
{
label
:
"
备注
"
,
prop
:
"
remark
"
,
formatter
:
this
.
formatters
},
{
label
:
"
备注
"
,
prop
:
"
remark
"
,
formatter
:
this
.
formatters
},
...
@@ -182,8 +187,9 @@
...
@@ -182,8 +187,9 @@
}
}
]
]
},
},
dialogVisible
:
false
dialogVisible
:
false
,
currentParams
:{}
}
}
}
}
}
;
}
</
script
>
</
script
>
\ No newline at end of file
attendance-performance-manager-ui/admin/src/views/attendance/record/hik/list.vue
View file @
92071f5c
...
@@ -123,16 +123,16 @@
...
@@ -123,16 +123,16 @@
methods
:
{
methods
:
{
// 生成打卡记录
// 生成打卡记录
formatData
(){
formatData
(){
let
list
=
[]
let
params
=
{}
for
(
let
value
of
this
.
config
.
search
){
if
(
this
.
query
[
value
.
name
]){
params
[
value
.
name
]
=
this
.
query
[
value
.
name
]
}
}
if
(
this
.
selection
.
length
>
0
){
if
(
this
.
selection
.
length
>
0
){
list
=
this
.
tableData
.
data
.
filter
(
item
=>
{
params
[
'
idList
'
]
=
this
.
selection
if
(
this
.
selection
.
includes
(
item
.
id
)){
return
item
}
})
}
}
this
.
$post
(
'
/attendance/record/hik/addAttendanceRecord
'
,{
list
}).
then
(
res
=>
{
this
.
$post
(
'
/attendance/record/hik/addAttendanceRecord
'
,{
...
params
}).
then
(
res
=>
{
if
(
res
.
code
==
1
){
if
(
res
.
code
==
1
){
}
}
...
...
attendance-performance-manager-ui/admin/src/views/attendance/record/list.vue
View file @
92071f5c
...
@@ -5,15 +5,15 @@
...
@@ -5,15 +5,15 @@
</div>
</div>
<div
class=
"totalNum flex"
>
<div
class=
"totalNum flex"
>
<div
class=
"item flex"
>
<div
class=
"item flex"
>
<div>
需要打卡人数
<span
class=
"num"
>
{{
1
}}
</span></div>
<div>
需要打卡人数
<span
class=
"num"
>
{{
tableData
.
attendanceStatus
.
needAttNum
}}
</span></div>
<div>
未出勤
<span
class=
"num"
>
{{
1
}}
</span></div>
<div>
未出勤
<span
class=
"num"
>
{{
tableData
.
attendanceStatus
.
noAtt
}}
</span></div>
<div>
出勤率
<span
class=
"num"
>
{{
1
}}
</span></div>
<div>
出勤率
<span
class=
"num"
>
{{
tableData
.
attendanceStatus
.
attPercentage
}}
</span></div>
</div>
</div>
<div
class=
"item flex"
>
<div
class=
"item flex"
>
<div>
迟到
<span
class=
"num"
>
{{
1
}}
</span></div>
<div>
迟到
<span
class=
"num"
>
{{
tableData
.
attendanceStatus
.
beLate
}}
</span></div>
<div>
早退
<span
class=
"num"
>
{{
1
}}
</span></div>
<div>
早退
<span
class=
"num"
>
{{
tableData
.
attendanceStatus
.
leaveEarly
}}
</span></div>
<div>
缺卡
<span
class=
"num"
>
{{
1
}}
</span></div>
<div>
缺卡
<span
class=
"num"
>
{{
tableData
.
attendanceStatus
.
lackOfCards
}}
</span></div>
</div>
</div>
</div>
</div>
<LayoutTable
:data=
"tableData"
:config=
"tableConfig"
notDel
notAdd
>
<LayoutTable
:data=
"tableData"
:config=
"tableConfig"
notDel
notAdd
>
...
@@ -147,6 +147,7 @@
...
@@ -147,6 +147,7 @@
import
drawerShow
from
"
./drawershow
"
;
import
drawerShow
from
"
./drawershow
"
;
import
table
from
"
@/assets/mixins/table
"
;
import
table
from
"
@/assets/mixins/table
"
;
import
TabPane
from
"
@/components/tabPane.vue
"
import
TabPane
from
"
@/components/tabPane.vue
"
import
{
timestampToTime
}
from
'
@/assets/utils/dateFormat
'
export
default
{
export
default
{
name
:
"
AttendanceRecordList
"
,
name
:
"
AttendanceRecordList
"
,
components
:
{
components
:
{
...
@@ -164,8 +165,52 @@
...
@@ -164,8 +165,52 @@
}
}
},
},
created
()
{
created
()
{
this
.
initalArr
=
this
.
config
.
columns
},
},
methods
:
{
methods
:
{
// 表格接收数据后
afterRender
(
data
){
console
.
log
(
this
.
tableData
)
let
addobjArr
=
[]
data
.
dyncColumns
.
map
(
item
=>
{
let
obj
=
{
label
:
item
.
name
,
prop
:
''
,
formatter
:(
row
)
=>
{
if
(
row
.
attendanceRecordDetailList
.
length
<
1
){
return
'
-
'
}
else
{
return
this
.
handleArr
(
row
.
attendanceRecordDetailList
,
item
.
orderNum
,
item
.
property
)
}
}
}
addobjArr
.
push
(
obj
)
})
this
.
config
.
columns
=
[...
this
.
initalArr
,...
addobjArr
]
this
.
$forceUpdate
()
},
// 表格接收数据前
beforeRender
(
data
){
return
data
},
// 处理
handleArr
(
arr
,
currentorderNum
,
property
){
let
index
=
arr
.
findIndex
(
item
=>
item
.
orderNum
===
currentorderNum
)
if
(
index
>
-
1
){
if
(
!
arr
[
index
][
property
]){
return
'
-
'
}
else
if
(
property
===
'
goWorkDate
'
||
property
===
"
offWorkDate
"
){
// 打卡时间
return
timestampToTime
(
arr
[
index
][
property
],
6
)
}
else
if
(
property
===
'
goWorkResult
'
||
property
===
"
offWorkResult
"
){
let
val
=
arr
[
index
][
property
]
return
this
.
tableData
.
dict
.
goWorkResult
[
val
]
}
}
else
{
return
'
-
'
}
},
changeStatus
(
item
){
changeStatus
(
item
){
this
.
$set
(
this
.
$set
(
item
,
item
,
...
@@ -391,7 +436,8 @@
...
@@ -391,7 +436,8 @@
setcolum
:[],
setcolum
:[],
checkList
:[],
checkList
:[],
exportList
:[],
//导出记录
exportList
:[],
//导出记录
baseUrl
:
process
.
env
.
VUE_APP_API_BASE_URL
+
'
/
'
baseUrl
:
process
.
env
.
VUE_APP_API_BASE_URL
+
'
/
'
,
initalArr
:[]
}
}
}
}
};
};
...
...
attendance-performance-manager-ui/admin/src/views/attendance/stat/list.vue
View file @
92071f5c
...
@@ -78,8 +78,7 @@
...
@@ -78,8 +78,7 @@
methods
:
{
methods
:
{
// 处理
// 处理
handleArr
(
arr
,
currentTime
){
handleArr
(
arr
,
currentTime
){
let
timeArr
=
arr
.
map
(
item1
=>
item1
.
createTime
)
let
index
=
arr
.
findIndex
(
item
=>
item
.
createTime
===
currentTime
)
let
index
=
timeArr
.
findIndex
(
item
=>
item
===
currentTime
)
if
(
index
>
-
1
){
if
(
index
>
-
1
){
return
arr
[
index
].
attendanceSummary
return
arr
[
index
].
attendanceSummary
}
else
{
}
else
{
...
@@ -109,9 +108,12 @@
...
@@ -109,9 +108,12 @@
},
},
beforeRender
(
row
)
{
beforeRender
(
row
)
{
row
.
data
.
forEach
(
element
=>
{
row
.
data
.
forEach
(
element
=>
{
element
.
attendanceStaffStatEntities
.
forEach
(
item1
=>
{
if
(
element
.
attendanceStaffStatEntities
.
length
>
0
){
item1
.
createTime
=
timestampToTime
(
item1
.
createTime
,
3
)
element
.
attendanceStaffStatEntities
.
forEach
(
item1
=>
{
})
item1
.
createTime
=
timestampToTime
(
item1
.
createTime
,
3
)
})
}
})
})
return
row
return
row
},
},
...
...
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