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
1a3dadd2
Commit
1a3dadd2
authored
Jul 08, 2023
by
廖旭伟
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
3ffd0f32
230fd3b8
Changes
33
Hide whitespace changes
Inline
Side-by-side
Showing
33 changed files
with
5057 additions
and
2636 deletions
+5057
-2636
attendance-performance-manager-ui/admin/src/components/tools/TableButtons.vue
...ce-manager-ui/admin/src/components/tools/TableButtons.vue
+52
-22
attendance-performance-manager-ui/admin/src/views/check/attend/record/drawershow.vue
...ger-ui/admin/src/views/check/attend/record/drawershow.vue
+442
-149
attendance-performance-manager-ui/admin/src/views/check/attend/record/list.vue
...e-manager-ui/admin/src/views/check/attend/record/list.vue
+234
-178
attendance-performance-manager-ui/admin/src/views/check/complain/record/drawershow.vue
...r-ui/admin/src/views/check/complain/record/drawershow.vue
+285
-158
attendance-performance-manager-ui/admin/src/views/check/complain/record/list.vue
...manager-ui/admin/src/views/check/complain/record/list.vue
+256
-177
attendance-performance-manager-ui/admin/src/views/check/effect/record/drawershow.vue
...ger-ui/admin/src/views/check/effect/record/drawershow.vue
+277
-156
attendance-performance-manager-ui/admin/src/views/check/effect/record/list.vue
...e-manager-ui/admin/src/views/check/effect/record/list.vue
+241
-187
attendance-performance-manager-ui/admin/src/views/check/gowork/record/drawershow.vue
...ger-ui/admin/src/views/check/gowork/record/drawershow.vue
+269
-152
attendance-performance-manager-ui/admin/src/views/check/gowork/record/list.vue
...e-manager-ui/admin/src/views/check/gowork/record/list.vue
+244
-200
attendance-performance-manager-ui/admin/src/views/check/other/record/drawershow.vue
...ager-ui/admin/src/views/check/other/record/drawershow.vue
+270
-153
attendance-performance-manager-ui/admin/src/views/check/other/record/list.vue
...ce-manager-ui/admin/src/views/check/other/record/list.vue
+252
-174
attendance-performance-manager-ui/admin/src/views/check/review/record/drawershow.vue
...ger-ui/admin/src/views/check/review/record/drawershow.vue
+271
-153
attendance-performance-manager-ui/admin/src/views/check/review/record/list.vue
...e-manager-ui/admin/src/views/check/review/record/list.vue
+239
-186
attendance-performance-manager-ui/admin/src/views/feedback/addQuestion/list.vue
...-manager-ui/admin/src/views/feedback/addQuestion/list.vue
+64
-2
attendance-performance-manager-ui/admin/src/views/feedback/questionnaire/list.vue
...anager-ui/admin/src/views/feedback/questionnaire/list.vue
+196
-9
attendance-performance-manager-ui/admin/src/views/perform/attend/record/list.vue
...manager-ui/admin/src/views/perform/attend/record/list.vue
+1
-1
attendance-performance-manager-ui/admin/src/views/perform/complain/record/drawershow.vue
...ui/admin/src/views/perform/complain/record/drawershow.vue
+457
-145
attendance-performance-manager-ui/admin/src/views/perform/effect/record/drawershow.vue
...r-ui/admin/src/views/perform/effect/record/drawershow.vue
+439
-142
attendance-performance-manager-ui/admin/src/views/perform/gowork/record/drawershow.vue
...r-ui/admin/src/views/perform/gowork/record/drawershow.vue
+0
-13
attendance-performance-manager-ui/admin/src/views/perform/review/record/drawershow.vue
...r-ui/admin/src/views/perform/review/record/drawershow.vue
+433
-139
attendance-performance-manager-ui/admin/src/views/perform/review/record/list(原差评绩效管理).vue
...i/admin/src/views/perform/review/record/list(原差评绩效管理).vue
+0
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/base/system/role/service/RoleUserService.java
...mortals/xhx/base/system/role/service/RoleUserService.java
+7
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/base/system/role/service/impl/RoleUserServiceImpl.java
...hx/base/system/role/service/impl/RoleUserServiceImpl.java
+20
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/base/system/task/service/impl/TaskServiceImpl.java
...ls/xhx/base/system/task/service/impl/TaskServiceImpl.java
+3
-1
attendance-performance-manager/src/main/java/com/mortals/xhx/base/system/user/model/UserEntity.java
...va/com/mortals/xhx/base/system/user/model/UserEntity.java
+2
-2
attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/web/ApiLoginController.java
...in/java/com/mortals/xhx/busiz/web/ApiLoginController.java
+14
-112
attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/web/AppealApiController.java
...n/java/com/mortals/xhx/busiz/web/AppealApiController.java
+5
-5
attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/web/FeedbackApiController.java
...java/com/mortals/xhx/busiz/web/FeedbackApiController.java
+5
-5
attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/web/PerformApiController.java
.../java/com/mortals/xhx/busiz/web/PerformApiController.java
+3
-3
attendance-performance-manager/src/main/java/com/mortals/xhx/daemon/task/SyncDoorsEventTaskImpl.java
...a/com/mortals/xhx/daemon/task/SyncDoorsEventTaskImpl.java
+2
-1
attendance-performance-manager/src/main/java/com/mortals/xhx/daemon/task/SyncUserTaskImpl.java
...in/java/com/mortals/xhx/daemon/task/SyncUserTaskImpl.java
+7
-9
attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/service/impl/StaffServiceImpl.java
...rtals/xhx/module/staff/service/impl/StaffServiceImpl.java
+66
-1
attendance-performance-manager/src/main/resources/sqlmap/base/system/user.xml
...ce-manager/src/main/resources/sqlmap/base/system/user.xml
+1
-1
No files found.
attendance-performance-manager-ui/admin/src/components/tools/TableButtons.vue
View file @
1a3dadd2
<
template
>
<span>
<el-button
v-if=
'!noEdit'
type=
"text"
icon=
"el-icon-edit"
size=
'mini'
@
click=
'$emit("edit", row)'
title=
"编辑"
>
编辑
</el-button>
<el-button
v-if=
"!noEdit"
type=
"text"
icon=
"el-icon-edit"
size=
"mini"
@
click=
"$emit('edit', row)"
title=
"编辑"
>
编辑
</el-button
>
<span>
</span>
<el-button
v-if=
'!noView'
type=
"text"
icon=
"el-icon-view"
size=
'mini'
@
click=
'$emit("view", row)'
title=
"查看"
>
查看
</el-button>
<span>
</span>
<Confirm
@
confirm=
'$emit("del", row.id)'
message=
'确定要删除该条记录吗?'
>
<el-button
v-if=
'!noDel'
type=
"text"
icon=
"el-icon-delete"
size=
'mini'
title=
"删除"
>
删除
</el-button>
<el-button
v-if=
"!noView"
type=
"text"
icon=
"el-icon-view"
size=
"mini"
@
click=
"$emit('view', row)"
title=
"查看"
>
查看
</el-button
>
<span>
</span>
<el-button
v-if=
"reCheck"
type=
"text"
icon=
"el-icon-edit"
size=
"mini"
@
click=
"$emit('edit', row)"
title=
"核查"
>
核查
</el-button
>
<span>
</span>
<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
>
<
script
>
import
Confirm
from
'
@/components/Confirm.vue
'
;
import
Confirm
from
"
@/components/Confirm.vue
"
;
export
default
{
props
:
{
noEdit
:
{
type
:
Boolean
,
default
:
false
default
:
false
,
},
noDel
:
{
type
:
Boolean
,
default
:
false
default
:
false
,
},
noAdd
:
{
type
:
Boolean
,
default
:
false
default
:
false
,
},
reCheck
:
{
type
:
Boolean
,
default
:
false
,
},
noView
:
{
type
:
Boolean
,
default
:
false
default
:
false
,
},
row
:
{
type
:
Object
,
required
:
true
,
default
:
()
=>
{}
default
:
()
=>
{}
,
},
},
components
:
{
Confirm
,
},
methods
:
{
},
methods
:
{},
data
()
{
return
{
}
}
}
return
{};
},
};
</
script
>
attendance-performance-manager-ui/admin/src/views/check/attend/record/drawershow.vue
View file @
1a3dadd2
<
template
>
<!-- 弹出框表单 -->
<el-drawer
:title=
"title"
:visible.sync=
"open"
:direction=
"direction"
size=
"50%"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"120px"
>
<!-- 弹出框表单 -->
<el-drawer
:title=
"title"
:visible.sync=
"open"
:direction=
"direction"
size=
"50%"
>
<div
class=
"dra_content"
>
<div
class=
"dra_top box"
>
<div
class=
"title"
>
异常情况
</div>
<div
class=
"content"
>
<el-row>
<el-col
:span=
"12"
>
员工:
{{
obj
.
staffName
?
obj
.
staffName
:
"
--
"
}}
</el-col
>
<el-col
:span=
"12"
>
所属部门:
{{
obj
.
deptName
?
obj
.
deptName
:
"
--
"
}}
</el-col
>
</el-row>
<el-row>
<el-col
:span=
"12"
>
窗口编号:
{{
obj
.
windowNum
?
obj
.
windowNum
:
"
--
"
}}
</el-col
>
<el-col
:span=
"12"
>
考勤组:
{{
obj
.
attendanceGroupName
?
obj
.
attendanceGroupName
:
"
--
"
}}
</el-col
>
</el-row>
<el-row>
<el-col
:span=
"12"
>
实际打卡时间:
{{
obj
.
actualAttendTime
?
obj
.
actualAttendTime
:
"
--
"
}}
</el-col
>
<el-col
:span=
"12"
>
上下班时间:
{{
obj
.
goOffTimeStr
?
obj
.
goOffTimeStr
:
"
--
"
}}
</el-col
>
</el-row>
<el-row>
<el-col
:span=
"12"
>
异常时间:
{{
obj
.
errorTime
?
obj
.
errorTime
:
"
--
"
}}
</el-col
>
<el-col
:span=
"12"
>
异常结果:
{{
obj
.
errorTime
?
obj
.
errorTime
:
"
--
"
}}
</el-col
>
</el-row>
<el-row>
<el-col
:span=
"12"
>
扣分方式:
{{
obj
.
subMethod
?
obj
.
subMethod
:
"
--
"
}}
</el-col
>
<el-col
:span=
"12"
>
扣分时间:
{{
obj
.
deductTime
?
obj
.
deductTime
:
"
--
"
}}
</el-col
>
</el-row>
<el-row>
<el-col
:span=
"12"
>
扣分人员:
{{
obj
.
deductPerson
?
obj
.
deductPerson
:
"
--
"
}}
</el-col
>
<el-col
:span=
"12"
>
图片凭证:
{{
obj
.
snapPath
?
obj
.
snapPath
:
"
--
"
}}
</el-col
>
</el-row>
</div>
</div>
<div
class=
"dra_down box"
>
<div
class=
"title"
>
核查情况
</div>
<div
class=
"content"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"120px"
>
<el-row>
<Field
label=
"记录ID"
prop=
"recordId"
v-model=
"form.recordId"
placeholder=
"请输入记录ID"
/>
<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=
"attendanceGroupId"
v-model=
"form.attendanceGroupId"
placeholder=
"请输入所属考勤组ID"
/>
<Field
label=
"所属考勤组名称"
prop=
"attendanceGroupName"
v-model=
"form.attendanceGroupName"
placeholder=
"请输入所属考勤组名称"
/>
<Field
label=
"考勤时间"
prop=
"attendanceDate"
v-model=
"form.attendanceDate"
type=
"date"
/>
<Field
label=
"绩效规则id"
prop=
"ruleId"
v-model=
"form.ruleId"
placeholder=
"请输入绩效规则id"
/>
<Field
label=
"规则名称"
prop=
"ruleName"
v-model=
"form.ruleName"
placeholder=
"请输入规则名称"
/>
<Field
label=
"增减类型"
prop=
"subAddType"
v-model=
"form.subAddType"
type=
"select"
:enumData=
"dict.subAddType"
placeholder=
"请选择增减类型"
/>
<Field
label=
"扣分或增加分值"
prop=
"score"
v-model=
"form.score"
placeholder=
"请输入扣分或增加分值"
/>
<Field
label=
"上下班时间"
prop=
"goOffTimeStr"
v-model=
"form.goOffTimeStr"
placeholder=
"请输入上下班时间"
/>
<Field
label=
"异常时间"
prop=
"errorTime"
v-model=
"form.errorTime"
type=
"date"
/>
<Field
label=
"实际打卡时间"
prop=
"actualAttendTime"
v-model=
"form.actualAttendTime"
type=
"date"
/>
<Field
label=
"异常处理结果"
prop=
"errorResult"
v-model=
"form.errorResult"
placeholder=
"请输入异常处理结果"
/>
<Field
label=
"核查人员"
prop=
"checkPerson"
v-model=
"form.checkPerson"
placeholder=
"请输入核查人员"
/>
<Field
label=
"核查时间"
prop=
"checkTime"
v-model=
"form.checkTime"
type=
"date"
/>
<Field
label=
"核查说明"
prop=
"checkDesc"
v-model=
"form.checkDesc"
type=
"textarea"
placeholder=
"请输入核查说明"
/>
<Field
label=
"核查结果"
prop=
"checkResult"
v-model=
"form.checkResult"
placeholder=
"请输入核查结果"
/>
<Field
label=
"处理状态"
prop=
"checkStatus"
v-model=
"form.checkStatus"
type=
"select"
:enumData=
"dict.checkStatus"
placeholder=
"请选择处理状态"
/>
<el-form-item
label=
"核查结果:"
>
<p
v-if=
"obj.view == '查看'"
>
{{
obj
.
checkResult
}}
</p>
<el-radio-group
v-model=
"form.checkResult"
v-else
>
<el-radio
:label=
"1"
>
扣分
</el-radio>
<el-radio
:label=
"2"
>
不扣分
</el-radio>
</el-radio-group>
</el-form-item>
</el-row>
<el-row>
<el-form-item
label=
"绩效规则:"
>
<p
v-if=
"obj.view == '查看'"
>
{{
obj
.
ruleName
}}
</p>
<div
v-else
>
<el-col
:span=
"22"
>
<el-select
v-model=
"form.attendanceGroupId"
style=
"width: 100%;"
>
<el-option
v-for=
"item in kaoqinArr"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option
></el-select>
</el-col>
<el-col
:span=
"22"
>
<el-select
v-model=
"form.attendanceGroupId"
style=
"width: 100%;margin-top: 10px;"
>
<el-option
v-for=
"item in kaoqinArr"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option></el-select
></el-col>
</div>
</el-form-item>
</el-row>
<el-row>
<el-form-item
label=
"扣除分值:"
>
<p
v-if=
"obj.view == '查看'"
>
{{
obj
.
score
}}
</p>
<p
v-else
>
{{
form
.
score
}}
</p>
</el-form-item>
</el-row>
<el-row>
<el-form-item
label=
"说明:"
>
<p
v-if=
"obj.view == '查看'"
>
{{
obj
.
checkDesc
}}
</p>
<el-input
v-else
v-model=
"form.checkDesc"
type=
"textarea"
></el-input>
</el-form-item>
</el-row>
<el-row
v-if=
"obj.view == '查看'"
>
<el-col
:span=
"24"
>
核查人员:
{{
obj
.
checkPerson
}}
</el-col>
</el-row>
<el-row
v-if=
"obj.view == '查看'"
>
<el-col
:span=
"24"
>
核查时间:
{{
obj
.
checkTime
}}
</el-col>
</el-row>
<form-buttons
v-show=
"obj.view == '核查'"
@
submit=
"submitForm"
v-if=
"pageInfo.type != 'view'"
noCancelBtn
/>
</el-form>
</div>
</div>
</div>
<!--
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"120px"
>
<el-row>
<Field
label=
"记录ID"
prop=
"recordId"
v-model=
"form.recordId"
placeholder=
"请输入记录ID"
/>
<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=
"attendanceGroupId"
v-model=
"form.attendanceGroupId"
placeholder=
"请输入所属考勤组ID"
/>
<Field
label=
"所属考勤组名称"
prop=
"attendanceGroupName"
v-model=
"form.attendanceGroupName"
placeholder=
"请输入所属考勤组名称"
/>
<Field
label=
"考勤时间"
prop=
"attendanceDate"
v-model=
"form.attendanceDate"
type=
"date"
/>
<Field
label=
"绩效规则id"
prop=
"ruleId"
v-model=
"form.ruleId"
placeholder=
"请输入绩效规则id"
/>
<Field
label=
"规则名称"
prop=
"ruleName"
v-model=
"form.ruleName"
placeholder=
"请输入规则名称"
/>
<Field
label=
"增减类型"
prop=
"subAddType"
v-model=
"form.subAddType"
type=
"select"
:enumData=
"dict.subAddType"
placeholder=
"请选择增减类型"
/>
<Field
label=
"扣分或增加分值"
prop=
"score"
v-model=
"form.score"
placeholder=
"请输入扣分或增加分值"
/>
<Field
label=
"上下班时间"
prop=
"goOffTimeStr"
v-model=
"form.goOffTimeStr"
placeholder=
"请输入上下班时间"
/>
<Field
label=
"异常时间"
prop=
"errorTime"
v-model=
"form.errorTime"
type=
"date"
/>
<Field
label=
"实际打卡时间"
prop=
"actualAttendTime"
v-model=
"form.actualAttendTime"
type=
"date"
/>
<Field
label=
"异常处理结果"
prop=
"errorResult"
v-model=
"form.errorResult"
placeholder=
"请输入异常处理结果"
/>
<Field
label=
"核查人员"
prop=
"checkPerson"
v-model=
"form.checkPerson"
placeholder=
"请输入核查人员"
/>
<Field
label=
"核查时间"
prop=
"checkTime"
v-model=
"form.checkTime"
type=
"date"
/>
<Field
label=
"核查说明"
prop=
"checkDesc"
v-model=
"form.checkDesc"
type=
"textarea"
placeholder=
"请输入核查说明"
/>
<Field
label=
"核查结果"
prop=
"checkResult"
v-model=
"form.checkResult"
placeholder=
"请输入核查结果"
/>
<Field
label=
"处理状态"
prop=
"checkStatus"
v-model=
"form.checkStatus"
type=
"select"
:enumData=
"dict.checkStatus"
placeholder=
"请选择处理状态"
/>
</el-row>
<form-buttons
@
submit=
'submitForm'
v-if=
"pageInfo.type!='view'"
noCancelBtn
/>
</el-form>
</el-drawer>
<form-buttons
@
submit=
"submitForm"
v-if=
"pageInfo.type != 'view'"
noCancelBtn
/>
</el-form>
-->
</el-drawer>
</
template
>
<
script
>
import
form
from
"
@/assets/mixins/formdialog
"
;
export
default
{
name
:
"
CheckAttendRecordDetail
"
,
mixins
:
[
form
],
components
:
{
},
created
()
{
this
.
changePath
(
"
check/attend/record
"
)
},
data
()
{
return
{
// 遮罩层
loading
:
true
,
// 弹出层标题
title
:
"
考勤绩效记录核查信息
"
,
// 是否显示弹出层
open
:
false
,
direction
:
"
rtl
"
,
toString
:[
"
subAddType
"
,
"
checkStatus
"
,
],
toDate
:[
"
attendanceDate
"
,
"
errorTime
"
,
"
actualAttendTime
"
,
"
checkTime
"
,
],
// 表单校验
rules
:
{
staffName
:
[
{
required
:
true
,
message
:
"
请输入员工姓名
"
,
trigger
:
"
blur
"
},
{
max
:
64
,
message
:
"
最多只能录入64个字符
"
,
trigger
:
"
blur
"
,},
],
createTime
:
[
{
required
:
true
,
message
:
"
请选择创建时间
"
},
],
}
};
},
import
form
from
"
@/assets/mixins/formdialog
"
;
export
default
{
name
:
"
CheckAttendRecordDetail
"
,
mixins
:
[
form
],
components
:
{},
created
()
{
this
.
changePath
(
"
check/attend/record
"
);
},
data
()
{
return
{
// 遮罩层
loading
:
true
,
// 弹出层标题
title
:
"
考勤绩效记录核查信息
"
,
// 是否显示弹出层
open
:
false
,
direction
:
"
rtl
"
,
toString
:
[
"
subAddType
"
,
"
checkStatus
"
],
toDate
:
[
"
attendanceDate
"
,
"
errorTime
"
,
"
actualAttendTime
"
,
"
checkTime
"
],
// 表单校验
rules
:
{
staffName
:
[
{
required
:
true
,
message
:
"
请输入员工姓名
"
,
trigger
:
"
blur
"
},
{
max
:
64
,
message
:
"
最多只能录入64个字符
"
,
trigger
:
"
blur
"
},
],
createTime
:
[{
required
:
true
,
message
:
"
请选择创建时间
"
}],
},
obj
:
{},
};
},
methods
:
{
/** 编辑 */
edit
(
row
)
{
this
.
reset
()
this
.
query
=
{
id
:
row
.
id
};
this
.
urls
.
currUrl
=
"
check/attend/record/edit
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
edit
"
this
.
title
=
"
修改考勤绩效记录核查信息
"
;
},
/** 新增 */
add
(
row
)
{
this
.
reset
()
this
.
urls
.
currUrl
=
"
check/attend/record/add
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
add
"
this
.
title
=
"
新增考勤绩效记录核查信息
"
;
},
/** 查看*/
view
(
row
)
{
this
.
reset
()
this
.
query
=
{
id
:
row
.
id
};
this
.
urls
.
currUrl
=
"
check/attend/record/view
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
view
"
this
.
title
=
"
考勤绩效记录核查信息详细
"
;
},
/**取消按钮 */
cancel
()
{
this
.
open
=
false
;
},
/**获取数据后弹框 */
afterRender
(
data
)
{
this
.
open
=
true
;
},
methods
:
{
/** 编辑 */
edit
(
row
)
{
console
.
log
(
this
.
form
);
this
.
obj
=
row
;
this
.
reset
();
this
.
query
=
{
id
:
row
.
id
};
this
.
urls
.
currUrl
=
"
check/attend/record/edit
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
edit
"
;
row
.
view
==
"
核查
"
?
(
this
.
title
=
"
考勤绩效记录核查
"
)
:
(
this
.
title
=
"
修改考勤绩效记录核查信息
"
);
},
/** 新增 */
add
(
row
)
{
this
.
reset
();
this
.
urls
.
currUrl
=
"
check/attend/record/add
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
add
"
;
this
.
title
=
"
新增考勤绩效记录核查信息
"
;
},
/** 查看*/
view
(
row
)
{
this
.
obj
=
row
;
this
.
reset
();
this
.
query
=
{
id
:
row
.
id
};
this
.
urls
.
currUrl
=
"
check/attend/record/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
"
);
},
afterSubmit
(
data
)
{
this
.
open
=
false
;
this
.
$emit
(
"
ok
"
);
},
// 表单重置
reset
()
{
this
.
form
=
{
recordId
:
null
,
staffId
:
null
,
staffName
:
""
,
workNum
:
""
,
deptId
:
null
,
deptName
:
""
,
attendanceGroupId
:
null
,
attendanceGroupName
:
""
,
attendanceDate
:
null
,
ruleId
:
null
,
ruleName
:
""
,
subAddType
:
1
,
score
:
0.0
0
,
goOffTimeStr
:
""
,
errorTime
:
null
,
actualAttendTime
:
null
,
errorResult
:
""
,
checkPerson
:
""
,
checkTime
:
null
,
checkDesc
:
""
,
checkResult
:
""
,
checkStatus
:
1
,
};
this
.
resetForm
(
"
form
"
);
},
resetForm
(
refName
)
{
if
(
this
.
$refs
[
refName
])
{
this
.
$refs
[
refName
].
resetFields
();
}
},
},
};
// 表单重置
reset
()
{
this
.
form
=
{
recordId
:
null
,
staffId
:
null
,
staffName
:
""
,
workNum
:
""
,
deptId
:
null
,
deptName
:
""
,
attendanceGroupId
:
null
,
attendanceGroupName
:
""
,
attendanceDate
:
null
,
ruleId
:
null
,
ruleName
:
""
,
subAddType
:
1
,
score
:
0.
0
,
goOffTimeStr
:
""
,
errorTime
:
null
,
actualAttendTime
:
null
,
errorResult
:
""
,
checkPerson
:
""
,
checkTime
:
null
,
checkDesc
:
""
,
checkResult
:
""
,
checkStatus
:
1
,
};
this
.
resetForm
(
"
form
"
);
},
resetForm
(
refName
)
{
if
(
this
.
$refs
[
refName
])
{
this
.
$refs
[
refName
].
resetFields
();
}
},
},
};
</
script
>
<
style
lang=
"less"
scoped
>
.dra_content {
width: 100%;
height: 100%;
padding: 20px;
.box {
width: 100%;
height: auto;
.title {
color: #1890ff;
font-size: 16px;
padding-left: 10px;
position: relative;
margin-bottom: 30px;
&::after {
content: "";
display: block;
border-left: 3px solid #1890ff;
left: 0;
top: 0;
bottom: 0;
position: absolute;
}
}
.content {
width: 100%;
padding: 10px;
font-family: "微软雅黑", sans-serif;
font-weight: 400;
font-style: normal;
font-size: 14px;
margin-left: 0 auto;
margin-bottom: 30px;
/deep/.el-row {
margin-bottom: 20px;
}
}
}
}
</
style
>
attendance-performance-manager-ui/admin/src/views/check/attend/record/list.vue
View file @
1a3dadd2
<
template
>
<div
class=
"page"
>
<LayoutTable
notAdd
notDel
:data=
"tableData"
:config=
"tableConfig"
>
<el-button
slot=
"table-head-left2"
style=
"margin-left: 10px"
icon=
"el-icon-tickets"
size=
"mini"
@
click=
"doExport"
:disabled=
"isExport"
>
导出
</el-button>
</LayoutTable>
<!-- 考勤绩效记录核查信息导入对话框 -->
<el-dialog
:title=
"upload.title"
:visible.sync=
"upload.open"
width=
"400px"
append-to-body
>
<el-upload
ref=
"upload"
:limit=
"1"
accept=
".xlsx, .xls"
:headers=
"upload.headers"
:action=
"upload.url + '?updateSupport=' + upload.updateSupport"
:disabled=
"upload.isUploading"
:on-progress=
"handleFileUploadProgress"
:on-success=
"handleFileSuccess"
:auto-upload=
"false"
drag
>
<i
class=
"el-icon-upload"
></i>
<div
class=
"el-upload__text"
>
将文件拖到此处,或
<em>
点击上传
</em>
</div>
<div
class=
"el-upload__tip"
slot=
"tip"
>
<el-checkbox
v-model=
"upload.updateSupport"
/>
是否更新已经存在的数据
<el-link
type=
"primary"
style=
"font-size: 14px"
@
click=
"downloadTemplate"
>
下载模板
</el-link
>
</div>
<div
class=
"el-upload__tip"
style=
"color: red"
slot=
"tip"
>
提示:仅允许导入“xls”或“xlsx”格式文件!
</div>
</el-upload>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"submitFileForm"
>
确 定
</el-button>
<el-button
@
click=
"upload.open = false"
>
取 消
</el-button>
</div>
</el-dialog>
<drawer-show
ref=
"drawerform"
@
ok=
"getData"
/>
</div>
<div
class=
"page"
>
<LayoutTable
notAdd
notDel
:data=
"tableData"
:config=
"tableConfig"
>
<el-button
slot=
"table-head-left2"
style=
"margin-left: 10px"
icon=
"el-icon-tickets"
size=
"mini"
@
click=
"doExport"
:disabled=
"isExport"
>
导出
</el-button
>
</LayoutTable>
<!-- 考勤绩效记录核查信息导入对话框 -->
<el-dialog
:title=
"upload.title"
:visible.sync=
"upload.open"
width=
"400px"
append-to-body
>
<el-upload
ref=
"upload"
:limit=
"1"
accept=
".xlsx, .xls"
:headers=
"upload.headers"
:action=
"upload.url + '?updateSupport=' + upload.updateSupport"
:disabled=
"upload.isUploading"
:on-progress=
"handleFileUploadProgress"
:on-success=
"handleFileSuccess"
:auto-upload=
"false"
drag
>
<i
class=
"el-icon-upload"
></i>
<div
class=
"el-upload__text"
>
将文件拖到此处,或
<em>
点击上传
</em>
</div>
<div
class=
"el-upload__tip"
slot=
"tip"
>
<el-checkbox
v-model=
"upload.updateSupport"
/>
是否更新已经存在的数据
<el-link
type=
"primary"
style=
"font-size: 14px"
@
click=
"downloadTemplate"
>
下载模板
</el-link
>
</div>
<div
class=
"el-upload__tip"
style=
"color: red"
slot=
"tip"
>
提示:仅允许导入“xls”或“xlsx”格式文件!
</div>
</el-upload>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"submitFileForm"
>
确 定
</el-button>
<el-button
@
click=
"upload.open = false"
>
取 消
</el-button>
</div>
</el-dialog>
<drawer-show
ref=
"drawerform"
@
ok=
"getData"
/>
</div>
</
template
>
<
script
>
/** 表单弹出框模式需引入 */
import
drawerShow
from
"
./drawershow
"
;
import
table
from
"
@/assets/mixins/table
"
;
export
default
{
name
:
"
CheckAttendRecordList
"
,
components
:
{
drawerShow
},
mixins
:
[
table
],
created
()
{
/** 表单弹出框模式需引入 */
import
drawerShow
from
"
./drawershow
"
;
import
table
from
"
@/assets/mixins/table
"
;
export
default
{
name
:
"
CheckAttendRecordList
"
,
components
:
{
drawerShow
,
},
mixins
:
[
table
],
created
()
{},
methods
:
{
/** 导入 */
handleImport
()
{
this
.
upload
.
title
=
"
考勤绩效记录核查信息导入
"
;
this
.
upload
.
open
=
true
;
},
/** 下载模板操作 */
downloadTemplate
()
{
this
.
isExport
=
true
;
this
.
$download
(
"
/check/attend/record/downloadTemplate
"
,
{},
{
type
:
"
excel
"
}
)
.
then
(()
=>
(
this
.
isExport
=
false
))
.
catch
((
error
)
=>
{
this
.
isExport
=
false
;
this
.
$message
.
error
(
error
.
message
);
});
},
/** 文件上传中处理 */
handleFileUploadProgress
(
event
,
file
,
fileList
)
{
this
.
upload
.
isUploading
=
true
;
},
/** 文件上传成功处理 */
handleFileSuccess
(
response
,
file
,
fileList
)
{
this
.
upload
.
open
=
false
;
this
.
upload
.
isUploading
=
false
;
this
.
$refs
.
upload
.
clearFiles
();
this
.
$alert
(
response
.
msg
,
"
导入结果
"
,
{
dangerouslyUseHTMLString
:
true
});
this
.
getData
();
},
/** 提交上传文件 */
submitFileForm
()
{
this
.
$refs
.
upload
.
submit
();
},
/** 导出Excel */
doExport
()
{
this
.
isExport
=
true
;
this
.
$download
(
"
/check/attend/record/exportExcel
"
,
{
idList
:
this
.
selection
,
},
methods
:
{
/** 导入 */
handleImport
()
{
this
.
upload
.
title
=
"
考勤绩效记录核查信息导入
"
;
this
.
upload
.
open
=
true
;
},
/** 下载模板操作 */
downloadTemplate
()
{
this
.
isExport
=
true
;
this
.
$download
(
"
/check/attend/record/downloadTemplate
"
,
{},
{
type
:
"
excel
"
})
.
then
(()
=>
(
this
.
isExport
=
false
))
.
catch
((
error
)
=>
{
this
.
isExport
=
false
;
this
.
$message
.
error
(
error
.
message
);
});
},
/** 文件上传中处理 */
handleFileUploadProgress
(
event
,
file
,
fileList
)
{
this
.
upload
.
isUploading
=
true
;
},
/** 文件上传成功处理 */
handleFileSuccess
(
response
,
file
,
fileList
)
{
this
.
upload
.
open
=
false
;
this
.
upload
.
isUploading
=
false
;
this
.
$refs
.
upload
.
clearFiles
();
this
.
$alert
(
response
.
msg
,
"
导入结果
"
,
{
dangerouslyUseHTMLString
:
true
});
this
.
getData
();
},
/** 提交上传文件 */
submitFileForm
()
{
this
.
$refs
.
upload
.
submit
();
},
/** 导出Excel */
doExport
()
{
this
.
isExport
=
true
;
this
.
$download
(
"
/check/attend/record/exportExcel
"
,
{
"
idList
"
:
this
.
selection
,
},
{
type
:
"
excel
"
}).
then
(()
=>
this
.
isExport
=
false
).
catch
(
error
=>
{
this
.
isExport
=
false
;
this
.
$message
.
error
(
error
.
message
);
});
},
/** 重写新增方法 */
toAdd
(
row
)
{
this
.
$refs
.
drawerform
.
add
(
row
);
},
/** 重写编辑方法 */
toEdit
(
row
)
{
this
.
$refs
.
drawerform
.
edit
(
row
);
},
/** 重写查看方法 */
toView
(
row
)
{
this
.
$refs
.
drawerform
.
view
(
row
);
},
{
type
:
"
excel
"
}
)
.
then
(()
=>
(
this
.
isExport
=
false
))
.
catch
((
error
)
=>
{
this
.
isExport
=
false
;
this
.
$message
.
error
(
error
.
message
);
});
},
/** 重写新增方法 */
toAdd
(
row
)
{
this
.
$refs
.
drawerform
.
add
(
row
);
},
/** 重写编辑方法 */
toEdit
(
row
)
{
row
.
view
=
"
核查
"
;
this
.
$refs
.
drawerform
.
edit
(
row
);
},
/** 重写查看方法 */
toView
(
row
)
{
row
.
view
=
"
查看
"
;
this
.
$refs
.
drawerform
.
view
(
row
);
},
},
data
()
{
return
{
// 用户导入参数
upload
:
{
// 是否显示弹出层(考勤绩效记录核查信息导入)
open
:
false
,
// 弹出层标题(考勤绩效记录核查信息导入)
title
:
"
导入考勤绩效记录核查信息数据
"
,
// 是否禁用上传
isUploading
:
false
,
// 是否更新已经存在的数据
updateSupport
:
0
,
// 上传的地址
url
:
"
/attendance/check/attend/record/importData
"
,
},
isExport
:
false
,
config
:
{
isshowTabPane
:
true
,
search
:
[
{
name
:
"
status
"
,
type
:
"
select
"
,
label
:
"
全部状态
"
,
fuzzy
:
false
,
},
{
name
:
"
deptId
"
,
type
:
"
select
"
,
label
:
"
全部部门
"
,
fuzzy
:
false
,
},
{
name
:
"
date
"
,
type
:
"
date
"
,
label
:
"
请选择日期
"
,
fuzzy
:
false
,
},
{
name
:
"
staffName
"
,
type
:
"
text
"
,
label
:
"
请输入员工姓名搜索
"
,
fuzzy
:
false
,
},
],
columns
:
[
{
type
:
"
selection
"
,
width
:
50
},
{
type
:
"
index
"
,
label
:
"
序号
"
,
width
:
50
},
},
data
()
{
return
{
// 用户导入参数
upload
:
{
// 是否显示弹出层(考勤绩效记录核查信息导入)
open
:
false
,
// 弹出层标题(考勤绩效记录核查信息导入)
title
:
"
导入考勤绩效记录核查信息数据
"
,
// 是否禁用上传
isUploading
:
false
,
// 是否更新已经存在的数据
updateSupport
:
0
,
// 上传的地址
url
:
"
/attendance/check/attend/record/importData
"
,
},
isExport
:
false
,
config
:
{
isshowTabPane
:
true
,
search
:
[
],
columns
:
[
{
type
:
"
selection
"
,
width
:
60
},
{
type
:
"
index
"
,
label
:
"
序号
"
,
width
:
50
},
{
label
:
"
姓名
"
,
prop
:
"
staffName
"
},
{
label
:
"
员工姓名
"
,
prop
:
"
staffName
"
},
{
label
:
"
窗口编号
"
,
prop
:
"
windowNum
"
},
{
label
:
"
工号
"
,
prop
:
"
workNum
"
},
{
label
:
"
所属部门
"
,
prop
:
"
deptName
"
},
{
label
:
"
所属部门名称
"
,
prop
:
"
deptName
"
},
{
label
:
"
考勤组
"
,
prop
:
"
attendanceGroupName
"
},
{
label
:
"
所属考勤组名称
"
,
prop
:
"
attendanceGroupName
"
},
{
label
:
"
异常时间
"
,
prop
:
"
errorTime
"
,
formatter
:
this
.
formatterDate
,
},
{
label
:
"
考勤时间
"
,
prop
:
"
attendanceDate
"
,
formatter
:
this
.
formatterDate
},
{
label
:
"
上下班时间
"
,
prop
:
"
goOffTimeStr
"
},
{
label
:
"
规则名称
"
,
prop
:
"
ruleName
"
},
{
label
:
"
实际打卡时间
"
,
prop
:
"
actualAttendTime
"
,
formatter
:
this
.
formatterDate
,
},
{
label
:
"
增减类型
"
,
prop
:
"
subAddType
"
,
formatter
:
this
.
formatter
},
{
label
:
"
异常结果
"
,
prop
:
"
errorResult
"
},
{
label
:
"
扣分或增加分值
"
,
fixed
:
"
right
"
,
prop
:
"
score
"
,
formatter
:
this
.
formatter
},
{
label
:
"
图片凭证
"
,
prop
:
"
snapPath
"
},
{
label
:
"
上下班时间
"
,
prop
:
"
goOffTimeStr
"
},
{
label
:
"
绩效规则
"
,
prop
:
"
ruleNme
"
},
{
label
:
"
异常时间
"
,
prop
:
"
errorTime
"
,
formatter
:
this
.
formatterDate
},
{
label
:
"
扣分方式
"
,
prop
:
"
subMethod
"
,
formatter
:
this
.
formatter
},
{
label
:
"
实际打卡时间
"
,
prop
:
"
actualAttendTime
"
,
formatter
:
this
.
formatterDate
},
{
label
:
"
扣分时间
"
,
prop
:
"
deductTime
"
,
formatter
:
this
.
formatterDate
,
},
{
label
:
"
异常处理结果
"
,
prop
:
"
errorResult
"
},
{
label
:
"
扣分人员
"
,
prop
:
"
deductPerson
"
},
{
label
:
"
核查时间
"
,
prop
:
"
checkTime
"
,
formatter
:
this
.
formatterDate
},
{
label
:
"
扣分分值
"
,
prop
:
"
score
"
,
formatter
:
this
.
formatter
},
{
label
:
"
核查说明
"
,
prop
:
"
checkDesc
"
},
{
label
:
"
处理状态
"
,
prop
:
"
processStatus
"
,
formatter
:
this
.
formatter
,
},
{
label
:
"
核查结果
"
,
prop
:
"
checkResult
"
},
{
label
:
"
处理状态
"
,
fixed
:
"
right
"
,
prop
:
"
checkStatus
"
,
formatter
:
this
.
formatter
},
{
label
:
"
创建用户
"
,
prop
:
"
createUserId
"
,
formatter
:
this
.
formatter
},
{
label
:
"
操作
"
,
fixed
:
"
right
"
,
width
:
240
,
formatter
:
row
=>
{
return
(
<
table
-
buttons
noAdd
row
=
{
row
}
onEdit
=
{
this
.
toEdit
}
onView
=
{
this
.
toView
}
onDel
=
{
this
.
toDel
}
/
>
);
}
}
]
}
};
}
{
label
:
"
操作
"
,
width
:
200
,
formatter
:
(
row
)
=>
{
return
(
<
table
-
buttons
noAdd
noDel
noEdit
reCheck
row
=
{
row
}
onEdit
=
{
this
.
toEdit
}
onView
=
{
this
.
toView
}
onDel
=
{
this
.
toDel
}
/
>
);
},
},
],
},
};
},
};
</
script
>
attendance-performance-manager-ui/admin/src/views/check/complain/record/drawershow.vue
View file @
1a3dadd2
<
template
>
<!-- 弹出框表单 -->
<el-drawer
:title=
"title"
:visible.sync=
"open"
:direction=
"direction"
size=
"50%"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"120px"
>
<el-row>
<Field
label=
"记录ID"
prop=
"recordId"
v-model=
"form.recordId"
placeholder=
"请输入记录ID"
/>
<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=
"windowNum"
v-model=
"form.windowNum"
placeholder=
"请输入窗口编号"
/>
<Field
label=
"所属部门"
prop=
"deptId"
v-model=
"form.deptId"
placeholder=
"请输入所属部门"
/>
<Field
label=
"所属部门名称"
prop=
"deptName"
v-model=
"form.deptName"
placeholder=
"请输入所属部门名称"
/>
<Field
label=
"投诉标题"
prop=
"complainTitle"
v-model=
"form.complainTitle"
placeholder=
"请输入投诉标题"
/>
<Field
label=
"投诉内容"
><editor
v-model=
"form.complainContent"
:min-height=
"256"
/></Field>
<Field
label=
"投诉人真实姓名"
prop=
"complainRealName"
v-model=
"form.complainRealName"
placeholder=
"请输入投诉人真实姓名"
/>
<Field
label=
"联系电话"
prop=
"contact"
v-model=
"form.contact"
placeholder=
"请输入联系电话"
/>
<Field
label=
"投诉时间"
prop=
"complainTime"
v-model=
"form.complainTime"
type=
"date"
/>
<Field
label=
"投诉来源"
prop=
"complainSource"
v-model=
"form.complainSource"
placeholder=
"请输入投诉来源"
/>
<Field
label=
"投诉设备"
prop=
"complainDevice"
v-model=
"form.complainDevice"
placeholder=
"请输入投诉设备"
/>
<Field
label=
"绩效规则id"
prop=
"ruleId"
v-model=
"form.ruleId"
placeholder=
"请输入绩效规则id"
/>
<Field
label=
"规则名称"
prop=
"ruleName"
v-model=
"form.ruleName"
placeholder=
"请输入规则名称"
/>
<Field
label=
"扣分方式"
prop=
"subMethod"
v-model=
"form.subMethod"
type=
"select"
:enumData=
"dict.subMethod"
placeholder=
"请选择扣分方式"
/>
<Field
label=
"扣分人员"
prop=
"deductPerson"
v-model=
"form.deductPerson"
placeholder=
"请输入扣分人员"
/>
<Field
label=
"扣分时间"
prop=
"deductTime"
v-model=
"form.deductTime"
type=
"date"
/>
<Field
label=
"扣分或增加分值"
prop=
"score"
v-model=
"form.score"
placeholder=
"请输入扣分或增加分值"
/>
<Field
label=
"核查人员"
prop=
"checkPerson"
v-model=
"form.checkPerson"
placeholder=
"请输入核查人员"
/>
<Field
label=
"核查时间"
prop=
"checkTime"
v-model=
"form.checkTime"
type=
"date"
/>
<Field
label=
"核查说明"
prop=
"checkDesc"
v-model=
"form.checkDesc"
type=
"textarea"
placeholder=
"请输入核查说明"
/>
<Field
label=
"核查结果"
prop=
"checkResult"
v-model=
"form.checkResult"
placeholder=
"请输入核查结果"
/>
<Field
label=
"处理状态"
prop=
"checkStatus"
v-model=
"form.checkStatus"
type=
"select"
:enumData=
"dict.checkStatus"
placeholder=
"请选择处理状态"
/>
<Field
label=
"备注"
prop=
"remark"
v-model=
"form.remark"
type=
"textarea"
placeholder=
"请输入备注"
/>
<!-- 弹出框表单 -->
<el-drawer
:title=
"title"
:visible.sync=
"open"
:direction=
"direction"
size=
"50%"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"120px"
>
<el-row>
<Field
label=
"记录ID"
prop=
"recordId"
v-model=
"form.recordId"
placeholder=
"请输入记录ID"
/>
<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=
"windowNum"
v-model=
"form.windowNum"
placeholder=
"请输入窗口编号"
/>
<Field
label=
"所属部门"
prop=
"deptId"
v-model=
"form.deptId"
placeholder=
"请输入所属部门"
/>
<Field
label=
"所属部门名称"
prop=
"deptName"
v-model=
"form.deptName"
placeholder=
"请输入所属部门名称"
/>
<Field
label=
"投诉标题"
prop=
"complainTitle"
v-model=
"form.complainTitle"
placeholder=
"请输入投诉标题"
/>
<Field
label=
"投诉内容"
><editor
v-model=
"form.complainContent"
:min-height=
"256"
/></Field>
<Field
label=
"投诉人真实姓名"
prop=
"complainRealName"
v-model=
"form.complainRealName"
placeholder=
"请输入投诉人真实姓名"
/>
<Field
label=
"联系电话"
prop=
"contact"
v-model=
"form.contact"
placeholder=
"请输入联系电话"
/>
<Field
label=
"投诉时间"
prop=
"complainTime"
v-model=
"form.complainTime"
type=
"date"
/>
<Field
label=
"投诉来源"
prop=
"complainSource"
v-model=
"form.complainSource"
placeholder=
"请输入投诉来源"
/>
<Field
label=
"投诉设备"
prop=
"complainDevice"
v-model=
"form.complainDevice"
placeholder=
"请输入投诉设备"
/>
<Field
label=
"绩效规则id"
prop=
"ruleId"
v-model=
"form.ruleId"
placeholder=
"请输入绩效规则id"
/>
<Field
label=
"规则名称"
prop=
"ruleName"
v-model=
"form.ruleName"
placeholder=
"请输入规则名称"
/>
<Field
label=
"扣分方式"
prop=
"subMethod"
v-model=
"form.subMethod"
type=
"select"
:enumData=
"dict.subMethod"
placeholder=
"请选择扣分方式"
/>
<Field
label=
"扣分人员"
prop=
"deductPerson"
v-model=
"form.deductPerson"
placeholder=
"请输入扣分人员"
/>
<Field
label=
"扣分时间"
prop=
"deductTime"
v-model=
"form.deductTime"
type=
"date"
/>
<Field
label=
"扣分或增加分值"
prop=
"score"
v-model=
"form.score"
placeholder=
"请输入扣分或增加分值"
/>
<Field
label=
"核查人员"
prop=
"checkPerson"
v-model=
"form.checkPerson"
placeholder=
"请输入核查人员"
/>
<Field
label=
"核查时间"
prop=
"checkTime"
v-model=
"form.checkTime"
type=
"date"
/>
<Field
label=
"核查说明"
prop=
"checkDesc"
v-model=
"form.checkDesc"
type=
"textarea"
placeholder=
"请输入核查说明"
/>
<Field
label=
"核查结果"
prop=
"checkResult"
v-model=
"form.checkResult"
placeholder=
"请输入核查结果"
/>
<Field
label=
"处理状态"
prop=
"checkStatus"
v-model=
"form.checkStatus"
type=
"select"
:enumData=
"dict.checkStatus"
placeholder=
"请选择处理状态"
/>
<Field
label=
"备注"
prop=
"remark"
v-model=
"form.remark"
type=
"textarea"
placeholder=
"请输入备注"
/>
</el-row>
</el-row>
<form-buttons
@
submit=
'submitForm'
v-if=
"pageInfo.type!='view'"
noCancelBtn
/>
</el-form>
</el-drawer>
<form-buttons
@
submit=
"submitForm"
v-if=
"pageInfo.type != 'view'"
noCancelBtn
/>
</el-form>
</el-drawer>
</
template
>
<
script
>
import
form
from
"
@/assets/mixins/formdialog
"
;
export
default
{
name
:
"
CheckComplainRecordDetail
"
,
mixins
:
[
form
],
components
:
{
},
created
()
{
this
.
changePath
(
"
check/complain/record
"
)
},
data
()
{
return
{
// 遮罩层
loading
:
true
,
// 弹出层标题
title
:
"
评价绩效投诉核查信息
"
,
// 是否显示弹出层
open
:
false
,
direction
:
"
rtl
"
,
toString
:[
"
subMethod
"
,
"
checkStatus
"
,
],
toDate
:[
"
complainTime
"
,
"
deductTime
"
,
"
checkTime
"
,
],
// 表单校验
rules
:
{
staffName
:
[
{
required
:
true
,
message
:
"
请输入员工姓名
"
,
trigger
:
"
blur
"
},
{
max
:
64
,
message
:
"
最多只能录入64个字符
"
,
trigger
:
"
blur
"
,},
],
createTime
:
[
{
required
:
true
,
message
:
"
请选择创建时间
"
},
],
}
};
},
import
form
from
"
@/assets/mixins/formdialog
"
;
export
default
{
name
:
"
CheckComplainRecordDetail
"
,
mixins
:
[
form
],
components
:
{},
created
()
{
this
.
changePath
(
"
check/complain/record
"
);
},
data
()
{
return
{
// 遮罩层
loading
:
true
,
// 弹出层标题
title
:
"
评价绩效投诉核查信息
"
,
// 是否显示弹出层
open
:
false
,
direction
:
"
rtl
"
,
toString
:
[
"
subMethod
"
,
"
checkStatus
"
],
toDate
:
[
"
complainTime
"
,
"
deductTime
"
,
"
checkTime
"
],
// 表单校验
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
=
"
check/complain/record/edit
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
edit
"
this
.
title
=
"
修改评价绩效投诉核查信息
"
;
},
/** 新增 */
add
(
row
)
{
this
.
reset
()
this
.
urls
.
currUrl
=
"
check/complain/record/add
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
add
"
this
.
title
=
"
新增评价绩效投诉核查信息
"
;
},
/** 查看*/
view
(
row
)
{
this
.
reset
()
this
.
query
=
{
id
:
row
.
id
};
this
.
urls
.
currUrl
=
"
check/complain/record/view
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
view
"
this
.
title
=
"
评价绩效投诉核查信息详细
"
;
},
/**取消按钮 */
cancel
()
{
this
.
open
=
false
;
},
/**获取数据后弹框 */
afterRender
(
data
)
{
this
.
open
=
true
;
},
methods
:
{
/** 编辑 */
edit
(
row
)
{
this
.
reset
();
this
.
query
=
{
id
:
row
.
id
};
this
.
urls
.
currUrl
=
"
check/complain/record/edit
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
edit
"
;
row
.
view
==
"
核查
"
?
(
this
.
title
=
"
评价绩效投诉核查
"
)
:
(
this
.
title
=
"
修改评价绩效投诉核查信息
"
);
},
/** 新增 */
add
(
row
)
{
this
.
reset
();
this
.
urls
.
currUrl
=
"
check/complain/record/add
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
add
"
;
this
.
title
=
"
新增评价绩效投诉核查信息
"
;
},
/** 查看*/
view
(
row
)
{
this
.
reset
();
this
.
query
=
{
id
:
row
.
id
};
this
.
urls
.
currUrl
=
"
check/complain/record/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
"
);
},
afterSubmit
(
data
)
{
this
.
open
=
false
;
this
.
$emit
(
"
ok
"
);
},
// 表单重置
reset
()
{
this
.
form
=
{
recordId
:
null
,
staffId
:
null
,
staffName
:
""
,
workNum
:
""
,
windowNum
:
""
,
deptId
:
null
,
deptName
:
""
,
complainTitle
:
""
,
complainContent
:
""
,
complainRealName
:
""
,
contact
:
""
,
complainTime
:
null
,
complainSource
:
""
,
complainDevice
:
""
,
ruleId
:
null
,
ruleName
:
""
,
subMethod
:
1
,
deductPerson
:
""
,
deductTime
:
null
,
score
:
0.0
0
,
checkPerson
:
""
,
checkTime
:
null
,
checkDesc
:
""
,
checkResult
:
""
,
checkStatus
:
1
,
remark
:
""
,
};
this
.
resetForm
(
"
form
"
);
},
resetForm
(
refName
)
{
if
(
this
.
$refs
[
refName
])
{
this
.
$refs
[
refName
].
resetFields
();
}
},
},
};
// 表单重置
reset
()
{
this
.
form
=
{
recordId
:
null
,
staffId
:
null
,
staffName
:
""
,
workNum
:
""
,
windowNum
:
""
,
deptId
:
null
,
deptName
:
""
,
complainTitle
:
""
,
complainContent
:
""
,
complainRealName
:
""
,
contact
:
""
,
complainTime
:
null
,
complainSource
:
""
,
complainDevice
:
""
,
ruleId
:
null
,
ruleName
:
""
,
subMethod
:
1
,
deductPerson
:
""
,
deductTime
:
null
,
score
:
0.
0
,
checkPerson
:
""
,
checkTime
:
null
,
checkDesc
:
""
,
checkResult
:
""
,
checkStatus
:
1
,
remark
:
""
,
};
this
.
resetForm
(
"
form
"
);
},
resetForm
(
refName
)
{
if
(
this
.
$refs
[
refName
])
{
this
.
$refs
[
refName
].
resetFields
();
}
},
},
};
</
script
>
attendance-performance-manager-ui/admin/src/views/check/complain/record/list.vue
View file @
1a3dadd2
<
template
>
<div
class=
"page"
>
<LayoutTable
notAdd
notDel
:data=
"tableData"
:config=
"tableConfig"
>
<el-button
slot=
"table-head-left2"
style=
"margin-left: 10px"
icon=
"el-icon-tickets"
size=
"mini"
@
click=
"doExport"
:disabled=
"isExport"
>
导出
</el-button>
</LayoutTable>
<!-- 评价绩效投诉核查信息导入对话框 -->
<el-dialog
:title=
"upload.title"
:visible.sync=
"upload.open"
width=
"400px"
append-to-body
>
<el-upload
ref=
"upload"
:limit=
"1"
accept=
".xlsx, .xls"
:headers=
"upload.headers"
:action=
"upload.url + '?updateSupport=' + upload.updateSupport"
:disabled=
"upload.isUploading"
:on-progress=
"handleFileUploadProgress"
:on-success=
"handleFileSuccess"
:auto-upload=
"false"
drag
>
<i
class=
"el-icon-upload"
></i>
<div
class=
"el-upload__text"
>
将文件拖到此处,或
<em>
点击上传
</em>
</div>
<div
class=
"el-upload__tip"
slot=
"tip"
>
<el-checkbox
v-model=
"upload.updateSupport"
/>
是否更新已经存在的数据
<el-link
type=
"primary"
style=
"font-size: 14px"
@
click=
"downloadTemplate"
>
下载模板
</el-link
>
</div>
<div
class=
"el-upload__tip"
style=
"color: red"
slot=
"tip"
>
提示:仅允许导入“xls”或“xlsx”格式文件!
</div>
</el-upload>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"submitFileForm"
>
确 定
</el-button>
<el-button
@
click=
"upload.open = false"
>
取 消
</el-button>
</div>
</el-dialog>
<drawer-show
ref=
"drawerform"
@
ok=
"getData"
/>
</div>
<div
class=
"page"
>
<LayoutTable
notAdd
notDel
:data=
"tableData"
:config=
"tableConfig"
>
<el-button
slot=
"table-head-left2"
style=
"margin-left: 10px"
icon=
"el-icon-tickets"
size=
"mini"
@
click=
"doExport"
:disabled=
"isExport"
>
导出
</el-button
>
</LayoutTable>
<!-- 评价绩效投诉核查信息导入对话框 -->
<el-dialog
:title=
"upload.title"
:visible.sync=
"upload.open"
width=
"400px"
append-to-body
>
<el-upload
ref=
"upload"
:limit=
"1"
accept=
".xlsx, .xls"
:headers=
"upload.headers"
:action=
"upload.url + '?updateSupport=' + upload.updateSupport"
:disabled=
"upload.isUploading"
:on-progress=
"handleFileUploadProgress"
:on-success=
"handleFileSuccess"
:auto-upload=
"false"
drag
>
<i
class=
"el-icon-upload"
></i>
<div
class=
"el-upload__text"
>
将文件拖到此处,或
<em>
点击上传
</em>
</div>
<div
class=
"el-upload__tip"
slot=
"tip"
>
<el-checkbox
v-model=
"upload.updateSupport"
/>
是否更新已经存在的数据
<el-link
type=
"primary"
style=
"font-size: 14px"
@
click=
"downloadTemplate"
>
下载模板
</el-link
>
</div>
<div
class=
"el-upload__tip"
style=
"color: red"
slot=
"tip"
>
提示:仅允许导入“xls”或“xlsx”格式文件!
</div>
</el-upload>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"submitFileForm"
>
确 定
</el-button>
<el-button
@
click=
"upload.open = false"
>
取 消
</el-button>
</div>
</el-dialog>
<drawer-show
ref=
"drawerform"
@
ok=
"getData"
/>
</div>
</
template
>
<
script
>
/** 表单弹出框模式需引入 */
import
drawerShow
from
"
./drawershow
"
;
import
table
from
"
@/assets/mixins/table
"
;
export
default
{
name
:
"
CheckComplainRecordList
"
,
components
:
{
drawerShow
},
mixins
:
[
table
],
created
()
{
/** 表单弹出框模式需引入 */
import
drawerShow
from
"
./drawershow
"
;
import
table
from
"
@/assets/mixins/table
"
;
export
default
{
name
:
"
CheckComplainRecordList
"
,
components
:
{
drawerShow
,
},
mixins
:
[
table
],
created
()
{},
methods
:
{
/** 导入 */
handleImport
()
{
this
.
upload
.
title
=
"
评价绩效投诉核查信息导入
"
;
this
.
upload
.
open
=
true
;
},
/** 下载模板操作 */
downloadTemplate
()
{
this
.
isExport
=
true
;
this
.
$download
(
"
/check/complain/record/downloadTemplate
"
,
{},
{
type
:
"
excel
"
}
)
.
then
(()
=>
(
this
.
isExport
=
false
))
.
catch
((
error
)
=>
{
this
.
isExport
=
false
;
this
.
$message
.
error
(
error
.
message
);
});
},
/** 文件上传中处理 */
handleFileUploadProgress
(
event
,
file
,
fileList
)
{
this
.
upload
.
isUploading
=
true
;
},
/** 文件上传成功处理 */
handleFileSuccess
(
response
,
file
,
fileList
)
{
this
.
upload
.
open
=
false
;
this
.
upload
.
isUploading
=
false
;
this
.
$refs
.
upload
.
clearFiles
();
this
.
$alert
(
response
.
msg
,
"
导入结果
"
,
{
dangerouslyUseHTMLString
:
true
});
this
.
getData
();
},
/** 提交上传文件 */
submitFileForm
()
{
this
.
$refs
.
upload
.
submit
();
},
/** 导出Excel */
doExport
()
{
this
.
isExport
=
true
;
this
.
$download
(
"
/check/complain/record/exportExcel
"
,
{
idList
:
this
.
selection
,
},
methods
:
{
/** 导入 */
handleImport
()
{
this
.
upload
.
title
=
"
评价绩效投诉核查信息导入
"
;
this
.
upload
.
open
=
true
;
},
/** 下载模板操作 */
downloadTemplate
()
{
this
.
isExport
=
true
;
this
.
$download
(
"
/check/complain/record/downloadTemplate
"
,
{},
{
type
:
"
excel
"
})
.
then
(()
=>
(
this
.
isExport
=
false
))
.
catch
((
error
)
=>
{
this
.
isExport
=
false
;
this
.
$message
.
error
(
error
.
message
);
});
},
/** 文件上传中处理 */
handleFileUploadProgress
(
event
,
file
,
fileList
)
{
this
.
upload
.
isUploading
=
true
;
},
/** 文件上传成功处理 */
handleFileSuccess
(
response
,
file
,
fileList
)
{
this
.
upload
.
open
=
false
;
this
.
upload
.
isUploading
=
false
;
this
.
$refs
.
upload
.
clearFiles
();
this
.
$alert
(
response
.
msg
,
"
导入结果
"
,
{
dangerouslyUseHTMLString
:
true
});
this
.
getData
();
},
/** 提交上传文件 */
submitFileForm
()
{
this
.
$refs
.
upload
.
submit
();
},
/** 导出Excel */
doExport
()
{
this
.
isExport
=
true
;
this
.
$download
(
"
/check/complain/record/exportExcel
"
,
{
"
idList
"
:
this
.
selection
,
},
{
type
:
"
excel
"
}).
then
(()
=>
this
.
isExport
=
false
).
catch
(
error
=>
{
this
.
isExport
=
false
;
this
.
$message
.
error
(
error
.
message
);
});
},
/** 重写新增方法 */
toAdd
(
row
)
{
this
.
$refs
.
drawerform
.
add
(
row
);
},
/** 重写编辑方法 */
toEdit
(
row
)
{
this
.
$refs
.
drawerform
.
edit
(
row
);
},
/** 重写查看方法 */
toView
(
row
)
{
this
.
$refs
.
drawerform
.
view
(
row
);
},
{
type
:
"
excel
"
}
)
.
then
(()
=>
(
this
.
isExport
=
false
))
.
catch
((
error
)
=>
{
this
.
isExport
=
false
;
this
.
$message
.
error
(
error
.
message
);
});
},
/** 重写新增方法 */
toAdd
(
row
)
{
this
.
$refs
.
drawerform
.
add
(
row
);
},
/** 重写编辑方法 */
toEdit
(
row
)
{
row
.
view
=
"
核查
"
;
this
.
$refs
.
drawerform
.
edit
(
row
);
},
/** 重写查看方法 */
toView
(
row
)
{
row
.
view
=
"
查看
"
;
this
.
$refs
.
drawerform
.
view
(
row
);
},
},
data
()
{
return
{
// 用户导入参数
upload
:
{
// 是否显示弹出层(评价绩效投诉核查信息导入)
open
:
false
,
// 弹出层标题(评价绩效投诉核查信息导入)
title
:
"
导入评价绩效投诉核查信息数据
"
,
// 是否禁用上传
isUploading
:
false
,
// 是否更新已经存在的数据
updateSupport
:
0
,
// 上传的地址
url
:
"
/m/check/complain/record/importData
"
,
},
isExport
:
false
,
},
data
()
{
return
{
// 用户导入参数
upload
:
{
// 是否显示弹出层(评价绩效投诉核查信息导入)
open
:
false
,
// 弹出层标题(评价绩效投诉核查信息导入)
title
:
"
导入评价绩效投诉核查信息数据
"
,
// 是否禁用上传
isUploading
:
false
,
// 是否更新已经存在的数据
updateSupport
:
0
,
// 上传的地址
url
:
"
/m/check/complain/record/importData
"
,
},
isExport
:
false
,
config
:
{
isshowTabPane
:
true
,
search
:
[
],
columns
:
[
{
type
:
"
selection
"
,
width
:
60
},
{
type
:
"
index
"
,
label
:
"
序号
"
,
width
:
50
},
{
label
:
"
员工姓名
"
,
prop
:
"
staffName
"
},
{
label
:
"
所属部门名称
"
,
prop
:
"
deptName
"
},
{
label
:
"
投诉时间
"
,
prop
:
"
complainTime
"
,
formatter
:
this
.
formatterDate
},
{
label
:
"
扣分方式
"
,
prop
:
"
subMethod
"
,
formatter
:
this
.
formatter
},
{
label
:
"
扣分时间
"
,
prop
:
"
deductTime
"
,
formatter
:
this
.
formatterDate
},
{
label
:
"
扣分或增加分值
"
,
prop
:
"
score
"
,
formatter
:
this
.
formatter
},
{
label
:
"
核查时间
"
,
prop
:
"
checkTime
"
,
formatter
:
this
.
formatterDate
},
{
label
:
"
处理状态
"
,
prop
:
"
checkStatus
"
,
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
}
/
>
);
}
}
]
}
};
}
config
:
{
isshowTabPane
:
true
,
search
:
[
{
name
:
"
status
"
,
type
:
"
select
"
,
label
:
"
全部状态
"
,
fuzzy
:
false
,
},
{
name
:
"
deptId
"
,
type
:
"
select
"
,
label
:
"
全部部门
"
,
fuzzy
:
false
,
},
{
name
:
"
source
"
,
type
:
"
select
"
,
label
:
"
全部来源
"
,
fuzzy
:
false
,
},
{
name
:
"
date
"
,
type
:
"
date
"
,
label
:
"
请选择日期
"
,
fuzzy
:
false
,
},
{
name
:
"
staffName
"
,
type
:
"
text
"
,
label
:
"
请输入员工姓名搜索
"
,
fuzzy
:
false
,
},
],
columns
:
[
{
type
:
"
selection
"
,
width
:
50
},
{
type
:
"
index
"
,
label
:
"
序号
"
,
width
:
50
},
{
label
:
"
姓名
"
,
prop
:
"
staffName
"
},
{
label
:
"
窗口编号
"
,
prop
:
"
windowNum
"
},
{
label
:
"
所属部门
"
,
prop
:
"
deptName
"
},
{
label
:
"
投诉标题
"
,
prop
:
"
complainTitle
"
},
{
label
:
"
投诉内容
"
,
prop
:
"
complainContent
"
},
{
label
:
"
投诉人真实姓名
"
,
prop
:
"
complainRealName
"
},
{
label
:
"
联系电话
"
,
prop
:
"
contact
"
},
{
label
:
"
投诉时间
"
,
prop
:
"
complainTime
"
,
formatter
:
this
.
formatterDate
,
},
{
label
:
"
投诉来源
"
,
prop
:
"
complainSource
"
},
{
label
:
"
图片凭证
"
,
prop
:
"
snapPath
"
},
{
label
:
"
投诉设备
"
,
prop
:
"
complainDevice
"
},
{
label
:
"
绩效规则
"
,
prop
:
"
ruleNme
"
},
{
label
:
"
扣分方式
"
,
prop
:
"
subMethod
"
,
formatter
:
this
.
formatter
},
{
label
:
"
扣分时间
"
,
prop
:
"
deductTime
"
,
formatter
:
this
.
formatterDate
,
},
{
label
:
"
扣分人员
"
,
prop
:
"
deductPerson
"
},
{
label
:
"
扣分分值
"
,
prop
:
"
score
"
,
formatter
:
this
.
formatter
},
{
label
:
"
处理状态
"
,
prop
:
"
processStatus
"
,
formatter
:
this
.
formatter
,
},
{
label
:
"
操作
"
,
width
:
200
,
formatter
:
(
row
)
=>
{
return
(
<
table
-
buttons
noAdd
noDel
reCheck
noEdit
row
=
{
row
}
onEdit
=
{
this
.
toEdit
}
onView
=
{
this
.
toView
}
onDel
=
{
this
.
toDel
}
/
>
);
},
},
],
},
};
},
};
</
script
>
attendance-performance-manager-ui/admin/src/views/check/effect/record/drawershow.vue
View file @
1a3dadd2
<
template
>
<!-- 弹出框表单 -->
<el-drawer
:title=
"title"
:visible.sync=
"open"
:direction=
"direction"
size=
"50%"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"120px"
>
<el-row>
<Field
label=
"记录ID"
prop=
"recordId"
v-model=
"form.recordId"
placeholder=
"请输入记录ID"
/>
<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=
"windowNum"
v-model=
"form.windowNum"
placeholder=
"请输入窗口编号"
/>
<Field
label=
"所属部门"
prop=
"deptId"
v-model=
"form.deptId"
placeholder=
"请输入所属部门"
/>
<Field
label=
"所属部门名称"
prop=
"deptName"
v-model=
"form.deptName"
placeholder=
"请输入所属部门名称"
/>
<Field
label=
"违规类型"
prop=
"irregularType"
v-model=
"form.irregularType"
type=
"select"
:enumData=
"dict.irregularType"
placeholder=
"请选择违规类型"
/>
<Field
label=
"发生时间"
prop=
"happenTime"
v-model=
"form.happenTime"
type=
"date"
/>
<Field
label=
"持续时间,秒"
prop=
"duration"
v-model=
"form.duration"
placeholder=
"请输入持续时间,秒"
/>
<Field
label=
"报警时间"
prop=
"alarmTime"
v-model=
"form.alarmTime"
type=
"date"
/>
<Field
label=
"图片凭证地址"
prop=
"snapPath"
v-model=
"form.snapPath"
type=
"textarea"
placeholder=
"请输入图片凭证地址"
/>
<Field
label=
"绩效规则id"
prop=
"ruleId"
v-model=
"form.ruleId"
placeholder=
"请输入绩效规则id"
/>
<Field
label=
"规则名称"
prop=
"ruleName"
v-model=
"form.ruleName"
placeholder=
"请输入规则名称"
/>
<Field
label=
"扣分方式"
prop=
"subMethod"
v-model=
"form.subMethod"
type=
"select"
:enumData=
"dict.subMethod"
placeholder=
"请选择扣分方式"
/>
<Field
label=
"扣分人员"
prop=
"deductPerson"
v-model=
"form.deductPerson"
placeholder=
"请输入扣分人员"
/>
<Field
label=
"扣分时间"
prop=
"deductTime"
v-model=
"form.deductTime"
type=
"date"
/>
<Field
label=
"扣分或增加分值"
prop=
"score"
v-model=
"form.score"
placeholder=
"请输入扣分或增加分值"
/>
<Field
label=
"核查人员"
prop=
"checkPerson"
v-model=
"form.checkPerson"
placeholder=
"请输入核查人员"
/>
<Field
label=
"核查时间"
prop=
"checkTime"
v-model=
"form.checkTime"
type=
"date"
/>
<Field
label=
"核查说明"
prop=
"checkDesc"
v-model=
"form.checkDesc"
type=
"textarea"
placeholder=
"请输入核查说明"
/>
<Field
label=
"核查结果"
prop=
"checkResult"
v-model=
"form.checkResult"
placeholder=
"请输入核查结果"
/>
<Field
label=
"处理状态"
prop=
"checkStatus"
v-model=
"form.checkStatus"
type=
"select"
:enumData=
"dict.checkStatus"
placeholder=
"请选择处理状态"
/>
<Field
label=
"备注"
prop=
"remark"
v-model=
"form.remark"
type=
"textarea"
placeholder=
"请输入备注"
/>
<!-- 弹出框表单 -->
<el-drawer
:title=
"title"
:visible.sync=
"open"
:direction=
"direction"
size=
"50%"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"120px"
>
<el-row>
<Field
label=
"记录ID"
prop=
"recordId"
v-model=
"form.recordId"
placeholder=
"请输入记录ID"
/>
<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=
"windowNum"
v-model=
"form.windowNum"
placeholder=
"请输入窗口编号"
/>
<Field
label=
"所属部门"
prop=
"deptId"
v-model=
"form.deptId"
placeholder=
"请输入所属部门"
/>
<Field
label=
"所属部门名称"
prop=
"deptName"
v-model=
"form.deptName"
placeholder=
"请输入所属部门名称"
/>
<Field
label=
"违规类型"
prop=
"irregularType"
v-model=
"form.irregularType"
type=
"select"
:enumData=
"dict.irregularType"
placeholder=
"请选择违规类型"
/>
<Field
label=
"发生时间"
prop=
"happenTime"
v-model=
"form.happenTime"
type=
"date"
/>
<Field
label=
"持续时间,秒"
prop=
"duration"
v-model=
"form.duration"
placeholder=
"请输入持续时间,秒"
/>
<Field
label=
"报警时间"
prop=
"alarmTime"
v-model=
"form.alarmTime"
type=
"date"
/>
<Field
label=
"图片凭证地址"
prop=
"snapPath"
v-model=
"form.snapPath"
type=
"textarea"
placeholder=
"请输入图片凭证地址"
/>
<Field
label=
"绩效规则id"
prop=
"ruleId"
v-model=
"form.ruleId"
placeholder=
"请输入绩效规则id"
/>
<Field
label=
"规则名称"
prop=
"ruleName"
v-model=
"form.ruleName"
placeholder=
"请输入规则名称"
/>
<Field
label=
"扣分方式"
prop=
"subMethod"
v-model=
"form.subMethod"
type=
"select"
:enumData=
"dict.subMethod"
placeholder=
"请选择扣分方式"
/>
<Field
label=
"扣分人员"
prop=
"deductPerson"
v-model=
"form.deductPerson"
placeholder=
"请输入扣分人员"
/>
<Field
label=
"扣分时间"
prop=
"deductTime"
v-model=
"form.deductTime"
type=
"date"
/>
<Field
label=
"扣分或增加分值"
prop=
"score"
v-model=
"form.score"
placeholder=
"请输入扣分或增加分值"
/>
<Field
label=
"核查人员"
prop=
"checkPerson"
v-model=
"form.checkPerson"
placeholder=
"请输入核查人员"
/>
<Field
label=
"核查时间"
prop=
"checkTime"
v-model=
"form.checkTime"
type=
"date"
/>
<Field
label=
"核查说明"
prop=
"checkDesc"
v-model=
"form.checkDesc"
type=
"textarea"
placeholder=
"请输入核查说明"
/>
<Field
label=
"核查结果"
prop=
"checkResult"
v-model=
"form.checkResult"
placeholder=
"请输入核查结果"
/>
<Field
label=
"处理状态"
prop=
"checkStatus"
v-model=
"form.checkStatus"
type=
"select"
:enumData=
"dict.checkStatus"
placeholder=
"请选择处理状态"
/>
<Field
label=
"备注"
prop=
"remark"
v-model=
"form.remark"
type=
"textarea"
placeholder=
"请输入备注"
/>
</el-row>
</el-row>
<form-buttons
@
submit=
'submitForm'
v-if=
"pageInfo.type!='view'"
noCancelBtn
/>
</el-form>
</el-drawer>
<form-buttons
@
submit=
"submitForm"
v-if=
"pageInfo.type != 'view'"
noCancelBtn
/>
</el-form>
</el-drawer>
</
template
>
<
script
>
import
form
from
"
@/assets/mixins/formdialog
"
;
export
default
{
name
:
"
CheckEffectRecordDetail
"
,
mixins
:
[
form
],
components
:
{
},
created
()
{
this
.
changePath
(
"
check/effect/record
"
)
},
data
()
{
return
{
// 遮罩层
loading
:
true
,
// 弹出层标题
title
:
"
效能绩效核查信息
"
,
// 是否显示弹出层
open
:
false
,
direction
:
"
rtl
"
,
toString
:[
"
irregularType
"
,
"
subMethod
"
,
"
checkStatus
"
,
],
toDate
:[
"
happenTime
"
,
"
alarmTime
"
,
"
deductTime
"
,
"
checkTime
"
,
],
// 表单校验
rules
:
{
staffName
:
[
{
required
:
true
,
message
:
"
请输入员工姓名
"
,
trigger
:
"
blur
"
},
{
max
:
64
,
message
:
"
最多只能录入64个字符
"
,
trigger
:
"
blur
"
,},
],
createTime
:
[
{
required
:
true
,
message
:
"
请选择创建时间
"
},
],
}
};
},
import
form
from
"
@/assets/mixins/formdialog
"
;
export
default
{
name
:
"
CheckEffectRecordDetail
"
,
mixins
:
[
form
],
components
:
{},
created
()
{
this
.
changePath
(
"
check/effect/record
"
);
},
data
()
{
return
{
// 遮罩层
loading
:
true
,
// 弹出层标题
title
:
"
效能绩效核查信息
"
,
// 是否显示弹出层
open
:
false
,
direction
:
"
rtl
"
,
toString
:
[
"
irregularType
"
,
"
subMethod
"
,
"
checkStatus
"
],
toDate
:
[
"
happenTime
"
,
"
alarmTime
"
,
"
deductTime
"
,
"
checkTime
"
],
// 表单校验
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
=
"
check/effect/record/edit
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
edit
"
this
.
title
=
"
修改效能绩效核查信息
"
;
},
/** 新增 */
add
(
row
)
{
this
.
reset
()
this
.
urls
.
currUrl
=
"
check/effect/record/add
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
add
"
this
.
title
=
"
新增效能绩效核查信息
"
;
},
/** 查看*/
view
(
row
)
{
this
.
reset
()
this
.
query
=
{
id
:
row
.
id
};
this
.
urls
.
currUrl
=
"
check/effect/record/view
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
view
"
this
.
title
=
"
效能绩效核查信息详细
"
;
},
/**取消按钮 */
cancel
()
{
this
.
open
=
false
;
},
/**获取数据后弹框 */
afterRender
(
data
)
{
this
.
open
=
true
;
},
methods
:
{
/** 编辑 */
edit
(
row
)
{
this
.
reset
();
this
.
query
=
{
id
:
row
.
id
};
this
.
urls
.
currUrl
=
"
check/effect/record/edit
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
edit
"
;
row
.
view
==
"
核查
"
?
(
this
.
title
=
"
效能绩效核查
"
)
:
(
this
.
title
=
"
修改效能绩效核查信息
"
);
},
/** 新增 */
add
(
row
)
{
this
.
reset
();
this
.
urls
.
currUrl
=
"
check/effect/record/add
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
add
"
;
this
.
title
=
"
新增效能绩效核查信息
"
;
},
/** 查看*/
view
(
row
)
{
this
.
reset
();
this
.
query
=
{
id
:
row
.
id
};
this
.
urls
.
currUrl
=
"
check/effect/record/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
"
);
},
afterSubmit
(
data
)
{
this
.
open
=
false
;
this
.
$emit
(
"
ok
"
);
},
// 表单重置
reset
()
{
this
.
form
=
{
recordId
:
null
,
staffId
:
null
,
staffName
:
""
,
workNum
:
""
,
windowNum
:
""
,
deptId
:
null
,
deptName
:
""
,
irregularType
:
null
,
happenTime
:
null
,
duration
:
0
,
alarmTime
:
null
,
snapPath
:
""
,
ruleId
:
null
,
ruleName
:
""
,
subMethod
:
1
,
deductPerson
:
""
,
deductTime
:
null
,
score
:
0.0
0
,
checkPerson
:
""
,
checkTime
:
null
,
checkDesc
:
""
,
checkResult
:
""
,
checkStatus
:
1
,
remark
:
""
,
};
this
.
resetForm
(
"
form
"
);
},
resetForm
(
refName
)
{
if
(
this
.
$refs
[
refName
])
{
this
.
$refs
[
refName
].
resetFields
();
}
},
},
};
// 表单重置
reset
()
{
this
.
form
=
{
recordId
:
null
,
staffId
:
null
,
staffName
:
""
,
workNum
:
""
,
windowNum
:
""
,
deptId
:
null
,
deptName
:
""
,
irregularType
:
null
,
happenTime
:
null
,
duration
:
0
,
alarmTime
:
null
,
snapPath
:
""
,
ruleId
:
null
,
ruleName
:
""
,
subMethod
:
1
,
deductPerson
:
""
,
deductTime
:
null
,
score
:
0.
0
,
checkPerson
:
""
,
checkTime
:
null
,
checkDesc
:
""
,
checkResult
:
""
,
checkStatus
:
1
,
remark
:
""
,
};
this
.
resetForm
(
"
form
"
);
},
resetForm
(
refName
)
{
if
(
this
.
$refs
[
refName
])
{
this
.
$refs
[
refName
].
resetFields
();
}
},
},
};
</
script
>
attendance-performance-manager-ui/admin/src/views/check/effect/record/list.vue
View file @
1a3dadd2
<
template
>
<div
class=
"page"
>
<LayoutTable
notAdd
notDel
:data=
"tableData"
:config=
"tableConfig"
>
<el-button
slot=
"table-head-left2"
style=
"margin-left: 10px"
icon=
"el-icon-tickets"
size=
"mini"
@
click=
"doExport"
:disabled=
"isExport"
>
导出
</el-button>
</LayoutTable>
<!-- 效能绩效核查信息导入对话框 -->
<el-dialog
:title=
"upload.title"
:visible.sync=
"upload.open"
width=
"400px"
append-to-body
>
<el-upload
ref=
"upload"
:limit=
"1"
accept=
".xlsx, .xls"
:headers=
"upload.headers"
:action=
"upload.url + '?updateSupport=' + upload.updateSupport"
:disabled=
"upload.isUploading"
:on-progress=
"handleFileUploadProgress"
:on-success=
"handleFileSuccess"
:auto-upload=
"false"
drag
>
<i
class=
"el-icon-upload"
></i>
<div
class=
"el-upload__text"
>
将文件拖到此处,或
<em>
点击上传
</em>
</div>
<div
class=
"el-upload__tip"
slot=
"tip"
>
<el-checkbox
v-model=
"upload.updateSupport"
/>
是否更新已经存在的数据
<el-link
type=
"primary"
style=
"font-size: 14px"
@
click=
"downloadTemplate"
>
下载模板
</el-link
>
</div>
<div
class=
"el-upload__tip"
style=
"color: red"
slot=
"tip"
>
提示:仅允许导入“xls”或“xlsx”格式文件!
</div>
</el-upload>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"submitFileForm"
>
确 定
</el-button>
<el-button
@
click=
"upload.open = false"
>
取 消
</el-button>
</div>
</el-dialog>
<drawer-show
ref=
"drawerform"
@
ok=
"getData"
/>
</div>
<div
class=
"page"
>
<LayoutTable
notAdd
notDel
:data=
"tableData"
:config=
"tableConfig"
>
<el-button
slot=
"table-head-left2"
style=
"margin-left: 10px"
icon=
"el-icon-tickets"
size=
"mini"
@
click=
"doExport"
:disabled=
"isExport"
>
导出
</el-button
>
</LayoutTable>
<!-- 效能绩效核查信息导入对话框 -->
<el-dialog
:title=
"upload.title"
:visible.sync=
"upload.open"
width=
"400px"
append-to-body
>
<el-upload
ref=
"upload"
:limit=
"1"
accept=
".xlsx, .xls"
:headers=
"upload.headers"
:action=
"upload.url + '?updateSupport=' + upload.updateSupport"
:disabled=
"upload.isUploading"
:on-progress=
"handleFileUploadProgress"
:on-success=
"handleFileSuccess"
:auto-upload=
"false"
drag
>
<i
class=
"el-icon-upload"
></i>
<div
class=
"el-upload__text"
>
将文件拖到此处,或
<em>
点击上传
</em>
</div>
<div
class=
"el-upload__tip"
slot=
"tip"
>
<el-checkbox
v-model=
"upload.updateSupport"
/>
是否更新已经存在的数据
<el-link
type=
"primary"
style=
"font-size: 14px"
@
click=
"downloadTemplate"
>
下载模板
</el-link
>
</div>
<div
class=
"el-upload__tip"
style=
"color: red"
slot=
"tip"
>
提示:仅允许导入“xls”或“xlsx”格式文件!
</div>
</el-upload>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"submitFileForm"
>
确 定
</el-button>
<el-button
@
click=
"upload.open = false"
>
取 消
</el-button>
</div>
</el-dialog>
<drawer-show
ref=
"drawerform"
@
ok=
"getData"
/>
</div>
</
template
>
<
script
>
/** 表单弹出框模式需引入 */
import
drawerShow
from
"
./drawershow
"
;
import
table
from
"
@/assets/mixins/table
"
;
export
default
{
name
:
"
CheckEffectRecordList
"
,
components
:
{
drawerShow
},
mixins
:
[
table
],
created
()
{
},
methods
:
{
/** 导入 */
handleImport
()
{
this
.
upload
.
title
=
"
效能绩效核查信息导入
"
;
this
.
upload
.
open
=
true
;
},
/** 下载模板操作 */
downloadTemplate
()
{
this
.
isExport
=
true
;
this
.
$download
(
"
/check/effect/record/downloadTemplate
"
,
{},
{
type
:
"
excel
"
})
.
then
(()
=>
(
this
.
isExport
=
false
))
.
catch
((
error
)
=>
{
this
.
isExport
=
false
;
this
.
$message
.
error
(
error
.
message
);
});
},
/** 文件上传中处理 */
handleFileUploadProgress
(
event
,
file
,
fileList
)
{
this
.
upload
.
isUploading
=
true
;
},
/** 文件上传成功处理 */
handleFileSuccess
(
response
,
file
,
fileList
)
{
this
.
upload
.
open
=
false
;
this
.
upload
.
isUploading
=
false
;
this
.
$refs
.
upload
.
clearFiles
();
this
.
$alert
(
response
.
msg
,
"
导入结果
"
,
{
dangerouslyUseHTMLString
:
true
});
this
.
getData
();
},
/** 提交上传文件 */
submitFileForm
()
{
this
.
$refs
.
upload
.
submit
();
},
/** 导出Excel */
doExport
()
{
this
.
isExport
=
true
;
this
.
$download
(
"
/check/effect/record/exportExcel
"
,
{
"
idList
"
:
this
.
selection
,
},
{
type
:
"
excel
"
}).
then
(()
=>
this
.
isExport
=
false
).
catch
(
error
=>
{
this
.
isExport
=
false
;
this
.
$message
.
error
(
error
.
message
);
});
},
/** 重写新增方法 */
toAdd
(
row
)
{
this
.
$refs
.
drawerform
.
add
(
row
);
},
/** 重写编辑方法 */
toEdit
(
row
)
{
this
.
$refs
.
drawerform
.
edit
(
row
);
},
/** 重写查看方法 */
toView
(
row
)
{
this
.
$refs
.
drawerform
.
view
(
row
);
},
/** 表单弹出框模式需引入 */
import
drawerShow
from
"
./drawershow
"
;
import
table
from
"
@/assets/mixins/table
"
;
export
default
{
name
:
"
CheckEffectRecordList
"
,
components
:
{
drawerShow
,
},
mixins
:
[
table
],
created
()
{},
methods
:
{
/** 导入 */
handleImport
()
{
this
.
upload
.
title
=
"
效能绩效核查信息导入
"
;
this
.
upload
.
open
=
true
;
},
/** 下载模板操作 */
downloadTemplate
()
{
this
.
isExport
=
true
;
this
.
$download
(
"
/check/effect/record/downloadTemplate
"
,
{},
{
type
:
"
excel
"
}
)
.
then
(()
=>
(
this
.
isExport
=
false
))
.
catch
((
error
)
=>
{
this
.
isExport
=
false
;
this
.
$message
.
error
(
error
.
message
);
});
},
/** 文件上传中处理 */
handleFileUploadProgress
(
event
,
file
,
fileList
)
{
this
.
upload
.
isUploading
=
true
;
},
/** 文件上传成功处理 */
handleFileSuccess
(
response
,
file
,
fileList
)
{
this
.
upload
.
open
=
false
;
this
.
upload
.
isUploading
=
false
;
this
.
$refs
.
upload
.
clearFiles
();
this
.
$alert
(
response
.
msg
,
"
导入结果
"
,
{
dangerouslyUseHTMLString
:
true
});
this
.
getData
();
},
/** 提交上传文件 */
submitFileForm
()
{
this
.
$refs
.
upload
.
submit
();
},
/** 导出Excel */
doExport
()
{
this
.
isExport
=
true
;
this
.
$download
(
"
/check/effect/record/exportExcel
"
,
{
idList
:
this
.
selection
,
},
data
()
{
return
{
// 用户导入参数
upload
:
{
// 是否显示弹出层(效能绩效核查信息导入)
open
:
false
,
// 弹出层标题(效能绩效核查信息导入)
title
:
"
导入效能绩效核查信息数据
"
,
// 是否禁用上传
isUploading
:
false
,
// 是否更新已经存在的数据
updateSupport
:
0
,
// 上传的地址
url
:
"
/m/check/effect/record/importData
"
,
},
isExport
:
false
,
config
:
{
isshowTabPane
:
true
,
search
:
[
],
columns
:
[
{
type
:
"
selection
"
,
width
:
60
},
{
type
:
"
index
"
,
label
:
"
序号
"
,
width
:
50
},
{
label
:
"
员工姓名
"
,
prop
:
"
staffName
"
},
{
label
:
"
工号
"
,
prop
:
"
workNum
"
},
{
type
:
"
excel
"
}
)
.
then
(()
=>
(
this
.
isExport
=
false
))
.
catch
((
error
)
=>
{
this
.
isExport
=
false
;
this
.
$message
.
error
(
error
.
message
);
});
},
/** 重写新增方法 */
toAdd
(
row
)
{
this
.
$refs
.
drawerform
.
add
(
row
);
},
/** 重写编辑方法 */
toEdit
(
row
)
{
row
.
view
=
"
核查
"
;
this
.
$refs
.
drawerform
.
edit
(
row
);
},
/** 重写查看方法 */
toView
(
row
)
{
row
.
view
=
"
查看
"
;
this
.
$refs
.
drawerform
.
view
(
row
);
},
},
data
()
{
return
{
// 用户导入参数
upload
:
{
// 是否显示弹出层(效能绩效核查信息导入)
open
:
false
,
// 弹出层标题(效能绩效核查信息导入)
title
:
"
导入效能绩效核查信息数据
"
,
// 是否禁用上传
isUploading
:
false
,
// 是否更新已经存在的数据
updateSupport
:
0
,
// 上传的地址
url
:
"
/m/check/effect/record/importData
"
,
},
isExport
:
false
,
config
:
{
isshowTabPane
:
true
,
search
:
[
{
name
:
"
status
"
,
type
:
"
select
"
,
label
:
"
全部状态
"
,
fuzzy
:
false
,
},
{
name
:
"
deptId
"
,
type
:
"
select
"
,
label
:
"
全部部门
"
,
fuzzy
:
false
,
},
{
label
:
"
窗口编号
"
,
prop
:
"
windowNum
"
},
{
name
:
"
date
"
,
type
:
"
date
"
,
label
:
"
请选择日期
"
,
fuzzy
:
false
,
},
{
name
:
"
staffName
"
,
type
:
"
text
"
,
label
:
"
请输入员工姓名搜索
"
,
fuzzy
:
false
,
},
],
columns
:
[
{
type
:
"
selection
"
,
width
:
60
},
{
type
:
"
index
"
,
label
:
"
序号
"
,
width
:
50
},
{
label
:
"
所属部门
"
,
prop
:
"
deptId
"
,
formatter
:
this
.
formatter
},
{
label
:
"
姓名
"
,
prop
:
"
staffName
"
},
{
label
:
"
所属部门名称
"
,
prop
:
"
deptName
"
},
{
label
:
"
窗口编号
"
,
prop
:
"
windowNum
"
},
{
label
:
"
违规类型
"
,
prop
:
"
irregularType
"
,
formatter
:
this
.
formatter
},
{
label
:
"
所属部门
"
,
prop
:
"
deptName
"
},
{
label
:
"
发生时间
"
,
prop
:
"
happenTime
"
,
formatter
:
this
.
formatterDate
},
{
label
:
"
违规类型
"
,
prop
:
"
irregularType
"
,
formatter
:
this
.
formatter
,
},
{
label
:
"
持续时间,秒
"
,
prop
:
"
duration
"
,
formatter
:
this
.
formatter
},
{
label
:
"
发生时间
"
,
prop
:
"
happenTime
"
,
formatter
:
this
.
formatterDate
,
},
{
label
:
"
报警时间
"
,
prop
:
"
alarmTime
"
,
formatter
:
this
.
formatterDate
},
{
label
:
"
时长
"
,
prop
:
"
duration
"
,
formatter
:
this
.
formatter
,
},
{
label
:
"
图片凭证地址
"
,
prop
:
"
snapPath
"
},
{
label
:
"
报警时间
"
,
prop
:
"
alarmTime
"
,
formatter
:
this
.
formatterDate
,
},
{
label
:
"
绩效规则id
"
,
prop
:
"
ruleId
"
,
formatter
:
this
.
formatter
},
{
label
:
"
图片凭证
"
,
prop
:
"
snapPath
"
},
{
label
:
"
规则名称
"
,
prop
:
"
ruleName
"
},
{
label
:
"
绩效规则
"
,
prop
:
"
ruleName
"
},
{
label
:
"
扣分方式
"
,
prop
:
"
subMethod
"
,
formatter
:
this
.
formatter
},
{
label
:
"
扣分方式
"
,
prop
:
"
subMethod
"
,
formatter
:
this
.
formatter
},
{
label
:
"
扣分人员
"
,
prop
:
"
deductPerson
"
},
{
label
:
"
扣分时间
"
,
prop
:
"
deductTime
"
,
formatter
:
this
.
formatterDate
,
},
{
label
:
"
扣分时间
"
,
prop
:
"
deductTime
"
,
formatter
:
this
.
formatterDate
},
{
label
:
"
扣分人员
"
,
prop
:
"
deductPerson
"
},
{
label
:
"
扣分或增加分值
"
,
prop
:
"
score
"
,
formatter
:
this
.
formatter
},
{
label
:
"
扣分分值
"
,
prop
:
"
score
"
,
formatter
:
this
.
formatter
},
{
label
:
"
核查人员
"
,
prop
:
"
checkPerson
"
},
{
label
:
"
处理状态
"
,
prop
:
"
processStatus
"
,
formatter
:
this
.
formatter
,
},
{
label
:
"
核查时间
"
,
prop
:
"
checkTime
"
,
formatter
:
this
.
formatterDate
},
{
label
:
"
核查说明
"
,
prop
:
"
checkDesc
"
},
{
label
:
"
核查结果
"
,
prop
:
"
checkResult
"
},
{
label
:
"
处理状态
"
,
prop
:
"
checkStatus
"
,
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
}
/
>
);
}
}
]
}
};
}
{
label
:
"
操作
"
,
width
:
240
,
formatter
:
(
row
)
=>
{
return
(
<
table
-
buttons
noAdd
noDel
noEdit
reCheck
row
=
{
row
}
onEdit
=
{
this
.
toEdit
}
onView
=
{
this
.
toView
}
onDel
=
{
this
.
toDel
}
/
>
);
},
},
],
},
};
},
};
</
script
>
attendance-performance-manager-ui/admin/src/views/check/gowork/record/drawershow.vue
View file @
1a3dadd2
<
template
>
<!-- 弹出框表单 -->
<el-drawer
:title=
"title"
:visible.sync=
"open"
:direction=
"direction"
size=
"50%"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"120px"
>
<el-row>
<Field
label=
"记录ID"
prop=
"recordId"
v-model=
"form.recordId"
placeholder=
"请输入记录ID"
/>
<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=
"windowNum"
v-model=
"form.windowNum"
placeholder=
"请输入窗口编号"
/>
<Field
label=
"所属部门"
prop=
"deptId"
v-model=
"form.deptId"
placeholder=
"请输入所属部门"
/>
<Field
label=
"所属部门名称"
prop=
"deptName"
v-model=
"form.deptName"
placeholder=
"请输入所属部门名称"
/>
<Field
label=
"办件编码"
prop=
"goworkCode"
v-model=
"form.goworkCode"
placeholder=
"请输入办件编码"
/>
<Field
label=
"办件所属部门"
prop=
"goworkDepts"
v-model=
"form.goworkDepts"
type=
"textarea"
placeholder=
"请输入办件所属部门"
/>
<Field
label=
"事项名称"
prop=
"matterlName"
v-model=
"form.matterlName"
type=
"textarea"
placeholder=
"请输入事项名称"
/>
<Field
label=
"办理时间"
prop=
"goworkTime"
v-model=
"form.goworkTime"
type=
"date"
/>
<Field
label=
"绩效规则id"
prop=
"ruleId"
v-model=
"form.ruleId"
placeholder=
"请输入绩效规则id"
/>
<Field
label=
"规则名称"
prop=
"ruleName"
v-model=
"form.ruleName"
placeholder=
"请输入规则名称"
/>
<Field
label=
"扣分方式"
prop=
"subMethod"
v-model=
"form.subMethod"
type=
"select"
:enumData=
"dict.subMethod"
placeholder=
"请选择扣分方式"
/>
<Field
label=
"扣分人员"
prop=
"deductPerson"
v-model=
"form.deductPerson"
placeholder=
"请输入扣分人员"
/>
<Field
label=
"扣分时间"
prop=
"deductTime"
v-model=
"form.deductTime"
type=
"date"
/>
<Field
label=
"扣分或增加分值"
prop=
"score"
v-model=
"form.score"
placeholder=
"请输入扣分或增加分值"
/>
<Field
label=
"核查人员"
prop=
"checkPerson"
v-model=
"form.checkPerson"
placeholder=
"请输入核查人员"
/>
<Field
label=
"核查时间"
prop=
"checkTime"
v-model=
"form.checkTime"
type=
"date"
/>
<Field
label=
"核查说明"
prop=
"checkDesc"
v-model=
"form.checkDesc"
type=
"textarea"
placeholder=
"请输入核查说明"
/>
<Field
label=
"核查结果"
prop=
"checkResult"
v-model=
"form.checkResult"
placeholder=
"请输入核查结果"
/>
<Field
label=
"处理状态"
prop=
"checkStatus"
v-model=
"form.checkStatus"
type=
"select"
:enumData=
"dict.checkStatus"
placeholder=
"请选择处理状态"
/>
<Field
label=
"备注"
prop=
"remark"
v-model=
"form.remark"
type=
"textarea"
placeholder=
"请输入备注"
/>
<!-- 弹出框表单 -->
<el-drawer
:title=
"title"
:visible.sync=
"open"
:direction=
"direction"
size=
"50%"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"120px"
>
<el-row>
<Field
label=
"记录ID"
prop=
"recordId"
v-model=
"form.recordId"
placeholder=
"请输入记录ID"
/>
<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=
"windowNum"
v-model=
"form.windowNum"
placeholder=
"请输入窗口编号"
/>
<Field
label=
"所属部门"
prop=
"deptId"
v-model=
"form.deptId"
placeholder=
"请输入所属部门"
/>
<Field
label=
"所属部门名称"
prop=
"deptName"
v-model=
"form.deptName"
placeholder=
"请输入所属部门名称"
/>
<Field
label=
"办件编码"
prop=
"goworkCode"
v-model=
"form.goworkCode"
placeholder=
"请输入办件编码"
/>
<Field
label=
"办件所属部门"
prop=
"goworkDepts"
v-model=
"form.goworkDepts"
type=
"textarea"
placeholder=
"请输入办件所属部门"
/>
<Field
label=
"事项名称"
prop=
"matterlName"
v-model=
"form.matterlName"
type=
"textarea"
placeholder=
"请输入事项名称"
/>
<Field
label=
"办理时间"
prop=
"goworkTime"
v-model=
"form.goworkTime"
type=
"date"
/>
<Field
label=
"绩效规则id"
prop=
"ruleId"
v-model=
"form.ruleId"
placeholder=
"请输入绩效规则id"
/>
<Field
label=
"规则名称"
prop=
"ruleName"
v-model=
"form.ruleName"
placeholder=
"请输入规则名称"
/>
<Field
label=
"扣分方式"
prop=
"subMethod"
v-model=
"form.subMethod"
type=
"select"
:enumData=
"dict.subMethod"
placeholder=
"请选择扣分方式"
/>
<Field
label=
"扣分人员"
prop=
"deductPerson"
v-model=
"form.deductPerson"
placeholder=
"请输入扣分人员"
/>
<Field
label=
"扣分时间"
prop=
"deductTime"
v-model=
"form.deductTime"
type=
"date"
/>
<Field
label=
"扣分或增加分值"
prop=
"score"
v-model=
"form.score"
placeholder=
"请输入扣分或增加分值"
/>
<Field
label=
"核查人员"
prop=
"checkPerson"
v-model=
"form.checkPerson"
placeholder=
"请输入核查人员"
/>
<Field
label=
"核查时间"
prop=
"checkTime"
v-model=
"form.checkTime"
type=
"date"
/>
<Field
label=
"核查说明"
prop=
"checkDesc"
v-model=
"form.checkDesc"
type=
"textarea"
placeholder=
"请输入核查说明"
/>
<Field
label=
"核查结果"
prop=
"checkResult"
v-model=
"form.checkResult"
placeholder=
"请输入核查结果"
/>
<Field
label=
"处理状态"
prop=
"checkStatus"
v-model=
"form.checkStatus"
type=
"select"
:enumData=
"dict.checkStatus"
placeholder=
"请选择处理状态"
/>
<Field
label=
"备注"
prop=
"remark"
v-model=
"form.remark"
type=
"textarea"
placeholder=
"请输入备注"
/>
</el-row>
</el-row>
<form-buttons
@
submit=
'submitForm'
v-if=
"pageInfo.type!='view'"
noCancelBtn
/>
</el-form>
</el-drawer>
<form-buttons
@
submit=
"submitForm"
v-if=
"pageInfo.type != 'view'"
noCancelBtn
/>
</el-form>
</el-drawer>
</
template
>
<
script
>
import
form
from
"
@/assets/mixins/formdialog
"
;
export
default
{
name
:
"
CheckGoworkRecordDetail
"
,
mixins
:
[
form
],
components
:
{
},
created
()
{
this
.
changePath
(
"
check/gowork/record
"
)
},
data
()
{
return
{
// 遮罩层
loading
:
true
,
// 弹出层标题
title
:
"
办件绩效核查信息
"
,
// 是否显示弹出层
open
:
false
,
direction
:
"
rtl
"
,
toString
:[
"
subMethod
"
,
"
checkStatus
"
,
],
toDate
:[
"
goworkTime
"
,
"
deductTime
"
,
"
checkTime
"
,
],
// 表单校验
rules
:
{
staffName
:
[
{
required
:
true
,
message
:
"
请输入员工姓名
"
,
trigger
:
"
blur
"
},
{
max
:
64
,
message
:
"
最多只能录入64个字符
"
,
trigger
:
"
blur
"
,},
],
createTime
:
[
{
required
:
true
,
message
:
"
请选择创建时间
"
},
],
}
};
},
import
form
from
"
@/assets/mixins/formdialog
"
;
export
default
{
name
:
"
CheckGoworkRecordDetail
"
,
mixins
:
[
form
],
components
:
{},
created
()
{
this
.
changePath
(
"
check/gowork/record
"
);
},
data
()
{
return
{
// 遮罩层
loading
:
true
,
// 弹出层标题
title
:
"
办件绩效核查信息
"
,
// 是否显示弹出层
open
:
false
,
direction
:
"
rtl
"
,
toString
:
[
"
subMethod
"
,
"
checkStatus
"
],
toDate
:
[
"
goworkTime
"
,
"
deductTime
"
,
"
checkTime
"
],
// 表单校验
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
=
"
check/gowork/record/edit
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
edit
"
this
.
title
=
"
修改办件绩效核查信息
"
;
},
/** 新增 */
add
(
row
)
{
this
.
reset
()
this
.
urls
.
currUrl
=
"
check/gowork/record/add
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
add
"
this
.
title
=
"
新增办件绩效核查信息
"
;
},
/** 查看*/
view
(
row
)
{
this
.
reset
()
this
.
query
=
{
id
:
row
.
id
};
this
.
urls
.
currUrl
=
"
check/gowork/record/view
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
view
"
this
.
title
=
"
办件绩效核查信息详细
"
;
},
/**取消按钮 */
cancel
()
{
this
.
open
=
false
;
},
/**获取数据后弹框 */
afterRender
(
data
)
{
this
.
open
=
true
;
},
methods
:
{
/** 编辑 */
edit
(
row
)
{
this
.
reset
();
this
.
query
=
{
id
:
row
.
id
};
this
.
urls
.
currUrl
=
"
check/gowork/record/edit
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
edit
"
;
row
.
view
==
"
核查
"
?
(
this
.
title
=
"
办件绩效核查
"
)
:
(
this
.
title
=
"
修改办件绩效核查信息
"
);
},
/** 新增 */
add
(
row
)
{
this
.
reset
();
this
.
urls
.
currUrl
=
"
check/gowork/record/add
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
add
"
;
this
.
title
=
"
新增办件绩效核查信息
"
;
},
/** 查看*/
view
(
row
)
{
this
.
reset
();
this
.
query
=
{
id
:
row
.
id
};
this
.
urls
.
currUrl
=
"
check/gowork/record/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
"
);
},
afterSubmit
(
data
)
{
this
.
open
=
false
;
this
.
$emit
(
"
ok
"
);
},
// 表单重置
reset
()
{
this
.
form
=
{
recordId
:
null
,
staffId
:
null
,
staffName
:
""
,
workNum
:
""
,
windowNum
:
""
,
deptId
:
null
,
deptName
:
""
,
goworkCode
:
""
,
goworkDepts
:
""
,
matterlName
:
""
,
goworkTime
:
null
,
ruleId
:
null
,
ruleName
:
""
,
subMethod
:
1
,
deductPerson
:
""
,
deductTime
:
null
,
score
:
0.0
0
,
checkPerson
:
""
,
checkTime
:
null
,
checkDesc
:
""
,
checkResult
:
""
,
checkStatus
:
1
,
remark
:
""
,
};
this
.
resetForm
(
"
form
"
);
},
resetForm
(
refName
)
{
if
(
this
.
$refs
[
refName
])
{
this
.
$refs
[
refName
].
resetFields
();
}
},
},
};
// 表单重置
reset
()
{
this
.
form
=
{
recordId
:
null
,
staffId
:
null
,
staffName
:
""
,
workNum
:
""
,
windowNum
:
""
,
deptId
:
null
,
deptName
:
""
,
goworkCode
:
""
,
goworkDepts
:
""
,
matterlName
:
""
,
goworkTime
:
null
,
ruleId
:
null
,
ruleName
:
""
,
subMethod
:
1
,
deductPerson
:
""
,
deductTime
:
null
,
score
:
0.
0
,
checkPerson
:
""
,
checkTime
:
null
,
checkDesc
:
""
,
checkResult
:
""
,
checkStatus
:
1
,
remark
:
""
,
};
this
.
resetForm
(
"
form
"
);
},
resetForm
(
refName
)
{
if
(
this
.
$refs
[
refName
])
{
this
.
$refs
[
refName
].
resetFields
();
}
},
},
};
</
script
>
attendance-performance-manager-ui/admin/src/views/check/gowork/record/list.vue
View file @
1a3dadd2
<
template
>
<div
class=
"page"
>
<LayoutTable
notAdd
notDel
:data=
"tableData"
:config=
"tableConfig"
>
<el-button
slot=
"table-head-left2"
style=
"margin-left: 10px"
icon=
"el-icon-tickets"
size=
"mini"
@
click=
"doExport"
:disabled=
"isExport"
>
导出
</el-button>
</LayoutTable>
<!-- 办件绩效核查信息导入对话框 -->
<el-dialog
:title=
"upload.title"
:visible.sync=
"upload.open"
width=
"400px"
append-to-body
>
<el-upload
ref=
"upload"
:limit=
"1"
accept=
".xlsx, .xls"
:headers=
"upload.headers"
:action=
"upload.url + '?updateSupport=' + upload.updateSupport"
:disabled=
"upload.isUploading"
:on-progress=
"handleFileUploadProgress"
:on-success=
"handleFileSuccess"
:auto-upload=
"false"
drag
>
<i
class=
"el-icon-upload"
></i>
<div
class=
"el-upload__text"
>
将文件拖到此处,或
<em>
点击上传
</em>
</div>
<div
class=
"el-upload__tip"
slot=
"tip"
>
<el-checkbox
v-model=
"upload.updateSupport"
/>
是否更新已经存在的数据
<el-link
type=
"primary"
style=
"font-size: 14px"
@
click=
"downloadTemplate"
>
下载模板
</el-link
>
</div>
<div
class=
"el-upload__tip"
style=
"color: red"
slot=
"tip"
>
提示:仅允许导入“xls”或“xlsx”格式文件!
</div>
</el-upload>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"submitFileForm"
>
确 定
</el-button>
<el-button
@
click=
"upload.open = false"
>
取 消
</el-button>
</div>
</el-dialog>
<drawer-show
ref=
"drawerform"
@
ok=
"getData"
/>
</div>
<div
class=
"page"
>
<LayoutTable
notAdd
notDel
:data=
"tableData"
:config=
"tableConfig"
>
<el-button
slot=
"table-head-left2"
style=
"margin-left: 10px"
icon=
"el-icon-tickets"
size=
"mini"
@
click=
"doExport"
:disabled=
"isExport"
>
导出
</el-button
>
</LayoutTable>
<!-- 办件绩效核查信息导入对话框 -->
<el-dialog
:title=
"upload.title"
:visible.sync=
"upload.open"
width=
"400px"
append-to-body
>
<el-upload
ref=
"upload"
:limit=
"1"
accept=
".xlsx, .xls"
:headers=
"upload.headers"
:action=
"upload.url + '?updateSupport=' + upload.updateSupport"
:disabled=
"upload.isUploading"
:on-progress=
"handleFileUploadProgress"
:on-success=
"handleFileSuccess"
:auto-upload=
"false"
drag
>
<i
class=
"el-icon-upload"
></i>
<div
class=
"el-upload__text"
>
将文件拖到此处,或
<em>
点击上传
</em>
</div>
<div
class=
"el-upload__tip"
slot=
"tip"
>
<el-checkbox
v-model=
"upload.updateSupport"
/>
是否更新已经存在的数据
<el-link
type=
"primary"
style=
"font-size: 14px"
@
click=
"downloadTemplate"
>
下载模板
</el-link
>
</div>
<div
class=
"el-upload__tip"
style=
"color: red"
slot=
"tip"
>
提示:仅允许导入“xls”或“xlsx”格式文件!
</div>
</el-upload>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"submitFileForm"
>
确 定
</el-button>
<el-button
@
click=
"upload.open = false"
>
取 消
</el-button>
</div>
</el-dialog>
<drawer-show
ref=
"drawerform"
@
ok=
"getData"
/>
</div>
</
template
>
<
script
>
/** 表单弹出框模式需引入 */
import
drawerShow
from
"
./drawershow
"
;
import
table
from
"
@/assets/mixins/table
"
;
export
default
{
name
:
"
CheckGoworkRecordList
"
,
components
:
{
drawerShow
},
mixins
:
[
table
],
created
()
{
/** 表单弹出框模式需引入 */
import
drawerShow
from
"
./drawershow
"
;
import
table
from
"
@/assets/mixins/table
"
;
export
default
{
name
:
"
CheckGoworkRecordList
"
,
components
:
{
drawerShow
,
},
mixins
:
[
table
],
created
()
{},
methods
:
{
/** 导入 */
handleImport
()
{
this
.
upload
.
title
=
"
办件绩效核查信息导入
"
;
this
.
upload
.
open
=
true
;
},
/** 下载模板操作 */
downloadTemplate
()
{
this
.
isExport
=
true
;
this
.
$download
(
"
/check/gowork/record/downloadTemplate
"
,
{},
{
type
:
"
excel
"
}
)
.
then
(()
=>
(
this
.
isExport
=
false
))
.
catch
((
error
)
=>
{
this
.
isExport
=
false
;
this
.
$message
.
error
(
error
.
message
);
});
},
/** 文件上传中处理 */
handleFileUploadProgress
(
event
,
file
,
fileList
)
{
this
.
upload
.
isUploading
=
true
;
},
/** 文件上传成功处理 */
handleFileSuccess
(
response
,
file
,
fileList
)
{
this
.
upload
.
open
=
false
;
this
.
upload
.
isUploading
=
false
;
this
.
$refs
.
upload
.
clearFiles
();
this
.
$alert
(
response
.
msg
,
"
导入结果
"
,
{
dangerouslyUseHTMLString
:
true
});
this
.
getData
();
},
/** 提交上传文件 */
submitFileForm
()
{
this
.
$refs
.
upload
.
submit
();
},
/** 导出Excel */
doExport
()
{
this
.
isExport
=
true
;
this
.
$download
(
"
/check/gowork/record/exportExcel
"
,
{
idList
:
this
.
selection
,
},
methods
:
{
/** 导入 */
handleImport
()
{
this
.
upload
.
title
=
"
办件绩效核查信息导入
"
;
this
.
upload
.
open
=
true
;
{
type
:
"
excel
"
}
)
.
then
(()
=>
(
this
.
isExport
=
false
))
.
catch
((
error
)
=>
{
this
.
isExport
=
false
;
this
.
$message
.
error
(
error
.
message
);
});
},
/** 重写新增方法 */
toAdd
(
row
)
{
this
.
$refs
.
drawerform
.
add
(
row
);
},
/** 重写编辑方法 */
toEdit
(
row
)
{
row
.
view
=
"
核查
"
;
this
.
$refs
.
drawerform
.
edit
(
row
);
},
/** 重写查看方法 */
toView
(
row
)
{
row
.
view
=
"
查看
"
;
this
.
$refs
.
drawerform
.
view
(
row
);
},
},
data
()
{
return
{
// 用户导入参数
upload
:
{
// 是否显示弹出层(办件绩效核查信息导入)
open
:
false
,
// 弹出层标题(办件绩效核查信息导入)
title
:
"
导入办件绩效核查信息数据
"
,
// 是否禁用上传
isUploading
:
false
,
// 是否更新已经存在的数据
updateSupport
:
0
,
// 上传的地址
url
:
"
/m/check/gowork/record/importData
"
,
},
isExport
:
false
,
config
:
{
isshowTabPane
:
true
,
search
:
[
{
name
:
"
status
"
,
type
:
"
select
"
,
label
:
"
全部状态
"
,
fuzzy
:
false
,
},
{
name
:
"
deptId
"
,
type
:
"
select
"
,
label
:
"
全部部门
"
,
fuzzy
:
false
,
},
{
name
:
"
date
"
,
type
:
"
date
"
,
label
:
"
请选择日期
"
,
fuzzy
:
false
,
},
{
name
:
"
staffName
"
,
type
:
"
text
"
,
label
:
"
请输入员工姓名搜索
"
,
fuzzy
:
false
,
},
],
columns
:
[
{
type
:
"
selection
"
,
width
:
50
},
{
type
:
"
index
"
,
label
:
"
序号
"
,
width
:
50
},
{
label
:
"
姓名
"
,
prop
:
"
staffName
"
},
{
label
:
"
窗口编号
"
,
prop
:
"
windowNum
"
},
{
label
:
"
所属部门
"
,
prop
:
"
deptName
"
},
{
label
:
"
办件编码
"
,
prop
:
"
goworkCode
"
},
{
label
:
"
办件所属部门
"
,
prop
:
"
goworkDepts
"
},
{
label
:
"
事项名称
"
,
prop
:
"
matterlName
"
},
{
label
:
"
办理时间
"
,
prop
:
"
goworkTime
"
,
formatter
:
this
.
formatterDate
,
},
{
label
:
"
图片凭证
"
,
prop
:
"
snapPath
"
},
{
label
:
"
绩效规则
"
,
prop
:
"
ruleName
"
},
{
label
:
"
扣分方式
"
,
prop
:
"
subMethod
"
,
formatter
:
this
.
formatter
},
{
label
:
"
扣分时间
"
,
prop
:
"
deductTime
"
,
formatter
:
this
.
formatterDate
,
},
{
label
:
"
扣分人员
"
,
prop
:
"
deductPerson
"
},
{
label
:
"
扣分分值
"
,
prop
:
"
score
"
,
formatter
:
this
.
formatter
},
{
label
:
"
处理状态
"
,
prop
:
"
processStatus
"
,
formatter
:
this
.
formatter
,
},
{
label
:
"
操作
"
,
width
:
240
,
formatter
:
(
row
)
=>
{
return
(
<
table
-
buttons
noAdd
noDel
noEdit
reCheck
row
=
{
row
}
onEdit
=
{
this
.
toEdit
}
onView
=
{
this
.
toView
}
onDel
=
{
this
.
toDel
}
/
>
);
},
/** 下载模板操作 */
downloadTemplate
()
{
this
.
isExport
=
true
;
this
.
$download
(
"
/check/gowork/record/downloadTemplate
"
,
{},
{
type
:
"
excel
"
})
.
then
(()
=>
(
this
.
isExport
=
false
))
.
catch
((
error
)
=>
{
this
.
isExport
=
false
;
this
.
$message
.
error
(
error
.
message
);
});
},
/** 文件上传中处理 */
handleFileUploadProgress
(
event
,
file
,
fileList
)
{
this
.
upload
.
isUploading
=
true
;
},
/** 文件上传成功处理 */
handleFileSuccess
(
response
,
file
,
fileList
)
{
this
.
upload
.
open
=
false
;
this
.
upload
.
isUploading
=
false
;
this
.
$refs
.
upload
.
clearFiles
();
this
.
$alert
(
response
.
msg
,
"
导入结果
"
,
{
dangerouslyUseHTMLString
:
true
});
this
.
getData
();
},
/** 提交上传文件 */
submitFileForm
()
{
this
.
$refs
.
upload
.
submit
();
},
/** 导出Excel */
doExport
()
{
this
.
isExport
=
true
;
this
.
$download
(
"
/check/gowork/record/exportExcel
"
,
{
"
idList
"
:
this
.
selection
,
},
{
type
:
"
excel
"
}).
then
(()
=>
this
.
isExport
=
false
).
catch
(
error
=>
{
this
.
isExport
=
false
;
this
.
$message
.
error
(
error
.
message
);
});
},
/** 重写新增方法 */
toAdd
(
row
)
{
this
.
$refs
.
drawerform
.
add
(
row
);
},
/** 重写编辑方法 */
toEdit
(
row
)
{
this
.
$refs
.
drawerform
.
edit
(
row
);
},
/** 重写查看方法 */
toView
(
row
)
{
this
.
$refs
.
drawerform
.
view
(
row
);
},
},
data
()
{
return
{
// 用户导入参数
upload
:
{
// 是否显示弹出层(办件绩效核查信息导入)
open
:
false
,
// 弹出层标题(办件绩效核查信息导入)
title
:
"
导入办件绩效核查信息数据
"
,
// 是否禁用上传
isUploading
:
false
,
// 是否更新已经存在的数据
updateSupport
:
0
,
// 上传的地址
url
:
"
/m/check/gowork/record/importData
"
,
},
isExport
:
false
,
config
:
{
isshowTabPane
:
true
,
search
:
[
],
columns
:
[
{
type
:
"
selection
"
,
width
:
60
},
{
type
:
"
index
"
,
label
:
"
序号
"
,
width
:
50
},
{
label
:
"
员工姓名
"
,
prop
:
"
staffName
"
},
{
label
:
"
工号
"
,
prop
:
"
workNum
"
},
{
label
:
"
窗口编号
"
,
prop
:
"
windowNum
"
},
{
label
:
"
所属部门
"
,
prop
:
"
deptId
"
,
formatter
:
this
.
formatter
},
{
label
:
"
所属部门名称
"
,
prop
:
"
deptName
"
},
{
label
:
"
办件编码
"
,
prop
:
"
goworkCode
"
},
{
label
:
"
办件所属部门
"
,
prop
:
"
goworkDepts
"
},
{
label
:
"
事项名称
"
,
prop
:
"
matterlName
"
},
{
label
:
"
办理时间
"
,
prop
:
"
goworkTime
"
,
formatter
:
this
.
formatterDate
},
{
label
:
"
绩效规则id
"
,
prop
:
"
ruleId
"
,
formatter
:
this
.
formatter
},
{
label
:
"
规则名称
"
,
prop
:
"
ruleName
"
},
{
label
:
"
扣分方式
"
,
prop
:
"
subMethod
"
,
formatter
:
this
.
formatter
},
{
label
:
"
扣分人员
"
,
prop
:
"
deductPerson
"
},
{
label
:
"
扣分时间
"
,
prop
:
"
deductTime
"
,
formatter
:
this
.
formatterDate
},
{
label
:
"
扣分或增加分值
"
,
prop
:
"
score
"
,
formatter
:
this
.
formatter
},
{
label
:
"
核查人员
"
,
prop
:
"
checkPerson
"
},
{
label
:
"
核查时间
"
,
prop
:
"
checkTime
"
,
formatter
:
this
.
formatterDate
},
{
label
:
"
核查说明
"
,
prop
:
"
checkDesc
"
},
{
label
:
"
核查结果
"
,
prop
:
"
checkResult
"
},
{
label
:
"
处理状态
"
,
prop
:
"
checkStatus
"
,
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
}
/
>
);
}
}
]
}
};
}
},
],
},
};
},
};
</
script
>
attendance-performance-manager-ui/admin/src/views/check/other/record/drawershow.vue
View file @
1a3dadd2
<
template
>
<!-- 弹出框表单 -->
<el-drawer
:title=
"title"
:visible.sync=
"open"
:direction=
"direction"
size=
"50%"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"120px"
>
<el-row>
<Field
label=
"记录ID"
prop=
"recordId"
v-model=
"form.recordId"
placeholder=
"请输入记录ID"
/>
<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=
"窗口编号"
prop=
"windowNum"
v-model=
"form.windowNum"
placeholder=
"请输入窗口编号"
/>
<Field
label=
"违规类型"
prop=
"irregularOtherType"
v-model=
"form.irregularOtherType"
type=
"select"
:enumData=
"dict.irregularOtherType"
placeholder=
"请选择违规类型"
/>
<Field
label=
"发生时间"
prop=
"happenTime"
v-model=
"form.happenTime"
type=
"date"
/>
<Field
label=
"持续时间,秒"
prop=
"duration"
v-model=
"form.duration"
placeholder=
"请输入持续时间,秒"
/>
<Field
label=
"绩效规则id"
prop=
"ruleId"
v-model=
"form.ruleId"
placeholder=
"请输入绩效规则id"
/>
<Field
label=
"规则名称"
prop=
"ruleName"
v-model=
"form.ruleName"
placeholder=
"请输入规则名称"
/>
<Field
label=
"评分标准"
prop=
"ruleDesc"
v-model=
"form.ruleDesc"
type=
"textarea"
placeholder=
"请输入评分标准"
/>
<Field
label=
"扣分方式"
prop=
"subMethod"
v-model=
"form.subMethod"
type=
"select"
:enumData=
"dict.subMethod"
placeholder=
"请选择扣分方式"
/>
<Field
label=
"扣分人员"
prop=
"deductPerson"
v-model=
"form.deductPerson"
placeholder=
"请输入扣分人员"
/>
<Field
label=
"扣分时间"
prop=
"deductTime"
v-model=
"form.deductTime"
type=
"date"
/>
<Field
label=
"扣分或增加分值"
prop=
"score"
v-model=
"form.score"
placeholder=
"请输入扣分或增加分值"
/>
<Field
label=
"核查人员"
prop=
"checkPerson"
v-model=
"form.checkPerson"
placeholder=
"请输入核查人员"
/>
<Field
label=
"核查时间"
prop=
"checkTime"
v-model=
"form.checkTime"
type=
"date"
/>
<Field
label=
"核查说明"
prop=
"checkDesc"
v-model=
"form.checkDesc"
type=
"textarea"
placeholder=
"请输入核查说明"
/>
<Field
label=
"核查结果"
prop=
"checkResult"
v-model=
"form.checkResult"
placeholder=
"请输入核查结果"
/>
<Field
label=
"处理状态"
prop=
"checkStatus"
v-model=
"form.checkStatus"
type=
"select"
:enumData=
"dict.checkStatus"
placeholder=
"请选择处理状态"
/>
<Field
label=
"备注"
prop=
"remark"
v-model=
"form.remark"
type=
"textarea"
placeholder=
"请输入备注"
/>
<!-- 弹出框表单 -->
<el-drawer
:title=
"title"
:visible.sync=
"open"
:direction=
"direction"
size=
"50%"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"120px"
>
<el-row>
<Field
label=
"记录ID"
prop=
"recordId"
v-model=
"form.recordId"
placeholder=
"请输入记录ID"
/>
<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=
"窗口编号"
prop=
"windowNum"
v-model=
"form.windowNum"
placeholder=
"请输入窗口编号"
/>
<Field
label=
"违规类型"
prop=
"irregularOtherType"
v-model=
"form.irregularOtherType"
type=
"select"
:enumData=
"dict.irregularOtherType"
placeholder=
"请选择违规类型"
/>
<Field
label=
"发生时间"
prop=
"happenTime"
v-model=
"form.happenTime"
type=
"date"
/>
<Field
label=
"持续时间,秒"
prop=
"duration"
v-model=
"form.duration"
placeholder=
"请输入持续时间,秒"
/>
<Field
label=
"绩效规则id"
prop=
"ruleId"
v-model=
"form.ruleId"
placeholder=
"请输入绩效规则id"
/>
<Field
label=
"规则名称"
prop=
"ruleName"
v-model=
"form.ruleName"
placeholder=
"请输入规则名称"
/>
<Field
label=
"评分标准"
prop=
"ruleDesc"
v-model=
"form.ruleDesc"
type=
"textarea"
placeholder=
"请输入评分标准"
/>
<Field
label=
"扣分方式"
prop=
"subMethod"
v-model=
"form.subMethod"
type=
"select"
:enumData=
"dict.subMethod"
placeholder=
"请选择扣分方式"
/>
<Field
label=
"扣分人员"
prop=
"deductPerson"
v-model=
"form.deductPerson"
placeholder=
"请输入扣分人员"
/>
<Field
label=
"扣分时间"
prop=
"deductTime"
v-model=
"form.deductTime"
type=
"date"
/>
<Field
label=
"扣分或增加分值"
prop=
"score"
v-model=
"form.score"
placeholder=
"请输入扣分或增加分值"
/>
<Field
label=
"核查人员"
prop=
"checkPerson"
v-model=
"form.checkPerson"
placeholder=
"请输入核查人员"
/>
<Field
label=
"核查时间"
prop=
"checkTime"
v-model=
"form.checkTime"
type=
"date"
/>
<Field
label=
"核查说明"
prop=
"checkDesc"
v-model=
"form.checkDesc"
type=
"textarea"
placeholder=
"请输入核查说明"
/>
<Field
label=
"核查结果"
prop=
"checkResult"
v-model=
"form.checkResult"
placeholder=
"请输入核查结果"
/>
<Field
label=
"处理状态"
prop=
"checkStatus"
v-model=
"form.checkStatus"
type=
"select"
:enumData=
"dict.checkStatus"
placeholder=
"请选择处理状态"
/>
<Field
label=
"备注"
prop=
"remark"
v-model=
"form.remark"
type=
"textarea"
placeholder=
"请输入备注"
/>
</el-row>
</el-row>
<form-buttons
@
submit=
'submitForm'
v-if=
"pageInfo.type!='view'"
noCancelBtn
/>
</el-form>
</el-drawer>
<form-buttons
@
submit=
"submitForm"
v-if=
"pageInfo.type != 'view'"
noCancelBtn
/>
</el-form>
</el-drawer>
</
template
>
<
script
>
import
form
from
"
@/assets/mixins/formdialog
"
;
export
default
{
name
:
"
CheckOtherRecordDetail
"
,
mixins
:
[
form
],
components
:
{
},
created
()
{
this
.
changePath
(
"
check/other/record
"
)
},
data
()
{
return
{
// 遮罩层
loading
:
true
,
// 弹出层标题
title
:
"
其它绩效核查信息
"
,
// 是否显示弹出层
open
:
false
,
direction
:
"
rtl
"
,
toString
:[
"
irregularOtherType
"
,
"
subMethod
"
,
"
checkStatus
"
,
],
toDate
:[
"
happenTime
"
,
"
deductTime
"
,
"
checkTime
"
,
],
// 表单校验
rules
:
{
staffName
:
[
{
required
:
true
,
message
:
"
请输入员工姓名
"
,
trigger
:
"
blur
"
},
{
max
:
64
,
message
:
"
最多只能录入64个字符
"
,
trigger
:
"
blur
"
,},
],
createTime
:
[
{
required
:
true
,
message
:
"
请选择创建时间
"
},
],
}
};
},
import
form
from
"
@/assets/mixins/formdialog
"
;
export
default
{
name
:
"
CheckOtherRecordDetail
"
,
mixins
:
[
form
],
components
:
{},
created
()
{
this
.
changePath
(
"
check/other/record
"
);
},
data
()
{
return
{
// 遮罩层
loading
:
true
,
// 弹出层标题
title
:
"
其它绩效核查信息
"
,
// 是否显示弹出层
open
:
false
,
direction
:
"
rtl
"
,
toString
:
[
"
irregularOtherType
"
,
"
subMethod
"
,
"
checkStatus
"
],
toDate
:
[
"
happenTime
"
,
"
deductTime
"
,
"
checkTime
"
],
// 表单校验
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
=
"
check/other/record/edit
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
edit
"
this
.
title
=
"
修改其它绩效核查信息
"
;
},
/** 新增 */
add
(
row
)
{
this
.
reset
()
this
.
urls
.
currUrl
=
"
check/other/record/add
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
add
"
this
.
title
=
"
新增其它绩效核查信息
"
;
},
/** 查看*/
view
(
row
)
{
this
.
reset
()
this
.
query
=
{
id
:
row
.
id
};
this
.
urls
.
currUrl
=
"
check/other/record/view
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
view
"
this
.
title
=
"
其它绩效核查信息详细
"
;
},
/**取消按钮 */
cancel
()
{
this
.
open
=
false
;
},
/**获取数据后弹框 */
afterRender
(
data
)
{
this
.
open
=
true
;
},
methods
:
{
/** 编辑 */
edit
(
row
)
{
this
.
reset
();
this
.
query
=
{
id
:
row
.
id
};
this
.
urls
.
currUrl
=
"
check/other/record/edit
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
edit
"
;
row
.
view
==
"
核查
"
?
(
this
.
title
=
"
其它绩效核查
"
)
:
(
this
.
title
=
"
修改其它绩效核查信息
"
);
},
/** 新增 */
add
(
row
)
{
this
.
reset
();
this
.
urls
.
currUrl
=
"
check/other/record/add
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
add
"
;
this
.
title
=
"
新增其它绩效核查信息
"
;
},
/** 查看*/
view
(
row
)
{
this
.
reset
();
this
.
query
=
{
id
:
row
.
id
};
this
.
urls
.
currUrl
=
"
check/other/record/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
"
);
},
afterSubmit
(
data
)
{
this
.
open
=
false
;
this
.
$emit
(
"
ok
"
);
},
// 表单重置
reset
()
{
this
.
form
=
{
recordId
:
null
,
staffId
:
null
,
staffName
:
""
,
workNum
:
""
,
deptId
:
null
,
deptName
:
""
,
windowNum
:
""
,
irregularOtherType
:
null
,
happenTime
:
null
,
duration
:
0
,
ruleId
:
null
,
ruleName
:
""
,
ruleDesc
:
""
,
subMethod
:
1
,
deductPerson
:
""
,
deductTime
:
null
,
score
:
0.0
0
,
checkPerson
:
""
,
checkTime
:
null
,
checkDesc
:
""
,
checkResult
:
""
,
checkStatus
:
1
,
remark
:
""
,
};
this
.
resetForm
(
"
form
"
);
},
resetForm
(
refName
)
{
if
(
this
.
$refs
[
refName
])
{
this
.
$refs
[
refName
].
resetFields
();
}
},
},
};
// 表单重置
reset
()
{
this
.
form
=
{
recordId
:
null
,
staffId
:
null
,
staffName
:
""
,
workNum
:
""
,
deptId
:
null
,
deptName
:
""
,
windowNum
:
""
,
irregularOtherType
:
null
,
happenTime
:
null
,
duration
:
0
,
ruleId
:
null
,
ruleName
:
""
,
ruleDesc
:
""
,
subMethod
:
1
,
deductPerson
:
""
,
deductTime
:
null
,
score
:
0.
0
,
checkPerson
:
""
,
checkTime
:
null
,
checkDesc
:
""
,
checkResult
:
""
,
checkStatus
:
1
,
remark
:
""
,
};
this
.
resetForm
(
"
form
"
);
},
resetForm
(
refName
)
{
if
(
this
.
$refs
[
refName
])
{
this
.
$refs
[
refName
].
resetFields
();
}
},
},
};
</
script
>
attendance-performance-manager-ui/admin/src/views/check/other/record/list.vue
View file @
1a3dadd2
<
template
>
<div
class=
"page"
>
<LayoutTable
notAdd
notDel
:data=
"tableData"
:config=
"tableConfig"
>
<el-button
slot=
"table-head-left2"
style=
"margin-left: 10px"
icon=
"el-icon-tickets"
size=
"mini"
@
click=
"doExport"
:disabled=
"isExport"
>
导出
</el-button>
</LayoutTable>
<!-- 其它绩效核查信息导入对话框 -->
<el-dialog
:title=
"upload.title"
:visible.sync=
"upload.open"
width=
"400px"
append-to-body
>
<el-upload
ref=
"upload"
:limit=
"1"
accept=
".xlsx, .xls"
:headers=
"upload.headers"
:action=
"upload.url + '?updateSupport=' + upload.updateSupport"
:disabled=
"upload.isUploading"
:on-progress=
"handleFileUploadProgress"
:on-success=
"handleFileSuccess"
:auto-upload=
"false"
drag
>
<i
class=
"el-icon-upload"
></i>
<div
class=
"el-upload__text"
>
将文件拖到此处,或
<em>
点击上传
</em>
</div>
<div
class=
"el-upload__tip"
slot=
"tip"
>
<el-checkbox
v-model=
"upload.updateSupport"
/>
是否更新已经存在的数据
<el-link
type=
"primary"
style=
"font-size: 14px"
@
click=
"downloadTemplate"
>
下载模板
</el-link
>
</div>
<div
class=
"el-upload__tip"
style=
"color: red"
slot=
"tip"
>
提示:仅允许导入“xls”或“xlsx”格式文件!
</div>
</el-upload>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"submitFileForm"
>
确 定
</el-button>
<el-button
@
click=
"upload.open = false"
>
取 消
</el-button>
</div>
</el-dialog>
<drawer-show
ref=
"drawerform"
@
ok=
"getData"
/>
</div>
<div
class=
"page"
>
<LayoutTable
notAdd
notDel
:data=
"tableData"
:config=
"tableConfig"
>
<el-button
slot=
"table-head-left2"
style=
"margin-left: 10px"
icon=
"el-icon-tickets"
size=
"mini"
@
click=
"doExport"
:disabled=
"isExport"
>
导出
</el-button
>
</LayoutTable>
<!-- 其它绩效核查信息导入对话框 -->
<el-dialog
:title=
"upload.title"
:visible.sync=
"upload.open"
width=
"400px"
append-to-body
>
<el-upload
ref=
"upload"
:limit=
"1"
accept=
".xlsx, .xls"
:headers=
"upload.headers"
:action=
"upload.url + '?updateSupport=' + upload.updateSupport"
:disabled=
"upload.isUploading"
:on-progress=
"handleFileUploadProgress"
:on-success=
"handleFileSuccess"
:auto-upload=
"false"
drag
>
<i
class=
"el-icon-upload"
></i>
<div
class=
"el-upload__text"
>
将文件拖到此处,或
<em>
点击上传
</em>
</div>
<div
class=
"el-upload__tip"
slot=
"tip"
>
<el-checkbox
v-model=
"upload.updateSupport"
/>
是否更新已经存在的数据
<el-link
type=
"primary"
style=
"font-size: 14px"
@
click=
"downloadTemplate"
>
下载模板
</el-link
>
</div>
<div
class=
"el-upload__tip"
style=
"color: red"
slot=
"tip"
>
提示:仅允许导入“xls”或“xlsx”格式文件!
</div>
</el-upload>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"submitFileForm"
>
确 定
</el-button>
<el-button
@
click=
"upload.open = false"
>
取 消
</el-button>
</div>
</el-dialog>
<drawer-show
ref=
"drawerform"
@
ok=
"getData"
/>
</div>
</
template
>
<
script
>
/** 表单弹出框模式需引入 */
import
drawerShow
from
"
./drawershow
"
;
import
table
from
"
@/assets/mixins/table
"
;
export
default
{
name
:
"
CheckOtherRecordList
"
,
components
:
{
drawerShow
},
mixins
:
[
table
],
created
()
{
/** 表单弹出框模式需引入 */
import
drawerShow
from
"
./drawershow
"
;
import
table
from
"
@/assets/mixins/table
"
;
export
default
{
name
:
"
CheckOtherRecordList
"
,
components
:
{
drawerShow
,
},
mixins
:
[
table
],
created
()
{},
methods
:
{
/** 导入 */
handleImport
()
{
this
.
upload
.
title
=
"
其它绩效核查信息导入
"
;
this
.
upload
.
open
=
true
;
},
/** 下载模板操作 */
downloadTemplate
()
{
this
.
isExport
=
true
;
this
.
$download
(
"
/check/other/record/downloadTemplate
"
,
{},
{
type
:
"
excel
"
}
)
.
then
(()
=>
(
this
.
isExport
=
false
))
.
catch
((
error
)
=>
{
this
.
isExport
=
false
;
this
.
$message
.
error
(
error
.
message
);
});
},
/** 文件上传中处理 */
handleFileUploadProgress
(
event
,
file
,
fileList
)
{
this
.
upload
.
isUploading
=
true
;
},
/** 文件上传成功处理 */
handleFileSuccess
(
response
,
file
,
fileList
)
{
this
.
upload
.
open
=
false
;
this
.
upload
.
isUploading
=
false
;
this
.
$refs
.
upload
.
clearFiles
();
this
.
$alert
(
response
.
msg
,
"
导入结果
"
,
{
dangerouslyUseHTMLString
:
true
});
this
.
getData
();
},
/** 提交上传文件 */
submitFileForm
()
{
this
.
$refs
.
upload
.
submit
();
},
/** 导出Excel */
doExport
()
{
this
.
isExport
=
true
;
this
.
$download
(
"
/check/other/record/exportExcel
"
,
{
idList
:
this
.
selection
,
},
methods
:
{
/** 导入 */
handleImport
()
{
this
.
upload
.
title
=
"
其它绩效核查信息导入
"
;
this
.
upload
.
open
=
true
;
},
/** 下载模板操作 */
downloadTemplate
()
{
this
.
isExport
=
true
;
this
.
$download
(
"
/check/other/record/downloadTemplate
"
,
{},
{
type
:
"
excel
"
})
.
then
(()
=>
(
this
.
isExport
=
false
))
.
catch
((
error
)
=>
{
this
.
isExport
=
false
;
this
.
$message
.
error
(
error
.
message
);
});
},
/** 文件上传中处理 */
handleFileUploadProgress
(
event
,
file
,
fileList
)
{
this
.
upload
.
isUploading
=
true
;
},
/** 文件上传成功处理 */
handleFileSuccess
(
response
,
file
,
fileList
)
{
this
.
upload
.
open
=
false
;
this
.
upload
.
isUploading
=
false
;
this
.
$refs
.
upload
.
clearFiles
();
this
.
$alert
(
response
.
msg
,
"
导入结果
"
,
{
dangerouslyUseHTMLString
:
true
});
this
.
getData
();
},
/** 提交上传文件 */
submitFileForm
()
{
this
.
$refs
.
upload
.
submit
();
},
/** 导出Excel */
doExport
()
{
this
.
isExport
=
true
;
this
.
$download
(
"
/check/other/record/exportExcel
"
,
{
"
idList
"
:
this
.
selection
,
},
{
type
:
"
excel
"
}).
then
(()
=>
this
.
isExport
=
false
).
catch
(
error
=>
{
this
.
isExport
=
false
;
this
.
$message
.
error
(
error
.
message
);
});
},
/** 重写新增方法 */
toAdd
(
row
)
{
this
.
$refs
.
drawerform
.
add
(
row
);
},
/** 重写编辑方法 */
toEdit
(
row
)
{
this
.
$refs
.
drawerform
.
edit
(
row
);
},
/** 重写查看方法 */
toView
(
row
)
{
this
.
$refs
.
drawerform
.
view
(
row
);
},
{
type
:
"
excel
"
}
)
.
then
(()
=>
(
this
.
isExport
=
false
))
.
catch
((
error
)
=>
{
this
.
isExport
=
false
;
this
.
$message
.
error
(
error
.
message
);
});
},
/** 重写新增方法 */
toAdd
(
row
)
{
this
.
$refs
.
drawerform
.
add
(
row
);
},
/** 重写编辑方法 */
toEdit
(
row
)
{
row
.
view
=
"
核查
"
;
this
.
$refs
.
drawerform
.
edit
(
row
);
},
/** 重写查看方法 */
toView
(
row
)
{
row
.
view
=
"
查看
"
;
this
.
$refs
.
drawerform
.
view
(
row
);
},
},
data
()
{
return
{
// 用户导入参数
upload
:
{
// 是否显示弹出层(其它绩效核查信息导入)
open
:
false
,
// 弹出层标题(其它绩效核查信息导入)
title
:
"
导入其它绩效核查信息数据
"
,
// 是否禁用上传
isUploading
:
false
,
// 是否更新已经存在的数据
updateSupport
:
0
,
// 上传的地址
url
:
"
/m/check/other/record/importData
"
,
},
isExport
:
false
,
config
:
{
isshowTabPane
:
true
,
search
:
[
{
name
:
"
status
"
,
type
:
"
select
"
,
label
:
"
全部状态
"
,
fuzzy
:
false
,
},
{
name
:
"
deptId
"
,
type
:
"
select
"
,
label
:
"
全部部门
"
,
fuzzy
:
false
,
},
{
name
:
"
date
"
,
type
:
"
date
"
,
label
:
"
请选择日期
"
,
fuzzy
:
false
,
},
{
name
:
"
staffName
"
,
type
:
"
text
"
,
label
:
"
请输入员工姓名搜索
"
,
fuzzy
:
false
,
},
],
columns
:
[
{
type
:
"
selection
"
,
width
:
60
},
{
type
:
"
index
"
,
label
:
"
序号
"
,
width
:
50
},
},
data
()
{
return
{
// 用户导入参数
upload
:
{
// 是否显示弹出层(其它绩效核查信息导入)
open
:
false
,
// 弹出层标题(其它绩效核查信息导入)
title
:
"
导入其它绩效核查信息数据
"
,
// 是否禁用上传
isUploading
:
false
,
// 是否更新已经存在的数据
updateSupport
:
0
,
// 上传的地址
url
:
"
/m/check/other/record/importData
"
,
},
isExport
:
false
,
config
:
{
isshowTabPane
:
true
,
search
:
[
],
columns
:
[
{
type
:
"
selection
"
,
width
:
60
},
{
type
:
"
index
"
,
label
:
"
序号
"
,
width
:
50
},
{
label
:
"
员工姓名
"
,
prop
:
"
staffName
"
},
{
label
:
"
发生时间
"
,
prop
:
"
happenTime
"
,
formatter
:
this
.
formatterDate
},
{
label
:
"
扣分方式
"
,
prop
:
"
subMethod
"
,
formatter
:
this
.
formatter
},
{
label
:
"
扣分时间
"
,
prop
:
"
deductTime
"
,
formatter
:
this
.
formatterDate
},
{
label
:
"
扣分或增加分值
"
,
prop
:
"
score
"
,
formatter
:
this
.
formatter
},
{
label
:
"
核查时间
"
,
prop
:
"
checkTime
"
,
formatter
:
this
.
formatterDate
},
{
label
:
"
处理状态
"
,
prop
:
"
checkStatus
"
,
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
}
/
>
);
}
}
]
}
};
}
{
label
:
"
姓名
"
,
prop
:
"
staffName
"
},
{
label
:
"
窗口编号
"
,
prop
:
"
windowNum
"
},
{
label
:
"
所属部门
"
,
prop
:
"
deptName
"
},
{
label
:
"
违规类型
"
,
prop
:
"
irregularOtherType
"
,
formatter
:
this
.
formatter
,
},
{
label
:
"
发生时间
"
,
prop
:
"
happenTime
"
,
formatter
:
this
.
formatterDate
,
},
{
label
:
"
评分标准
"
,
prop
:
"
ruleDesc
"
},
// {
// label: "持续时间,秒",
// prop: "duration",
// formatter: this.formatter,
// },
// { label: "绩效规则id", prop: "ruleId", formatter: this.formatter },
{
label
:
"
图片凭证
"
,
prop
:
"
snapPath
"
},
{
label
:
"
绩效规则
"
,
prop
:
"
ruleName
"
},
{
label
:
"
扣分方式
"
,
prop
:
"
subMethod
"
,
formatter
:
this
.
formatter
},
{
label
:
"
扣分时间
"
,
prop
:
"
deductTime
"
,
formatter
:
this
.
formatterDate
,
},
{
label
:
"
扣分人员
"
,
prop
:
"
deductPerson
"
},
{
label
:
"
扣分分值
"
,
prop
:
"
score
"
,
formatter
:
this
.
formatter
},
{
label
:
"
处理状态
"
,
prop
:
"
processStatus
"
,
formatter
:
this
.
formatter
,
},
{
label
:
"
操作
"
,
width
:
240
,
formatter
:
(
row
)
=>
{
return
(
<
table
-
buttons
noAdd
noDel
noEdit
reCheck
row
=
{
row
}
onEdit
=
{
this
.
toEdit
}
onView
=
{
this
.
toView
}
onDel
=
{
this
.
toDel
}
/
>
);
},
},
],
},
};
},
};
</
script
>
attendance-performance-manager-ui/admin/src/views/check/review/record/drawershow.vue
View file @
1a3dadd2
<
template
>
<!-- 弹出框表单 -->
<el-drawer
:title=
"title"
:visible.sync=
"open"
:direction=
"direction"
size=
"50%"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"120px"
>
<el-row>
<Field
label=
"记录ID"
prop=
"recordId"
v-model=
"form.recordId"
placeholder=
"请输入记录ID"
/>
<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=
"windowNum"
v-model=
"form.windowNum"
placeholder=
"请输入窗口编号"
/>
<Field
label=
"所属部门"
prop=
"deptId"
v-model=
"form.deptId"
placeholder=
"请输入所属部门"
/>
<Field
label=
"所属部门名称"
prop=
"deptName"
v-model=
"form.deptName"
placeholder=
"请输入所属部门名称"
/>
<Field
label=
"评价结果"
prop=
"reviewResult"
v-model=
"form.reviewResult"
type=
"select"
:enumData=
"dict.reviewResult"
placeholder=
"请选择评价结果"
/>
<Field
label=
"评价时间"
prop=
"reviewTime"
v-model=
"form.reviewTime"
type=
"date"
/>
<Field
label=
"评价来源"
prop=
"reviewSource"
v-model=
"form.reviewSource"
type=
"select"
:enumData=
"dict.reviewSource"
placeholder=
"请选择评价来源"
/>
<Field
label=
"评价设备"
prop=
"reviewDevice"
v-model=
"form.reviewDevice"
placeholder=
"请输入评价设备"
/>
<Field
label=
"绩效规则id"
prop=
"ruleId"
v-model=
"form.ruleId"
placeholder=
"请输入绩效规则id"
/>
<Field
label=
"规则名称"
prop=
"ruleName"
v-model=
"form.ruleName"
placeholder=
"请输入规则名称"
/>
<Field
label=
"扣分方式"
prop=
"subMethod"
v-model=
"form.subMethod"
type=
"select"
:enumData=
"dict.subMethod"
placeholder=
"请选择扣分方式"
/>
<Field
label=
"扣分人员"
prop=
"deductPerson"
v-model=
"form.deductPerson"
placeholder=
"请输入扣分人员"
/>
<Field
label=
"扣分时间"
prop=
"deductTime"
v-model=
"form.deductTime"
type=
"date"
/>
<Field
label=
"扣分或增加分值"
prop=
"score"
v-model=
"form.score"
placeholder=
"请输入扣分或增加分值"
/>
<Field
label=
"核查人员"
prop=
"checkPerson"
v-model=
"form.checkPerson"
placeholder=
"请输入核查人员"
/>
<Field
label=
"核查时间"
prop=
"checkTime"
v-model=
"form.checkTime"
type=
"date"
/>
<Field
label=
"核查说明"
prop=
"checkDesc"
v-model=
"form.checkDesc"
type=
"textarea"
placeholder=
"请输入核查说明"
/>
<Field
label=
"核查结果"
prop=
"checkResult"
v-model=
"form.checkResult"
placeholder=
"请输入核查结果"
/>
<Field
label=
"处理状态"
prop=
"checkStatus"
v-model=
"form.checkStatus"
type=
"select"
:enumData=
"dict.checkStatus"
placeholder=
"请选择处理状态"
/>
<Field
label=
"备注"
prop=
"remark"
v-model=
"form.remark"
type=
"textarea"
placeholder=
"请输入备注"
/>
<!-- 弹出框表单 -->
<el-drawer
:title=
"title"
:visible.sync=
"open"
:direction=
"direction"
size=
"50%"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"120px"
>
<el-row>
<Field
label=
"记录ID"
prop=
"recordId"
v-model=
"form.recordId"
placeholder=
"请输入记录ID"
/>
<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=
"windowNum"
v-model=
"form.windowNum"
placeholder=
"请输入窗口编号"
/>
<Field
label=
"所属部门"
prop=
"deptId"
v-model=
"form.deptId"
placeholder=
"请输入所属部门"
/>
<Field
label=
"所属部门名称"
prop=
"deptName"
v-model=
"form.deptName"
placeholder=
"请输入所属部门名称"
/>
<Field
label=
"评价结果"
prop=
"reviewResult"
v-model=
"form.reviewResult"
type=
"select"
:enumData=
"dict.reviewResult"
placeholder=
"请选择评价结果"
/>
<Field
label=
"评价时间"
prop=
"reviewTime"
v-model=
"form.reviewTime"
type=
"date"
/>
<Field
label=
"评价来源"
prop=
"reviewSource"
v-model=
"form.reviewSource"
type=
"select"
:enumData=
"dict.reviewSource"
placeholder=
"请选择评价来源"
/>
<Field
label=
"评价设备"
prop=
"reviewDevice"
v-model=
"form.reviewDevice"
placeholder=
"请输入评价设备"
/>
<Field
label=
"绩效规则id"
prop=
"ruleId"
v-model=
"form.ruleId"
placeholder=
"请输入绩效规则id"
/>
<Field
label=
"规则名称"
prop=
"ruleName"
v-model=
"form.ruleName"
placeholder=
"请输入规则名称"
/>
<Field
label=
"扣分方式"
prop=
"subMethod"
v-model=
"form.subMethod"
type=
"select"
:enumData=
"dict.subMethod"
placeholder=
"请选择扣分方式"
/>
<Field
label=
"扣分人员"
prop=
"deductPerson"
v-model=
"form.deductPerson"
placeholder=
"请输入扣分人员"
/>
<Field
label=
"扣分时间"
prop=
"deductTime"
v-model=
"form.deductTime"
type=
"date"
/>
<Field
label=
"扣分或增加分值"
prop=
"score"
v-model=
"form.score"
placeholder=
"请输入扣分或增加分值"
/>
<Field
label=
"核查人员"
prop=
"checkPerson"
v-model=
"form.checkPerson"
placeholder=
"请输入核查人员"
/>
<Field
label=
"核查时间"
prop=
"checkTime"
v-model=
"form.checkTime"
type=
"date"
/>
<Field
label=
"核查说明"
prop=
"checkDesc"
v-model=
"form.checkDesc"
type=
"textarea"
placeholder=
"请输入核查说明"
/>
<Field
label=
"核查结果"
prop=
"checkResult"
v-model=
"form.checkResult"
placeholder=
"请输入核查结果"
/>
<Field
label=
"处理状态"
prop=
"checkStatus"
v-model=
"form.checkStatus"
type=
"select"
:enumData=
"dict.checkStatus"
placeholder=
"请选择处理状态"
/>
<Field
label=
"备注"
prop=
"remark"
v-model=
"form.remark"
type=
"textarea"
placeholder=
"请输入备注"
/>
</el-row>
</el-row>
<form-buttons
@
submit=
'submitForm'
v-if=
"pageInfo.type!='view'"
noCancelBtn
/>
</el-form>
</el-drawer>
<form-buttons
@
submit=
"submitForm"
v-if=
"pageInfo.type != 'view'"
noCancelBtn
/>
</el-form>
</el-drawer>
</
template
>
<
script
>
import
form
from
"
@/assets/mixins/formdialog
"
;
export
default
{
name
:
"
CheckReviewRecordDetail
"
,
mixins
:
[
form
],
components
:
{
},
created
()
{
this
.
changePath
(
"
check/review/record
"
)
},
data
()
{
return
{
// 遮罩层
loading
:
true
,
// 弹出层标题
title
:
"
评价差评绩效核查信息
"
,
// 是否显示弹出层
open
:
false
,
direction
:
"
rtl
"
,
toString
:[
"
reviewResult
"
,
"
subMethod
"
,
"
checkStatus
"
,
],
toDate
:[
"
reviewTime
"
,
"
deductTime
"
,
"
checkTime
"
,
],
// 表单校验
rules
:
{
staffName
:
[
{
required
:
true
,
message
:
"
请输入员工姓名
"
,
trigger
:
"
blur
"
},
{
max
:
64
,
message
:
"
最多只能录入64个字符
"
,
trigger
:
"
blur
"
,},
],
createTime
:
[
{
required
:
true
,
message
:
"
请选择创建时间
"
},
],
}
};
},
import
form
from
"
@/assets/mixins/formdialog
"
;
export
default
{
name
:
"
CheckReviewRecordDetail
"
,
mixins
:
[
form
],
components
:
{},
created
()
{
this
.
changePath
(
"
check/review/record
"
);
},
data
()
{
return
{
// 遮罩层
loading
:
true
,
// 弹出层标题
title
:
"
评价差评绩效核查信息
"
,
// 是否显示弹出层
open
:
false
,
direction
:
"
rtl
"
,
toString
:
[
"
reviewResult
"
,
"
subMethod
"
,
"
checkStatus
"
],
toDate
:
[
"
reviewTime
"
,
"
deductTime
"
,
"
checkTime
"
],
// 表单校验
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
=
"
check/review/record/edit
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
edit
"
this
.
title
=
"
修改评价差评绩效核查信息
"
;
},
/** 新增 */
add
(
row
)
{
this
.
reset
()
this
.
urls
.
currUrl
=
"
check/review/record/add
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
add
"
this
.
title
=
"
新增评价差评绩效核查信息
"
;
},
/** 查看*/
view
(
row
)
{
this
.
reset
()
this
.
query
=
{
id
:
row
.
id
};
this
.
urls
.
currUrl
=
"
check/review/record/view
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
view
"
this
.
title
=
"
评价差评绩效核查信息详细
"
;
},
/**取消按钮 */
cancel
()
{
this
.
open
=
false
;
},
/**获取数据后弹框 */
afterRender
(
data
)
{
this
.
open
=
true
;
},
methods
:
{
/** 编辑 */
edit
(
row
)
{
this
.
reset
();
this
.
query
=
{
id
:
row
.
id
};
this
.
urls
.
currUrl
=
"
check/review/record/edit
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
edit
"
;
row
.
view
==
"
核查
"
?
(
this
.
title
=
"
评价差评绩效核查
"
)
:
(
this
.
title
=
"
修改评价差评绩效核查信息
"
);
},
/** 新增 */
add
(
row
)
{
this
.
reset
();
this
.
urls
.
currUrl
=
"
check/review/record/add
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
add
"
;
this
.
title
=
"
新增评价差评绩效核查信息
"
;
},
/** 查看*/
view
(
row
)
{
this
.
reset
();
this
.
query
=
{
id
:
row
.
id
};
this
.
urls
.
currUrl
=
"
check/review/record/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
"
);
},
afterSubmit
(
data
)
{
this
.
open
=
false
;
this
.
$emit
(
"
ok
"
);
},
// 表单重置
reset
()
{
this
.
form
=
{
recordId
:
null
,
staffId
:
null
,
staffName
:
""
,
workNum
:
""
,
windowNum
:
""
,
deptId
:
null
,
deptName
:
""
,
reviewResult
:
null
,
reviewTime
:
null
,
reviewSource
:
""
,
reviewDevice
:
""
,
ruleId
:
null
,
ruleName
:
""
,
subMethod
:
1
,
deductPerson
:
""
,
deductTime
:
null
,
score
:
0.0
0
,
checkPerson
:
""
,
checkTime
:
null
,
checkDesc
:
""
,
checkResult
:
""
,
checkStatus
:
1
,
remark
:
""
,
};
this
.
resetForm
(
"
form
"
);
},
resetForm
(
refName
)
{
if
(
this
.
$refs
[
refName
])
{
this
.
$refs
[
refName
].
resetFields
();
}
},
},
};
// 表单重置
reset
()
{
this
.
form
=
{
recordId
:
null
,
staffId
:
null
,
staffName
:
""
,
workNum
:
""
,
windowNum
:
""
,
deptId
:
null
,
deptName
:
""
,
reviewResult
:
null
,
reviewTime
:
null
,
reviewSource
:
""
,
reviewDevice
:
""
,
ruleId
:
null
,
ruleName
:
""
,
subMethod
:
1
,
deductPerson
:
""
,
deductTime
:
null
,
score
:
0.
0
,
checkPerson
:
""
,
checkTime
:
null
,
checkDesc
:
""
,
checkResult
:
""
,
checkStatus
:
1
,
remark
:
""
,
};
this
.
resetForm
(
"
form
"
);
},
resetForm
(
refName
)
{
if
(
this
.
$refs
[
refName
])
{
this
.
$refs
[
refName
].
resetFields
();
}
},
},
};
</
script
>
attendance-performance-manager-ui/admin/src/views/check/review/record/list.vue
View file @
1a3dadd2
<
template
>
<div
class=
"page"
>
<LayoutTable
notAdd
notDel
:data=
"tableData"
:config=
"tableConfig"
>
<el-button
slot=
"table-head-left2"
style=
"margin-left: 10px"
icon=
"el-icon-tickets"
size=
"mini"
@
click=
"doExport"
:disabled=
"isExport"
>
导出
</el-button>
</LayoutTable>
<!-- 评价差评绩效核查信息导入对话框 -->
<el-dialog
:title=
"upload.title"
:visible.sync=
"upload.open"
width=
"400px"
append-to-body
>
<el-upload
ref=
"upload"
:limit=
"1"
accept=
".xlsx, .xls"
:headers=
"upload.headers"
:action=
"upload.url + '?updateSupport=' + upload.updateSupport"
:disabled=
"upload.isUploading"
:on-progress=
"handleFileUploadProgress"
:on-success=
"handleFileSuccess"
:auto-upload=
"false"
drag
>
<i
class=
"el-icon-upload"
></i>
<div
class=
"el-upload__text"
>
将文件拖到此处,或
<em>
点击上传
</em>
</div>
<div
class=
"el-upload__tip"
slot=
"tip"
>
<el-checkbox
v-model=
"upload.updateSupport"
/>
是否更新已经存在的数据
<el-link
type=
"primary"
style=
"font-size: 14px"
@
click=
"downloadTemplate"
>
下载模板
</el-link
>
</div>
<div
class=
"el-upload__tip"
style=
"color: red"
slot=
"tip"
>
提示:仅允许导入“xls”或“xlsx”格式文件!
</div>
</el-upload>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"submitFileForm"
>
确 定
</el-button>
<el-button
@
click=
"upload.open = false"
>
取 消
</el-button>
</div>
</el-dialog>
<drawer-show
ref=
"drawerform"
@
ok=
"getData"
/>
</div>
<div
class=
"page"
>
<LayoutTable
notAdd
notDel
:data=
"tableData"
:config=
"tableConfig"
>
<el-button
slot=
"table-head-left2"
style=
"margin-left: 10px"
icon=
"el-icon-tickets"
size=
"mini"
@
click=
"doExport"
:disabled=
"isExport"
>
导出
</el-button
>
</LayoutTable>
<!-- 评价差评绩效核查信息导入对话框 -->
<el-dialog
:title=
"upload.title"
:visible.sync=
"upload.open"
width=
"400px"
append-to-body
>
<el-upload
ref=
"upload"
:limit=
"1"
accept=
".xlsx, .xls"
:headers=
"upload.headers"
:action=
"upload.url + '?updateSupport=' + upload.updateSupport"
:disabled=
"upload.isUploading"
:on-progress=
"handleFileUploadProgress"
:on-success=
"handleFileSuccess"
:auto-upload=
"false"
drag
>
<i
class=
"el-icon-upload"
></i>
<div
class=
"el-upload__text"
>
将文件拖到此处,或
<em>
点击上传
</em>
</div>
<div
class=
"el-upload__tip"
slot=
"tip"
>
<el-checkbox
v-model=
"upload.updateSupport"
/>
是否更新已经存在的数据
<el-link
type=
"primary"
style=
"font-size: 14px"
@
click=
"downloadTemplate"
>
下载模板
</el-link
>
</div>
<div
class=
"el-upload__tip"
style=
"color: red"
slot=
"tip"
>
提示:仅允许导入“xls”或“xlsx”格式文件!
</div>
</el-upload>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"submitFileForm"
>
确 定
</el-button>
<el-button
@
click=
"upload.open = false"
>
取 消
</el-button>
</div>
</el-dialog>
<drawer-show
ref=
"drawerform"
@
ok=
"getData"
/>
</div>
</
template
>
<
script
>
/** 表单弹出框模式需引入 */
import
drawerShow
from
"
./drawershow
"
;
import
table
from
"
@/assets/mixins/table
"
;
export
default
{
name
:
"
CheckReviewRecordList
"
,
components
:
{
drawerShow
},
mixins
:
[
table
],
created
()
{
},
methods
:
{
/** 导入 */
handleImport
()
{
this
.
upload
.
title
=
"
评价差评绩效核查信息导入
"
;
this
.
upload
.
open
=
true
;
},
/** 下载模板操作 */
downloadTemplate
()
{
this
.
isExport
=
true
;
this
.
$download
(
"
/check/review/record/downloadTemplate
"
,
{},
{
type
:
"
excel
"
})
.
then
(()
=>
(
this
.
isExport
=
false
))
.
catch
((
error
)
=>
{
this
.
isExport
=
false
;
this
.
$message
.
error
(
error
.
message
);
});
},
/** 文件上传中处理 */
handleFileUploadProgress
(
event
,
file
,
fileList
)
{
this
.
upload
.
isUploading
=
true
;
},
/** 文件上传成功处理 */
handleFileSuccess
(
response
,
file
,
fileList
)
{
this
.
upload
.
open
=
false
;
this
.
upload
.
isUploading
=
false
;
this
.
$refs
.
upload
.
clearFiles
();
this
.
$alert
(
response
.
msg
,
"
导入结果
"
,
{
dangerouslyUseHTMLString
:
true
});
this
.
getData
();
},
/** 提交上传文件 */
submitFileForm
()
{
this
.
$refs
.
upload
.
submit
();
},
/** 导出Excel */
doExport
()
{
this
.
isExport
=
true
;
this
.
$download
(
"
/check/review/record/exportExcel
"
,
{
"
idList
"
:
this
.
selection
,
},
{
type
:
"
excel
"
}).
then
(()
=>
this
.
isExport
=
false
).
catch
(
error
=>
{
this
.
isExport
=
false
;
this
.
$message
.
error
(
error
.
message
);
});
},
/** 重写新增方法 */
toAdd
(
row
)
{
this
.
$refs
.
drawerform
.
add
(
row
);
},
/** 重写编辑方法 */
toEdit
(
row
)
{
this
.
$refs
.
drawerform
.
edit
(
row
);
},
/** 重写查看方法 */
toView
(
row
)
{
this
.
$refs
.
drawerform
.
view
(
row
);
},
/** 表单弹出框模式需引入 */
import
drawerShow
from
"
./drawershow
"
;
import
table
from
"
@/assets/mixins/table
"
;
export
default
{
name
:
"
CheckReviewRecordList
"
,
components
:
{
drawerShow
,
},
mixins
:
[
table
],
created
()
{},
methods
:
{
/** 导入 */
handleImport
()
{
this
.
upload
.
title
=
"
评价差评绩效核查信息导入
"
;
this
.
upload
.
open
=
true
;
},
/** 下载模板操作 */
downloadTemplate
()
{
this
.
isExport
=
true
;
this
.
$download
(
"
/check/review/record/downloadTemplate
"
,
{},
{
type
:
"
excel
"
}
)
.
then
(()
=>
(
this
.
isExport
=
false
))
.
catch
((
error
)
=>
{
this
.
isExport
=
false
;
this
.
$message
.
error
(
error
.
message
);
});
},
/** 文件上传中处理 */
handleFileUploadProgress
(
event
,
file
,
fileList
)
{
this
.
upload
.
isUploading
=
true
;
},
/** 文件上传成功处理 */
handleFileSuccess
(
response
,
file
,
fileList
)
{
this
.
upload
.
open
=
false
;
this
.
upload
.
isUploading
=
false
;
this
.
$refs
.
upload
.
clearFiles
();
this
.
$alert
(
response
.
msg
,
"
导入结果
"
,
{
dangerouslyUseHTMLString
:
true
});
this
.
getData
();
},
/** 提交上传文件 */
submitFileForm
()
{
this
.
$refs
.
upload
.
submit
();
},
/** 导出Excel */
doExport
()
{
this
.
isExport
=
true
;
this
.
$download
(
"
/check/review/record/exportExcel
"
,
{
idList
:
this
.
selection
,
},
data
()
{
return
{
// 用户导入参数
upload
:
{
// 是否显示弹出层(评价差评绩效核查信息导入)
open
:
false
,
// 弹出层标题(评价差评绩效核查信息导入)
title
:
"
导入评价差评绩效核查信息数据
"
,
// 是否禁用上传
isUploading
:
false
,
// 是否更新已经存在的数据
updateSupport
:
0
,
// 上传的地址
url
:
"
/m/check/review/record/importData
"
,
},
isExport
:
false
,
config
:
{
isshowTabPane
:
true
,
search
:
[
],
columns
:
[
{
type
:
"
selection
"
,
width
:
60
},
{
type
:
"
index
"
,
label
:
"
序号
"
,
width
:
50
},
{
label
:
"
员工姓名
"
,
prop
:
"
staffName
"
},
{
label
:
"
工号
"
,
prop
:
"
workNum
"
},
{
type
:
"
excel
"
}
)
.
then
(()
=>
(
this
.
isExport
=
false
))
.
catch
((
error
)
=>
{
this
.
isExport
=
false
;
this
.
$message
.
error
(
error
.
message
);
});
},
/** 重写新增方法 */
toAdd
(
row
)
{
this
.
$refs
.
drawerform
.
add
(
row
);
},
/** 重写编辑方法 */
toEdit
(
row
)
{
row
.
view
=
"
核查
"
;
this
.
$refs
.
drawerform
.
edit
(
row
);
},
/** 重写查看方法 */
toView
(
row
)
{
row
.
view
=
"
查看
"
;
this
.
$refs
.
drawerform
.
view
(
row
);
},
},
data
()
{
return
{
// 用户导入参数
upload
:
{
// 是否显示弹出层(评价差评绩效核查信息导入)
open
:
false
,
// 弹出层标题(评价差评绩效核查信息导入)
title
:
"
导入评价差评绩效核查信息数据
"
,
// 是否禁用上传
isUploading
:
false
,
// 是否更新已经存在的数据
updateSupport
:
0
,
// 上传的地址
url
:
"
/m/check/review/record/importData
"
,
},
isExport
:
false
,
config
:
{
isshowTabPane
:
true
,
search
:
[
{
name
:
"
status
"
,
type
:
"
select
"
,
label
:
"
全部状态
"
,
fuzzy
:
false
,
},
{
name
:
"
deptId
"
,
type
:
"
select
"
,
label
:
"
全部部门
"
,
fuzzy
:
false
,
},
{
name
:
"
source
"
,
type
:
"
select
"
,
label
:
"
全部来源
"
,
fuzzy
:
false
,
},
{
name
:
"
date
"
,
type
:
"
date
"
,
label
:
"
请选择日期
"
,
fuzzy
:
false
,
},
{
name
:
"
staffName
"
,
type
:
"
text
"
,
label
:
"
请输入员工姓名搜索
"
,
fuzzy
:
false
,
},
],
columns
:
[
{
type
:
"
selection
"
,
width
:
50
},
{
type
:
"
index
"
,
label
:
"
序号
"
,
width
:
50
},
{
label
:
"
窗口编号
"
,
prop
:
"
windowNum
"
},
{
label
:
"
姓名
"
,
prop
:
"
staffName
"
},
{
label
:
"
所属部门
"
,
prop
:
"
deptId
"
,
formatter
:
this
.
formatter
},
{
label
:
"
窗口编号
"
,
prop
:
"
windowNum
"
},
{
label
:
"
所属部门名称
"
,
prop
:
"
deptName
"
},
{
label
:
"
所属部门
"
,
prop
:
"
deptName
"
},
{
label
:
"
评价结果
"
,
prop
:
"
reviewResult
"
,
formatter
:
this
.
formatter
},
{
label
:
"
评价结果
"
,
prop
:
"
reviewResult
"
,
formatter
:
this
.
formatter
,
},
{
label
:
"
评价时间
"
,
prop
:
"
reviewTime
"
,
formatter
:
this
.
formatterDate
},
{
label
:
"
评价来源
"
,
prop
:
"
reviewSource
"
},
{
label
:
"
评价来源
"
,
prop
:
"
reviewSource
"
},
{
label
:
"
评价设备
"
,
prop
:
"
reviewDevice
"
},
{
label
:
"
评价设备
"
,
prop
:
"
reviewDevice
"
},
{
label
:
"
评价时间
"
,
prop
:
"
reviewTime
"
,
formatter
:
this
.
formatterDate
,
},
{
label
:
"
绩效规则id
"
,
prop
:
"
ruleId
"
,
formatter
:
this
.
formatter
},
{
label
:
"
图片凭证
"
,
prop
:
"
snapPath
"
},
{
label
:
"
规则名称
"
,
prop
:
"
ruleName
"
},
{
label
:
"
绩效规则
"
,
prop
:
"
ruleNme
"
},
{
label
:
"
扣分方式
"
,
prop
:
"
subMethod
"
,
formatter
:
this
.
formatter
},
{
label
:
"
扣分方式
"
,
prop
:
"
subMethod
"
,
formatter
:
this
.
formatter
},
{
label
:
"
扣分人员
"
,
prop
:
"
deductPerson
"
},
{
label
:
"
扣分时间
"
,
prop
:
"
deductTime
"
,
formatter
:
this
.
formatterDate
,
},
{
label
:
"
扣分时间
"
,
prop
:
"
deductTime
"
,
formatter
:
this
.
formatterDate
},
{
label
:
"
扣分人员
"
,
prop
:
"
deductPerson
"
},
{
label
:
"
扣分或增加分值
"
,
prop
:
"
score
"
,
formatter
:
this
.
formatter
},
{
label
:
"
扣分分值
"
,
prop
:
"
score
"
,
formatter
:
this
.
formatter
},
{
label
:
"
核查人员
"
,
prop
:
"
checkPerson
"
},
{
label
:
"
处理状态
"
,
prop
:
"
processStatus
"
,
formatter
:
this
.
formatter
,
},
{
label
:
"
核查时间
"
,
prop
:
"
checkTime
"
,
formatter
:
this
.
formatterDate
},
{
label
:
"
核查说明
"
,
prop
:
"
checkDesc
"
},
{
label
:
"
核查结果
"
,
prop
:
"
checkResult
"
},
{
label
:
"
处理状态
"
,
prop
:
"
checkStatus
"
,
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
}
/
>
);
}
}
]
}
};
}
{
label
:
"
操作
"
,
width
:
200
,
formatter
:
(
row
)
=>
{
return
(
<
table
-
buttons
noAdd
noDel
noEdit
reCheck
row
=
{
row
}
onEdit
=
{
this
.
toEdit
}
onView
=
{
this
.
toView
}
onDel
=
{
this
.
toDel
}
/
>
);
},
},
],
},
};
},
};
</
script
>
attendance-performance-manager-ui/admin/src/views/feedback/addQuestion/list.vue
View file @
1a3dadd2
...
...
@@ -6,7 +6,10 @@
<el-tab-pane
label=
"设计问卷"
name=
"1"
>
<fc-designer
style=
"height: 79vh;"
ref=
"designer"
>
<template
slot=
"handle"
>
<ElButton
icon=
"el-icon-upload"
type=
"success"
size=
"small"
@
click=
"showDrawer"
round
>
移动端预览
<ElButton
style=
"margin-left: 10px;"
icon=
"el-icon-upload"
type=
"primary"
size=
"small"
@
click=
"issueBtn"
round
>
问卷发布
</ElButton>
<ElButton
icon=
"el-icon-view"
type=
"success"
size=
"small"
@
click=
"showDrawer"
round
>
H5预览
</ElButton>
</
template
>
</fc-designer>
...
...
@@ -31,6 +34,30 @@
</div>
</div>
</el-drawer>
<el-dialog
title=
"问卷发布"
:visible.sync=
"issueDialog"
width=
"30%"
top=
"25vh"
>
<el-form
:model=
"issueForm"
>
<el-form-item
label=
"问卷封面:"
label-width=
"125px"
>
<div
style=
"display: flex;align-items: center;"
>
<img
style=
"width:80px; height: 50px; margin-right: 10px;cursor: pointer;"
v-for=
"i in issueForm.cover"
:src=
"i"
alt=
""
>
</div>
<!-- <el-input v-model="issueForm.cover" autocomplete="off"></el-input> -->
</el-form-item>
<el-form-item
label=
"反馈期限:"
label-width=
"125px"
>
<el-date-picker
v-model=
"issueForm.time"
type=
"datetimerange"
range-separator=
"至"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
>
</el-date-picker>
</el-form-item>
<el-form-item
label=
"邀请人员:"
label-width=
"125px"
>
<el-button
type=
"success"
size=
"small"
>
选择人员
</el-button>
</el-form-item>
<div
style=
"text-align: center;"
>
<el-button
size=
"small"
@
click=
"issueDialog = false"
>
取消
</el-button>
<el-button
type=
"primary"
size=
"small"
@
click=
"issueFormBtn"
>
发布
</el-button>
</div>
</el-form>
</el-dialog>
</el-tab-pane>
</el-tabs>
</div>
...
...
@@ -43,8 +70,15 @@ export default {
return
{
tabs
:
'
1
'
,
drawer
:
0
,
Frule
:
''
,
Frule
:
[]
,
Fopthion
:
''
,
issueDialog
:
false
,
issueForm
:
{
cover
:
[
'
http://sy.scsmile.cn/YX-JXgl/v1.0/HT/images/%E6%96%B0%E5%A2%9E%E5%8F%8D%E9%A6%88_%E7%AC%AC3%E6%AD%A5_/u26101.svg
'
,
'
http://sy.scsmile.cn/YX-JXgl/v1.0/HT/images/%E6%96%B0%E5%A2%9E%E5%8F%8D%E9%A6%88_%E7%AC%AC3%E6%AD%A5_/u26102.svg
'
]
},
}
},
mounted
()
{
...
...
@@ -75,11 +109,31 @@ export default {
this
.
$refs
.
designer
.
removeMenuItem
(
"
timePicker
"
)
this
.
$refs
.
designer
.
removeMenuItem
(
"
switch
"
)
this
.
$refs
.
designer
.
removeMenuItem
(
"
tree
"
)
this
.
$refs
.
designer
.
removeMenuItem
(
"
inputNumber
"
)
this
.
$refs
.
designer
.
removeMenuItem
(
"
select
"
)
this
.
$refs
.
designer
.
removeMenuItem
(
"
fc-editor
"
)
this
.
$refs
.
designer
.
removeMenuItem
(
"
el-button
"
)
this
.
$refs
.
designer
.
removeMenuItem
(
"
el-divider
"
)
//配置组件生成规则---直接配置显示在页面上
// const rule = [{ "type": "input", "field": "int", "title": "输入框", "info": "", "_fc_drag_tag": "input", "hidden": false, "display": true }]
// this.$refs.designer.setRule(rule)
},
methods
:
{
//问卷发布
issueBtn
()
{
this
.
Frule
=
formCreate
.
parseJson
(
this
.
getFormJson
())
this
.
Fopthion
=
formCreate
.
parseJson
(
this
.
getFormOption
())
console
.
log
(
this
.
Frule
)
//判断是否配置了表单
if
(
this
.
Frule
.
length
>
0
)
{
this
.
issueDialog
=
true
}
else
{
this
.
$message
({
message
:
'
请配置表单后发布
'
,
type
:
'
warning
'
});
}
},
//预览生成按钮的输出
onSubmit
(
formData
)
{
console
.
log
(
formData
)
...
...
@@ -101,12 +155,20 @@ export default {
const
FcDesignerOptions
=
this
.
$refs
.
designer
.
getOption
();
console
.
log
(
FcDesignerOptions
)
return
JSON
.
stringify
(
FcDesignerOptions
)
},
issueFormBtn
()
{
console
.
log
(
this
.
issueForm
)
}
}
}
</
script
>
<
style
lang=
"less"
scoped
>
/deep/._fc-m-tools {
flex-direction: row-reverse;
justify-content: flex-start;
}
/deep/._fc-l-title {
text-align: center;
margin-bottom: 10px;
...
...
attendance-performance-manager-ui/admin/src/views/feedback/questionnaire/list.vue
View file @
1a3dadd2
...
...
@@ -18,22 +18,65 @@
</div>
<div
class=
"content"
>
<div
class=
"cLeft"
></div>
<div
class=
"cLeft"
>
<div
class=
"title"
>
全部数据(220)
<span
style=
"font-weight: 400; font-size: 16px;margin-left: 20px;"
>
已反馈(1)
</span>
<span
style=
"font-weight: 400; font-size: 16px;margin-left: 20px;"
>
未反馈(219)
</span>
</div>
<el-button
class=
"m15"
type=
"primary"
size=
"small"
>
导出数据
</el-button>
<div
class=
"lBox m15"
>
<div
class=
"treeS"
>
<el-tree
:data=
"treeData"
:props=
"defaultProps"
@
node-click=
"treeSub"
></el-tree>
</div>
<el-table
ref=
"multipleTable"
:data=
"tableData"
tooltip-effect=
"dark"
style=
"width: 100%"
@
selection-change=
"handleSelectionChange"
>
<el-table-column
type=
"selection"
width=
"55"
>
</el-table-column>
<el-table-column
label=
"日期"
width=
"120"
>
<template
slot-scope=
"scope"
>
{{
scope
.
row
.
date
}}
</
template
>
</el-table-column>
<el-table-column
prop=
"name"
label=
"姓名"
width=
"120"
>
</el-table-column>
<el-table-column
prop=
"address"
label=
"地址"
show-overflow-tooltip
>
</el-table-column>
</el-table>
</div>
</div>
<div
class=
"cRight"
>
<div
class=
"title"
>
题型数据分析
</div>
<div
class=
"box"
>
<div
style=
"display: flex;align-items: center;"
>
<el-tag
type=
"primary"
effect=
"plain"
>
单项选择
</el-tag>
<div
style=
"margin-left: 10px;"
>
1.你是男性还是女性
</div>
<div
class=
"scroll"
>
<div
class=
"box"
v-for=
"i in 2"
>
<div
style=
"display: flex;align-items: center;"
>
<el-tag
type=
"primary"
effect=
"plain"
>
单项选择
</el-tag>
<div
style=
"margin-left: 10px;"
>
1.你是男性还是女性
</div>
</div>
<div
class=
"m15"
style=
"display: flex;align-items: center;justify-content: space-around; width: 40%;"
>
<div
style=
"text-align: center;"
>
<el-progress
type=
"circle"
:percentage=
"45"
show-text
width=
"75"
>
男
</el-progress>
<div>
男
</div>
</div>
<div
style=
"text-align: center;"
>
<el-progress
type=
"circle"
:percentage=
"45"
show-text
width=
"75"
>
男
</el-progress>
<div>
女
</div>
</div>
</div>
</div>
<div>
<el-progress
type=
"circle"
:percentage=
"45"
>
男
</el-progress>
<el-progress
type=
"circle"
:percentage=
"55"
>
女
</el-progress>
<div
class=
"box m15"
v-for=
"i in 4"
>
<div
style=
"display: flex;align-items: center;"
>
<el-tag
type=
"primary"
effect=
"plain"
>
单项选择
</el-tag>
<div
style=
"margin-left: 10px;"
>
1.你是男性还是女性
</div>
</div>
<el-button
class=
"m15"
type=
"primary"
size=
"small"
@
click=
"drawerAnswer = 1"
>
查看详情答案
</el-button>
</div>
</div>
</div>
</div>
...
...
@@ -51,6 +94,22 @@
</div>
</div>
</el-drawer>
<el-drawer
:visible.sync=
"drawerAnswer"
title=
"反馈详情"
size=
"40%"
>
<div
class=
"answerBox"
>
<div
class=
"aTop"
>
问题:你的具体想法?
</div>
<el-table
class=
"m15"
:data=
"tableData"
border
style=
"width: 100%;"
>
<el-table-column
prop=
"date"
label=
"日期"
width=
"180"
>
</el-table-column>
<el-table-column
prop=
"name"
label=
"姓名"
width=
"180"
>
</el-table-column>
<el-table-column
prop=
"address"
label=
"地址"
>
</el-table-column>
</el-table>
</div>
</el-drawer>
</div>
</template>
...
...
@@ -63,6 +122,63 @@ export default {
drawer
:
false
,
Frule
:
''
,
Fopthion
:
''
,
drawerAnswer
:
false
,
tableData
:
[{
date
:
'
2016-05-02
'
,
name
:
'
王小虎
'
,
address
:
'
上海市普陀区金沙江路 1518 弄
'
},
{
date
:
'
2016-05-04
'
,
name
:
'
王小虎
'
,
address
:
'
上海市普陀区金沙江路 1517 弄
'
},
{
date
:
'
2016-05-01
'
,
name
:
'
王小虎
'
,
address
:
'
上海市普陀区金沙江路 1519 弄
'
},
{
date
:
'
2016-05-03
'
,
name
:
'
王小虎
'
,
address
:
'
上海市普陀区金沙江路 1516 弄
'
}],
treeData
:
[{
label
:
'
一级 1
'
,
children
:
[{
label
:
'
二级 1-1
'
,
children
:
[{
label
:
'
三级 1-1-1
'
}]
}]
},
{
label
:
'
一级 2
'
,
children
:
[{
label
:
'
二级 2-1
'
,
children
:
[{
label
:
'
三级 2-1-1
'
}]
},
{
label
:
'
二级 2-2
'
,
children
:
[{
label
:
'
三级 2-2-1
'
}]
}]
},
{
label
:
'
一级 3
'
,
children
:
[{
label
:
'
二级 3-1
'
,
children
:
[{
label
:
'
三级 3-1-1
'
}]
},
{
label
:
'
二级 3-2
'
,
children
:
[{
label
:
'
三级 3-2-1
'
}]
}]
}],
defaultProps
:
{
children
:
'
children
'
,
label
:
'
label
'
}
}
},
mounted
()
{
...
...
@@ -158,11 +274,32 @@ export default {
"
resetBtn
"
:
false
}
},
methods
:
{
treeSub
(
data
)
{
console
.
log
(
data
)
},
handleSelectionChange
(
val
)
{
this
.
multipleSelection
=
val
;
}
}
}
</
script
>
<
style
lang=
"less"
scoped
>
.treeS {
width: 20%;
margin-left: 10px;
}
/deep/.el-tree {
background-color: transparent;
}
.m15 {
margin-top: 15px;
}
.font {
font-size: 16px;
line-height: 1.5;
...
...
@@ -240,6 +377,21 @@ export default {
}
}
.answerBox {
padding: 0 20px;
box-sizing: border-box;
.aTop {
border-left: 4px solid #3377ff;
background-color: #eff4ff;
color: #3377ff;
line-height: 70px;
padding-left: 20px;
box-sizing: border-box;
font-weight: bold;
}
}
.content {
display: flex;
align-items: center;
...
...
@@ -252,6 +404,15 @@ export default {
height: 100%;
border-radius: 4px;
width: 49%;
box-sizing: border-box;
padding: 20px;
.lBox {
display: flex;
// align-items: center
justify-content: space-between;
}
}
.cRight {
...
...
@@ -261,6 +422,32 @@ export default {
width: 49%;
box-sizing: border-box;
padding: 20px;
.scroll {
height: 93%;
overflow-y: auto;
overflow-x: hidden;
// border: 1px solid;
}
/* 侧边滚动条 */
.scroll::-webkit-scrollbar {
width: 3px;
}
/* 滚动条上的滚动滑块 */
.scroll::-webkit-scrollbar-thumb {
background: #CCCCCC;
border-radius: 4px;
}
/* 滚动条轨道 */
.scroll::-webkit-scrollbar-track {
background: #EEEEEE;
border-radius: 4px;
}
}
.title {
...
...
attendance-performance-manager-ui/admin/src/views/perform/attend/record/list.vue
View file @
1a3dadd2
...
...
@@ -233,7 +233,7 @@ export default {
{
label
:
"
处理状态
"
,
prop
:
"
process
Status
"
,
prop
:
"
check
Status
"
,
formatter
:
this
.
formatter
,
},
...
...
attendance-performance-manager-ui/admin/src/views/perform/complain/record/drawershow.vue
View file @
1a3dadd2
<
template
>
<!-- 弹出框表单 -->
<el-drawer
:title=
"title"
:visible.sync=
"open"
:direction=
"direction"
size=
"50%"
>
<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=
"windowNum"
v-model=
"form.windowNum"
placeholder=
"请输入窗口编号"
/>
<Field
label=
"所属部门"
prop=
"deptId"
v-model=
"form.deptId"
placeholder=
"请输入所属部门"
/>
<Field
label=
"所属部门名称"
prop=
"deptName"
v-model=
"form.deptName"
placeholder=
"请输入所属部门名称"
/>
<Field
label=
"投诉标题"
prop=
"complainTitle"
v-model=
"form.complainTitle"
placeholder=
"请输入投诉标题"
/>
<Field
label=
"投诉内容"
><editor
v-model=
"form.complainContent"
:min-height=
"256"
/></Field>
<Field
label=
"投诉人真实姓名"
prop=
"complainRealName"
v-model=
"form.complainRealName"
placeholder=
"请输入投诉人真实姓名"
/>
<Field
label=
"联系电话"
prop=
"contact"
v-model=
"form.contact"
placeholder=
"请输入联系电话"
/>
<Field
label=
"投诉时间"
prop=
"complainTime"
v-model=
"form.complainTime"
type=
"date"
/>
<Field
label=
"投诉来源"
prop=
"complainSource"
v-model=
"form.complainSource"
placeholder=
"请输入投诉来源"
/>
<Field
label=
"投诉设备"
prop=
"complainDevice"
v-model=
"form.complainDevice"
placeholder=
"请输入投诉设备"
/>
<Field
label=
"绩效规则id"
prop=
"ruleId"
v-model=
"form.ruleId"
placeholder=
"请输入绩效规则id"
/>
<Field
label=
"规则名称"
prop=
"ruleName"
v-model=
"form.ruleName"
placeholder=
"请输入规则名称"
/>
<Field
label=
"扣分方式"
prop=
"subMethod"
v-model=
"form.subMethod"
type=
"select"
:enumData=
"dict.subMethod"
placeholder=
"请选择扣分方式"
/>
<Field
label=
"扣分人员"
prop=
"deductPerson"
v-model=
"form.deductPerson"
placeholder=
"请输入扣分人员"
/>
<Field
label=
"扣分时间"
prop=
"deductTime"
v-model=
"form.deductTime"
type=
"date"
/>
<Field
label=
"扣分或增加分值"
prop=
"score"
v-model=
"form.score"
placeholder=
"请输入扣分或增加分值"
/>
<Field
label=
"处理状态"
prop=
"processStatus"
v-model=
"form.processStatus"
type=
"select"
:enumData=
"dict.processStatus"
placeholder=
"请选择处理状态"
/>
<Field
label=
"备注"
prop=
"remark"
v-model=
"form.remark"
type=
"textarea"
placeholder=
"请输入备注"
/>
<!-- 弹出框表单 -->
<el-drawer
:title=
"title"
:visible.sync=
"open"
:direction=
"direction"
size=
"50%"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"120px"
>
<el-row>
<el-col
:span=
"22"
>
<el-form-item
label=
"姓名:"
>
<el-select
v-model=
"form.staffId"
style=
"width: 100%;"
>
<el-option
v-for=
"item in staffArr"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option
></el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"22"
>
<el-form-item
label=
"所属部门:"
>
<el-select
v-model=
"form.deptId"
style=
"width: 100%;"
>
<el-option
v-for=
"item in deptArr"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option
></el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"22"
>
<el-form-item
label=
"窗口编号:"
>
<el-input
v-model=
"form.windowNum"
placeholder=
"请输入窗口编号"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"22"
>
<el-form-item
label=
"投诉来源:"
>
<el-select
v-model=
"form.deptId"
style=
"width: 100%;"
placeholder=
"请选择投诉来源"
>
<el-option
v-for=
"item in deptArr"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option
></el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"22"
>
<el-form-item
label=
"投诉设备:"
>
<el-input
v-model=
"form.windowNum"
placeholder=
"请输入投诉设备"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"22"
>
<el-form-item
label=
"投诉标题:"
>
<el-input
v-model=
"form.windowNum"
placeholder=
"请输入投诉标题"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"22"
>
<el-form-item
label=
"投诉内容:"
>
<el-input
v-model=
"form.windowNum"
placeholder=
"请输入投诉内容"
type=
"textarea"
style=
"width: 100%;"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"22"
>
<el-form-item
label=
"真实姓名:"
>
<el-input
v-model=
"form.windowNum"
placeholder=
"请输入真实姓名"
type=
"textarea"
style=
"width: 100%;"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"22"
>
<el-form-item
label=
"联系电话:"
>
<el-input
v-model=
"form.windowNum"
placeholder=
"请输入联系电话"
type=
"textarea"
style=
"width: 100%;"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"22"
>
<el-form-item
label=
"投诉时间:"
>
<el-col
:span=
"11"
>
<el-date-picker
v-model=
"dateValue"
type=
"date"
placeholder=
"选择日期"
style=
"width: 100%;"
>
</el-date-picker>
</el-col>
<el-col
:span=
"11"
>
<el-time-select
v-model=
"timeValue"
:picker-options=
"
{
start: '06:00',
step: '00:15',
end: '18:30',
}"
placeholder="选择时间"
style="width: 100%;margin-left: 10px;"
>
</el-time-select
></el-col>
</el-form-item>
</el-col>
</el-row>
</el-row>
<el-row>
<el-col
:span=
"22"
>
<el-form-item
label=
"图片凭证:"
>
<el-upload
class=
"upload-demo"
action=
"https://jsonplaceholder.typicode.com/posts/"
:on-preview=
"handlePreview"
:on-remove=
"handleRemove"
:before-remove=
"beforeRemove"
multiple
:limit=
"3"
:on-exceed=
"handleExceed"
:file-list=
"fileList"
>
<el-button
size=
"small"
type=
"primary"
>
点击上传
</el-button>
<div
slot=
"tip"
class=
"el-upload__tip"
>
只能上传jpg/png等图片文件
</div>
</el-upload>
</el-form-item>
</el-col>
</el-row>
<form-buttons
@
submit=
'submitForm'
v-if=
"pageInfo.type!='view'"
noCancelBtn
/>
</el-form>
<el-row>
<el-col
:span=
"22"
>
<el-form-item
label=
"绩效规则:"
>
<el-col
:span=
"22"
>
<el-select
v-model=
"form.attendanceGroupId"
style=
"width: 100%;"
>
<el-option
v-for=
"item in kaoqinArr"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option
></el-select>
</el-col>
<el-col
:span=
"22"
>
<el-select
v-model=
"form.attendanceGroupId"
style=
"width: 100%;margin-top: 10px;"
>
<el-option
v-for=
"item in kaoqinArr"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option></el-select
></el-col>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"22"
>
<el-form-item
label=
"扣分分值:"
>
<p>
{{
form
.
score
}}
</p>
</el-form-item>
</el-col>
</el-row>
</el-drawer>
<form-buttons
@
submit=
"submitForm"
v-if=
"pageInfo.type != 'view'"
noCancelBtn
/>
</el-form>
<!--
<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=
"windowNum"
v-model=
"form.windowNum"
placeholder=
"请输入窗口编号"
/>
<Field
label=
"所属部门"
prop=
"deptId"
v-model=
"form.deptId"
placeholder=
"请输入所属部门"
/>
<Field
label=
"所属部门名称"
prop=
"deptName"
v-model=
"form.deptName"
placeholder=
"请输入所属部门名称"
/>
<Field
label=
"投诉标题"
prop=
"complainTitle"
v-model=
"form.complainTitle"
placeholder=
"请输入投诉标题"
/>
<Field
label=
"投诉内容"
><editor
v-model=
"form.complainContent"
:min-height=
"256"
/></Field>
<Field
label=
"投诉人真实姓名"
prop=
"complainRealName"
v-model=
"form.complainRealName"
placeholder=
"请输入投诉人真实姓名"
/>
<Field
label=
"联系电话"
prop=
"contact"
v-model=
"form.contact"
placeholder=
"请输入联系电话"
/>
<Field
label=
"投诉时间"
prop=
"complainTime"
v-model=
"form.complainTime"
type=
"date"
/>
<Field
label=
"投诉来源"
prop=
"complainSource"
v-model=
"form.complainSource"
placeholder=
"请输入投诉来源"
/>
<Field
label=
"投诉设备"
prop=
"complainDevice"
v-model=
"form.complainDevice"
placeholder=
"请输入投诉设备"
/>
<Field
label=
"绩效规则id"
prop=
"ruleId"
v-model=
"form.ruleId"
placeholder=
"请输入绩效规则id"
/>
<Field
label=
"规则名称"
prop=
"ruleName"
v-model=
"form.ruleName"
placeholder=
"请输入规则名称"
/>
<Field
label=
"扣分方式"
prop=
"subMethod"
v-model=
"form.subMethod"
type=
"select"
:enumData=
"dict.subMethod"
placeholder=
"请选择扣分方式"
/>
<Field
label=
"扣分人员"
prop=
"deductPerson"
v-model=
"form.deductPerson"
placeholder=
"请输入扣分人员"
/>
<Field
label=
"扣分时间"
prop=
"deductTime"
v-model=
"form.deductTime"
type=
"date"
/>
<Field
label=
"扣分或增加分值"
prop=
"score"
v-model=
"form.score"
placeholder=
"请输入扣分或增加分值"
/>
<Field
label=
"处理状态"
prop=
"processStatus"
v-model=
"form.processStatus"
type=
"select"
:enumData=
"dict.processStatus"
placeholder=
"请选择处理状态"
/>
<Field
label=
"备注"
prop=
"remark"
v-model=
"form.remark"
type=
"textarea"
placeholder=
"请输入备注"
/>
</el-row>
<form-buttons
@
submit=
"submitForm"
v-if=
"pageInfo.type != 'view'"
noCancelBtn
/>
</el-form>
-->
</el-drawer>
</
template
>
<
script
>
import
form
from
"
@/assets/mixins/formdialog
"
;
export
default
{
name
:
"
PerformComplainRecordDetail
"
,
mixins
:
[
form
],
components
:
{
},
created
()
{
this
.
changePath
(
"
perform/complain/record
"
)
},
data
()
{
return
{
// 遮罩层
loading
:
true
,
// 弹出层标题
title
:
"
评价绩效投诉记录信息
"
,
// 是否显示弹出层
open
:
false
,
direction
:
"
rtl
"
,
toString
:[
"
subMethod
"
,
"
processStatus
"
,
],
toDate
:[
"
complainTime
"
,
"
deductTime
"
,
],
// 表单校验
rules
:
{
staffName
:
[
{
required
:
true
,
message
:
"
请输入员工姓名
"
,
trigger
:
"
blur
"
},
{
max
:
64
,
message
:
"
最多只能录入64个字符
"
,
trigger
:
"
blur
"
,},
],
createTime
:
[
{
required
:
true
,
message
:
"
请选择创建时间
"
},
],
}
};
},
import
form
from
"
@/assets/mixins/formdialog
"
;
export
default
{
name
:
"
PerformComplainRecordDetail
"
,
mixins
:
[
form
],
components
:
{},
created
()
{
this
.
changePath
(
"
perform/complain/record
"
);
},
data
()
{
return
{
// 遮罩层
loading
:
true
,
// 弹出层标题
title
:
"
评价绩效投诉记录信息
"
,
// 是否显示弹出层
open
:
false
,
direction
:
"
rtl
"
,
toString
:
[
"
subMethod
"
,
"
processStatus
"
],
toDate
:
[
"
complainTime
"
,
"
deductTime
"
],
// 表单校验
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
=
"
perform/complain/record/edit
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
edit
"
this
.
title
=
"
修改评价绩效投诉记录信息
"
;
},
/** 新增 */
add
(
row
)
{
this
.
reset
()
this
.
urls
.
currUrl
=
"
perform/complain/record/add
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
add
"
this
.
title
=
"
新增评价绩效投诉记录信息
"
;
},
/** 查看*/
view
(
row
)
{
this
.
reset
()
this
.
query
=
{
id
:
row
.
id
};
this
.
urls
.
currUrl
=
"
perform/complain/record/view
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
view
"
this
.
title
=
"
评价绩效投诉记录信息详细
"
;
},
/**取消按钮 */
cancel
()
{
this
.
open
=
false
;
},
/**获取数据后弹框 */
afterRender
(
data
)
{
this
.
open
=
true
;
},
methods
:
{
/** 编辑 */
edit
(
row
)
{
this
.
reset
();
this
.
query
=
{
id
:
row
.
id
};
this
.
urls
.
currUrl
=
"
perform/complain/record/edit
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
edit
"
;
this
.
title
=
"
修改评价绩效投诉记录信息
"
;
},
/** 新增 */
add
(
row
)
{
this
.
reset
();
this
.
urls
.
currUrl
=
"
perform/complain/record/add
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
add
"
;
this
.
title
=
"
新增评价绩效投诉记录信息
"
;
},
/** 查看*/
view
(
row
)
{
this
.
reset
();
this
.
query
=
{
id
:
row
.
id
};
this
.
urls
.
currUrl
=
"
perform/complain/record/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
"
);
},
afterSubmit
(
data
)
{
this
.
open
=
false
;
this
.
$emit
(
"
ok
"
);
},
// 表单重置
reset
()
{
this
.
form
=
{
staffId
:
null
,
staffName
:
""
,
workNum
:
""
,
windowNum
:
""
,
deptId
:
null
,
deptName
:
""
,
complainTitle
:
""
,
complainContent
:
""
,
complainRealName
:
""
,
contact
:
""
,
complainTime
:
null
,
complainSource
:
""
,
complainDevice
:
""
,
ruleId
:
null
,
ruleName
:
""
,
subMethod
:
1
,
deductPerson
:
""
,
deductTime
:
null
,
score
:
0.0
0
,
processStatus
:
1
,
remark
:
""
,
};
this
.
resetForm
(
"
form
"
);
},
resetForm
(
refName
)
{
if
(
this
.
$refs
[
refName
])
{
this
.
$refs
[
refName
].
resetFields
();
}
},
},
};
// 表单重置
reset
()
{
this
.
form
=
{
staffId
:
null
,
staffName
:
""
,
workNum
:
""
,
windowNum
:
""
,
deptId
:
null
,
deptName
:
""
,
complainTitle
:
""
,
complainContent
:
""
,
complainRealName
:
""
,
contact
:
""
,
complainTime
:
null
,
complainSource
:
""
,
complainDevice
:
""
,
ruleId
:
null
,
ruleName
:
""
,
subMethod
:
1
,
deductPerson
:
""
,
deductTime
:
null
,
score
:
0.
0
,
processStatus
:
1
,
remark
:
""
,
};
this
.
resetForm
(
"
form
"
);
},
resetForm
(
refName
)
{
if
(
this
.
$refs
[
refName
])
{
this
.
$refs
[
refName
].
resetFields
();
}
},
},
};
</
script
>
attendance-performance-manager-ui/admin/src/views/perform/effect/record/drawershow.vue
View file @
1a3dadd2
<
template
>
<!-- 弹出框表单 -->
<el-drawer
:title=
"title"
:visible.sync=
"open"
:direction=
"direction"
size=
"50%"
>
<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=
"windowNum"
v-model=
"form.windowNum"
placeholder=
"请输入窗口编号"
/>
<Field
label=
"所属部门"
prop=
"deptId"
v-model=
"form.deptId"
placeholder=
"请输入所属部门"
/>
<Field
label=
"所属部门名称"
prop=
"deptName"
v-model=
"form.deptName"
placeholder=
"请输入所属部门名称"
/>
<Field
label=
"违规类型"
prop=
"irregularType"
v-model=
"form.irregularType"
type=
"select"
:enumData=
"dict.irregularType"
placeholder=
"请选择违规类型"
/>
<Field
label=
"发生时间"
prop=
"happenTime"
v-model=
"form.happenTime"
type=
"date"
/>
<Field
label=
"持续时间,秒"
prop=
"duration"
v-model=
"form.duration"
placeholder=
"请输入持续时间,秒"
/>
<Field
label=
"报警时间"
prop=
"alarmTime"
v-model=
"form.alarmTime"
type=
"date"
/>
<Field
label=
"图片凭证地址"
prop=
"snapPath"
v-model=
"form.snapPath"
type=
"textarea"
placeholder=
"请输入图片凭证地址"
/>
<Field
label=
"绩效规则id"
prop=
"ruleId"
v-model=
"form.ruleId"
placeholder=
"请输入绩效规则id"
/>
<Field
label=
"规则名称"
prop=
"ruleName"
v-model=
"form.ruleName"
placeholder=
"请输入规则名称"
/>
<Field
label=
"扣分方式"
prop=
"subMethod"
v-model=
"form.subMethod"
type=
"select"
:enumData=
"dict.subMethod"
placeholder=
"请选择扣分方式"
/>
<Field
label=
"扣分人员"
prop=
"deductPerson"
v-model=
"form.deductPerson"
placeholder=
"请输入扣分人员"
/>
<Field
label=
"扣分时间"
prop=
"deductTime"
v-model=
"form.deductTime"
type=
"date"
/>
<Field
label=
"扣分或增加分值"
prop=
"score"
v-model=
"form.score"
placeholder=
"请输入扣分或增加分值"
/>
<Field
label=
"处理状态"
prop=
"processStatus"
v-model=
"form.processStatus"
type=
"select"
:enumData=
"dict.processStatus"
placeholder=
"请选择处理状态"
/>
<Field
label=
"备注"
prop=
"remark"
v-model=
"form.remark"
type=
"textarea"
placeholder=
"请输入备注"
/>
<!-- 弹出框表单 -->
<el-drawer
:title=
"title"
:visible.sync=
"open"
:direction=
"direction"
size=
"50%"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"120px"
>
<el-row>
<el-col
:span=
"22"
>
<el-form-item
label=
"姓名:"
>
<el-select
v-model=
"form.staffId"
style=
"width: 100%;"
>
<el-option
v-for=
"item in staffArr"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option
></el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"22"
>
<el-form-item
label=
"所属部门:"
>
<el-select
v-model=
"form.deptId"
style=
"width: 100%;"
>
<el-option
v-for=
"item in deptArr"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option
></el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"22"
>
<el-form-item
label=
"窗口编号:"
>
<el-input
v-model=
"form.windowNum"
placeholder=
"请输入窗口编号"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"22"
>
<el-form-item
label=
"违规类型:"
>
<el-select
v-model=
"form.goworkDepts"
style=
"width: 100%;"
>
<el-option
v-for=
"item in kaoqinArr"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option
></el-select>
</el-form-item>
</el-col>
</el-row>
</el-row>
<el-row>
<el-col
:span=
"22"
>
<el-form-item
label=
"发生时间:"
>
<el-col
:span=
"11"
>
<el-date-picker
v-model=
"dateValue"
type=
"date"
placeholder=
"选择日期"
style=
"width: 100%;"
>
</el-date-picker>
</el-col>
<el-col
:span=
"11"
>
<el-time-select
v-model=
"timeValue"
:picker-options=
"
{
start: '06:00',
step: '00:15',
end: '18:30',
}"
placeholder="选择时间"
style="width: 100%;margin-left: 10px;"
>
</el-time-select
></el-col>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"22"
>
<el-form-item
label=
"时长:"
>
<el-input
v-model=
"form.windowNum"
placeholder=
"请输入时长(xx分xx秒)"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"22"
>
<el-form-item
label=
"报警时间:"
>
<el-col
:span=
"11"
>
<el-date-picker
v-model=
"dateValue1"
type=
"date"
placeholder=
"选择日期"
style=
"width: 100%;"
>
</el-date-picker>
</el-col>
<el-col
:span=
"11"
>
<el-time-select
v-model=
"timeValue1"
:picker-options=
"
{
start: '06:00',
step: '00:15',
end: '18:30',
}"
placeholder="选择时间"
style="width: 100%;margin-left: 10px;"
>
</el-time-select
></el-col>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"22"
>
<el-form-item
label=
"图片凭证:"
>
<el-upload
class=
"upload-demo"
action=
"https://jsonplaceholder.typicode.com/posts/"
:on-preview=
"handlePreview"
:on-remove=
"handleRemove"
:before-remove=
"beforeRemove"
multiple
:limit=
"3"
:on-exceed=
"handleExceed"
:file-list=
"fileList"
>
<el-button
size=
"small"
type=
"primary"
>
点击上传
</el-button>
<div
slot=
"tip"
class=
"el-upload__tip"
>
只能上传jpg/png等图片文件
</div>
</el-upload>
</el-form-item>
</el-col>
</el-row>
<form-buttons
@
submit=
'submitForm'
v-if=
"pageInfo.type!='view'"
noCancelBtn
/>
</el-form>
<el-row>
<el-col
:span=
"22"
>
<el-form-item
label=
"绩效规则:"
>
<el-col
:span=
"22"
>
<el-select
v-model=
"form.attendanceGroupId"
style=
"width: 100%;"
>
<el-option
v-for=
"item in kaoqinArr"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option
></el-select>
</el-col>
<el-col
:span=
"22"
>
<el-select
v-model=
"form.attendanceGroupId"
style=
"width: 100%;margin-top: 10px;"
>
<el-option
v-for=
"item in kaoqinArr"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option></el-select
></el-col>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"22"
>
<el-form-item
label=
"扣分分值:"
>
<p>
{{
form
.
score
}}
</p>
</el-form-item>
</el-col>
</el-row>
</el-drawer>
<form-buttons
@
submit=
"submitForm"
v-if=
"pageInfo.type != 'view'"
noCancelBtn
/>
</el-form>
<!--
<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=
"windowNum"
v-model=
"form.windowNum"
placeholder=
"请输入窗口编号"
/>
<Field
label=
"所属部门"
prop=
"deptId"
v-model=
"form.deptId"
placeholder=
"请输入所属部门"
/>
<Field
label=
"所属部门名称"
prop=
"deptName"
v-model=
"form.deptName"
placeholder=
"请输入所属部门名称"
/>
<Field
label=
"违规类型"
prop=
"irregularType"
v-model=
"form.irregularType"
type=
"select"
:enumData=
"dict.irregularType"
placeholder=
"请选择违规类型"
/>
<Field
label=
"发生时间"
prop=
"happenTime"
v-model=
"form.happenTime"
type=
"date"
/>
<Field
label=
"持续时间,秒"
prop=
"duration"
v-model=
"form.duration"
placeholder=
"请输入持续时间,秒"
/>
<Field
label=
"报警时间"
prop=
"alarmTime"
v-model=
"form.alarmTime"
type=
"date"
/>
<Field
label=
"图片凭证地址"
prop=
"snapPath"
v-model=
"form.snapPath"
type=
"textarea"
placeholder=
"请输入图片凭证地址"
/>
<Field
label=
"绩效规则id"
prop=
"ruleId"
v-model=
"form.ruleId"
placeholder=
"请输入绩效规则id"
/>
<Field
label=
"规则名称"
prop=
"ruleName"
v-model=
"form.ruleName"
placeholder=
"请输入规则名称"
/>
<Field
label=
"扣分方式"
prop=
"subMethod"
v-model=
"form.subMethod"
type=
"select"
:enumData=
"dict.subMethod"
placeholder=
"请选择扣分方式"
/>
<Field
label=
"扣分人员"
prop=
"deductPerson"
v-model=
"form.deductPerson"
placeholder=
"请输入扣分人员"
/>
<Field
label=
"扣分时间"
prop=
"deductTime"
v-model=
"form.deductTime"
type=
"date"
/>
<Field
label=
"扣分或增加分值"
prop=
"score"
v-model=
"form.score"
placeholder=
"请输入扣分或增加分值"
/>
<Field
label=
"处理状态"
prop=
"processStatus"
v-model=
"form.processStatus"
type=
"select"
:enumData=
"dict.processStatus"
placeholder=
"请选择处理状态"
/>
<Field
label=
"备注"
prop=
"remark"
v-model=
"form.remark"
type=
"textarea"
placeholder=
"请输入备注"
/>
</el-row>
<form-buttons
@
submit=
"submitForm"
v-if=
"pageInfo.type != 'view'"
noCancelBtn
/>
</el-form>
-->
</el-drawer>
</
template
>
<
script
>
import
form
from
"
@/assets/mixins/formdialog
"
;
export
default
{
name
:
"
PerformEffectRecordDetail
"
,
mixins
:
[
form
],
components
:
{
},
created
()
{
this
.
changePath
(
"
perform/effect/record
"
)
},
data
()
{
return
{
// 遮罩层
loading
:
true
,
// 弹出层标题
title
:
"
效能绩效记录信息
"
,
// 是否显示弹出层
open
:
false
,
direction
:
"
rtl
"
,
toString
:[
"
irregularType
"
,
"
subMethod
"
,
"
processStatus
"
,
],
toDate
:[
"
happenTime
"
,
"
alarmTime
"
,
"
deductTime
"
,
],
// 表单校验
rules
:
{
staffName
:
[
{
required
:
true
,
message
:
"
请输入员工姓名
"
,
trigger
:
"
blur
"
},
{
max
:
64
,
message
:
"
最多只能录入64个字符
"
,
trigger
:
"
blur
"
,},
],
createTime
:
[
{
required
:
true
,
message
:
"
请选择创建时间
"
},
],
}
};
import
form
from
"
@/assets/mixins/formdialog
"
;
export
default
{
name
:
"
PerformEffectRecordDetail
"
,
mixins
:
[
form
],
components
:
{},
created
()
{
this
.
changePath
(
"
perform/effect/record
"
);
},
data
()
{
return
{
// 遮罩层
loading
:
true
,
// 弹出层标题
title
:
"
效能绩效记录信息
"
,
// 是否显示弹出层
open
:
false
,
direction
:
"
rtl
"
,
toString
:
[
"
irregularType
"
,
"
subMethod
"
,
"
processStatus
"
],
toDate
:
[
"
happenTime
"
,
"
alarmTime
"
,
"
deductTime
"
],
// 表单校验
rules
:
{
staffName
:
[
{
required
:
true
,
message
:
"
请输入员工姓名
"
,
trigger
:
"
blur
"
},
{
max
:
64
,
message
:
"
最多只能录入64个字符
"
,
trigger
:
"
blur
"
},
],
createTime
:
[{
required
:
true
,
message
:
"
请选择创建时间
"
}],
},
staffArr
:
[
{
label
:
"
员工1
"
,
value
:
"
1
"
,
},
],
deptArr
:
[],
kaoqinArr
:
[],
fileList
:
[],
dateValue
:
""
,
timeValue
:
""
,
dateValue1
:
""
,
timeValue1
:
""
,
};
},
methods
:
{
/** 编辑 */
edit
(
row
)
{
this
.
reset
()
this
.
query
=
{
id
:
row
.
id
};
this
.
urls
.
currUrl
=
"
perform/effect/record/edit
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
edit
"
this
.
title
=
"
修改效能绩效记录信息
"
;
},
/** 新增 */
add
(
row
)
{
this
.
reset
()
this
.
urls
.
currUrl
=
"
perform/effect/record/add
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
add
"
this
.
title
=
"
新增效能绩效记录信息
"
;
},
/** 查看*/
view
(
row
)
{
this
.
reset
()
this
.
query
=
{
id
:
row
.
id
};
this
.
urls
.
currUrl
=
"
perform/effect/record/view
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
view
"
this
.
title
=
"
效能绩效记录信息详细
"
;
},
/**取消按钮 */
cancel
()
{
this
.
open
=
false
;
},
/**获取数据后弹框 */
afterRender
(
data
)
{
this
.
open
=
true
;
},
methods
:
{
/** 编辑 */
edit
(
row
)
{
this
.
reset
();
this
.
query
=
{
id
:
row
.
id
};
this
.
urls
.
currUrl
=
"
perform/effect/record/edit
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
edit
"
;
this
.
title
=
"
修改效能绩效记录信息
"
;
},
/** 新增 */
add
(
row
)
{
this
.
reset
();
this
.
urls
.
currUrl
=
"
perform/effect/record/add
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
add
"
;
this
.
title
=
"
新增效能绩效记录信息
"
;
},
/** 查看*/
view
(
row
)
{
this
.
reset
();
this
.
query
=
{
id
:
row
.
id
};
this
.
urls
.
currUrl
=
"
perform/effect/record/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
"
);
},
afterSubmit
(
data
)
{
this
.
open
=
false
;
this
.
$emit
(
"
ok
"
);
},
// 表单重置
reset
()
{
this
.
form
=
{
staffId
:
null
,
staffName
:
""
,
workNum
:
""
,
windowNum
:
""
,
deptId
:
null
,
deptName
:
""
,
irregularType
:
null
,
happenTime
:
null
,
duration
:
0
,
alarmTime
:
null
,
snapPath
:
""
,
ruleId
:
null
,
ruleName
:
""
,
subMethod
:
1
,
deductPerson
:
""
,
deductTime
:
null
,
score
:
0.0
0
,
processStatus
:
1
,
remark
:
""
,
};
this
.
resetForm
(
"
form
"
);
},
resetForm
(
refName
)
{
if
(
this
.
$refs
[
refName
])
{
this
.
$refs
[
refName
].
resetFields
();
}
},
},
};
// 表单重置
reset
()
{
this
.
form
=
{
staffId
:
null
,
staffName
:
""
,
workNum
:
""
,
windowNum
:
""
,
deptId
:
null
,
deptName
:
""
,
irregularType
:
null
,
happenTime
:
null
,
duration
:
0
,
alarmTime
:
null
,
snapPath
:
""
,
ruleId
:
null
,
ruleName
:
""
,
subMethod
:
1
,
deductPerson
:
""
,
deductTime
:
null
,
score
:
0.
0
,
processStatus
:
1
,
remark
:
""
,
};
this
.
resetForm
(
"
form
"
);
},
resetForm
(
refName
)
{
if
(
this
.
$refs
[
refName
])
{
this
.
$refs
[
refName
].
resetFields
();
}
},
},
};
</
script
>
attendance-performance-manager-ui/admin/src/views/perform/gowork/record/drawershow.vue
View file @
1a3dadd2
...
...
@@ -82,19 +82,6 @@
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"22"
>
<el-form-item
label=
"异常时间:"
>
<el-date-picker
v-model=
"form.errorTime"
type=
"date"
placeholder=
"选择日期"
style=
"width: 100%;"
>
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"22"
>
<el-form-item
label=
"办件时间:"
>
...
...
attendance-performance-manager-ui/admin/src/views/perform/review/record/drawershow.vue
View file @
1a3dadd2
<
template
>
<!-- 弹出框表单 -->
<el-drawer
:title=
"title"
:visible.sync=
"open"
:direction=
"direction"
size=
"50%"
>
<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=
"windowNum"
v-model=
"form.windowNum"
placeholder=
"请输入窗口编号"
/>
<Field
label=
"所属部门"
prop=
"deptId"
v-model=
"form.deptId"
placeholder=
"请输入所属部门"
/>
<Field
label=
"所属部门名称"
prop=
"deptName"
v-model=
"form.deptName"
placeholder=
"请输入所属部门名称"
/>
<Field
label=
"评价结果"
prop=
"reviewResult"
v-model=
"form.reviewResult"
type=
"select"
:enumData=
"dict.reviewResult"
placeholder=
"请选择评价结果"
/>
<Field
label=
"评价时间"
prop=
"reviewTime"
v-model=
"form.reviewTime"
type=
"date"
/>
<Field
label=
"评价来源"
prop=
"reviewSource"
v-model=
"form.reviewSource"
type=
"select"
:enumData=
"dict.reviewSource"
placeholder=
"请选择评价来源"
/>
<Field
label=
"评价设备"
prop=
"reviewDevice"
v-model=
"form.reviewDevice"
placeholder=
"请输入评价设备"
/>
<Field
label=
"绩效规则id"
prop=
"ruleId"
v-model=
"form.ruleId"
placeholder=
"请输入绩效规则id"
/>
<Field
label=
"规则名称"
prop=
"ruleName"
v-model=
"form.ruleName"
placeholder=
"请输入规则名称"
/>
<Field
label=
"扣分方式"
prop=
"subMethod"
v-model=
"form.subMethod"
type=
"select"
:enumData=
"dict.subMethod"
placeholder=
"请选择扣分方式"
/>
<Field
label=
"扣分人员"
prop=
"deductPerson"
v-model=
"form.deductPerson"
placeholder=
"请输入扣分人员"
/>
<Field
label=
"扣分时间"
prop=
"deductTime"
v-model=
"form.deductTime"
type=
"date"
/>
<Field
label=
"扣分或增加分值"
prop=
"score"
v-model=
"form.score"
placeholder=
"请输入扣分或增加分值"
/>
<Field
label=
"处理状态"
prop=
"processStatus"
v-model=
"form.processStatus"
type=
"select"
:enumData=
"dict.processStatus"
placeholder=
"请选择处理状态"
/>
<Field
label=
"备注"
prop=
"remark"
v-model=
"form.remark"
type=
"textarea"
placeholder=
"请输入备注"
/>
<!-- 弹出框表单 -->
<el-drawer
:title=
"title"
:visible.sync=
"open"
:direction=
"direction"
size=
"50%"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"120px"
>
<el-row>
<el-col
:span=
"22"
>
<el-form-item
label=
"姓名:"
>
<el-select
v-model=
"form.staffId"
style=
"width: 100%;"
>
<el-option
v-for=
"item in staffArr"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option
></el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"22"
>
<el-form-item
label=
"所属部门:"
>
<el-select
v-model=
"form.deptId"
style=
"width: 100%;"
>
<el-option
v-for=
"item in deptArr"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option
></el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"22"
>
<el-form-item
label=
"窗口编号:"
>
<el-input
v-model=
"form.windowNum"
placeholder=
"请输入窗口编号"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"22"
>
<el-form-item
label=
"评价结果:"
>
<el-radio-group
v-model=
"form.reviewResult"
>
<el-radio
:label=
"1"
>
非常不满意
</el-radio>
<el-radio
:label=
"2"
>
差评
</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"22"
>
<el-form-item
label=
"评价来源:"
>
<el-select
v-model=
"form.deptId"
style=
"width: 100%;"
placeholder=
"请选择评价来源"
>
<el-option
v-for=
"item in deptArr"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option
></el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"22"
>
<el-form-item
label=
"评价设备:"
>
<el-input
v-model=
"form.windowNum"
placeholder=
"请输入评价设备"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"22"
>
<el-form-item
label=
"评价时间"
>
<el-col
:span=
"11"
>
<el-date-picker
v-model=
"dateValue"
type=
"date"
placeholder=
"选择日期"
style=
"width: 100%;"
>
</el-date-picker>
</el-col>
<el-col
:span=
"11"
>
<el-time-select
v-model=
"timeValue"
:picker-options=
"
{
start: '06:00',
step: '00:15',
end: '18:30',
}"
placeholder="选择时间"
style="width: 100%;margin-left: 10px;"
>
</el-time-select
></el-col>
</el-form-item>
</el-col>
</el-row>
</el-row>
<el-row>
<el-col
:span=
"22"
>
<el-form-item
label=
"图片凭证:"
>
<el-upload
class=
"upload-demo"
action=
"https://jsonplaceholder.typicode.com/posts/"
:on-preview=
"handlePreview"
:on-remove=
"handleRemove"
:before-remove=
"beforeRemove"
multiple
:limit=
"3"
:on-exceed=
"handleExceed"
:file-list=
"fileList"
>
<el-button
size=
"small"
type=
"primary"
>
点击上传
</el-button>
<div
slot=
"tip"
class=
"el-upload__tip"
>
只能上传jpg/png等图片文件
</div>
</el-upload>
</el-form-item>
</el-col>
</el-row>
<form-buttons
@
submit=
'submitForm'
v-if=
"pageInfo.type!='view'"
noCancelBtn
/>
</el-form>
<el-row>
<el-col
:span=
"22"
>
<el-form-item
label=
"绩效规则:"
>
<el-col
:span=
"22"
>
<el-select
v-model=
"form.attendanceGroupId"
style=
"width: 100%;"
>
<el-option
v-for=
"item in kaoqinArr"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option
></el-select>
</el-col>
<el-col
:span=
"22"
>
<el-select
v-model=
"form.attendanceGroupId"
style=
"width: 100%;margin-top: 10px;"
>
<el-option
v-for=
"item in kaoqinArr"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option></el-select
></el-col>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"22"
>
<el-form-item
label=
"扣分分值:"
>
<p>
{{
form
.
score
}}
</p>
</el-form-item>
</el-col>
</el-row>
</el-drawer>
<form-buttons
@
submit=
"submitForm"
v-if=
"pageInfo.type != 'view'"
noCancelBtn
/>
</el-form>
<!--
<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=
"windowNum"
v-model=
"form.windowNum"
placeholder=
"请输入窗口编号"
/>
<Field
label=
"所属部门"
prop=
"deptId"
v-model=
"form.deptId"
placeholder=
"请输入所属部门"
/>
<Field
label=
"所属部门名称"
prop=
"deptName"
v-model=
"form.deptName"
placeholder=
"请输入所属部门名称"
/>
<Field
label=
"评价结果"
prop=
"reviewResult"
v-model=
"form.reviewResult"
type=
"select"
:enumData=
"dict.reviewResult"
placeholder=
"请选择评价结果"
/>
<Field
label=
"评价时间"
prop=
"reviewTime"
v-model=
"form.reviewTime"
type=
"date"
/>
<Field
label=
"评价来源"
prop=
"reviewSource"
v-model=
"form.reviewSource"
type=
"select"
:enumData=
"dict.reviewSource"
placeholder=
"请选择评价来源"
/>
<Field
label=
"评价设备"
prop=
"reviewDevice"
v-model=
"form.reviewDevice"
placeholder=
"请输入评价设备"
/>
<Field
label=
"绩效规则id"
prop=
"ruleId"
v-model=
"form.ruleId"
placeholder=
"请输入绩效规则id"
/>
<Field
label=
"规则名称"
prop=
"ruleName"
v-model=
"form.ruleName"
placeholder=
"请输入规则名称"
/>
<Field
label=
"扣分方式"
prop=
"subMethod"
v-model=
"form.subMethod"
type=
"select"
:enumData=
"dict.subMethod"
placeholder=
"请选择扣分方式"
/>
<Field
label=
"扣分人员"
prop=
"deductPerson"
v-model=
"form.deductPerson"
placeholder=
"请输入扣分人员"
/>
<Field
label=
"扣分时间"
prop=
"deductTime"
v-model=
"form.deductTime"
type=
"date"
/>
<Field
label=
"扣分或增加分值"
prop=
"score"
v-model=
"form.score"
placeholder=
"请输入扣分或增加分值"
/>
<Field
label=
"处理状态"
prop=
"processStatus"
v-model=
"form.processStatus"
type=
"select"
:enumData=
"dict.processStatus"
placeholder=
"请选择处理状态"
/>
<Field
label=
"备注"
prop=
"remark"
v-model=
"form.remark"
type=
"textarea"
placeholder=
"请输入备注"
/>
</el-row>
<form-buttons
@
submit=
"submitForm"
v-if=
"pageInfo.type != 'view'"
noCancelBtn
/>
</el-form>
-->
</el-drawer>
</
template
>
<
script
>
import
form
from
"
@/assets/mixins/formdialog
"
;
export
default
{
name
:
"
PerformReviewRecordDetail
"
,
mixins
:
[
form
],
components
:
{
},
created
()
{
this
.
changePath
(
"
perform/review/record
"
)
},
data
()
{
return
{
// 遮罩层
loading
:
true
,
// 弹出层标题
title
:
"
评价差评绩效记录信息
"
,
// 是否显示弹出层
open
:
false
,
direction
:
"
rtl
"
,
toString
:[
"
reviewResult
"
,
"
subMethod
"
,
"
processStatus
"
,
],
toDate
:[
"
reviewTime
"
,
"
deductTime
"
,
],
// 表单校验
rules
:
{
staffName
:
[
{
required
:
true
,
message
:
"
请输入员工姓名
"
,
trigger
:
"
blur
"
},
{
max
:
64
,
message
:
"
最多只能录入64个字符
"
,
trigger
:
"
blur
"
,},
],
createTime
:
[
{
required
:
true
,
message
:
"
请选择创建时间
"
},
],
}
};
import
form
from
"
@/assets/mixins/formdialog
"
;
export
default
{
name
:
"
PerformReviewRecordDetail
"
,
mixins
:
[
form
],
components
:
{},
created
()
{
this
.
changePath
(
"
perform/review/record
"
);
},
data
()
{
return
{
// 遮罩层
loading
:
true
,
// 弹出层标题
title
:
"
评价差评绩效记录信息
"
,
// 是否显示弹出层
open
:
false
,
direction
:
"
rtl
"
,
toString
:
[
"
reviewResult
"
,
"
subMethod
"
,
"
processStatus
"
],
toDate
:
[
"
reviewTime
"
,
"
deductTime
"
],
// 表单校验
rules
:
{
staffName
:
[
{
required
:
true
,
message
:
"
请输入员工姓名
"
,
trigger
:
"
blur
"
},
{
max
:
64
,
message
:
"
最多只能录入64个字符
"
,
trigger
:
"
blur
"
},
],
createTime
:
[{
required
:
true
,
message
:
"
请选择创建时间
"
}],
},
staffArr
:
[
{
label
:
"
员工1
"
,
value
:
"
1
"
,
},
],
deptArr
:
[],
kaoqinArr
:
[],
fileList
:
[],
dateValue
:
""
,
timeValue
:
""
,
};
},
methods
:
{
/** 编辑 */
edit
(
row
)
{
this
.
reset
()
this
.
query
=
{
id
:
row
.
id
};
this
.
urls
.
currUrl
=
"
perform/review/record/edit
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
edit
"
this
.
title
=
"
修改评价差评绩效记录信息
"
;
},
/** 新增 */
add
(
row
)
{
this
.
reset
()
this
.
urls
.
currUrl
=
"
perform/review/record/add
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
add
"
this
.
title
=
"
新增评价差评绩效记录信息
"
;
},
/** 查看*/
view
(
row
)
{
this
.
reset
()
this
.
query
=
{
id
:
row
.
id
};
this
.
urls
.
currUrl
=
"
perform/review/record/view
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
view
"
this
.
title
=
"
评价差评绩效记录信息详细
"
;
},
/**取消按钮 */
cancel
()
{
this
.
open
=
false
;
},
/**获取数据后弹框 */
afterRender
(
data
)
{
this
.
open
=
true
;
},
methods
:
{
/** 编辑 */
edit
(
row
)
{
this
.
reset
();
this
.
query
=
{
id
:
row
.
id
};
this
.
urls
.
currUrl
=
"
perform/review/record/edit
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
edit
"
;
this
.
title
=
"
修改评价差评绩效记录信息
"
;
},
/** 新增 */
add
(
row
)
{
this
.
reset
();
this
.
urls
.
currUrl
=
"
perform/review/record/add
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
add
"
;
this
.
title
=
"
新增评价差评绩效记录信息
"
;
},
/** 查看*/
view
(
row
)
{
this
.
reset
();
this
.
query
=
{
id
:
row
.
id
};
this
.
urls
.
currUrl
=
"
perform/review/record/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
"
);
},
afterSubmit
(
data
)
{
this
.
open
=
false
;
this
.
$emit
(
"
ok
"
);
},
// 表单重置
reset
()
{
this
.
form
=
{
staffId
:
null
,
staffName
:
""
,
workNum
:
""
,
windowNum
:
""
,
deptId
:
null
,
deptName
:
""
,
reviewResult
:
null
,
reviewTime
:
null
,
reviewSource
:
""
,
reviewDevice
:
""
,
ruleId
:
null
,
ruleName
:
""
,
subMethod
:
1
,
deductPerson
:
""
,
deductTime
:
null
,
score
:
0.00
,
processStatus
:
1
,
remark
:
""
,
};
this
.
resetForm
(
"
form
"
);
},
resetForm
(
refName
)
{
if
(
this
.
$refs
[
refName
])
{
this
.
$refs
[
refName
].
resetFields
();
}
},
},
};
// 表单重置
reset
()
{
this
.
form
=
{
staffId
:
null
,
staffName
:
""
,
workNum
:
""
,
windowNum
:
""
,
deptId
:
null
,
deptName
:
""
,
reviewResult
:
null
,
reviewTime
:
null
,
reviewSource
:
""
,
reviewDevice
:
""
,
ruleId
:
null
,
ruleName
:
""
,
subMethod
:
1
,
deductPerson
:
""
,
deductTime
:
null
,
score
:
0.0
,
processStatus
:
1
,
remark
:
""
,
};
this
.
resetForm
(
"
form
"
);
},
resetForm
(
refName
)
{
if
(
this
.
$refs
[
refName
])
{
this
.
$refs
[
refName
].
resetFields
();
}
},
handleRemove
(
file
,
fileList
)
{
console
.
log
(
file
,
fileList
);
},
handlePreview
(
file
)
{
console
.
log
(
file
);
},
handleExceed
(
files
,
fileList
)
{
this
.
$message
.
warning
(
`当前限制选择 3 个文件,本次选择了
${
files
.
length
}
个文件,共选择了
${
files
.
length
+
fileList
.
length
}
个文件`
);
},
beforeRemove
(
file
,
fileList
)
{
return
this
.
$confirm
(
`确定移除
${
file
.
name
}
?`
);
},
},
};
</
script
>
attendance-performance-manager-ui/admin/src/views/perform/review/record/list(原
评价
绩效管理).vue
→
attendance-performance-manager-ui/admin/src/views/perform/review/record/list(原
差评
绩效管理).vue
View file @
1a3dadd2
File moved
attendance-performance-manager/src/main/java/com/mortals/xhx/base/system/role/service/RoleUserService.java
View file @
1a3dadd2
...
...
@@ -27,4 +27,11 @@ public interface RoleUserService extends ICRUDService<RoleUserEntity,Long> {
void
doDistributionUser
(
RoleUserQuery
query
);
void
doDistributionRole
(
RoleUserQuery
query
);
/**
* 给用户分配角色
* @param query
*/
void
assignRoleToUser
(
RoleUserQuery
query
);
}
\ No newline at end of file
attendance-performance-manager/src/main/java/com/mortals/xhx/base/system/role/service/impl/RoleUserServiceImpl.java
View file @
1a3dadd2
...
...
@@ -70,6 +70,26 @@ public class RoleUserServiceImpl extends AbstractCRUDServiceImpl<RoleUserDao,Rol
this
.
dao
.
insertBatch
(
list
);
}
@Override
public
void
assignRoleToUser
(
RoleUserQuery
query
)
{
//删除当前用户所有关联角色
Long
userId
=
query
.
getUserId
();
Map
<
String
,
Object
>
condition
=
new
HashMap
<>(
1
);
condition
.
put
(
"userId"
,
userId
);
dao
.
delete
(
condition
);
//新增用户角色
List
<
Long
>
roleIdList
=
query
.
getRoleIdList
();
List
<
RoleUserEntity
>
list
=
new
ArrayList
<>();
for
(
Long
roleId
:
roleIdList
)
{
RoleUserEntity
rolseUser
=
new
RoleUserEntity
();
rolseUser
.
setRoleId
(
roleId
);
rolseUser
.
setUserId
(
userId
);
list
.
add
(
rolseUser
);
}
this
.
save
(
list
);
}
}
\ No newline at end of file
attendance-performance-manager/src/main/java/com/mortals/xhx/base/system/task/service/impl/TaskServiceImpl.java
View file @
1a3dadd2
...
...
@@ -4,6 +4,7 @@
package
com.mortals.xhx.base.system.task.service.impl
;
import
cn.hutool.core.net.NetUtil
;
import
com.mortals.framework.ap.GlobalSysInfo
;
import
com.mortals.framework.common.code.ExcuteStatus
;
import
com.mortals.framework.common.code.TaskExcuteStrategy
;
...
...
@@ -148,7 +149,8 @@ public class TaskServiceImpl extends AbstractCRUDServiceImpl<TaskDao, TaskEntity
@Override
public
void
start
()
throws
AppException
{
final
String
localIp
=
SystemUtil
.
getLocalHostIp
();
// final String localIp = SystemUtil.getLocalHostIp();
final
String
localIp
=
NetUtil
.
getLocalhostStr
();
log
.
info
(
"任务执行线程启动...-->"
+
localIp
);
thread
=
new
Thread
(()
->
{
// 将本机上次执行而未完成的任务状态变更
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/base/system/user/model/UserEntity.java
View file @
1a3dadd2
...
...
@@ -48,7 +48,7 @@ public class UserEntity extends UserVo implements IUser {
*/
private
String
qq
;
/**
* 用户类型(0.系统用户,1.普通用户,2.工作人员)
* 用户类型(0.系统用户,1.普通用户,2.工作人员
,3.普通员工
)
*/
private
Integer
userType
;
...
...
@@ -232,7 +232,7 @@ public class UserEntity extends UserVo implements IUser {
this
.
qq
=
qq
;
}
/**
* 获取 用户类型(0.系统用户,1.普通用户,2.工作人员)
* 获取 用户类型(0.系统用户,1.普通用户,2.工作人员
,3.普通员工
)
* @return Integer
*/
public
Integer
getUserType
(){
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/web/ApiLoginController.java
View file @
1a3dadd2
...
...
@@ -6,6 +6,7 @@ import com.mortals.framework.ap.CookieService;
import
com.mortals.framework.ap.GlobalSysInfo
;
import
com.mortals.framework.ap.SysConstains
;
import
com.mortals.framework.common.Rest
;
import
com.mortals.framework.exception.AppException
;
import
com.mortals.framework.service.IAuthTokenService
;
import
com.mortals.framework.service.ICacheService
;
import
com.mortals.framework.service.IUser
;
...
...
@@ -32,6 +33,8 @@ import org.springframework.web.bind.annotation.RestController;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.util.HashMap
;
import
java.util.HashSet
;
import
java.util.List
;
import
java.util.Set
;
...
...
@@ -46,34 +49,12 @@ public class ApiLoginController extends BaseJsonBodyController {
@Autowired
private
UserService
userService
;
@Autowired
private
ValidCodeService
validCodeService
;
@Autowired
private
ResourceService
resourceService
;
@Autowired
private
MenuService
menuService
;
// @Autowired
// private ITokenService tokenService;
@Autowired
private
ICacheService
cacheService
;
@Autowired
private
IAuthTokenService
authTokenService
;
@RequestMapping
(
"login"
)
public
String
login
(
@RequestBody
LoginForm
loginForm
)
throws
Exception
{
/*
JSONObject ret = new JSONObject();
String loginName = loginForm.getLoginName();
String password = loginForm.getPassword();
UserPdu userPdu = new UserPdu();
userPdu.setLoginName(loginName);
userPdu.setPassword(password);
String resp = userFeign.portalLogin(userPdu);
return resp;
*/
JSONObject
ret
=
new
JSONObject
();
String
loginName
=
loginForm
.
getLoginName
();
String
password
=
loginForm
.
getPassword
();
...
...
@@ -88,42 +69,35 @@ public class ApiLoginController extends BaseJsonBodyController {
loginForm
.
validate
();
userEntity
=
userService
.
doLogin
(
loginName
,
password
,
ip
);
userEntity
.
setLastLoginAddress
(
ip
);
recordSysLog
(
request
,
userEntity
,
"用户登录系统成功!"
);
// 返回拥有的菜单数据
Set
<
String
>
urls
=
resourceService
.
findUrlSetByUserId
(
userEntity
.
getId
());
List
<
MenuEntity
>
outlookBarList
=
menuService
.
findTreeMenu
(
userEntity
,
urls
);
recordSysLog
(
request
,
userEntity
,
"H5用户登录系统成功!"
);
String
currUserName
=
userEntity
.
getRealName
();
if
(
currUserName
==
null
||
currUserName
.
trim
().
length
()
==
0
)
{
currUserName
=
"管理员"
;
}
JSONObject
data
=
new
JSONObject
();
data
.
put
(
"currUserName"
,
currUserName
);
data
.
put
(
"barList"
,
outlookBarList
);
data
.
put
(
"id"
,
userEntity
.
getId
());
data
.
put
(
"userType"
,
userEntity
.
getUserType
());
HashSet
<
Integer
>
set
=
new
HashSet
<>();
set
.
add
(
1
);
set
.
add
(
2
);
if
(
ObjectUtils
.
isEmpty
(
userEntity
.
getUserType
())
||
!
set
.
contains
(
userEntity
.
getUserType
()))
{
throw
new
AppException
(
"当前用户不支持H5登录!"
);
}
userEntity
.
setLoginTime
(
System
.
currentTimeMillis
());
userEntity
.
setToken
(
IdUtil
.
fastSimpleUUID
());
userEntity
.
setExpireTime
(
DateUtils
.
addCurrDate
(
7
).
getTime
());
userEntity
.
setMenuUrl
(
generateMenuUrlCode
(
urls
));
String
token
=
authTokenService
.
createToken
(
userEntity
);
data
.
put
(
"token"
,
token
);
//设置token 和过期时间
//data.put("expiresTime", DateUtils.addCurrDate(7).getTime());
generateMenuUrlCode
(
urls
);
//this.generateBlackCookie(request, response, loginName, urls);
ret
.
put
(
KEY_RESULT_DATA
,
data
);
ret
.
put
(
KEY_RESULT_CODE
,
VALUE_RESULT_SUCCESS
);
ret
.
put
(
KEY_RESULT_MSG
,
"用户登录系统成功!"
);
ret
.
put
(
"resources"
,
urls
);
return
ret
.
toJSONString
();
}
catch
(
Exception
e
)
{
log
.
error
(
"login error "
,
e
);
if
(
userEntity
==
null
)
{
userEntity
=
new
UserEntity
();
userEntity
.
setLoginName
(
loginName
);
}
log
.
error
(
"h5 login error "
,
e
);
ret
.
put
(
KEY_RESULT_CODE
,
VALUE_RESULT_FAILURE
);
ret
.
put
(
KEY_RESULT_MSG
,
super
.
convertException
(
e
));
return
ret
.
toJSONString
();
...
...
@@ -136,78 +110,6 @@ public class ApiLoginController extends BaseJsonBodyController {
super
.
removeCurrUser
(
request
);
}
@RequestMapping
(
"index"
)
public
String
index
()
throws
Exception
{
JSONObject
ret
=
new
JSONObject
();
IUser
user
=
this
.
getCurUser
();
if
(
user
==
null
)
{
return
JSONObject
.
toJSONString
(
Rest
.
fail
(
ERROR_TOKEN_EXPIRED
,
ERROR_TOKEN_EXPIRED_CONTENT
));
}
Set
<
String
>
urls
=
resourceService
.
findUrlSetByUserId
(
user
.
getId
());
List
<
MenuEntity
>
outlookBarList
=
menuService
.
findTreeMenu
(
user
,
urls
);
String
currUserName
=
user
.
getRealName
();
if
(
currUserName
==
null
||
currUserName
.
trim
().
length
()
==
0
)
{
currUserName
=
"管理员"
;
}
JSONObject
data
=
new
JSONObject
();
String
token
=
authTokenService
.
getToken
(
request
);
data
.
put
(
"token"
,
token
);
data
.
put
(
"currUserName"
,
currUserName
);
data
.
put
(
"barList"
,
outlookBarList
);
data
.
put
(
"id"
,
user
.
getId
());
data
.
put
(
"userType"
,
user
.
getUserType
());
ret
.
put
(
KEY_RESULT_DATA
,
data
);
//this.generateBlackCookie(request, response, user.getLoginName(), urls);
ret
.
put
(
KEY_RESULT_CODE
,
VALUE_RESULT_SUCCESS
);
ret
.
put
(
KEY_RESULT_MSG
,
"用户登录系统成功!"
);
ret
.
put
(
"resources"
,
urls
);
return
ret
.
toJSONString
();
}
private
void
generateBlackCookie
(
HttpServletRequest
request
,
HttpServletResponse
response
,
String
loginName
,
Set
<
String
>
urls
)
{
try
{
String
cacheKey
=
RedisKey
.
KEY_MENU_CACHE
+
loginName
;
String
securityKey
=
GlobalSysInfo
.
getPropertyValue
(
SysConstains
.
PROP_COOKIE_SECURITY_KEY
);
//应为Cookie会超长,所以改为仅存储key将值放入redis
//CookieService.setCookieForAuth(request, response, securityKey, null);
StringBuilder
sb
=
new
StringBuilder
();
if
(
urls
!=
null
&&
urls
.
size
()
>
0
)
{
for
(
String
url
:
urls
)
{
int
index
=
url
.
hashCode
()
&
(
Integer
.
MAX_VALUE
-
1
);
sb
.
append
(
index
).
append
(
","
);
}
}
String
menuUrl
=
sb
.
toString
();
menuUrl
=
AESUtil
.
encrypt
(
menuUrl
,
securityKey
);
cacheService
.
set
(
cacheKey
,
menuUrl
,
604800
);
HttpUtil
.
setCookieValue
(
request
,
response
,
SysConstains
.
COOKIE_MENU
,
cacheKey
,
-
1
);
}
catch
(
Throwable
e
)
{
}
}
private
String
generateMenuUrlCode
(
Set
<
String
>
urls
)
{
try
{
String
securityKey
=
GlobalSysInfo
.
getPropertyValue
(
SysConstains
.
PROP_COOKIE_SECURITY_KEY
);
StringBuilder
sb
=
new
StringBuilder
();
if
(
urls
!=
null
&&
urls
.
size
()
>
0
)
{
for
(
String
url
:
urls
)
{
int
index
=
url
.
hashCode
()
&
(
Integer
.
MAX_VALUE
-
1
);
sb
.
append
(
index
).
append
(
","
);
}
}
String
menuUrl
=
sb
.
toString
();
return
AESUtil
.
encrypt
(
menuUrl
,
securityKey
);
}
catch
(
Throwable
e
)
{
log
.
error
(
"编码异常"
,
e
);
return
null
;
}
}
@RequestMapping
(
"parseToken"
)
public
IUser
parseToken
()
throws
Exception
{
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/web/AppealApiController.java
View file @
1a3dadd2
...
...
@@ -55,7 +55,7 @@ public class AppealApiController extends BaseJsonBodyController {
/**
* 个人申诉绩效统计
*/
@PostMapping
(
value
=
"
appeal/
stat"
)
@PostMapping
(
value
=
"stat"
)
public
Rest
<
AppealStatInfo
>
appealStat
()
{
String
busiDesc
=
"H5个人申诉绩效统计"
;
Rest
<
AppealStatInfo
>
rest
=
Rest
.
ok
(
busiDesc
+
" 【成功】"
);
...
...
@@ -72,7 +72,7 @@ public class AppealApiController extends BaseJsonBodyController {
/**
* 申诉列表
*/
@PostMapping
(
value
=
"
appeal/
list"
)
@PostMapping
(
value
=
"list"
)
public
Rest
<
List
<
PerformAttendAppealEntity
>>
performList
(
@RequestBody
AppealReq
appealReq
)
{
String
busiDesc
=
"个人申诉列表"
;
Rest
<
List
<
PerformAttendAppealEntity
>>
rest
=
Rest
.
ok
(
busiDesc
+
" 【成功】"
);
...
...
@@ -95,8 +95,8 @@ public class AppealApiController extends BaseJsonBodyController {
/**
* 申诉详细
*/
@PostMapping
(
value
=
"
appeal/detail
"
)
public
Rest
<
PerformAttendAppealEntity
>
perform
Detail
(
@RequestBody
AppealReq
appealReq
)
{
@PostMapping
(
value
=
"
info
"
)
public
Rest
<
PerformAttendAppealEntity
>
perform
Info
(
@RequestBody
AppealReq
appealReq
)
{
String
busiDesc
=
"个人申诉详细"
;
Rest
<
PerformAttendAppealEntity
>
rest
=
Rest
.
ok
(
busiDesc
+
" 【成功】"
);
try
{
...
...
@@ -116,7 +116,7 @@ public class AppealApiController extends BaseJsonBodyController {
/**
* 申诉新增
*/
@PostMapping
(
value
=
"
appeal/
save"
)
@PostMapping
(
value
=
"save"
)
public
Rest
<
String
>
appealSave
(
@RequestBody
PerformAttendAppealEntity
appealEntity
)
{
String
busiDesc
=
"个人申诉新增"
;
Rest
<
String
>
rest
=
Rest
.
ok
(
busiDesc
+
" 【成功】"
);
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/web/FeedbackApiController.java
View file @
1a3dadd2
...
...
@@ -48,7 +48,7 @@ public class FeedbackApiController extends BaseJsonBodyController {
/**
* 反馈列表
*/
@PostMapping
(
value
=
"
feedback/
list"
)
@PostMapping
(
value
=
"list"
)
public
Rest
<
List
<
PerformAttendAppealEntity
>>
feedbackList
(
@RequestBody
FeedbackReq
feedbackReq
)
{
String
busiDesc
=
"个人反馈列表"
;
Rest
<
List
<
PerformAttendAppealEntity
>>
rest
=
Rest
.
ok
(
busiDesc
+
" 【成功】"
);
...
...
@@ -71,7 +71,7 @@ public class FeedbackApiController extends BaseJsonBodyController {
/**
* 反馈详细
*/
@PostMapping
(
value
=
"
feedback/
question"
)
@PostMapping
(
value
=
"question"
)
public
Rest
<
PerformAttendAppealEntity
>
performDetail
(
@RequestBody
AppealReq
appealReq
)
{
String
busiDesc
=
"个人申诉详细"
;
Rest
<
PerformAttendAppealEntity
>
rest
=
Rest
.
ok
(
busiDesc
+
" 【成功】"
);
...
...
@@ -92,9 +92,9 @@ public class FeedbackApiController extends BaseJsonBodyController {
/**
* 申诉新增
*/
@PostMapping
(
value
=
"
appeal/
save"
)
public
Rest
<
String
>
appeal
Save
(
@RequestBody
PerformAttendAppealEntity
appealEntity
)
{
String
busiDesc
=
"
个人申诉新增
"
;
@PostMapping
(
value
=
"save"
)
public
Rest
<
String
>
feedback
Save
(
@RequestBody
PerformAttendAppealEntity
appealEntity
)
{
String
busiDesc
=
"
反馈回答
"
;
Rest
<
String
>
rest
=
Rest
.
ok
(
busiDesc
+
" 【成功】"
);
try
{
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/web/PerformApiController.java
View file @
1a3dadd2
...
...
@@ -47,7 +47,7 @@ public class PerformApiController extends BaseJsonBodyController {
/**
* 个人当天绩效统计
*/
@PostMapping
(
value
=
"
perform/
stat"
)
@PostMapping
(
value
=
"stat"
)
public
Rest
<
PerformStatInfo
>
performStat
()
{
String
busiDesc
=
"H5 个人绩效统计"
;
Rest
<
PerformStatInfo
>
rest
=
Rest
.
ok
(
busiDesc
+
" 【成功】"
);
...
...
@@ -65,7 +65,7 @@ public class PerformApiController extends BaseJsonBodyController {
/**
* 个人当月绩效加分扣分列表
*/
@PostMapping
(
value
=
"
perform/
list"
)
@PostMapping
(
value
=
"list"
)
public
Rest
<
List
<
PerformInfo
>>
performList
(
@RequestBody
PerformReq
performReq
)
{
String
busiDesc
=
"个人绩效列表"
;
Rest
<
List
<
PerformInfo
>>
rest
=
Rest
.
ok
(
busiDesc
+
" 【成功】"
);
...
...
@@ -107,7 +107,7 @@ public class PerformApiController extends BaseJsonBodyController {
/**
* 详细
*/
@PostMapping
(
value
=
"
perform/
info"
)
@PostMapping
(
value
=
"info"
)
public
Rest
<
PerformDetailInfo
>
performInfo
(
@RequestBody
PerformReq
performReq
)
{
String
busiDesc
=
"个人绩效增减详细"
;
Rest
<
PerformDetailInfo
>
rest
=
Rest
.
ok
(
busiDesc
+
" 【成功】"
);
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/daemon/task/SyncDoorsEventTaskImpl.java
View file @
1a3dadd2
...
...
@@ -2,6 +2,7 @@ package com.mortals.xhx.daemon.task;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.util.PageUtil
;
import
cn.hutool.core.util.StrUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.mortals.framework.common.Rest
;
...
...
@@ -115,7 +116,7 @@ public class SyncDoorsEventTaskImpl implements ITaskExcuteService {
List
<
AttendanceRecordHikEntity
>
attRecords
=
doorEventsRest
.
getData
().
getList
().
stream
().
map
(
item
->
{
AttendanceRecordHikEntity
recordHikEntity
=
new
AttendanceRecordHikEntity
();
recordHikEntity
.
initAttrValue
();
StaffEntity
staffCache
=
staffService
.
getExtCache
(
item
.
getJobNo
(
));
StaffEntity
staffCache
=
staffService
.
getExtCache
(
StrUtil
.
padPre
(
item
.
getJobNo
(),
8
,
"0"
));
if
(
ObjectUtils
.
isEmpty
(
staffCache
))
{
log
.
info
(
"staff is null !staffCode:{}"
,
item
.
getJobNo
());
return
null
;
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/daemon/task/SyncUserTaskImpl.java
View file @
1a3dadd2
package
com.mortals.xhx.daemon.task
;
import
cn.hutool.core.util.StrUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.mortals.framework.common.Rest
;
...
...
@@ -57,8 +58,6 @@ public class SyncUserTaskImpl implements ITaskExcuteService {
@Autowired
private
DeptService
deptService
;
@Autowired
private
StaffService
service
;
@Autowired
private
AttendanceStatService
attendanceStatService
;
...
...
@@ -70,12 +69,11 @@ public class SyncUserTaskImpl implements ITaskExcuteService {
@Override
public
void
excuteTask
(
ITask
task
)
throws
AppException
{
log
.
info
(
"同步用户--部门"
);
try
{
//同步部门
syncDepts
();
//同步员工
log
.
info
(
"同步用户"
);
syncPersons
();
log
.
info
(
"同步部门"
);
syncDepts
();
}
catch
(
Exception
e
)
{
log
.
error
(
"同步人事异常"
,
e
);
}
...
...
@@ -89,7 +87,7 @@ public class SyncUserTaskImpl implements ITaskExcuteService {
if
(
personRest
.
getCode
()
==
YesNoEnum
.
YES
.
getValue
())
{
List
<
PersonInfo
>
personInfoList
=
personRest
.
getData
().
getList
();
for
(
PersonInfo
personInfo
:
personInfoList
)
{
StaffEntity
staffEntity
=
staffService
.
getExtCache
(
personInfo
.
getJobNo
(
));
StaffEntity
staffEntity
=
staffService
.
getExtCache
(
StrUtil
.
padPre
(
personInfo
.
getJobNo
(),
8
,
"0"
));
DeptEntity
deptEntity
=
deptService
.
selectOne
(
new
DeptQuery
().
deptCode
(
personInfo
.
getOrgIndexCode
()));
// AttendanceVacationBalanceEntity balanceEntity = balanceService.selectOne(new AttendanceVacationBalanceQuery().staffId(staffEntity.getId()));
// AttendanceStatEntity statEntity = attendanceStatService.selectOne(new AttendanceStatQuery().staffId(staffEntity.getId()));
...
...
@@ -111,7 +109,7 @@ public class SyncUserTaskImpl implements ITaskExcuteService {
staffEntity
.
setPhoneNumber
(
personInfo
.
getPhoneNo
());
staffEntity
.
setCreateUserId
(
1L
);
staffEntity
.
setCreateTime
(
new
Date
());
service
.
save
(
staffEntity
);
s
taffS
ervice
.
save
(
staffEntity
);
AttendanceVacationBalanceEntity
balanceEntity
=
new
AttendanceVacationBalanceEntity
();
balanceEntity
.
initAttrValue
();
...
...
@@ -181,7 +179,7 @@ public class SyncUserTaskImpl implements ITaskExcuteService {
staffEntity
.
setPhoneNumber
(
personInfo
.
getPhoneNo
());
staffEntity
.
setUpdateUserId
(
1L
);
staffEntity
.
setUpdateTime
(
new
Date
());
service
.
update
(
staffEntity
);
s
taffS
ervice
.
update
(
staffEntity
);
//统计各级部门员工数量
String
ancestor
=
deptEntity
.
getAncestors
().
split
(
","
,
2
)[
1
];
String
[]
ancestors
=
ancestor
.
split
(
","
);
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/service/impl/StaffServiceImpl.java
View file @
1a3dadd2
package
com.mortals.xhx.module.staff.service.impl
;
import
cn.hutool.core.util.StrUtil
;
import
com.mortals.framework.exception.AppException
;
import
com.mortals.framework.model.Context
;
import
com.mortals.framework.service.impl.AbstractCRUDCacheServiceImpl
;
import
com.mortals.framework.util.SecurityUtil
;
import
com.mortals.xhx.base.system.role.model.RoleUserQuery
;
import
com.mortals.xhx.base.system.role.service.RoleUserService
;
import
com.mortals.xhx.base.system.user.model.UserEntity
;
import
com.mortals.xhx.base.system.user.service.UserService
;
import
com.mortals.xhx.common.code.StaffSatusEnum
;
import
com.mortals.xhx.common.code.StaffTypeEnum
;
import
com.mortals.xhx.common.code.StatusEnum
;
import
com.mortals.xhx.common.code.UserStatus
;
import
com.mortals.xhx.module.staff.dao.StaffDao
;
import
com.mortals.xhx.module.staff.dao.ibatis.StaffDaoImpl
;
import
com.mortals.xhx.module.staff.dao.ibatis.StaffLeaveDaoImpl
;
...
...
@@ -13,8 +22,10 @@ import com.mortals.xhx.module.staff.model.vo.StaffInfoVo;
import
com.mortals.xhx.module.staff.service.StaffService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.ObjectUtils
;
import
java.util.Arrays
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
...
...
@@ -29,10 +40,17 @@ import java.util.stream.Collectors;
@Service
(
"staffService"
)
public
class
StaffServiceImpl
extends
AbstractCRUDCacheServiceImpl
<
StaffDao
,
StaffEntity
,
Long
>
implements
StaffService
{
@Autowired
private
UserService
userService
;
@Autowired
private
RoleUserService
roleUserService
;
@Override
protected
String
getExtKey
(
StaffEntity
data
)
{
//工号作为redis 扩展key
return
data
.
getWorkNum
();
return
StrUtil
.
padPre
(
data
.
getWorkNum
(),
8
,
"0"
);
// return "1000"+data.getWorkNum();
}
@Override
...
...
@@ -68,4 +86,51 @@ public class StaffServiceImpl extends AbstractCRUDCacheServiceImpl<StaffDao, Sta
return
staffEntities
.
size
();
}
@Override
protected
void
saveAfter
(
StaffEntity
entity
,
Context
context
)
throws
AppException
{
try
{
UserEntity
userEntity
=
new
UserEntity
();
if
(
ObjectUtils
.
isEmpty
(
entity
.
getLoginName
()))
{
//姓名加工号作为登录名
entity
.
setLoginName
(
entity
.
getName
()
+
entity
.
getWorkNum
());
}
if
(
ObjectUtils
.
isEmpty
(
entity
.
getLoginPwd
()))
{
//设置初始密码
entity
.
setLoginPwd
(
"123456"
);
}
userEntity
.
setLoginName
(
StrUtil
.
cleanBlank
(
entity
.
getLoginName
()));
userEntity
.
setRealName
(
entity
.
getName
());
userEntity
.
setUserType
(
2
);
userEntity
.
setSiteIds
(
"1"
);
userEntity
.
setAreaCodes
(
"511500000000"
);
userEntity
.
setStatus
(
UserStatus
.
NORMAL
.
getValue
());
userEntity
.
setCreateUserId
(
this
.
getContextUserId
(
context
));
userEntity
.
setCreateTime
(
new
Date
());
userEntity
.
setCustomerId
(
entity
.
getId
());
userEntity
.
setLoginPwd
(
SecurityUtil
.
md5DoubleEncoding
(
entity
.
getLoginPwd
()));
int
insert
=
userService
.
getUserDao
().
insert
(
userEntity
);
if
(
insert
>
0
)
{
RoleUserQuery
roleUserQuery
=
new
RoleUserQuery
();
roleUserQuery
.
setUserId
(
userEntity
.
getId
());
roleUserQuery
.
setRoleIdList
(
Arrays
.
asList
(
4L
));
roleUserService
.
assignRoleToUser
(
roleUserQuery
);
}
}
catch
(
Exception
e
)
{
throw
new
RuntimeException
(
e
);
}
super
.
saveAfter
(
entity
,
context
);
}
public
static
void
main
(
String
[]
args
)
{
System
.
out
.
println
(
"1"
+
StrUtil
.
padPre
(
"125"
,
7
,
"0"
));
}
}
\ No newline at end of file
attendance-performance-manager/src/main/resources/sqlmap/base/system/user.xml
View file @
1a3dadd2
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"mybatis-3-mapper.dtd">
<mapper
namespace=
"com.mortals.xhx.
module
.user.dao.ibatis.UserDaoImpl"
>
<mapper
namespace=
"com.mortals.xhx.
base.system
.user.dao.ibatis.UserDaoImpl"
>
<!-- 字段和属性映射 -->
<resultMap
type=
"UserEntity"
id=
"UserEntity-Map"
>
...
...
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