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
dc4bc638
Commit
dc4bc638
authored
Jul 06, 2023
by
姬鋆屾
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
tui
parent
1d0db3ee
Changes
12
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
971 additions
and
459 deletions
+971
-459
attendance-performance-manager-ui/admin/.env.production
attendance-performance-manager-ui/admin/.env.production
+1
-1
attendance-performance-manager-ui/admin/src/assets/mixins/formdialog.js
...formance-manager-ui/admin/src/assets/mixins/formdialog.js
+7
-6
attendance-performance-manager-ui/admin/src/assets/mixins/table.js
...e-performance-manager-ui/admin/src/assets/mixins/table.js
+291
-205
attendance-performance-manager-ui/admin/src/components/Table.vue
...nce-performance-manager-ui/admin/src/components/Table.vue
+85
-67
attendance-performance-manager-ui/admin/src/views/perform/perpose/list.vue
...mance-manager-ui/admin/src/views/perform/perpose/list.vue
+67
-58
attendance-performance-manager-ui/admin/src/views/perform/rules/attend/components/AttendIndex.vue
...src/views/perform/rules/attend/components/AttendIndex.vue
+110
-11
attendance-performance-manager-ui/admin/src/views/perform/rules/attend/list.vue
...-manager-ui/admin/src/views/perform/rules/attend/list.vue
+7
-6
attendance-performance-manager-ui/admin/src/views/staff/perform/stat/components/BarCharts.vue
...min/src/views/staff/perform/stat/components/BarCharts.vue
+1
-0
attendance-performance-manager-ui/admin/src/views/staff/perform/stat/dialogshow.vue
...ager-ui/admin/src/views/staff/perform/stat/dialogshow.vue
+239
-0
attendance-performance-manager-ui/admin/src/views/staff/perform/stat/list.vue
...ce-manager-ui/admin/src/views/staff/perform/stat/list.vue
+58
-12
attendance-performance-manager-ui/admin/src/views/staff/perform/summary/list.vue
...manager-ui/admin/src/views/staff/perform/summary/list.vue
+103
-91
attendance-performance-manager-ui/admin/vue.config.js
attendance-performance-manager-ui/admin/vue.config.js
+2
-2
No files found.
attendance-performance-manager-ui/admin/.env.production
View file @
dc4bc638
...
...
@@ -2,7 +2,7 @@
NODE_ENV = production
# 地址
VUE_APP_
BASE_API =
VUE_APP_
API_BASE_URL =http://112.19.80.237:11039
# websocket地址
VUE_APP_WEBSOCKET_API =
...
...
attendance-performance-manager-ui/admin/src/assets/mixins/formdialog.js
View file @
dc4bc638
...
...
@@ -59,16 +59,17 @@ export default {
},
// 提交表单
submitForm
(
ref
)
{
console
.
log
(
123
);
return
;
let
url
=
this
.
urls
.
saveUrl
||
this
.
pageInfo
.
saveUrl
;
if
(
url
==
"
/staff/perform/stat/save
"
)
{
url
=
"
/perform/perpose/save
"
;
}
else
if
(
url
==
"
/perform/rules/attend/save
"
)
{
url
=
"
/perform/rules/category/save
"
;
}
const
el
=
this
.
$refs
.
form
;
el
.
validate
((
valid
)
=>
{
if
(
!
valid
)
return
;
this
.
loading
=
true
;
this
.
$post
(
this
.
urls
.
saveUrl
||
this
.
pageInfo
.
saveUrl
,
this
.
beforeSubmit
(
this
.
form
)
)
this
.
$post
(
url
,
this
.
beforeSubmit
(
this
.
form
))
.
then
((
res
)
=>
{
this
.
$message
.
success
(
res
.
msg
);
this
.
afterSubmit
(
res
);
...
...
attendance-performance-manager-ui/admin/src/assets/mixins/table.js
View file @
dc4bc638
This diff is collapsed.
Click to expand it.
attendance-performance-manager-ui/admin/src/components/Table.vue
View file @
dc4bc638
...
...
@@ -2,7 +2,12 @@
<
template
>
<div
class=
"layout-table"
:loading=
"data.loading"
>
<TabPane
:thirdList=
"thirdList"
:activeName=
"activeName"
@
handleClick=
"handleClick"
v-if=
"config.isshowTabPane"
></TabPane>
<TabPane
:thirdList=
"thirdList"
:activeName=
"activeName"
@
handleClick=
"handleClick"
v-if=
"config.isshowTabPane"
></TabPane>
<div
class=
"table-head flex flex-pack-justify"
>
<div
class=
"table-head-left flex flex-align-center"
>
<!--
<slot
name=
"breadcrumb"
>
...
...
@@ -29,7 +34,8 @@
@
click=
"config.methods.importView"
class=
"el-icon-upload2"
title=
"导入"
>
导入
</el-button>
>
导入
</el-button
>
<!--
<el-button
v-if=
"isShowButton('notDel')"
...
...
@@ -41,8 +47,19 @@
title=
"批量删除"
>
删除
</el-button
>
-->
<Confirm
v-if=
'isShowButton("notDel")'
@
confirm=
'config.methods.del'
message=
'确定要删除选中的多条记录吗?'
>
<el-button
icon=
"el-icon-delete"
type=
"danger"
size=
'mini'
plain
title=
"批量删除"
>
批量删除
</el-button>
<Confirm
v-if=
"isShowButton('notDel')"
@
confirm=
"config.methods.del"
message=
"确定要删除选中的多条记录吗?"
>
<el-button
icon=
"el-icon-delete"
type=
"danger"
size=
"mini"
plain
title=
"批量删除"
>
批量删除
</el-button
>
</Confirm>
<el-button
@
click=
"item.method"
...
...
@@ -126,7 +143,6 @@
:downloadUrl=
"config.downloadUrl"
:areaSelect=
"config.areaSelect"
/>
</div>
</div>
</div>
...
...
@@ -220,7 +236,7 @@ import DataTable from "@/components/DataTable.vue";
import
DataTableMobile
from
"
./DataTableMobile.js
"
;
import
DataTableFlow
from
"
./DataTableFlow.vue
"
;
import
DataTreeTable
from
"
@/components/DataTreeTable.vue
"
;
import
TabPane
from
"
@/components/tabPane.vue
"
import
TabPane
from
"
@/components/tabPane.vue
"
;
export
default
{
props
:
{
data
:
{
...
...
@@ -242,7 +258,9 @@ export default {
DataTableMobile
,
DataTableFlow
,
DataTreeTable
,
TabPane
TabPane
,
},
mounted
()
{
},
methods
:
{
// 根据url的query参数判断是否展示查询条件
...
...
@@ -268,12 +286,12 @@ export default {
isShowBtn
(
name
)
{
return
this
.
canShow
.
indexOf
(
name
)
!==
-
1
;
},
handleClick
(
key
){
this
.
$store
.
commit
(
'
setThirdPath
'
,
key
)
handleClick
(
key
)
{
this
.
$store
.
commit
(
"
setThirdPath
"
,
key
);
this
.
$router
.
push
({
path
:
key
})
}
path
:
key
,
});
}
,
},
watch
:
{
$route
(
route
)
{
...
...
@@ -288,21 +306,21 @@ export default {
this
.
showType
=
this
.
config
.
showType
?
this
.
config
.
showType
:
"
table
"
;
return
Object
.
keys
(
this
.
$attrs
)
||
[];
},
thirdList
(){
if
(
!
this
.
$store
.
state
.
CurrentThirdArr
)
return
[]
return
this
.
$store
.
state
.
CurrentThirdArr
thirdList
()
{
if
(
!
this
.
$store
.
state
.
CurrentThirdArr
)
return
[];
return
this
.
$store
.
state
.
CurrentThirdArr
;
},
activeName
()
{
return
this
.
$store
.
state
.
ThirdPath
;
},
activeName
(){
return
this
.
$store
.
state
.
ThirdPath
}
},
data
()
{
return
{
loading
:
this
.
config
.
loading
,
showSearch
:
this
.
isShowSearch
(
this
.
$route
.
query
),
showType
:
"
table
"
,
}
}
}
;
}
,
};
</
script
>
...
...
attendance-performance-manager-ui/admin/src/views/perform/perpose/list.vue
View file @
dc4bc638
<
template
>
<div
class=
"page"
>
<LayoutTable
:data=
"tableData"
:config=
"tableConfig"
>
</LayoutTable>
<LayoutTable
:data=
"tableData"
:config=
"tableConfig"
>
</LayoutTable>
<dialog-show
ref=
"dialogform"
@
ok=
"getData"
/>
</div>
</
template
>
<
script
>
/** 表单弹出框模式需引入 */
import
dialogShow
from
"
./dialogshow
"
;
import
table
from
"
@/assets/mixins/table
"
;
export
default
{
/** 表单弹出框模式需引入 */
import
dialogShow
from
"
./dialogshow
"
;
import
table
from
"
@/assets/mixins/table
"
;
export
default
{
name
:
"
PerformPerposeList
"
,
components
:
{
dialogShow
},
mixins
:
[
table
],
created
()
{
dialogShow
,
},
mixins
:
[
table
],
created
()
{},
methods
:
{
/** 重写新增方法 */
toAdd
(
row
)
{
...
...
@@ -33,37 +30,49 @@
toView
(
row
)
{
this
.
$refs
.
dialogform
.
view
(
row
);
},
},
data
()
{
return
{
config
:
{
isshowTabPane
:
true
,
search
:
[
],
isshowTabPane
:
true
,
search
:
[],
columns
:
[
{
type
:
"
selection
"
,
width
:
60
},
{
type
:
"
index
"
,
label
:
"
序号
"
,
width
:
50
},
{
type
:
"
selection
"
,
width
:
60
},
{
type
:
"
index
"
,
label
:
"
序号
"
,
width
:
50
},
{
label
:
"
负责人名称
"
,
prop
:
"
ownerName
"
},
{
label
:
"
负责人名称
"
,
prop
:
"
ownerName
"
},
{
label
:
"
请假类型
"
,
prop
:
"
assessmentType
"
,
formatter
:
this
.
formatter
},
{
label
:
"
请假类型
"
,
prop
:
"
assessmentType
"
,
formatter
:
this
.
formatter
,
},
{
label
:
"
比例
"
,
prop
:
"
ratio
"
,
formatter
:
this
.
formatter
},
{
label
:
"
比例
"
,
prop
:
"
ratio
"
,
formatter
:
this
.
formatter
},
{
label
:
"
创建时间
"
,
prop
:
"
createTime
"
,
formatter
:
this
.
formatterDate
},
{
label
:
"
创建时间
"
,
prop
:
"
createTime
"
,
formatter
:
this
.
formatterDate
,
},
{
label
:
"
操作
"
,
width
:
240
,
formatter
:
row
=>
{
formatter
:
(
row
)
=>
{
return
(
<
table
-
buttons
noAdd
row
=
{
row
}
onEdit
=
{
this
.
toEdit
}
onView
=
{
this
.
toView
}
onDel
=
{
this
.
toDel
}
/
>
<
table
-
buttons
noAdd
row
=
{
row
}
onEdit
=
{
this
.
toEdit
}
onView
=
{
this
.
toView
}
onDel
=
{
this
.
toDel
}
/
>
);
}
}
]
}
};
}
},
},
],
},
};
},
};
</
script
>
attendance-performance-manager-ui/admin/src/views/perform/rules/attend/components/AttendIndex.vue
View file @
dc4bc638
...
...
@@ -14,8 +14,8 @@
>
<span>
{{
val
.
name
}}
</span>
<div>
<i
class=
"el-icon-edit-outline"
></i>
<i
class=
"el-icon-delete"
></i>
<i
class=
"el-icon-edit-outline"
@
click=
"toEdit(val)"
></i>
<i
class=
"el-icon-delete"
@
click=
"toDel(val)"
></i>
</div>
</div>
</div>
...
...
@@ -34,7 +34,16 @@
<el-button
type=
"primary"
>
搜索
</el-button>
</div>
</div>
<div
class=
"table_box"
></div>
<div
class=
"table_box"
>
<LayoutTable
:data=
"tableData"
notAdd
notDel
notSearch
:config=
"tableConfig"
>
</LayoutTable>
</div>
</div>
<drawer-show
ref=
"drawerform"
@
ok=
"getData"
/>
<dialog-show
ref=
"dialogform"
@
ok=
"getData"
/>
...
...
@@ -44,25 +53,71 @@
<
script
>
import
drawerShow
from
"
../drawershow
"
;
import
dialogShow
from
"
../dialogshow
"
;
import
table
from
"
@/assets/mixins/table
"
;
export
default
{
name
:
"
AdminAttendIndex
"
,
components
:
{
drawerShow
,
dialogShow
,
},
mixins
:
[
table
],
props
:
{
activeName
:
{
type
:
String
,
default
:
()
=>
""
,
},
},
data
()
{
return
{
index
:
-
1
,
dataArr
:
[
dataArr
:
[],
config
:
{
isshowTabPane
:
false
,
search
:
[],
columns
:
[
{
type
:
"
selection
"
,
width
:
60
},
{
type
:
"
index
"
,
label
:
"
序号
"
,
width
:
50
},
{
label
:
"
分类
"
,
prop
:
"
categoryId
"
,
formatter
:
this
.
formatter
},
{
label
:
"
考核名称
"
,
prop
:
"
name
"
},
{
label
:
"
评分标准
"
,
prop
:
"
content
"
},
{
label
:
"
增减类型
"
,
prop
:
"
subAddType
"
,
formatter
:
this
.
formatter
},
{
label
:
"
分值
"
,
prop
:
"
score
"
},
{
label
:
"
负责人分值
"
,
prop
:
"
ownerScore
"
},
{
label
:
"
创建用户
"
,
prop
:
"
createUserId
"
,
formatter
:
this
.
formatter
,
},
{
name
:
"
工作纪律
"
,
label
:
"
操作
"
,
width
:
240
,
formatter
:
(
row
)
=>
{
return
(
<
table
-
buttons
noAdd
noView
row
=
{
row
}
onEdit
=
{
this
.
eddRules
}
onDel
=
{
this
.
toDelRules
}
/
>
);
},
},
],
},
};
},
mounted
()
{},
created
()
{
// this.getData();
},
methods
:
{
handleClick
(
val
,
i
)
{
...
...
@@ -71,9 +126,53 @@ export default {
addRules
()
{
this
.
$refs
.
drawerform
.
add
();
},
eddRules
(
row
)
{
this
.
$refs
.
drawerform
.
edit
(
row
);
},
addCate
()
{
this
.
$refs
.
dialogform
.
add
();
},
toDelRules
(
val
)
{
console
.
log
(
val
);
this
.
$get
(
"
/perform/rules/delete
"
,
{
id
:
val
}).
then
((
res
)
=>
{
this
.
$message
.
success
(
res
.
msg
);
this
.
getKaoQin
();
});
},
/** 重写编辑方法 */
toEdit
(
row
)
{
this
.
$refs
.
dialogform
.
edit
(
row
);
},
toDel
(
val
)
{
this
.
$get
(
"
/perform/rules/category/delete
"
,
{
id
:
val
.
id
}).
then
(
(
res
)
=>
{
this
.
$message
.
success
(
res
.
msg
);
this
.
getData
();
}
);
},
async
getData
()
{
await
this
.
$post
(
"
/perform/rules/category/list
"
).
then
((
res
)
=>
{
this
.
getKaoQin
();
if
(
res
.
code
==
1
)
{
this
.
dataArr
=
res
.
data
.
data
;
}
else
{
this
.
dataArr
=
[];
}
});
},
async
getKaoQin
()
{
await
this
.
$post
(
"
/perform/rules/list
"
,
{
type
:
this
.
activeName
}).
then
(
(
res
)
=>
{
if
(
res
.
code
==
1
)
{
this
.
tableData
=
res
.
data
;
this
.
$forceUpdate
(
this
.
tableData
);
}
else
{
this
.
tableData
=
{};
}
}
);
},
},
};
</
script
>
...
...
@@ -133,7 +232,7 @@ export default {
text-align: left;
padding: 0 10px;
border: 1px solid #ddd;
margin-bottom: 20px;
&:hover {
background-color: rgba(22, 202, 122, 1);
color: #ffffff;
...
...
attendance-performance-manager-ui/admin/src/views/perform/rules/attend/list.vue
View file @
dc4bc638
...
...
@@ -2,19 +2,19 @@
<div
class=
"page"
>
<el-tabs
v-model=
"activeName"
@
tab-click=
"handleClick"
>
<el-tab-pane
label=
"考勤绩效指标"
name=
"1"
>
<attend-index
/>
<attend-index
v-if=
"activeName == 1"
:activeName=
"activeName"
/>
</el-tab-pane>
<el-tab-pane
label=
"评价绩效指标"
name=
"2"
>
<attend-index
/>
<attend-index
v-if=
"activeName == 2"
:activeName=
"activeName"
/>
</el-tab-pane>
<el-tab-pane
label=
"办件绩效指标"
name=
"3"
>
<attend-index
/>
<attend-index
v-if=
"activeName == 3"
:activeName=
"activeName"
/>
</el-tab-pane>
<el-tab-pane
label=
"效能绩效指标"
name=
"4"
>
<attend-index
/>
<attend-index
v-if=
"activeName == 4"
:activeName=
"activeName"
/>
</el-tab-pane>
<el-tab-pane
label=
"其他绩效指标"
name=
"5"
>
<attend-index
/>
<attend-index
v-if=
"activeName == 5"
:activeName=
"activeName"
/>
</el-tab-pane>
</el-tabs>
</div>
...
...
@@ -28,7 +28,8 @@ export default {
created
()
{},
methods
:
{
handleClick
(
tab
,
event
)
{
console
.
log
(
tab
,
event
);
// this.$forceUpdate(this.activeName);
},
},
data
()
{
...
...
attendance-performance-manager-ui/admin/src/views/staff/perform/stat/components/BarCharts.vue
View file @
dc4bc638
...
...
@@ -30,6 +30,7 @@ export default {
watch
:
{
title
(
val
)
{
console
.
log
(
val
);
this
.
drawLine
();
},
},
mounted
()
{
...
...
attendance-performance-manager-ui/admin/src/views/staff/perform/stat/dialogshow.vue
0 → 100644
View file @
dc4bc638
<
template
>
<!-- 弹出框表单 -->
<el-dialog
:title=
"title"
:visible.sync=
"open"
width=
"90%"
append-to-body
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"120px"
>
<el-row>
<Field
label=
"负责人id号"
prop=
"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
@
click=
"cancel"
>
取 消
</el-button>
</div>
</el-dialog>
</
template
>
<
script
>
import
form
from
"
@/assets/mixins/formdialog
"
;
import
dialogShow
from
"
./dialogshow
"
;
export
default
{
mixins
:
[
form
],
components
:
{
dialogShow
,
},
data
()
{
return
{
// 遮罩层
loading
:
true
,
// 弹出层标题
title
:
"
考核目标
"
,
// 是否显示弹出层
open
:
false
,
toString
:
[
"
assessmentType
"
,
"
assessmentScope
"
,
"
compareScope
"
,
"
periodType
"
,
"
month
"
,
"
halfYear
"
,
"
halfYear
"
,
"
quarter
"
,
],
// 表单校验
rules
:
{
year
:
[{
required
:
true
,
message
:
"
请输入年
"
,
trigger
:
"
blur
"
}],
month
:
[{
required
:
true
,
message
:
"
请输入月
"
,
trigger
:
"
blur
"
}],
},
};
},
methods
:
{
/** 编辑 */
edit
(
row
)
{
this
.
reset
();
this
.
query
=
{
id
:
row
.
id
};
this
.
urls
.
currUrl
=
"
perform/perpose/edit
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
edit
"
;
this
.
title
=
"
修改考核目标
"
;
},
/** 新增 */
add
(
row
)
{
this
.
reset
();
this
.
urls
.
currUrl
=
"
perform/perpose/add
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
add
"
;
this
.
title
=
"
新增考核目标
"
;
},
/** 查看*/
view
(
row
)
{
this
.
reset
();
this
.
query
=
{
id
:
row
.
id
};
this
.
urls
.
currUrl
=
"
perform/perpose/view
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
view
"
;
this
.
title
=
"
考核目标详细
"
;
},
/**取消按钮 */
cancel
()
{
this
.
open
=
false
;
},
/**获取数据后弹框 */
afterRender
(
data
)
{
this
.
open
=
true
;
},
afterSubmit
(
data
)
{
this
.
open
=
false
;
this
.
$emit
(
"
ok
"
);
},
// 表单重置
reset
()
{
this
.
form
=
{
ownerId
:
null
,
ownerName
:
""
,
staffId
:
null
,
assessmentType
:
null
,
assessmentScope
:
1
,
compareScope
:
1
,
ratio
:
0.0
,
periodType
:
1
,
year
:
null
,
month
:
null
,
halfYear
:
1
,
halfYear
:
1
,
quarter
:
1
,
leaders
:
""
,
leaderMobiles
:
""
,
remark
:
""
,
};
this
.
resetForm
(
"
form
"
);
},
resetForm
(
refName
)
{
if
(
this
.
$refs
[
refName
])
{
this
.
$refs
[
refName
].
resetFields
();
}
},
},
};
</
script
>
attendance-performance-manager-ui/admin/src/views/staff/perform/stat/list.vue
View file @
dc4bc638
...
...
@@ -83,7 +83,7 @@
</el-option>
</el-select>
<el-select
v-model=
"
v
alue"
v-model=
"
dateV
alue"
placeholder=
"请选择"
style=
"margin: 0 10px;"
>
...
...
@@ -100,7 +100,9 @@
</div>
<div
class=
"bar_content"
>
<bar-charts
:title=
"'各部门1月旷工率对齐情况'"
:title=
"
`$
{type == 1 ? '各部门' : '个人'}${dateValue}月旷工率对齐情况`
"
:id="'bar_content'"
:legendName="'旷工率'"
:styleObj="{ width: '1800px', height: '650px' }"
...
...
@@ -115,12 +117,12 @@
<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;"
>
<el-button
type=
"primary"
style=
"margin: 0 20px;"
@
click=
"addGoal"
>
+ 创建目标
</el-button
>
</div>
<div
class=
"mid_content"
>
<div
class=
"goal_box"
>
<div
class=
"goal_box"
v-for=
"(val, i) in dataList"
:key=
"i"
>
<div
class=
"goal_title"
>
<img
src=
"../../../../assets/images/u17641.svg"
alt=
""
/>
<span>
...
...
@@ -128,21 +130,34 @@
</span>
</div>
<p
class=
"goal_txt"
>
<span>
目标部门:
</span><span>
全部部门
</span>
<span>
{{
type
==
1
?
"
目标部门:
"
:
"
目标个人:
"
}}
</span
><span>
{{
type
==
1
?
"
全部部门
"
:
"
张三、李四、王武、陈真
"
}}
</span>
</p>
<p
class=
"goal_txt"
><span>
周期:
</span><span>
全部部门
</span></p>
<p
class=
"goal_txt"
><span>
负责人:
</span><span>
全部部门
</span></p>
<p
class=
"goal_txt"
>
<span>
最近更新:
</span><span>
全部部门
</span>
<span>
周期:
</span><span>
2023年/全年
</span>
</p>
<p
class=
"goal_txt"
>
<span>
更新人员:
</span><span>
全部部门
</span>
<span>
负责人:
</span><span>
张三、李四、王武
</span>
</p>
<p
class=
"goal_txt"
>
<span>
最近更新:
</span><span>
2023-05-11 10:00:00
</span>
</p>
<p
class=
"goal_txt"
><span>
更新人员:
</span><span>
言若海
</span></p>
<div
class=
"button_box"
>
<el-button
type=
"primary"
style=
"width: 150px;"
plain
<el-button
type=
"primary"
style=
"width: 150px;"
plain
@
click=
"hanleEdit(val)"
>
编辑
</el-button
>
<el-button
type=
"danger"
style=
"width: 150px;"
plain
<el-button
type=
"danger"
style=
"width: 150px;"
plain
@
click=
"hanleDel(val)"
>
删除
</el-button
>
</div>
...
...
@@ -151,6 +166,7 @@
</div>
</el-tab-pane>
</el-tabs>
<dialog-show
ref=
"dialogform"
@
ok=
"getData"
/>
</div>
</
template
>
...
...
@@ -158,24 +174,53 @@
import
BarCharts
from
"
./components/BarCharts.vue
"
;
import
LineCharts
from
"
./components/LineCharts.vue
"
;
import
PieCharts
from
"
./components/PieCharts.vue
"
;
import
dialogShow
from
"
./dialogshow
"
;
export
default
{
components
:
{
BarCharts
,
PieCharts
,
LineCharts
,
dialogShow
,
},
name
:
"
StaffPerformStatList
"
,
created
()
{},
created
()
{
this
.
getData
();
},
methods
:
{
handleClick
(
tab
,
event
)
{
console
.
log
(
tab
,
event
);
},
addGoal
()
{
this
.
$refs
.
dialogform
.
add
();
},
/** 编辑方法 */
hanleEdit
(
row
)
{
this
.
$refs
.
dialogform
.
edit
(
row
);
},
hanleDel
(
val
)
{
this
.
$get
(
"
/perform/perpose/delete
"
,
{
id
:
val
.
id
}).
then
((
res
)
=>
{
this
.
$message
.
success
(
res
.
msg
);
this
.
getData
();
});
},
getData
()
{
this
.
$post
(
"
/perform/perpose/list
"
).
then
((
res
)
=>
{
console
.
log
(
res
);
if
(
res
.
code
==
1
)
{
this
.
dataList
=
res
.
data
.
data
;
}
else
{
this
.
dataList
=
[];
}
});
},
},
data
()
{
return
{
activeName
:
"
1
"
,
type
:
"
1
"
,
dateValue
:
"
1
"
,
options
:
[
{
value
:
"
1
"
,
...
...
@@ -269,6 +314,7 @@ export default {
},
],
value
:
""
,
dataList
:
[],
};
},
};
...
...
attendance-performance-manager-ui/admin/src/views/staff/perform/summary/list.vue
View file @
dc4bc638
...
...
@@ -3,23 +3,21 @@
<LayoutTable
:data=
"tableData"
notAdd
notDel
:config=
"tableConfig"
>
</LayoutTable>
<dialog-show
ref=
"dialogform"
@
ok=
"getData"
/>
</div>
</
template
>
<
script
>
/** 表单弹出框模式需引入 */
import
dialogShow
from
"
./dialogshow
"
;
import
table
from
"
@/assets/mixins/table
"
;
export
default
{
/** 表单弹出框模式需引入 */
import
dialogShow
from
"
./dialogshow
"
;
import
table
from
"
@/assets/mixins/table
"
;
export
default
{
name
:
"
StaffPerformSummaryList
"
,
components
:
{
dialogShow
},
mixins
:
[
table
],
created
()
{
dialogShow
,
},
mixins
:
[
table
],
created
()
{},
methods
:
{
/** 重写新增方法 */
toAdd
(
row
)
{
...
...
@@ -33,67 +31,81 @@
toView
(
row
)
{
this
.
$refs
.
dialogform
.
view
(
row
);
},
},
data
()
{
return
{
config
:
{
isshowTabPane
:
true
,
isshowTabPane
:
true
,
search
:
[
{
name
:
"
createTimeStart
"
,
type
:
"
date
"
,
label
:
"
月份
"
label
:
"
月份
"
,
},
{
name
:
"
deptId
"
,
type
:
"
select
"
,
label
:
"
所属部门
"
label
:
"
所属部门
"
,
},
{
name
:
"
staffName
"
,
type
:
"
text
"
,
label
:
"
员工姓名
"
label
:
"
员工姓名
"
,
},
],
columns
:
[
{
type
:
"
selection
"
,
width
:
60
},
{
type
:
"
index
"
,
label
:
"
序号
"
,
width
:
50
},
{
type
:
"
selection
"
,
width
:
60
},
{
type
:
"
index
"
,
label
:
"
序号
"
,
width
:
50
},
{
label
:
"
姓名
"
,
prop
:
"
staffName
"
},
{
label
:
"
姓名
"
,
prop
:
"
staffName
"
},
{
label
:
"
工号
"
,
prop
:
"
workNum
"
},
{
label
:
"
工号
"
,
prop
:
"
workNum
"
},
{
label
:
"
所属部门
"
,
prop
:
"
deptName
"
},
{
label
:
"
所属部门
"
,
prop
:
"
deptName
"
},
{
label
:
"
考勤绩效
"
,
prop
:
"
attendScore
"
,
formatter
:
this
.
formatter
},
{
label
:
"
考勤绩效
"
,
prop
:
"
attendScore
"
,
formatter
:
this
.
formatter
},
{
label
:
"
评价绩效
"
,
prop
:
"
assessScore
"
,
formatter
:
this
.
formatter
},
{
label
:
"
评价绩效
"
,
prop
:
"
assessScore
"
,
formatter
:
this
.
formatter
},
{
label
:
"
办件绩效
"
,
prop
:
"
workScore
"
,
formatter
:
this
.
formatter
},
{
label
:
"
办件绩效
"
,
prop
:
"
workScore
"
,
formatter
:
this
.
formatter
},
{
label
:
"
效能绩效
"
,
prop
:
"
effectScore
"
,
formatter
:
this
.
formatter
},
{
label
:
"
效能绩效
"
,
prop
:
"
effectScore
"
,
formatter
:
this
.
formatter
},
{
label
:
"
其它绩效
"
,
prop
:
"
otherScore
"
,
formatter
:
this
.
formatter
},
{
label
:
"
其它绩效
"
,
prop
:
"
otherScore
"
,
formatter
:
this
.
formatter
},
{
label
:
"
累计异常分数
"
,
prop
:
"
errorScore
"
,
formatter
:
this
.
formatter
},
{
label
:
"
累计异常分数
"
,
prop
:
"
errorScore
"
,
formatter
:
this
.
formatter
,
},
{
label
:
"
本月得分数
"
,
prop
:
"
totalScore
"
,
formatter
:
this
.
formatter
},
{
label
:
"
本月得分数
"
,
prop
:
"
totalScore
"
,
formatter
:
this
.
formatter
,
},
{
label
:
"
操作
"
,
width
:
240
,
formatter
:
row
=>
{
formatter
:
(
row
)
=>
{
return
(
<
table
-
buttons
noAdd
noEdit
noDel
row
=
{
row
}
onEdit
=
{
this
.
toEdit
}
onView
=
{
this
.
toView
}
onDel
=
{
this
.
toDel
}
/
>
<
table
-
buttons
noAdd
noEdit
noDel
row
=
{
row
}
onEdit
=
{
this
.
toEdit
}
onView
=
{
this
.
toView
}
onDel
=
{
this
.
toDel
}
/
>
);
}
}
]
}
};
}
},
},
],
},
};
},
};
</
script
>
attendance-performance-manager-ui/admin/vue.config.js
View file @
dc4bc638
...
...
@@ -17,8 +17,8 @@ module.exports = {
hot
:
true
,
//自动保存
proxy
:
{
'
/attendance
'
:
{
//
target: 'http://192.168.0.98:11039',
target
:
'
http://localhost:17500
'
,
target
:
'
http://192.168.0.98:11039
'
,
//
target: 'http://localhost:17500',
changeOrigin
:
true
,
secure
:
false
,
cookieDomainRewrite
:
'
localhost
'
,
...
...
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