优化
This commit is contained in:
parent
a471fecdc1
commit
a48a4f1241
@ -35,3 +35,12 @@ export function apiManagerDetail (query) {
|
|||||||
data: query
|
data: query
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 获取考核详情
|
||||||
|
export function apiResultRecordDetail (query) {
|
||||||
|
return request({
|
||||||
|
url: '/lz_management/user/lzresultrecord/new/resultRecordDetail',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
55
src/components/InfoHeader/index.vue
Normal file
55
src/components/InfoHeader/index.vue
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
<!-- -->
|
||||||
|
<template>
|
||||||
|
<div class="header-title">
|
||||||
|
<div class="header-title-img">
|
||||||
|
<img src="https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=2346299354,1694591848&fm=26&gp=0.jpg" alt="">
|
||||||
|
</div>
|
||||||
|
<div class="header-title-right commonFont">
|
||||||
|
<span style="font-size:14px;">熊成强</span>
|
||||||
|
<span style="font-size:12px;">技术部门</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {},
|
||||||
|
beforeMount () {},
|
||||||
|
mounted () {},
|
||||||
|
methods: {},
|
||||||
|
watch: {}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang='less' scoped>
|
||||||
|
.header{
|
||||||
|
width: 100%;
|
||||||
|
&-title{
|
||||||
|
margin: 0 0 10PX 0;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
&-img{
|
||||||
|
width: 40px;
|
||||||
|
height: 40px;
|
||||||
|
border-radius: 50%;
|
||||||
|
overflow: hidden;
|
||||||
|
img{
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
&-right{
|
||||||
|
margin-left: 20px;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -1,18 +1,18 @@
|
|||||||
<template>
|
<template>
|
||||||
<transition name="popupfade">
|
<!-- <transition name="popupfade"> -->
|
||||||
<div class="taskDetailRight" @click="getRight">
|
<div class="taskDetailRight" @click="getRight">
|
||||||
<div class="taskDetailRight-contant" @click.stop="aa">
|
<div class="taskDetailRight-contant" @click.stop="aa">
|
||||||
<div class="taskDetailRight-contant-title commonFont" >{{title}}</div>
|
<div class="taskDetailRight-contant-title commonFont" >{{title}}</div>
|
||||||
<div class="taskDetailRight-contant-content" >
|
<div class="taskDetailRight-contant-content" >
|
||||||
<slot name="content"></slot>
|
<slot name="content"></slot>
|
||||||
</div>
|
</div>
|
||||||
<div class="taskDetailRight-contant-footer" >
|
<div v-if="footer" class="taskDetailRight-contant-footer" >
|
||||||
<div>
|
<div>
|
||||||
<slot name="footer-left"></slot>
|
<slot name="footer-left"></slot>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<el-button size="small" @click="$emit('cancel')">取 消</el-button>
|
<el-button size="small" @click="$emit('cancel')">取 消</el-button>
|
||||||
<el-button size="small" type="primary" @click="$emit('submit')">确 定</el-button>
|
<el-button size="small" type="primary" @click="$emit('submit')">确 定</el-button>
|
||||||
<slot name="footer"></slot>
|
<slot name="footer"></slot>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -20,7 +20,7 @@
|
|||||||
<div>
|
<div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</transition>
|
<!-- </transition> -->
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
@ -30,10 +30,15 @@ export default {
|
|||||||
title: {
|
title: {
|
||||||
type: String,
|
type: String,
|
||||||
default: ''
|
default: ''
|
||||||
|
},
|
||||||
|
footer: {
|
||||||
|
type: Boolean,
|
||||||
|
default: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
|
isShow: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {},
|
computed: {},
|
||||||
@ -45,9 +50,11 @@ export default {
|
|||||||
aa () {},
|
aa () {},
|
||||||
onSubmit () {
|
onSubmit () {
|
||||||
console.log('submit!')
|
console.log('submit!')
|
||||||
|
this.isShow = false
|
||||||
this.$emit('update:show', false)
|
this.$emit('update:show', false)
|
||||||
},
|
},
|
||||||
getRight () {
|
getRight () {
|
||||||
|
this.isShow = false
|
||||||
this.$emit('update:show', false)
|
this.$emit('update:show', false)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -80,6 +87,7 @@ export default {
|
|||||||
height: 100vh;
|
height: 100vh;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
min-width: 200px;
|
min-width: 200px;
|
||||||
|
background: rgba(0,0,0,.12);
|
||||||
top: 0;
|
top: 0;
|
||||||
right: 0;
|
right: 0;
|
||||||
transition: all 1s;
|
transition: all 1s;
|
||||||
|
|||||||
@ -3,15 +3,7 @@
|
|||||||
<div class="goals">
|
<div class="goals">
|
||||||
<SmallNav />
|
<SmallNav />
|
||||||
<div class="goals-content boderAndRadius">
|
<div class="goals-content boderAndRadius">
|
||||||
<div class="goals-content-title">
|
<InfoHeader />
|
||||||
<div class="goals-content-title-img">
|
|
||||||
<img src="https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=2346299354,1694591848&fm=26&gp=0.jpg" alt="">
|
|
||||||
</div>
|
|
||||||
<div class="goals-content-title-right commonFont">
|
|
||||||
<span style="font-size:14px;">熊成强</span>
|
|
||||||
<span style="font-size:12px;">技术部门</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="goals-content-tabbar">
|
<div class="goals-content-tabbar">
|
||||||
<el-tabs v-model="activeName" @tab-click="handleClick">
|
<el-tabs v-model="activeName" @tab-click="handleClick">
|
||||||
<el-tab-pane label="用户管理" name="first">用户管理</el-tab-pane>
|
<el-tab-pane label="用户管理" name="first">用户管理</el-tab-pane>
|
||||||
@ -26,6 +18,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import SmallNav from '@/components/kpi-layout/SmallNav'
|
import SmallNav from '@/components/kpi-layout/SmallNav'
|
||||||
|
import InfoHeader from '@/components/InfoHeader'
|
||||||
export default {
|
export default {
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
@ -33,7 +26,8 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
SmallNav
|
SmallNav,
|
||||||
|
InfoHeader
|
||||||
},
|
},
|
||||||
computed: {},
|
computed: {},
|
||||||
beforeMount () {},
|
beforeMount () {},
|
||||||
|
|||||||
@ -73,6 +73,7 @@
|
|||||||
@current-change="handleChangePage"
|
@current-change="handleChangePage"
|
||||||
layout="prev, pager, next"
|
layout="prev, pager, next"
|
||||||
:page-size.sync='params.pageSize'
|
:page-size.sync='params.pageSize'
|
||||||
|
:current-page.sync='params.currPage'
|
||||||
:total="params.totalCount">
|
:total="params.totalCount">
|
||||||
</el-pagination>
|
</el-pagination>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
BIN
src/views/kpi/assessment/performance/img/left.png
Normal file
BIN
src/views/kpi/assessment/performance/img/left.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 21 KiB |
BIN
src/views/kpi/assessment/performance/img/right.png
Normal file
BIN
src/views/kpi/assessment/performance/img/right.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 32 KiB |
@ -3,7 +3,7 @@
|
|||||||
<div class="performance">
|
<div class="performance">
|
||||||
<SmallNav />
|
<SmallNav />
|
||||||
<div class="performance-content boderAndRadius">
|
<div class="performance-content boderAndRadius">
|
||||||
<div class="performance-content-top">
|
<!-- <div class="performance-content-top">
|
||||||
<div class="performance-content-top-left">
|
<div class="performance-content-top-left">
|
||||||
<el-select size="small" v-model="form.value" placeholder="请选择">
|
<el-select size="small" v-model="form.value" placeholder="请选择">
|
||||||
<el-option
|
<el-option
|
||||||
@ -18,9 +18,33 @@
|
|||||||
<el-button size="small" @click="handleChangeTtitle" plain>沟通管理</el-button>
|
<el-button size="small" @click="handleChangeTtitle" plain>沟通管理</el-button>
|
||||||
<el-button size="small" plain>管理</el-button>
|
<el-button size="small" plain>管理</el-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div> -->
|
||||||
|
<InfoHeader />
|
||||||
<div class="performance-content-center">
|
<div class="performance-content-center">
|
||||||
<div class="performance-content-center-item" v-for="i in 10"></div>
|
<div class="performance-content-center-item"
|
||||||
|
:class="{
|
||||||
|
active:i.isActive,
|
||||||
|
right:true,
|
||||||
|
left:index !==0
|
||||||
|
}"
|
||||||
|
v-for="(i,index) in formList.flowRecordList"
|
||||||
|
:key="index"
|
||||||
|
>
|
||||||
|
<el-tooltip v-if="i.flowName !== '执行中'" class="item" effect="dark" :content="(index >= (formList.flowRecordList.length-1))?i.flowName:i.flowName +' : '+i.staffName" placement="top">
|
||||||
|
<div >
|
||||||
|
{{index+1}}.{{i.flowName}} <span v-if="index !== (formList.flowRecordList.length-1)">:{{i.staffName}} <i v-if="i.status ===1 && !i.isActive" style="color:#3ba1ff;margin:0 0 0 4px;font-weight:800;" class="el-icon-check"></i></span>
|
||||||
|
<i style="cursor: pointer;" @click="handleRight(i)" class="el-icon-video-pause"></i>
|
||||||
|
</div>
|
||||||
|
</el-tooltip>
|
||||||
|
<el-tooltip v-if="i.flowName === '执行中'" class="item" effect="dark" placement="top">
|
||||||
|
<div slot="content">执行中”是员工在目标确认后,努力达成目标的一个过程,直到管理员发起评分。<br/>管理员如何发起评分:返回上级页面<考核详情>,点击"开始评分"按钮发起。</div>
|
||||||
|
<div>
|
||||||
|
{{index+1}}.{{i.flowName}}<i class="el-icon-warning-outline" />:{{i.staffName}} <i v-if="i.status ===1 && !i.isActive" style="color:#3ba1ff;margin:0 0 0 4px;font-weight:800;" class="el-icon-check"></i>
|
||||||
|
<i style="cursor: pointer;" @click="handleRight(i)" class="el-icon-video-pause"></i>
|
||||||
|
</div>
|
||||||
|
</el-tooltip>
|
||||||
|
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="performance-content-bottom">
|
<div class="performance-content-bottom">
|
||||||
<el-table
|
<el-table
|
||||||
@ -53,18 +77,60 @@
|
|||||||
</el-table>
|
</el-table>
|
||||||
</div>
|
</div>
|
||||||
<div class="performance-content-jilu">
|
<div class="performance-content-jilu">
|
||||||
ss
|
<div class="performance-content-jilu-title commonFont">
|
||||||
|
记录
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
v-for="(i,index) in formList.resultCommentList"
|
||||||
|
:key="index"
|
||||||
|
class="performance-content-jilu-item commonFont">
|
||||||
|
<div class="performance-content-jilu-item-time">
|
||||||
|
{{i.gmtCreate}}
|
||||||
|
</div>
|
||||||
|
<div class="performance-content-jilu-item-content">
|
||||||
|
<div class="performance-content-jilu-item-content-img">
|
||||||
|
<img src="https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=2346299354,1694591848&fm=26&gp=0.jpg" alt="">
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<span>{{i.staffName}}</span><span class="mubiao">#{{i.optDesc}}#</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<popup-right v-if="right.showRight" @cancel='handleCancel' @submit="handleSubmit" :footer='true' :title="form.item.flowName">
|
||||||
|
<div slot="content" class="chooseManage">
|
||||||
|
<div
|
||||||
|
class='chooseManage-item'
|
||||||
|
:key="index"
|
||||||
|
v-for="(i,index) in form.item.flowDetailRespList">
|
||||||
|
{{i}}
|
||||||
|
</div>
|
||||||
|
<!-- <div v-for="i in rightList" :key="i.id" class="chooseManage-item" >
|
||||||
|
<el-checkbox :true-label='1' :false-label='0' :disabled='i.isDisable===1' :checked='i.isDisable===1' v-model='i.isSelect'></el-checkbox><span class='commonFont' style="margin:0 0 0 10px;">{{i.staffName}} </span>
|
||||||
|
</div> -->
|
||||||
|
</div>
|
||||||
|
</popup-right>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import SmallNav from '@/components/kpi-layout/SmallNav'
|
import SmallNav from '@/components/kpi-layout/SmallNav'
|
||||||
|
import InfoHeader from '@/components/InfoHeader'
|
||||||
|
import PopupRight from '@/components/PopupRight'
|
||||||
|
import { apiResultRecordDetail } from '@/api/assessment'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
|
right: {
|
||||||
|
showRight: false
|
||||||
|
},
|
||||||
form: {},
|
form: {},
|
||||||
|
formList: {
|
||||||
|
flowRecordList: [],
|
||||||
|
resultCommentList: []
|
||||||
|
},
|
||||||
options: [{
|
options: [{
|
||||||
value: '选项1',
|
value: '选项1',
|
||||||
label: '黄金糕'
|
label: '黄金糕'
|
||||||
@ -101,12 +167,39 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
SmallNav
|
SmallNav,
|
||||||
|
InfoHeader,
|
||||||
|
PopupRight
|
||||||
},
|
},
|
||||||
computed: {},
|
computed: {},
|
||||||
beforeMount () {},
|
beforeMount () {},
|
||||||
mounted () {},
|
mounted () {
|
||||||
|
this.handleList()
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
handleRight (item) {
|
||||||
|
console.log('item: ', item)
|
||||||
|
this.form.item = item
|
||||||
|
this.right.showRight = true
|
||||||
|
},
|
||||||
|
handleCancel () {
|
||||||
|
this.right.showRight = false
|
||||||
|
},
|
||||||
|
handleSubmit () {
|
||||||
|
this.right.showRight = false
|
||||||
|
},
|
||||||
|
async handleList () {
|
||||||
|
let res = await apiResultRecordDetail({resultRecordId: 215})
|
||||||
|
if (res.code !== 200) return
|
||||||
|
for (let i in res.data.flowRecordList) {
|
||||||
|
if (res.data.flowRecordList[i].status !== 1) {
|
||||||
|
res.data.flowRecordList[i - 1].isActive = true
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.formList = res.data
|
||||||
|
console.log('res: ', res)
|
||||||
|
},
|
||||||
handleChangeTtitle () {
|
handleChangeTtitle () {
|
||||||
// this.$route
|
// this.$route
|
||||||
console.log('this.$route: ', this.$route.meta.title = '123')
|
console.log('this.$route: ', this.$route.meta.title = '123')
|
||||||
@ -121,11 +214,16 @@ export default {
|
|||||||
<style lang='less' scoped>
|
<style lang='less' scoped>
|
||||||
.performance{
|
.performance{
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
|
.chooseManage-item{
|
||||||
|
padding: 24px 0;
|
||||||
|
border-bottom: 1px solid @borderColor;
|
||||||
|
}
|
||||||
&-content{
|
&-content{
|
||||||
padding: 28px;
|
padding: 28px;
|
||||||
margin: 10px 0;
|
margin: 10px 0;
|
||||||
// height: 700px;
|
// height: 700px;
|
||||||
// overflow: auto;
|
// overflow: auto;
|
||||||
|
|
||||||
&-top{
|
&-top{
|
||||||
border-bottom: 1px solid @borderColor;
|
border-bottom: 1px solid @borderColor;
|
||||||
padding-bottom: 20px;
|
padding-bottom: 20px;
|
||||||
@ -139,14 +237,88 @@ export default {
|
|||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
margin: 20px 0;
|
margin: 20px 0;
|
||||||
&-item{
|
&-item{
|
||||||
width: 20%;
|
text-align: center;
|
||||||
height: 20px;
|
padding: 10px 60px;
|
||||||
background: #09f;
|
margin: 4px 0;
|
||||||
|
font-size: 16px;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
background: #f5f5f5;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.active{
|
||||||
|
background: @fontBlue;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
.left::before{
|
||||||
|
content: "";
|
||||||
|
width: 20px;
|
||||||
|
height: 100%;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
background: url(./img/left.png) no-repeat;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
}
|
||||||
|
.right::after{
|
||||||
|
content: "";
|
||||||
|
width: 20px;
|
||||||
|
height: 100%;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
right: 0;
|
||||||
|
background: url(./img/right.png) no-repeat;
|
||||||
|
background-size: 100% 100%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
&-jilu{
|
&-jilu{
|
||||||
|
&-title{
|
||||||
|
padding: 20px 0 10px 0;
|
||||||
|
}
|
||||||
|
&-item{
|
||||||
|
padding: 0 0 0 10px;
|
||||||
|
&-time{
|
||||||
|
margin: 4px 0;
|
||||||
|
font-size: 14px;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
&-time::before{
|
||||||
|
position: absolute;
|
||||||
|
left: -16px;
|
||||||
|
top: 0;
|
||||||
|
content: "";
|
||||||
|
bottom: 0;
|
||||||
|
margin: auto;
|
||||||
|
width: 10px;
|
||||||
|
height: 10px;
|
||||||
|
background: @fontBlue;
|
||||||
|
overflow: hidden;
|
||||||
|
border-radius: 50%;
|
||||||
|
}
|
||||||
|
&-content{
|
||||||
|
padding:0 0 0 10px;
|
||||||
|
display: flex;
|
||||||
|
min-height: 60px;
|
||||||
|
align-items: center;
|
||||||
|
span{
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
.mubiao{
|
||||||
|
color: @fontBlue;
|
||||||
|
margin: 0 4px;
|
||||||
|
}
|
||||||
|
&-img{
|
||||||
|
width: 30px;
|
||||||
|
height: 30px;
|
||||||
|
border-radius: 50%;
|
||||||
|
overflow: hidden;
|
||||||
|
margin-right: 10px;
|
||||||
|
img{
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,15 +3,21 @@
|
|||||||
<div class="step">
|
<div class="step">
|
||||||
<small-nav :showTitle='false'>
|
<small-nav :showTitle='false'>
|
||||||
<div slot="content">
|
<div slot="content">
|
||||||
<el-cascader size="mini" :props="props" :options="timeOptions" @change="handleChange"></el-cascader>
|
<el-cascader
|
||||||
|
:key="key"
|
||||||
|
v-model="startId"
|
||||||
|
size="mini"
|
||||||
|
:props="props"
|
||||||
|
:options="timeOptions"
|
||||||
|
@change="handleChange"></el-cascader>
|
||||||
</div>
|
</div>
|
||||||
</small-nav>
|
</small-nav>
|
||||||
<div class="step-content boderAndRadius">
|
<div class="step-content boderAndRadius">
|
||||||
<div class="step-content-top">
|
<div class="step-content-top">
|
||||||
<div class="step-content-top-left">
|
<div class="step-content-top-left">
|
||||||
<el-button size="small" @click="handleChoose" plain>{{formTitle}}<i style="margin-left:10px;" class="el-icon-arrow-down"></i></el-button>
|
<el-button size="small" @click="handleChoose" plain>{{formTitle}}<i style="margin-left:10px;" class="el-icon-arrow-down"></i></el-button>
|
||||||
<el-button size="small" @click="kaopingFrom.showRight = true" plain>选择考评组<i style="margin-left:10px;" class="el-icon-arrow-down"></i></el-button>
|
<el-button size="small" @click="handleKaoping" plain>选择考评组<i style="margin-left:10px;" class="el-icon-arrow-down"></i></el-button>
|
||||||
<el-input size="small" style="margin-left:10px;" v-model="formInline.user" prefix-icon="el-icon-search" placeholder="请输入姓名搜索"></el-input>
|
<el-input clearable @change="handleChangeInput" @keyup.enter="handleChangeInput" size="small" style="margin-left:10px;" v-model="params.name" prefix-icon="el-icon-search" placeholder="请输入姓名搜索"></el-input>
|
||||||
</div>
|
</div>
|
||||||
<div class="step-content-top-right">
|
<div class="step-content-top-right">
|
||||||
<el-button size="small" type="primary">开始评分</el-button>
|
<el-button size="small" type="primary">开始评分</el-button>
|
||||||
@ -33,37 +39,70 @@
|
|||||||
:data="tableData"
|
:data="tableData"
|
||||||
style="width: 100%">
|
style="width: 100%">
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="date"
|
prop="staffName"
|
||||||
label="日期"
|
|
||||||
align='center'
|
|
||||||
width="180">
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column
|
|
||||||
prop="name"
|
|
||||||
label="姓名"
|
label="姓名"
|
||||||
align='center'
|
align='center'
|
||||||
width="180">
|
>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
prop="departmentName"
|
||||||
|
label="部门"
|
||||||
|
align='center'
|
||||||
|
>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
prop="evaluationName"
|
||||||
|
label="考评组"
|
||||||
|
align='center'
|
||||||
|
>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
prop="allScore"
|
||||||
|
label="考核结果"
|
||||||
|
align='center'
|
||||||
|
>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
prop="scoreLevel"
|
||||||
|
label="绩效等级"
|
||||||
|
align='center'
|
||||||
|
>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="address"
|
prop="address"
|
||||||
align='center'
|
align='center'
|
||||||
label="地址">
|
label="操作">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<div>
|
<div>
|
||||||
{{scope.row}}
|
<el-button
|
||||||
|
@click="handleLook(scope.row.id)"
|
||||||
|
type="text"
|
||||||
|
size="small">
|
||||||
|
查 看
|
||||||
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
</el-table>
|
</el-table>
|
||||||
|
<div class="footer">
|
||||||
|
<el-pagination
|
||||||
|
small
|
||||||
|
:hide-on-single-page='true'
|
||||||
|
@current-change="handleChangePage"
|
||||||
|
layout="prev, pager, next"
|
||||||
|
:page-size.sync='params.pageSize'
|
||||||
|
:current-page.sync='params.currPage'
|
||||||
|
:total="params.totalCount">
|
||||||
|
</el-pagination>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<popup-right v-if="kaopingFrom.showRight" @cancel='handleCancel' @submit="handleSubmit" title="考评组筛选">
|
<popup-right v-if="kaopingFrom.showRight" @cancel='handleCancel' @submit="handleSubmit" title="考评组筛选">
|
||||||
<div slot="content" class="chooseManage">
|
<div slot="content" class="chooseManage">
|
||||||
66
|
<div v-for="i in rightList" :key="i.id" class="chooseManage-item" >
|
||||||
<!-- <div v-for="i in GroundList" :key="i.staffId" class="chooseManage-item" >
|
|
||||||
<el-checkbox :true-label='1' :false-label='0' :disabled='i.isDisable===1' :checked='i.isDisable===1' v-model='i.isSelect'></el-checkbox><span class='commonFont' style="margin:0 0 0 10px;">{{i.staffName}} </span>
|
<el-checkbox :true-label='1' :false-label='0' :disabled='i.isDisable===1' :checked='i.isDisable===1' v-model='i.isSelect'></el-checkbox><span class='commonFont' style="margin:0 0 0 10px;">{{i.staffName}} </span>
|
||||||
</div> -->
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</popup-right>
|
</popup-right>
|
||||||
<getPersonnel v-if="form.isShowPersonnel" :value.sync='params.staffIds' :isShow.sync='form.isShowPersonnel' :showDataList.sync='form.personnelList'/>
|
<getPersonnel v-if="form.isShowPersonnel" :value.sync='params.staffIds' :isShow.sync='form.isShowPersonnel' :showDataList.sync='form.personnelList'/>
|
||||||
@ -75,6 +114,7 @@ import SmallNav from '@/components/kpi-layout/SmallNav'
|
|||||||
import getPersonnel from '@/components/getPersonnel'
|
import getPersonnel from '@/components/getPersonnel'
|
||||||
import PopupRight from '@/components/PopupRight'
|
import PopupRight from '@/components/PopupRight'
|
||||||
import { apiManagerDetail, apiChartList } from '@/api/assessment'
|
import { apiManagerDetail, apiChartList } from '@/api/assessment'
|
||||||
|
import {getWorkList} from '@/api/workbench'
|
||||||
import { getStartsData } from '@/api/report'
|
import { getStartsData } from '@/api/report'
|
||||||
let id = 0
|
let id = 0
|
||||||
export default {
|
export default {
|
||||||
@ -89,15 +129,17 @@ export default {
|
|||||||
list: []
|
list: []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
startId: null,
|
||||||
params: {
|
params: {
|
||||||
'currPage': 1,
|
'currPage': 1,
|
||||||
// 'evaluationIds': '',
|
'evaluationIds': '',
|
||||||
'flowProcess': 0,
|
'flowProcess': null,
|
||||||
'pageSize': 10,
|
'pageSize': 5,
|
||||||
// 'staffIds': '',
|
// 'staffIds': '',
|
||||||
// 'staffName': '',
|
// 'staffName': '',
|
||||||
'startId': 10
|
'startId': 10
|
||||||
},
|
},
|
||||||
|
key: 0,
|
||||||
timeOptions: [{
|
timeOptions: [{
|
||||||
startId: 0,
|
startId: 0,
|
||||||
time: '月底',
|
time: '月底',
|
||||||
@ -110,25 +152,10 @@ export default {
|
|||||||
//
|
//
|
||||||
props: {
|
props: {
|
||||||
value: 'startId',
|
value: 'startId',
|
||||||
label: 'time'
|
label: 'time',
|
||||||
|
level: true
|
||||||
},
|
},
|
||||||
tableData: [{
|
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 弄'
|
|
||||||
}],
|
|
||||||
formInline: {},
|
formInline: {},
|
||||||
titleList: []
|
titleList: []
|
||||||
}
|
}
|
||||||
@ -144,11 +171,49 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
beforeMount () {},
|
beforeMount () {},
|
||||||
mounted () {
|
async mounted () {
|
||||||
this.handleGetChartList()
|
this.params.startId = Number(this.$route.query.id)
|
||||||
this.handleStartsReq()
|
await this.handleStartsReq()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
// 获取考评组
|
||||||
|
async handleKaoping () {
|
||||||
|
let res = await getWorkList(Object.assign({}, {startId: this.params.startId}, {
|
||||||
|
'currPage': 1,
|
||||||
|
'pageSize': 999
|
||||||
|
}))
|
||||||
|
if (res.code !== 200) {
|
||||||
|
this.rightList = []
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.rightList = res.data.list
|
||||||
|
this.kaopingFrom.showRight = true
|
||||||
|
console.log('ressss: ', res)
|
||||||
|
},
|
||||||
|
handleLook (id) {
|
||||||
|
// this.handleKaoping()
|
||||||
|
this.$router.push({
|
||||||
|
name: 'assessment-performance',
|
||||||
|
query: {id}
|
||||||
|
})
|
||||||
|
console.log('id: ', id)
|
||||||
|
},
|
||||||
|
handleChangeInput () {
|
||||||
|
this.params.currPage = 1
|
||||||
|
this.handleGetListContent()
|
||||||
|
},
|
||||||
|
handleChangePage (value) {
|
||||||
|
this.params.currPage = value
|
||||||
|
this.handleGetListContent()
|
||||||
|
},
|
||||||
|
async handleGetListContent (params = this.params) {
|
||||||
|
let res = await apiManagerDetail(params)
|
||||||
|
if (res.code !== 200) return
|
||||||
|
this.tableData = res.data.list
|
||||||
|
this.params.totalCount = res.data.totalCount
|
||||||
|
this.params.currPage = res.data.currPage
|
||||||
|
console.log('res: ', res)
|
||||||
|
},
|
||||||
// 为了不分页直接传999
|
// 为了不分页直接传999
|
||||||
async handleStartsReq (type, handleNode) {
|
async handleStartsReq (type, handleNode) {
|
||||||
let params = {
|
let params = {
|
||||||
@ -157,6 +222,7 @@ export default {
|
|||||||
pageSize: 999
|
pageSize: 999
|
||||||
}
|
}
|
||||||
for (let j in this.timeOptions) {
|
for (let j in this.timeOptions) {
|
||||||
|
// params.startId
|
||||||
try {
|
try {
|
||||||
let res = await getStartsData({
|
let res = await getStartsData({
|
||||||
currentPage: 1,
|
currentPage: 1,
|
||||||
@ -165,13 +231,26 @@ export default {
|
|||||||
})
|
})
|
||||||
res = res.data
|
res = res.data
|
||||||
console.log('res: ', res)
|
console.log('res: ', res)
|
||||||
this.timeOptions[j].children = res.list
|
this.key += 10
|
||||||
|
this.timeOptions[j].children = res.list.map(i => {
|
||||||
|
if (i.startId === this.params.startId) {
|
||||||
|
this.startId = [this.timeOptions[j].startId, i.startId]
|
||||||
|
}
|
||||||
|
return i
|
||||||
|
})
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log(error)
|
console.log(error)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
await this.handleGetChartList()
|
||||||
},
|
},
|
||||||
handleChange (item) {
|
async handleChange (item) {
|
||||||
|
this.params.startId = item[1]
|
||||||
|
// await this.handleGetChartList(Object.assign({}, this.params, {startId: item[1]}))
|
||||||
|
this.params.currPage = 1
|
||||||
|
this.params.startId = item[1]
|
||||||
|
await this.handleGetChartList()
|
||||||
|
console.log('this.params: ', this.params)
|
||||||
console.log('item: ', item)
|
console.log('item: ', item)
|
||||||
},
|
},
|
||||||
handleSubmit () {
|
handleSubmit () {
|
||||||
@ -187,23 +266,37 @@ export default {
|
|||||||
handleGetList () {
|
handleGetList () {
|
||||||
console.log('1', this.form.personnelList)
|
console.log('1', this.form.personnelList)
|
||||||
},
|
},
|
||||||
handleActive (i) {
|
async handleActive (i) {
|
||||||
|
if (i.active) return
|
||||||
this.titleList = this.titleList.map(j => {
|
this.titleList = this.titleList.map(j => {
|
||||||
j.active = false
|
j.active = false
|
||||||
return j
|
return j
|
||||||
})
|
})
|
||||||
|
this.params.flowProcess = i.flowProcess
|
||||||
|
this.params.currPage = 1
|
||||||
i.active = true
|
i.active = true
|
||||||
|
await this.handleGetListContent()
|
||||||
},
|
},
|
||||||
// 获取tabbar
|
// 获取tabbar
|
||||||
async handleGetChartList (params = this.params) {
|
async handleGetChartList (params = this.params) {
|
||||||
let res = await apiChartList(params)
|
let res = await apiChartList(Object.assign({}, this.params, {
|
||||||
|
currPage: 1,
|
||||||
|
pageSize: 100
|
||||||
|
}))
|
||||||
if (res.code !== 200) return
|
if (res.code !== 200) return
|
||||||
this.titleList = res.data
|
this.titleList = res.data
|
||||||
this.titleList[0].active = true
|
this.titleList[0].active = true
|
||||||
|
this.params.flowProcess = this.titleList[0].flowProcess
|
||||||
|
this.handleGetListContent()
|
||||||
|
console.log('this.params: ', this.params)
|
||||||
console.log('res: ', res)
|
console.log('res: ', res)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch: {}
|
watch: {
|
||||||
|
'params.staffIds' (n, o) {
|
||||||
|
this.handleGetListContent()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -211,10 +304,14 @@ export default {
|
|||||||
|
|
||||||
<style lang='less' scoped>
|
<style lang='less' scoped>
|
||||||
.step-content{
|
.step-content{
|
||||||
|
.footer{
|
||||||
|
text-align: right;
|
||||||
|
margin: 20px 0 0 0;
|
||||||
|
}
|
||||||
padding: 28px;
|
padding: 28px;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
margin: 20px 0;
|
margin: 20px 0;
|
||||||
height: 537px;
|
min-height: 537px;
|
||||||
background: #fff;
|
background: #fff;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
&-top{
|
&-top{
|
||||||
|
|||||||
@ -294,6 +294,7 @@ export default {
|
|||||||
async handleGetByGroupId (id) {
|
async handleGetByGroupId (id) {
|
||||||
try {
|
try {
|
||||||
let res = await getByGroupId({id})
|
let res = await getByGroupId({id})
|
||||||
|
res = res.data
|
||||||
res = Object.assign({}, res, {
|
res = Object.assign({}, res, {
|
||||||
evaluationGroupId: res.id,
|
evaluationGroupId: res.id,
|
||||||
calculateId: 1 }
|
calculateId: 1 }
|
||||||
|
|||||||
@ -60,6 +60,7 @@
|
|||||||
@current-change="handleChangePage"
|
@current-change="handleChangePage"
|
||||||
layout="prev, pager, next"
|
layout="prev, pager, next"
|
||||||
:page-size.sync='params.pageSize'
|
:page-size.sync='params.pageSize'
|
||||||
|
:current-page.sync='params.currPage'
|
||||||
:total="params.totalCount">
|
:total="params.totalCount">
|
||||||
</el-pagination>
|
</el-pagination>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -79,9 +79,7 @@
|
|||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button
|
<el-button
|
||||||
type="text"
|
type="text"
|
||||||
@click.native.prevent="
|
@click.native.prevent="handleGroupDelete(scope.$index, formData.assessmentList)"
|
||||||
handleGroupDelete(scope.$index, formData.assessmentList)
|
|
||||||
"
|
|
||||||
size="small"
|
size="small"
|
||||||
>删除</el-button>
|
>删除</el-button>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user