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
8e2957ce
Commit
8e2957ce
authored
Jul 11, 2023
by
ww-xxy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改绩效目标
parent
33eafaaf
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
396 additions
and
178 deletions
+396
-178
attendance-performance-manager-ui/admin/src/views/staff/perform/stat/components/BarCharts.vue
...min/src/views/staff/perform/stat/components/BarCharts.vue
+35
-9
attendance-performance-manager-ui/admin/src/views/staff/perform/stat/dialogshow.vue
...ager-ui/admin/src/views/staff/perform/stat/dialogshow.vue
+138
-122
attendance-performance-manager-ui/admin/src/views/staff/perform/stat/list.vue
...ce-manager-ui/admin/src/views/staff/perform/stat/list.vue
+223
-47
No files found.
attendance-performance-manager-ui/admin/src/views/staff/perform/stat/components/BarCharts.vue
View file @
8e2957ce
...
...
@@ -21,26 +21,52 @@ export default {
},
styleObj
:
{
type
:
Object
,
default
:
()
=>
{},
default
:
()
=>
{
},
},
parameter
:
{
type
:
Object
,
default
:
()
=>
{
}
}
},
data
()
{
return
{};
return
{
myChart
:
null
};
},
watch
:
{
title
(
val
)
{
console
.
log
(
val
);
this
.
drawLine
();
this
.
myChart
&&
this
.
myChart
.
setOption
({
title
:{
text
:
val
}})
},
parameter
:
{
handler
:
function
(
v
)
{
this
.
drawLine
(
v
)
},
deep
:
true
}
},
mounted
()
{
this
.
drawLine
();
},
methods
:
{
drawLine
()
{
drawLine
(
obj
)
{
if
(
obj
&&
this
.
myChart
)
{
// 更新
this
.
myChart
.
setOption
({
xAxis
:
{
data
:
obj
.
x
},
series
:
[
{
data
:
obj
.
y
,
},
]
})
return
}
// 基于dom,初始化echarts实例
let
myChart
=
this
.
$echarts
.
init
(
document
.
getElementById
(
this
.
id
));
this
.
myChart
=
myChart
// 绘制图表
myChart
.
setOption
({
title
:
{
...
...
@@ -50,7 +76,7 @@ export default {
fontSize
:
this
.
legendName
==
"
旷工率
"
?
24
:
18
,
},
},
color
:
'
#6e98ed
'
,
color
:
'
#6e98ed
'
,
legend
:
{
orient
:
"
horizontal
"
,
right
:
"
50px
"
,
...
...
@@ -65,7 +91,7 @@ export default {
},
tooltip
:
{},
xAxis
:
{
data
:
[
"
部门1
"
,
"
部门2
"
,
"
部门3
"
,
"
部门4
"
,
"
部门5
"
,
"
部门6
"
],
data
:
[],
},
grid
:
{
left
:
"
5%
"
,
...
...
@@ -79,9 +105,9 @@ export default {
{
name
:
this
.
legendName
,
type
:
"
bar
"
,
data
:
[
5
,
20
,
36
,
10
,
10
,
20
],
data
:
[],
itemStyle
:
{
lineStyle
:
{
type
:
"
dotted
"
,
//'dotted'虚线 'solid'实线
},
...
...
attendance-performance-manager-ui/admin/src/views/staff/perform/stat/dialogshow.vue
View file @
8e2957ce
...
...
@@ -3,130 +3,109 @@
<el-dialog
:title=
"title"
:visible.sync=
"open"
width=
"90%"
append-to-body
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"180px"
>
<el-row>
<Field
label=
"负责人id号"
prop=
"ownerId"
v-model=
"form.ownerId"
placeholder=
"请输入负责人id号"
/>
<Field
label=
"负责人名称"
prop=
"ownerName"
v-model=
"form.ownerName"
placeholder=
"请输入负责人名称"
/>
<Field
label=
"窗口工作人员id号"
prop=
"staffId"
v-model=
"form.staffId"
placeholder=
"请输入窗口工作人员id号"
/>
<Field
label=
"请假类型"
prop=
"assessmentType"
v-model=
"form.assessmentType"
type=
"select"
:enumData=
"dict.assessmentType"
placeholder=
"请选择请假类型"
/>
<Field
label=
"考核范围"
prop=
"assessmentScope"
v-model=
"form.assessmentScope"
type=
"select"
:enumData=
"dict.assessmentScope"
placeholder=
"请选择考核范围"
/>
<Field
label=
"考比较类型"
prop=
"compareScope"
v-model=
"form.compareScope"
type=
"select"
:enumData=
"dict.compareScope"
placeholder=
"请选择考比较类型"
/>
<Field
label=
"比例"
prop=
"ratio"
v-model=
"form.ratio"
placeholder=
"请输入比例"
/>
<Field
label=
"周期类型"
prop=
"periodType"
v-model=
"form.periodType"
type=
"select"
:enumData=
"dict.periodType"
placeholder=
"请选择周期类型"
/>
<Field
label=
"年"
prop=
"year"
v-model=
"form.year"
placeholder=
"请输入年"
/>
<Field
label=
"月"
prop=
"month"
v-model=
"form.month"
type=
"select"
:enumData=
"dict.month"
placeholder=
"请选择月"
/>
<Field
label=
"半年类型"
prop=
"halfYear"
v-model=
"form.halfYear"
type=
"select"
:enumData=
"dict.halfYear"
placeholder=
"请选择半年类型"
/>
<Field
label=
"半年类型"
prop=
"halfYear"
v-model=
"form.halfYear"
type=
"select"
:enumData=
"dict.halfYear"
placeholder=
"请选择半年类型"
/>
<Field
label=
"季度类型"
prop=
"quarter"
v-model=
"form.quarter"
type=
"select"
:enumData=
"dict.quarter"
placeholder=
"请选择季度类型"
/>
<Field
label=
"负责人,多个逗号分割"
prop=
"leaders"
v-model=
"form.leaders"
type=
"textarea"
placeholder=
"请输入负责人,多个逗号分割"
/>
<Field
label=
"负责人电话,多个逗号分割"
prop=
"leaderMobiles"
v-model=
"form.leaderMobiles"
type=
"textarea"
placeholder=
"请输入负责人电话,多个逗号分割"
/>
<Field
label=
"备注"
prop=
"remark"
v-model=
"form.remark"
type=
"textarea"
placeholder=
"请输入备注"
/>
<el-col
:span=
"8"
>
<Field
label=
"请假类型"
:span=
"24"
prop=
"assessmentType"
v-model=
"form.assessmentType"
type=
"select"
:enumData=
"dict.assessmentType"
placeholder=
"请选择请假类型"
/>
</el-col>
<el-col
:span=
"6"
>
<Field
label=
"考比较类型"
:span=
"24"
prop=
"compareScope"
v-model=
"form.compareScope"
type=
"select"
:enumData=
"dict.compareScope"
placeholder=
"请选择考比较类型"
/>
</el-col>
<el-col
:span=
"6"
>
<Field
:span=
"24"
label=
"比例"
prop=
"ratio"
v-model=
"form.ratio"
placeholder=
"请输入比例"
/>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"8"
>
<el-form-item
label=
"周期"
prop=
"year"
>
<el-date-picker
style=
"width: 100%;"
v-model=
"form.year"
type=
"year"
placeholder=
"选择年"
>
</el-date-picker>
</el-form-item>
<!--
<Field
label=
"年"
:span=
"24"
prop=
"year"
v-model=
"form.year"
placeholder=
"请输入年"
/>
-->
</el-col>
<el-col
:span=
"6"
>
<Field
label=
"周期类型"
:span=
"24"
prop=
"periodType"
v-model=
"form.periodType"
type=
"select"
:enumData=
"dict.periodType"
placeholder=
"请选择周期类型"
/>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"8"
>
<Field
label=
"考核范围"
:span=
"24"
prop=
"assessmentScope"
v-model=
"form.assessmentScope"
type=
"select"
:enumData=
"dict.assessmentScope"
placeholder=
"请选择考核范围"
/>
</el-col>
</el-row>
<el-row
v-if=
"form.assessmentScope == 1"
>
<el-col
:span=
"8"
>
<el-form-item
label=
"选择部门"
>
<el-select
v-model=
"deptId"
filterable
multiple
collapse-tags
style=
"width: 100%;"
placeholder=
"请选择"
>
<el-option
v-for=
"item in deptArr"
:key=
"item.id"
:label=
"item.deptName"
:value=
"item.id"
>
</el-option>
</el-select>
<!--
<el-button
type=
"primary"
>
选择部门
</el-button>
-->
</el-form-item>
</el-col>
</el-row>
<el-row
v-if=
"form.assessmentScope == 2"
>
<el-col
:span=
"8"
>
<el-form-item
label=
"选择个人"
>
<el-select
v-model=
"staffId"
filterable
multiple
collapse-tags
style=
"width: 100%;"
placeholder=
"请选择"
>
<el-option
v-for=
"item in staffArr"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
>
</el-option>
</el-select>
<!--
<el-button
type=
"primary"
>
选择个人
</el-button>
-->
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"负责人"
>
<el-row
v-for=
"(item, index) in ownerList"
:key=
"index"
:style=
"
{ 'margin-top': index > 0 ? '10px' : '' }">
<el-col
:span=
"8"
>
<el-input
v-model=
"item.ownerName"
placeholder=
"请输入姓名"
></el-input>
</el-col>
<el-col
:span=
"12"
style=
"padding:0 10px"
>
<el-input
v-model=
"form.leaderMobiles"
placeholder=
"请输入电话"
></el-input>
</el-col>
<el-col
:span=
"2"
>
<el-button
type=
"primary"
icon=
"el-icon-plus"
circle
v-if=
"index == 0"
@
click=
"addOwner"
></el-button>
<el-button
type=
"danger"
icon=
"el-icon-delete"
circle
v-else
@
click=
"delOwner(index)"
></el-button>
</el-col>
</el-row>
</el-form-item>
</el-col>
</el-row>
<!--
<el-row>
<Field
label=
"负责人id号"
prop=
"ownerId"
v-model=
"form.ownerId"
placeholder=
"请输入负责人id号"
/>
<Field
label=
"负责人名称"
prop=
"ownerName"
v-model=
"form.ownerName"
placeholder=
"请输入负责人名称"
/>
<Field
label=
"窗口工作人员id号"
prop=
"staffId"
v-model=
"form.staffId"
placeholder=
"请输入窗口工作人员id号"
/>
<Field
label=
"请假类型"
prop=
"assessmentType"
v-model=
"form.assessmentType"
type=
"select"
:enumData=
"dict.assessmentType"
placeholder=
"请选择请假类型"
/>
<Field
label=
"考核范围"
prop=
"assessmentScope"
v-model=
"form.assessmentScope"
type=
"select"
:enumData=
"dict.assessmentScope"
placeholder=
"请选择考核范围"
/>
<Field
label=
"考比较类型"
prop=
"compareScope"
v-model=
"form.compareScope"
type=
"select"
:enumData=
"dict.compareScope"
placeholder=
"请选择考比较类型"
/>
<Field
label=
"比例"
prop=
"ratio"
v-model=
"form.ratio"
placeholder=
"请输入比例"
/>
<Field
label=
"周期类型"
prop=
"periodType"
v-model=
"form.periodType"
type=
"select"
:enumData=
"dict.periodType"
placeholder=
"请选择周期类型"
/>
<Field
label=
"年"
prop=
"year"
v-model=
"form.year"
placeholder=
"请输入年"
/>
<Field
label=
"月"
prop=
"month"
v-model=
"form.month"
type=
"select"
:enumData=
"dict.month"
placeholder=
"请选择月"
/>
<Field
label=
"半年类型"
prop=
"halfYear"
v-model=
"form.halfYear"
type=
"select"
:enumData=
"dict.halfYear"
placeholder=
"请选择半年类型"
/>
<Field
label=
"半年类型"
prop=
"halfYear"
v-model=
"form.halfYear"
type=
"select"
:enumData=
"dict.halfYear"
placeholder=
"请选择半年类型"
/>
<Field
label=
"季度类型"
prop=
"quarter"
v-model=
"form.quarter"
type=
"select"
:enumData=
"dict.quarter"
placeholder=
"请选择季度类型"
/>
<Field
label=
"负责人,多个逗号分割"
prop=
"leaders"
v-model=
"form.leaders"
type=
"textarea"
placeholder=
"请输入负责人,多个逗号分割"
/>
<Field
label=
"负责人电话,多个逗号分割"
prop=
"leaderMobiles"
v-model=
"form.leaderMobiles"
type=
"textarea"
placeholder=
"请输入负责人电话,多个逗号分割"
/>
<Field
label=
"备注"
prop=
"remark"
v-model=
"form.remark"
type=
"textarea"
placeholder=
"请输入备注"
/>
</el-row>
-->
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
v-if=
"pageInfo.type !== 'view'"
@
click=
"submitForm"
>
确 定
</el-button
>
<el-button
type=
"primary"
v-if=
"pageInfo.type !== 'view'"
@
click=
"submitForm"
>
确 定
</el-button>
<el-button
@
click=
"cancel"
>
取 消
</el-button>
</div>
</el-dialog>
...
...
@@ -163,10 +142,47 @@ export default {
year
:
[{
required
:
true
,
message
:
"
请输入年
"
,
trigger
:
"
blur
"
}],
month
:
[{
required
:
true
,
message
:
"
请输入月
"
,
trigger
:
"
blur
"
}],
},
// 负责人
ownerList
:
[
{
ownerId
:
""
,
ownerName
:
""
,
leaderMobiles
:
""
}
],
deptArr
:[],
//部门下拉
staffArr
:[],
//人员下拉
deptId
:[],
//部门选中
staffId
:[],
//人员选中数据
};
},
created
()
{
this
.
deptList
()
this
.
staffList
()
},
methods
:
{
// 查询部门列表
deptList
(){
this
.
$post
(
"
/dept/list
"
,
{
page
:
1
,
size
:
-
1
}).
then
((
res
)
=>
{
const
{
code
,
data
,
dict
}
=
res
if
(
code
==
1
){
this
.
deptArr
=
data
.
data
}
});
},
// 查询部门列表
staffList
(){
this
.
$post
(
"
/staff/list
"
,
{
page
:
1
,
size
:
-
1
}).
then
((
res
)
=>
{
const
{
code
,
data
,
dict
}
=
res
if
(
code
==
1
){
this
.
staffArr
=
data
.
data
}
});
},
/** 负责人添加 */
addOwner
()
{
this
.
ownerList
.
push
({
ownerId
:
""
,
ownerName
:
""
,
leaderMobiles
:
""
})
},
/** 负责人删除 */
delOwner
(
index
)
{
this
.
ownerList
.
splice
(
index
,
1
)
},
/** 编辑 */
edit
(
row
)
{
this
.
reset
();
...
...
attendance-performance-manager-ui/admin/src/views/staff/perform/stat/list.vue
View file @
8e2957ce
...
...
@@ -4,13 +4,13 @@
<el-tab-pane
label=
"目标看板"
name=
"1"
>
<div
class=
"content"
>
<div
class=
"top search_top"
>
<el-radio-group
v-model=
"type"
>
<el-radio-button
label=
"1"
>
按部门
</el-radio-button>
<el-radio-button
label=
"2"
>
按个人
</el-radio-button>
<el-radio-group
v-model=
"type"
@
change=
"onAssessmentScope"
>
<el-radio-button
:
label=
"1"
>
按部门
</el-radio-button>
<el-radio-button
:
label=
"2"
>
按个人
</el-radio-button>
</el-radio-group>
<div
class=
"search_box"
>
<el-select
v-model=
"
dateValue
"
v-model=
"
boardQuery.month
"
placeholder=
"请选择"
style=
"margin: 0 10px;"
>
...
...
@@ -32,6 +32,7 @@
:title=
"'绩效总分排名'"
:id=
"'jixiaozongfen'"
:legendName=
"'绩效总分'"
:parameter=
"depStatObj.totalScore"
:styleObj=
"
{ width: '100%', height: '300px' }"
/>
</div>
...
...
@@ -49,6 +50,7 @@
<bar-charts
:title=
"'部门加分排名TOP10'"
:id=
"'top_10'"
:parameter=
"depStatObj.attendScoreAdd"
:legendName=
"'部门加分分值'"
:styleObj=
"
{ width: '100%', height: '300px' }"
/>
...
...
@@ -84,12 +86,12 @@
<el-tab-pane
label=
"目标对齐"
name=
"2"
>
<div
class=
"content"
>
<div
class=
"top search_top"
>
<el-radio-group
v-model=
"type"
>
<el-radio-button
label=
"1"
>
按部门
</el-radio-button>
<el-radio-button
label=
"2"
>
按个人
</el-radio-button>
<el-radio-group
v-model=
"type
1"
@
change=
"onAssessmentScope1
"
>
<el-radio-button
:
label=
"1"
>
按部门
</el-radio-button>
<el-radio-button
:
label=
"2"
>
按个人
</el-radio-button>
</el-radio-group>
<div
class=
"search_box"
>
<el-select
v-model=
"value"
placeholder=
"请选择"
>
<el-select
v-model=
"value"
@
change=
"deptList"
placeholder=
"请选择"
>
<el-option
v-for=
"item in options"
:key=
"item.value"
...
...
@@ -99,7 +101,8 @@
</el-option>
</el-select>
<el-select
v-model=
"dateValue"
@
change=
"deptList"
v-model=
"StatQuery.month"
placeholder=
"请选择"
style=
"margin: 0 10px;"
>
...
...
@@ -111,16 +114,15 @@
>
</el-option>
</el-select>
<el-button
type=
"primary"
>
搜索
</el-button>
<el-button
type=
"primary"
@
click=
"deptList"
>
搜索
</el-button>
</div>
</div>
<div
class=
"bar_content"
>
<bar-charts
:title=
"
`$
{type == 1 ? '各部门' : '个人'}${dateValue}月旷工率对齐情况`
"
:title=
"`$
{type1 == 1 ? '各部门' : '个人'}${StatQuery.month}月${alignmentName}对齐情况`"
:id="'bar_content'"
:legendName="'旷工率'"
:parameter="depStatObj.alignment"
:styleObj="{ width: '1800px', height: '650px' }"
/>
</div>
...
...
@@ -129,9 +131,9 @@
<el-tab-pane
label=
"目标管理"
name=
"3"
>
<div
class=
"content"
>
<div
class=
"top"
>
<el-radio-group
v-model=
"type"
>
<el-radio-button
label=
"1"
>
按部门
</el-radio-button>
<el-radio-button
label=
"2"
>
按个人
</el-radio-button>
<el-radio-group
v-model=
"type
2
"
>
<el-radio-button
:
label=
"1"
>
按部门
</el-radio-button>
<el-radio-button
:
label=
"2"
>
按个人
</el-radio-button>
</el-radio-group>
<el-button
type=
"primary"
style=
"margin: 0 20px;"
@
click=
"addGoal"
>
+ 创建目标
</el-button
...
...
@@ -146,21 +148,21 @@
</span>
</div>
<p
class=
"goal_txt"
>
<span>
{{
type
==
1
?
"
目标部门:
"
:
"
目标个人:
"
}}
</span
<span>
{{
type
2
==
1
?
"
目标部门:
"
:
"
目标个人:
"
}}
</span
><span>
{{
type
==
1
?
"
全部部门
"
:
"
张三、李四、王武、陈真
"
type
2
==
1
?
"
全部部门
"
:
"
张三、李四、王武、陈真
"
}}
</span>
</p>
<p
class=
"goal_txt"
>
<span>
周期:
</span><span>
2023年/全年
</span>
<span>
周期:
</span><span>
{{
val
.
periodType
}}
</span>
</p>
<p
class=
"goal_txt"
>
<span>
负责人:
</span><span>
张三、李四、王武
</span>
<span>
负责人:
</span><span>
{{
val
.
leaders
}}
</span>
</p>
<p
class=
"goal_txt"
>
<span>
最近更新:
</span><span>
2023-05-11 10:00:00
</span>
<span>
最近更新:
</span><span>
{{
val
.
updateTime
}}
</span>
</p>
<p
class=
"goal_txt"
><span>
更新人员:
</span><span>
言若海
</span></p>
<p
class=
"goal_txt"
><span>
更新人员:
</span><span>
{{
val
.
updateUserId
}}
</span></p>
<div
class=
"button_box"
>
<el-button
type=
"primary"
...
...
@@ -191,6 +193,7 @@ import BarCharts from "./components/BarCharts.vue";
import
LineCharts
from
"
./components/LineCharts.vue
"
;
import
PieCharts
from
"
./components/PieCharts.vue
"
;
import
dialogShow
from
"
./dialogshow
"
;
import
moment
from
'
moment
'
export
default
{
components
:
{
...
...
@@ -203,8 +206,116 @@ export default {
created
()
{
this
.
getData
();
this
.
deptList
()
this
.
statList
()
},
methods
:
{
// 个人绩效分数统计
staffStatList
(){
this
.
$post
(
"
/staff/perform/stat/list
"
,
this
.
boardQuery
).
then
((
res
)
=>
{
const
{
code
,
data
,
dict
}
=
res
if
(
code
==
1
){
const
row
=
data
.
data
||
[]
// this.statArr = row
const
x
=
[]
const
y
=
[]
row
.
forEach
(
element
=>
{
x
.
push
(
element
.
deptName
)
y
.
push
(
element
.
totalScore
)
});
this
.
depStatObj
.
totalScore
.
x
=
x
this
.
depStatObj
.
totalScore
.
y
=
y
}
});
// 加分top10
const
top10
=
{...
this
.
boardQuery
,
size
:
10
}
this
.
$post
(
"
/staff/perform/stat/list
"
,
top10
).
then
((
res
)
=>
{
const
{
code
,
data
,
dict
}
=
res
if
(
code
==
1
){
const
row
=
data
.
data
||
[]
// this.statArr = row
const
x
=
[]
const
y
=
[]
row
.
forEach
(
element
=>
{
x
.
push
(
element
.
deptName
)
y
.
push
(
element
.
attendScoreAdd
)
});
this
.
depStatObj
.
attendScoreAdd
.
x
=
x
this
.
depStatObj
.
attendScoreAdd
.
y
=
y
}
});
},
// 部门绩效分数统计
statList
(){
this
.
$post
(
"
/dept/perform/stat/list
"
,
this
.
boardQuery
).
then
((
res
)
=>
{
const
{
code
,
data
,
dict
}
=
res
if
(
code
==
1
){
const
row
=
data
.
data
||
[]
// this.statArr = row
const
x
=
[]
const
y
=
[]
const
xTop10
=
[]
row
.
forEach
(
element
=>
{
x
.
push
(
element
.
deptName
)
y
.
push
(
element
.
totalScore
)
});
this
.
depStatObj
.
totalScore
.
x
=
x
this
.
depStatObj
.
totalScore
.
y
=
y
}
});
// 加分top10
const
top10
=
{...
this
.
boardQuery
,
size
:
10
}
this
.
$post
(
"
/staff/perform/stat/list
"
,
top10
).
then
((
res
)
=>
{
const
{
code
,
data
,
dict
}
=
res
if
(
code
==
1
){
const
row
=
data
.
data
||
[]
// this.statArr = row
const
x
=
[]
const
y
=
[]
row
.
forEach
(
element
=>
{
x
.
push
(
element
.
deptName
)
y
.
push
(
element
.
attendScoreAdd
)
});
this
.
depStatObj
.
attendScoreAdd
.
x
=
x
this
.
depStatObj
.
attendScoreAdd
.
y
=
y
console
.
log
(
this
.
depStatObj
.
attendScoreAdd
,
"
`````
"
,
data
)
}
});
},
// 部门目标对齐
deptList
(){
this
.
$post
(
"
/perform/perpose/dept/stat/list
"
,
this
.
StatQuery
).
then
((
res
)
=>
{
const
{
code
,
data
,
dict
}
=
res
if
(
code
==
1
){
const
row
=
data
.
data
||
[]
const
x
=
[]
const
y
=
[]
row
.
forEach
(
element
=>
{
x
.
push
(
element
.
deptName
)
y
.
push
(
element
[
this
.
value
])
});
this
.
depStatObj
.
alignment
.
x
=
x
this
.
depStatObj
.
alignment
.
y
=
y
}
});
},
// 个人对齐方式
staffList
(){
this
.
$post
(
"
/perform/perpose/staff/stat/list
"
,
this
.
StatQuery
).
then
((
res
)
=>
{
const
{
code
,
data
,
dict
}
=
res
if
(
code
==
1
){
const
row
=
data
.
data
||
[]
const
x
=
[]
const
y
=
[]
row
.
forEach
(
element
=>
{
x
.
push
(
element
.
deptName
)
y
.
push
(
element
[
this
.
value
])
});
this
.
depStatObj
.
alignment
.
x
=
x
this
.
depStatObj
.
alignment
.
y
=
y
}
});
},
handleClick
(
tab
,
event
)
{
console
.
log
(
tab
,
event
);
},
...
...
@@ -222,7 +333,7 @@ export default {
});
},
getData
()
{
this
.
$post
(
"
/perform/perpose/list
"
).
then
((
res
)
=>
{
this
.
$post
(
"
/perform/perpose/list
"
,
this
.
query
).
then
((
res
)
=>
{
console
.
log
(
res
);
if
(
res
.
code
==
1
)
{
this
.
dataList
=
res
.
data
.
data
;
...
...
@@ -231,106 +342,171 @@ export default {
}
});
},
// TAB个人/法人
onAssessmentScope
(
v
){
if
(
v
==
1
){
this
.
statList
()
}
else
{
this
.
staffStatList
()
}
},
// 目标看齐
onAssessmentScope1
(
v
){
if
(
v
==
1
){
this
.
deptList
()
}
else
{
this
.
staffList
()
}
}
},
computed
:
{
alignmentName
:
function
(){
const
obj
=
this
.
options
.
find
(
v
=>
v
.
value
==
this
.
value
)
return
obj
.
label
}
},
data
()
{
return
{
activeName
:
"
1
"
,
type
:
"
1
"
,
type
:
1
,
//目标看板
type1
:
1
,
//目标对齐
type2
:
1
,
//目标管理
dateValue
:
"
1
"
,
options
:
[
{
value
:
"
1
"
,
value
:
"
absentRate
"
,
label
:
"
旷工率
"
,
},
{
value
:
"
2
"
,
value
:
"
absenceRate
"
,
label
:
"
缺卡率
"
,
},
{
value
:
"
3
"
,
value
:
"
lateRate
"
,
label
:
"
迟到率
"
,
},
{
value
:
"
4
"
,
value
:
"
earlyRate
"
,
label
:
"
早退率
"
,
},
{
value
:
"
5
"
,
value
:
"
leaveRate
"
,
label
:
"
请假率
"
,
},
{
value
:
"
6
"
,
value
:
"
turnoverRate
"
,
label
:
"
离岗率
"
,
},
{
value
:
"
7
"
,
value
:
"
sleepRate
"
,
label
:
"
睡觉率
"
,
},
{
value
:
"
8
"
,
value
:
"
playPhoneRate
"
,
label
:
"
玩手机率
"
,
},
{
value
:
"
9
"
,
value
:
"
expireWorkRate
"
,
label
:
"
办件超期率
"
,
},
{
value
:
"
10
"
,
value
:
"
negaReviewRate
"
,
label
:
"
差评率
"
,
},
],
optionsMonths
:
[
{
value
:
"
1
"
,
value
:
1
,
label
:
"
1月
"
,
},
{
value
:
"
2
"
,
value
:
2
,
label
:
"
2月
"
,
},
{
value
:
"
3
"
,
value
:
3
,
label
:
"
3月
"
,
},
{
value
:
"
4
"
,
value
:
4
,
label
:
"
4月
"
,
},
{
value
:
"
5
"
,
value
:
5
,
label
:
"
5月
"
,
},
{
value
:
"
6
"
,
value
:
6
,
label
:
"
6月
"
,
},
{
value
:
"
7
"
,
value
:
7
,
label
:
"
7月
"
,
},
{
value
:
"
8
"
,
value
:
8
,
label
:
"
8月
"
,
},
{
value
:
"
9
"
,
value
:
9
,
label
:
"
9月
"
,
},
{
value
:
"
10
"
,
value
:
10
,
label
:
"
10月
"
,
},
{
value
:
"
11
"
,
value
:
11
,
label
:
"
11月
"
,
},
{
value
:
"
12
"
,
value
:
12
,
label
:
"
12月
"
,
},
],
value
:
"
"
,
value
:
"
lateRate
"
,
//默认显示迟到类型
dataList
:
[],
depStatObj
:{
totalScore
:{
x
:[],
y
:[]
},
//绩效总分排名
totalAverage
:{
x
:[],
y
:[]
},
//绩效平均排名
attendScoreAdd
:{
x
:[],
y
:[]
},
//加分
attendScoreSub
:{
x
:[],
y
:[]
},
//减分
alignment
:{
x
:[],
y
:[]
},
//目标对齐
},
//按部门
month
:
""
,
//月份
boardQuery
:{
page
:
1
,
size
:
-
1
,
// year:parseInt(moment().format('YYYY')),
// month:parseInt(moment().format('MM')),
},
//看板查询条件
query
:{
page
:
1
,
size
:
-
1
,
// assessmentScope:1//考核范围(1.部门,2.个人)
},
//目标管理查询条件
StatQuery
:{
page
:
1
,
size
:
-
1
,
year
:
parseInt
(
moment
().
format
(
'
YYYY
'
)),
month
:
parseInt
(
moment
().
format
(
'
MM
'
)),
},
//对齐方式入参
};
},
};
...
...
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