Merge branch 'v_1.0.0' of http://gitlab.ldxinyong.com/enterpriseManagement/digitization-ui into v_1.0.0
* 'v_1.0.0' of http://gitlab.ldxinyong.com/enterpriseManagement/digitization-ui: 优化 优化 有哈 优化
This commit is contained in:
commit
09a7b4d08f
@ -53,3 +53,12 @@ export function apiResultGetDetail (query) {
|
|||||||
params: query
|
params: query
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 保存绩效详情-
|
||||||
|
export function apiSaveDetail (query) {
|
||||||
|
return request({
|
||||||
|
url: '/lz_management/user/lzresultrecord/saveDetail',
|
||||||
|
method: 'post',
|
||||||
|
data: query
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
<div class="team-filter commonFont">
|
<div class="team-filter commonFont">
|
||||||
<el-dialog
|
<el-dialog
|
||||||
title="考评组筛选"
|
title="考评组筛选"
|
||||||
:visible.sync="dialogVisible"
|
:visible="true"
|
||||||
:before-close="handleCancel"
|
:before-close="handleCancel"
|
||||||
width="920"
|
width="920"
|
||||||
>
|
>
|
||||||
@ -15,6 +15,7 @@
|
|||||||
prefix-icon="el-icon-search"
|
prefix-icon="el-icon-search"
|
||||||
v-model="searchName"
|
v-model="searchName"
|
||||||
@change="handleSearchChange"
|
@change="handleSearchChange"
|
||||||
|
clearable
|
||||||
placeholder="搜索考评组"
|
placeholder="搜索考评组"
|
||||||
size="small"
|
size="small"
|
||||||
></el-input>
|
></el-input>
|
||||||
@ -112,6 +113,10 @@ export default {
|
|||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: false
|
default: false
|
||||||
},
|
},
|
||||||
|
value: {
|
||||||
|
type: String,
|
||||||
|
deafult: () => ''
|
||||||
|
},
|
||||||
filtersDic: {
|
filtersDic: {
|
||||||
type: Object,
|
type: Object,
|
||||||
default: () => {
|
default: () => {
|
||||||
@ -123,24 +128,11 @@ export default {
|
|||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
searchName: '',
|
searchName: '',
|
||||||
tableList: [{
|
tableList: [],
|
||||||
copyId: 0,
|
|
||||||
counts: 53,
|
|
||||||
depIds: '154322459',
|
|
||||||
gmtCreate: '2020-10-26 11:22:01',
|
|
||||||
gmtModified: '2020-10-27 14:30:47',
|
|
||||||
id: 57,
|
|
||||||
isDelete: 0,
|
|
||||||
managerIds: '380',
|
|
||||||
name: '1231',
|
|
||||||
outIds: '322,379,380,387,388,389,391,410,825',
|
|
||||||
score: 0,
|
|
||||||
staffIds: ''
|
|
||||||
}],
|
|
||||||
seleactedList: [],
|
seleactedList: [],
|
||||||
pageInfo: {
|
pageInfo: {
|
||||||
currPage: 1,
|
currPage: 1,
|
||||||
pageSize: 1,
|
pageSize: 500,
|
||||||
totalCount: 1,
|
totalCount: 1,
|
||||||
totalPage: 1
|
totalPage: 1
|
||||||
}
|
}
|
||||||
@ -149,27 +141,41 @@ export default {
|
|||||||
created () {
|
created () {
|
||||||
},
|
},
|
||||||
mounted () {
|
mounted () {
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.handleDataList()
|
||||||
|
})
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
dialogVisible (newVal, oldVal) {
|
// dialogVisible (newVal, oldVal) {
|
||||||
if (newVal !== oldVal && newVal) {
|
// if (newVal) {
|
||||||
this.handleDataList()
|
// if (this.filtersDic.currPage === undefined || !this.filtersDic.currPage) {
|
||||||
}
|
// this.filtersDic['currPage'] = this.pageInfo.currPage
|
||||||
}
|
// }
|
||||||
|
// if (this.filtersDic.pageSize === undefined || !this.filtersDic.pageSize) {
|
||||||
|
// this.filtersDic['pageSize'] = this.pageInfo.pageSize
|
||||||
|
// }
|
||||||
|
// this.handleDataList()
|
||||||
|
// }
|
||||||
|
// }
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
handleDataList () {
|
handleDataList () {
|
||||||
let paraDic = Object.assign(this.pageInfo, this.filtersDic)
|
apiGetEvaluationTeamList(Object.assign({}, this.pageInfo, this.filtersDic)).then(res => {
|
||||||
apiGetEvaluationTeamList(paraDic).then(res => {
|
|
||||||
this.pageInfo.currPage = res.data.currPage
|
this.pageInfo.currPage = res.data.currPage
|
||||||
this.pageInfo.totalCount = res.data.totalCount
|
this.pageInfo.totalCount = res.data.totalCount
|
||||||
this.pageInfo.totalPage = res.data.totalPage
|
this.pageInfo.totalPage = res.data.totalPage
|
||||||
this.tableList = res.data.list
|
this.tableList = res.data.list
|
||||||
|
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.tableList.map(i => {
|
||||||
|
if (this.value.includes(String(i.id))) {
|
||||||
|
this.$refs.refChooseTable.toggleRowSelection(i, true)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
// this.$ref.refChooseTable.toggleRowSelection()
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
// handleGetRowStyle () {
|
|
||||||
// return { 'height': '44px' }
|
|
||||||
// },
|
|
||||||
handleSearchChange () {
|
handleSearchChange () {
|
||||||
// 搜索
|
// 搜索
|
||||||
this.filtersDic['name'] = this.searchName
|
this.filtersDic['name'] = this.searchName
|
||||||
@ -191,8 +197,16 @@ export default {
|
|||||||
this.$emit('close')
|
this.$emit('close')
|
||||||
},
|
},
|
||||||
handleSubmit () {
|
handleSubmit () {
|
||||||
this.$emit('submitClick', this.seleactedList)
|
const obj = {
|
||||||
this.handleCancel()
|
value: '',
|
||||||
|
title: ''
|
||||||
|
}
|
||||||
|
this.seleactedList.sort((a, b) => a.id - b.id).map(i => {
|
||||||
|
obj.value += i.id + ','
|
||||||
|
})
|
||||||
|
obj.value = obj.value.substring(obj.value.length - 1, 0)
|
||||||
|
obj.title = this.seleactedList.length > 0 ? (this.seleactedList[0].name + '等' + this.seleactedList.length + '个考评组') : ''
|
||||||
|
this.$emit('submitClick', obj)
|
||||||
},
|
},
|
||||||
handleSelectionChange (val) {
|
handleSelectionChange (val) {
|
||||||
this.seleactedList = val
|
this.seleactedList = val
|
||||||
@ -229,6 +243,7 @@ export default {
|
|||||||
&-content {
|
&-content {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 425px;
|
height: 425px;
|
||||||
|
padding: 20px 0;
|
||||||
border-bottom: 1 solid @borderColor;
|
border-bottom: 1 solid @borderColor;
|
||||||
&-left {
|
&-left {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
|||||||
@ -68,6 +68,10 @@
|
|||||||
import bbb from './a'
|
import bbb from './a'
|
||||||
export default {
|
export default {
|
||||||
props: {
|
props: {
|
||||||
|
len: {
|
||||||
|
type: Number,
|
||||||
|
default: 99999
|
||||||
|
},
|
||||||
isShow: {
|
isShow: {
|
||||||
TYPE: Boolean,
|
TYPE: Boolean,
|
||||||
default: () => false
|
default: () => false
|
||||||
@ -224,10 +228,19 @@ export default {
|
|||||||
}
|
}
|
||||||
return item
|
return item
|
||||||
}, [])
|
}, [])
|
||||||
|
if (this.len < arr.length) {
|
||||||
|
this.$message.info('人数最多只能选择' + this.len + '人')
|
||||||
|
return
|
||||||
|
}
|
||||||
const params = this.$personlGetForm(arr)
|
const params = this.$personlGetForm(arr)
|
||||||
this.$emit('update:value', params.value)
|
console.log(this.$listeners)
|
||||||
this.$emit('update:showDataList', params)
|
if (this.$listeners.cb) {
|
||||||
this.$emit('update:isShow', false)
|
this.$emit('cb', params)
|
||||||
|
} else {
|
||||||
|
this.$emit('update:value', params.value)
|
||||||
|
this.$emit('update:showDataList', params)
|
||||||
|
this.$emit('update:isShow', false)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
handleGetPerson (list = this.tags, getList = []) {
|
handleGetPerson (list = this.tags, getList = []) {
|
||||||
list.map(i => {
|
list.map(i => {
|
||||||
|
|||||||
@ -53,6 +53,9 @@ export default {
|
|||||||
color: #aaaaaa;
|
color: #aaaaaa;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
&-back:hover{
|
||||||
|
color: @fontBlue;
|
||||||
|
}
|
||||||
&-title{
|
&-title{
|
||||||
padding: 0 10px;
|
padding: 0 10px;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|||||||
@ -9,8 +9,8 @@
|
|||||||
departmentName:obj.departmentName
|
departmentName:obj.departmentName
|
||||||
}"/>
|
}"/>
|
||||||
<div>
|
<div>
|
||||||
<el-button size='small' plain>暂存</el-button>
|
<el-button size='small' @click="handleSaveDetail()" plain>暂存</el-button>
|
||||||
<el-button size='small' type="primary">提交</el-button>
|
<el-button size='small' type="primary" >提交</el-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="goals-content-tabbar">
|
<div class="goals-content-tabbar">
|
||||||
@ -107,7 +107,7 @@ import InfoHeader from '@/components/InfoHeader'
|
|||||||
import PopupRight from '@/components/PopupRight'
|
import PopupRight from '@/components/PopupRight'
|
||||||
import draggable from 'vuedraggable'
|
import draggable from 'vuedraggable'
|
||||||
import {getDimensions} from '@/api/data'
|
import {getDimensions} from '@/api/data'
|
||||||
import { apiResultGetDetail } from '@/api/assessment'
|
import { apiResultGetDetail, apiSaveDetail } from '@/api/assessment'
|
||||||
export default {
|
export default {
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
@ -160,6 +160,15 @@ export default {
|
|||||||
this.handleGetTbale()
|
this.handleGetTbale()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
async handleSaveDetail (params = this.obj) {
|
||||||
|
let res = await apiSaveDetail(params)
|
||||||
|
if (res.code !== 200) {
|
||||||
|
this.$message.error = res.msg
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.handleGetTbale()
|
||||||
|
console.log('res: ', res)
|
||||||
|
},
|
||||||
// 获取维度类型
|
// 获取维度类型
|
||||||
async handleGetDimensions () {
|
async handleGetDimensions () {
|
||||||
try {
|
try {
|
||||||
@ -220,7 +229,7 @@ export default {
|
|||||||
handleFilter (item) {
|
handleFilter (item) {
|
||||||
return item ? item.filter(i => !i.isDelete) : []
|
return item ? item.filter(i => !i.isDelete) : []
|
||||||
},
|
},
|
||||||
async handleGetTbale (id = 226) {
|
async handleGetTbale (id = this.$route.query.id) {
|
||||||
let res = await apiResultGetDetail({id})
|
let res = await apiResultGetDetail({id})
|
||||||
if (res.code !== 200) return
|
if (res.code !== 200) return
|
||||||
this.obj = res.data
|
this.obj = res.data
|
||||||
|
|||||||
@ -56,7 +56,7 @@
|
|||||||
@click="handlePush(scope.row.id)"
|
@click="handlePush(scope.row.id)"
|
||||||
type="text"
|
type="text"
|
||||||
size="small">
|
size="small">
|
||||||
编 辑
|
查 看
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
@click="handleDelete(scope.row.id)"
|
@click="handleDelete(scope.row.id)"
|
||||||
|
|||||||
@ -0,0 +1,55 @@
|
|||||||
|
<!-- -->
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<el-button
|
||||||
|
size="mini"
|
||||||
|
@click="handleZhiding"
|
||||||
|
type="primary"
|
||||||
|
>制定目标</el-button>
|
||||||
|
<getPersonnel :len='1' @cb='cb' v-if="isShowPersonnel" :value.sync='staffIds' :isShow.sync='isShowPersonnel' :showDataList.sync='personnelList'/>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import getPersonnel from '@/components/getPersonnel'
|
||||||
|
export default {
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
isShowPersonnel: false,
|
||||||
|
staffIds: '',
|
||||||
|
personnelList: {
|
||||||
|
list: []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
components: {
|
||||||
|
getPersonnel
|
||||||
|
},
|
||||||
|
computed: {},
|
||||||
|
beforeMount () {},
|
||||||
|
mounted () {},
|
||||||
|
methods: {
|
||||||
|
cb (info) {
|
||||||
|
console.log(info)
|
||||||
|
},
|
||||||
|
// 制定目标
|
||||||
|
handleZhiding () {
|
||||||
|
this.isShowPersonnel = true
|
||||||
|
return
|
||||||
|
this.$router.push({
|
||||||
|
name: 'assessment-goals',
|
||||||
|
query: {
|
||||||
|
id: 267 || this.$route.query.id
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch: {}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang='' scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
@ -25,11 +25,7 @@
|
|||||||
departmentName:obj.departmentName
|
departmentName:obj.departmentName
|
||||||
}" />
|
}" />
|
||||||
<div class="performance-content-title-right">
|
<div class="performance-content-title-right">
|
||||||
<el-button
|
<UseButton />
|
||||||
size="mini"
|
|
||||||
@click="handleZhiding"
|
|
||||||
type="primary"
|
|
||||||
>制定目标</el-button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="performance-content-center">
|
<div class="performance-content-center">
|
||||||
@ -92,7 +88,7 @@
|
|||||||
:obj='obj'
|
:obj='obj'
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="performance-content-jilu">
|
<div v-if="!formList.resultCommentList" class="performance-content-jilu">
|
||||||
<div class="performance-content-jilu-title commonFont">
|
<div class="performance-content-jilu-title commonFont">
|
||||||
记录
|
记录
|
||||||
</div>
|
</div>
|
||||||
@ -134,11 +130,20 @@
|
|||||||
:key="index"
|
:key="index"
|
||||||
v-for="(i,index) in form.item.flowDetailRespList"
|
v-for="(i,index) in form.item.flowDetailRespList"
|
||||||
>
|
>
|
||||||
{{i}}
|
<InfoHeader :obj="{
|
||||||
|
name:i.staffName,
|
||||||
|
departmentName:i.departName
|
||||||
|
}"/>
|
||||||
|
<div class="chooseManage-item-center">
|
||||||
|
<el-tag size="mini" type="warning">未确认</el-tag>
|
||||||
|
<!-- <el-tag>已跳过</el-tag>
|
||||||
|
<el-tag type="success">已确认</el-tag> -->
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<el-button size="mini" @click="handleJump(i)" type="primary" plain>跳过</el-button>
|
||||||
|
<el-button size="mini" type="primary" plain>转交</el-button>
|
||||||
|
</div>
|
||||||
</div>
|
</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>
|
</div>
|
||||||
</popup-right>
|
</popup-right>
|
||||||
</div>
|
</div>
|
||||||
@ -148,6 +153,8 @@
|
|||||||
import SmallNav from '@/components/kpi-layout/SmallNav'
|
import SmallNav from '@/components/kpi-layout/SmallNav'
|
||||||
import InfoHeader from '@/components/InfoHeader'
|
import InfoHeader from '@/components/InfoHeader'
|
||||||
import PopupRight from '@/components/PopupRight'
|
import PopupRight from '@/components/PopupRight'
|
||||||
|
import UseButton from './components/UseButton'
|
||||||
|
|
||||||
import { apiResultRecordDetail, apiResultGetDetail } from '@/api/assessment'
|
import { apiResultRecordDetail, apiResultGetDetail } from '@/api/assessment'
|
||||||
import tables from './components/table'
|
import tables from './components/table'
|
||||||
|
|
||||||
@ -187,7 +194,8 @@ export default {
|
|||||||
SmallNav,
|
SmallNav,
|
||||||
InfoHeader,
|
InfoHeader,
|
||||||
PopupRight,
|
PopupRight,
|
||||||
tables
|
tables,
|
||||||
|
UseButton
|
||||||
},
|
},
|
||||||
computed: {},
|
computed: {},
|
||||||
beforeMount () { },
|
beforeMount () { },
|
||||||
@ -196,16 +204,26 @@ export default {
|
|||||||
this.handleGetTbale()
|
this.handleGetTbale()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// 制定目标
|
// 跳过
|
||||||
handleZhiding () {
|
handleJump (item) {
|
||||||
this.$router.push({
|
console.log('item: ', item)
|
||||||
name: 'assessment-goals',
|
this.$confirm('确认跳过该人员?', '提示', {
|
||||||
query: {
|
confirmButtonText: '确定',
|
||||||
id: this.$route.query.id
|
cancelButtonText: '取消',
|
||||||
}
|
type: 'warning'
|
||||||
|
}).then(() => {
|
||||||
|
this.$message({
|
||||||
|
type: 'success',
|
||||||
|
message: '删除成功!'
|
||||||
|
})
|
||||||
|
}).catch(() => {
|
||||||
|
this.$message({
|
||||||
|
type: 'info',
|
||||||
|
message: '已取消删除'
|
||||||
|
})
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
async handleGetTbale (id = 226) {
|
async handleGetTbale (id = 267) {
|
||||||
let res = await apiResultGetDetail({ id })
|
let res = await apiResultGetDetail({ id })
|
||||||
this.obj = res.data
|
this.obj = res.data
|
||||||
console.log('res: ', res)
|
console.log('res: ', res)
|
||||||
@ -223,7 +241,7 @@ export default {
|
|||||||
},
|
},
|
||||||
async handleList () {
|
async handleList () {
|
||||||
// resultRecordId = == this.$route.query.id
|
// resultRecordId = == this.$route.query.id
|
||||||
let res = await apiResultRecordDetail({ resultRecordId: 215 })
|
let res = await apiResultRecordDetail({ resultRecordId: 267 })
|
||||||
if (res.code !== 200) return
|
if (res.code !== 200) return
|
||||||
for (let i in res.data.flowRecordList) {
|
for (let i in res.data.flowRecordList) {
|
||||||
if (res.data.flowRecordList[i].status !== 1) {
|
if (res.data.flowRecordList[i].status !== 1) {
|
||||||
@ -249,8 +267,15 @@ export default {
|
|||||||
.performance {
|
.performance {
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
.chooseManage-item {
|
.chooseManage-item {
|
||||||
padding: 24px 0;
|
// padding: 24px 0;
|
||||||
border-bottom: 1px solid @borderColor;
|
border-bottom: 1px solid @borderColor;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
&-center{
|
||||||
|
min-width: 200px;
|
||||||
|
.center()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
&-content {
|
&-content {
|
||||||
padding: 28px;
|
padding: 28px;
|
||||||
|
|||||||
@ -16,7 +16,7 @@
|
|||||||
<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="handleKaoping" plain>选择考评组<i style="margin-left:10px;" class="el-icon-arrow-down"></i></el-button>
|
<el-button size="small" @click="handleKaoping" plain>{{params.evaluationIds?params.title:'选择考评组'}}<i style="margin-left:10px;" class="el-icon-arrow-down"></i></el-button>
|
||||||
<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>
|
<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">
|
||||||
@ -98,13 +98,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<popup-right v-if="kaopingFrom.showRight" @cancel='handleCancel' @submit="handleSubmit" title="考评组筛选">
|
<EvaluationTeamFilter v-if="dialogVisible" :value='params.evaluationIds' :filtersDic="{startId: this.params.startId }" :dialogVisible.sync='dialogVisible' @submitClick='submitClick' @close='dialogVisible = false'/>
|
||||||
<div slot="content" class="chooseManage">
|
|
||||||
<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>
|
|
||||||
<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'/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@ -113,6 +107,8 @@
|
|||||||
import SmallNav from '@/components/kpi-layout/SmallNav'
|
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 EvaluationTeamFilter from '@/components/EvaluationTeamFilter'
|
||||||
|
|
||||||
import { apiManagerDetail, apiChartList } from '@/api/assessment'
|
import { apiManagerDetail, apiChartList } from '@/api/assessment'
|
||||||
import {getWorkList} from '@/api/workbench'
|
import {getWorkList} from '@/api/workbench'
|
||||||
import { getStartsData } from '@/api/report'
|
import { getStartsData } from '@/api/report'
|
||||||
@ -120,9 +116,7 @@ let id = 0
|
|||||||
export default {
|
export default {
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
kaopingFrom: {
|
dialogVisible: false,
|
||||||
showRight: false
|
|
||||||
},
|
|
||||||
form: {
|
form: {
|
||||||
isShowPersonnel: false,
|
isShowPersonnel: false,
|
||||||
personnelList: {
|
personnelList: {
|
||||||
@ -135,8 +129,8 @@ export default {
|
|||||||
'evaluationIds': '',
|
'evaluationIds': '',
|
||||||
'flowProcess': null,
|
'flowProcess': null,
|
||||||
'pageSize': 5,
|
'pageSize': 5,
|
||||||
// 'staffIds': '',
|
'staffIds': '',
|
||||||
// 'staffName': '',
|
'staffName': '',
|
||||||
'startId': 10
|
'startId': 10
|
||||||
},
|
},
|
||||||
key: 0,
|
key: 0,
|
||||||
@ -163,7 +157,8 @@ export default {
|
|||||||
components: {
|
components: {
|
||||||
SmallNav,
|
SmallNav,
|
||||||
getPersonnel,
|
getPersonnel,
|
||||||
PopupRight
|
PopupRight,
|
||||||
|
EvaluationTeamFilter
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
formTitle () {
|
formTitle () {
|
||||||
@ -176,18 +171,16 @@ export default {
|
|||||||
await this.handleStartsReq()
|
await this.handleStartsReq()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
submitClick (item) {
|
||||||
|
this.params.evaluationIds = item.value
|
||||||
|
this.params.title = item.title
|
||||||
|
this.params.currPage = 1
|
||||||
|
this.handleGetListContent()
|
||||||
|
this.dialogVisible = false
|
||||||
|
},
|
||||||
// 获取考评组
|
// 获取考评组
|
||||||
async handleKaoping () {
|
async handleKaoping () {
|
||||||
let res = await getWorkList(Object.assign({}, {startId: this.params.startId}, {
|
this.dialogVisible = true
|
||||||
'currPage': 1,
|
|
||||||
'pageSize': 999
|
|
||||||
}))
|
|
||||||
if (res.code !== 200) {
|
|
||||||
this.rightList = []
|
|
||||||
return
|
|
||||||
}
|
|
||||||
this.rightList = res.data.list
|
|
||||||
this.kaopingFrom.showRight = true
|
|
||||||
},
|
},
|
||||||
handleLook (id) {
|
handleLook (id) {
|
||||||
// this.handleKaoping()
|
// this.handleKaoping()
|
||||||
@ -206,6 +199,7 @@ export default {
|
|||||||
this.handleGetListContent()
|
this.handleGetListContent()
|
||||||
},
|
},
|
||||||
async handleGetListContent (params = this.params) {
|
async handleGetListContent (params = this.params) {
|
||||||
|
console.log('params: ', params)
|
||||||
let res = await apiManagerDetail(params)
|
let res = await apiManagerDetail(params)
|
||||||
if (res.code !== 200) return
|
if (res.code !== 200) return
|
||||||
this.tableData = res.data.list
|
this.tableData = res.data.list
|
||||||
@ -245,7 +239,12 @@ export default {
|
|||||||
},
|
},
|
||||||
async handleChange (item) {
|
async handleChange (item) {
|
||||||
this.params.startId = item[1]
|
this.params.startId = item[1]
|
||||||
// await this.handleGetChartList(Object.assign({}, this.params, {startId: item[1]}))
|
this.$router.replace({
|
||||||
|
name: 'assessment-stepList',
|
||||||
|
query: {
|
||||||
|
id: item[1]
|
||||||
|
}
|
||||||
|
})
|
||||||
this.params.currPage = 1
|
this.params.currPage = 1
|
||||||
this.params.startId = item[1]
|
this.params.startId = item[1]
|
||||||
await this.handleGetChartList()
|
await this.handleGetChartList()
|
||||||
|
|||||||
@ -25,6 +25,7 @@
|
|||||||
<el-radio-group v-model="itemInfo.isActive">
|
<el-radio-group v-model="itemInfo.isActive">
|
||||||
<el-radio :label="1">主管(指定一级)</el-radio>
|
<el-radio :label="1">主管(指定一级)</el-radio>
|
||||||
<el-radio :label="0">指定成员</el-radio>
|
<el-radio :label="0">指定成员</el-radio>
|
||||||
|
<el-radio :label="-1">被考核人自己</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
<div v-if="itemInfo.isActive!==0 && itemInfo.isActive!==-1" style="padding:30px 0 0 20px;">
|
<div v-if="itemInfo.isActive!==0 && itemInfo.isActive!==-1" style="padding:30px 0 0 20px;">
|
||||||
<span>被考评人的</span>
|
<span>被考评人的</span>
|
||||||
@ -42,7 +43,7 @@
|
|||||||
<span style="font-size:14px;padding:0 0 0 10px;">{{itemInfo.name}}</span>
|
<span style="font-size:14px;padding:0 0 0 10px;">{{itemInfo.name}}</span>
|
||||||
</div>
|
</div>
|
||||||
<getpersonl v-if="itemInfo.isShow" :value.sync='itemInfo.optIds' :isShow.sync='itemInfo.isShow' :showDataList.sync='itemInfo.list'/>
|
<getpersonl v-if="itemInfo.isShow" :value.sync='itemInfo.optIds' :isShow.sync='itemInfo.isShow' :showDataList.sync='itemInfo.list'/>
|
||||||
<div style="padding:20px 0 0 0 ">
|
<div v-if="itemInfo.isActive!==-1" style="padding:20px 0 0 0 ">
|
||||||
<span>当执行人为多人时的处理方式:</span>
|
<span>当执行人为多人时的处理方式:</span>
|
||||||
<div style="padding:10px 0 0 20px">
|
<div style="padding:10px 0 0 20px">
|
||||||
<el-radio-group v-model="itemInfo.stepType">
|
<el-radio-group v-model="itemInfo.stepType">
|
||||||
@ -132,7 +133,7 @@ export default {
|
|||||||
list = list.map(i => {
|
list = list.map(i => {
|
||||||
i.isShow = false
|
i.isShow = false
|
||||||
i = Object.assign({}, this.handleOptType(i), i)
|
i = Object.assign({}, this.handleOptType(i), i)
|
||||||
i.isActive = i.optType === 0 ? 0 : 1
|
i.isActive = (i.optType === 0 || i.optType === -1) ? i.optType : 1
|
||||||
i.roleDtos = JSON.parse(JSON.stringify(this.roleDtos)).map(j => {
|
i.roleDtos = JSON.parse(JSON.stringify(this.roleDtos)).map(j => {
|
||||||
j.checked = i.roleIds ? i.roleIds.includes(String(j.id)) : false
|
j.checked = i.roleIds ? i.roleIds.includes(String(j.id)) : false
|
||||||
return j
|
return j
|
||||||
@ -157,6 +158,7 @@ export default {
|
|||||||
return obj
|
return obj
|
||||||
}
|
}
|
||||||
if (i.optType === -1) {
|
if (i.optType === -1) {
|
||||||
|
obj.name = '被考核人'
|
||||||
return obj
|
return obj
|
||||||
} else {
|
} else {
|
||||||
obj.name = this.options.filter(j => j.id === i.optType)[0].name
|
obj.name = this.options.filter(j => j.id === i.optType)[0].name
|
||||||
@ -231,10 +233,10 @@ export default {
|
|||||||
n.map(i => {
|
n.map(i => {
|
||||||
i.roleIds = ''
|
i.roleIds = ''
|
||||||
i.roleDtos.map(j => {
|
i.roleDtos.map(j => {
|
||||||
if (j.type !== 1 && j.checked) i.roleIds += j.id + ','
|
if (j.type !== 1 && j.checked) i.roleIds += j.roleId + ','
|
||||||
})
|
})
|
||||||
i.roleIds = i.roleIds.substring(0, i.roleIds.length - 1)
|
i.roleIds = i.roleIds.substring(0, i.roleIds.length - 1)
|
||||||
i.optType = i.isActive === 0 ? 0 : i.optType
|
i.optType = (i.isActive === 0 || i.isActive === -1) ? i.isActive : i.optType
|
||||||
})
|
})
|
||||||
console.log('n: ', n)
|
console.log('n: ', n)
|
||||||
this.$emit('update:info', this.list)
|
this.$emit('update:info', this.list)
|
||||||
@ -248,27 +250,25 @@ export default {
|
|||||||
list: {
|
list: {
|
||||||
deep: true,
|
deep: true,
|
||||||
handler (n, o) {
|
handler (n, o) {
|
||||||
this.handleIsEmit(n)
|
this.handleIsEmit(JSON.parse(JSON.stringify(n)))
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
itemInfo: {
|
itemInfo: {
|
||||||
deep: true,
|
deep: true,
|
||||||
handler (n, o) {
|
handler (n, o) {
|
||||||
console.log('nxcq: ', n)
|
const arr = n
|
||||||
if (n.isActive !== 0) {
|
console.log('arr: ', arr)
|
||||||
if (n.optType === 0 && n.optType !== -1) {
|
if (arr.isActive !== 0 && arr.isActive !== -1) {
|
||||||
n.name = this.options.filter(i => i.id === n.optType)[0].name
|
if (arr.optType < 1) arr.optType = 1
|
||||||
n.optType = 1
|
arr.name = this.options.filter(i => i.id === arr.optType)[0].name
|
||||||
}
|
} else if (arr.isActive === 0) {
|
||||||
if (n.optType === -1) {
|
if (arr.list) {
|
||||||
n.name = '考核人员自己'
|
arr.name = this.handleTitle(arr.list)
|
||||||
|
} else {
|
||||||
|
arr.name = '未指定成员'
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (n.list) {
|
arr.name = '被考核人自己'
|
||||||
n.name = this.handleTitle(n.list)
|
|
||||||
} else {
|
|
||||||
n.name = '未指定成员'
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
// n.roleIds = ''
|
// n.roleIds = ''
|
||||||
// n.roleDtos.map(i => {
|
// n.roleDtos.map(i => {
|
||||||
|
|||||||
@ -25,6 +25,7 @@
|
|||||||
<el-radio-group v-model="itemInfo.isActive">
|
<el-radio-group v-model="itemInfo.isActive">
|
||||||
<el-radio :label="1">主管(指定一级)</el-radio>
|
<el-radio :label="1">主管(指定一级)</el-radio>
|
||||||
<el-radio :label="0">指定成员</el-radio>
|
<el-radio :label="0">指定成员</el-radio>
|
||||||
|
<el-radio :label="-1">被考核人自己</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
<div v-if="itemInfo.isActive!==0 && itemInfo.isActive!==-1" style="padding:30px 0 0 20px;">
|
<div v-if="itemInfo.isActive!==0 && itemInfo.isActive!==-1" style="padding:30px 0 0 20px;">
|
||||||
<span>被考评人的</span>
|
<span>被考评人的</span>
|
||||||
@ -42,7 +43,7 @@
|
|||||||
<span style="font-size:14px;padding:0 0 0 10px;">{{itemInfo.name}}</span>
|
<span style="font-size:14px;padding:0 0 0 10px;">{{itemInfo.name}}</span>
|
||||||
</div>
|
</div>
|
||||||
<getpersonl v-if="itemInfo.isShow" :value.sync='itemInfo.optIds' :isShow.sync='itemInfo.isShow' :showDataList.sync='itemInfo.list'/>
|
<getpersonl v-if="itemInfo.isShow" :value.sync='itemInfo.optIds' :isShow.sync='itemInfo.isShow' :showDataList.sync='itemInfo.list'/>
|
||||||
<div style="padding:20px 0 0 0 ">
|
<div v-if="itemInfo.isActive !== -1" style="padding:20px 0 0 0 ">
|
||||||
<span>当执行人为多人时的处理方式:</span>
|
<span>当执行人为多人时的处理方式:</span>
|
||||||
<div style="padding:10px 0 0 20px">
|
<div style="padding:10px 0 0 20px">
|
||||||
<el-radio-group v-model="itemInfo.stepType">
|
<el-radio-group v-model="itemInfo.stepType">
|
||||||
@ -137,7 +138,8 @@ export default {
|
|||||||
list = list.map(i => {
|
list = list.map(i => {
|
||||||
i.isShow = false
|
i.isShow = false
|
||||||
i = Object.assign({}, this.handleOptType(i), i)
|
i = Object.assign({}, this.handleOptType(i), i)
|
||||||
i.isActive = i.optType === 0 ? 0 : 1
|
console.log('i: ', i)
|
||||||
|
i.isActive = (i.optType === 0 || i.optType === -1) ? i.optType : 1
|
||||||
i.roleDtos = JSON.parse(JSON.stringify(this.roleDtos)).map(j => {
|
i.roleDtos = JSON.parse(JSON.stringify(this.roleDtos)).map(j => {
|
||||||
j.checked = i.roleIds ? i.roleIds.includes(String(j.id)) : false
|
j.checked = i.roleIds ? i.roleIds.includes(String(j.id)) : false
|
||||||
return j
|
return j
|
||||||
@ -162,6 +164,7 @@ export default {
|
|||||||
return obj
|
return obj
|
||||||
}
|
}
|
||||||
if (i.optType === -1) {
|
if (i.optType === -1) {
|
||||||
|
obj.name = '被考核人'
|
||||||
return obj
|
return obj
|
||||||
} else {
|
} else {
|
||||||
obj.name = this.options.filter(j => j.id === i.optType)[0].name
|
obj.name = this.options.filter(j => j.id === i.optType)[0].name
|
||||||
@ -239,10 +242,10 @@ export default {
|
|||||||
arr = arr.map(i => {
|
arr = arr.map(i => {
|
||||||
i.roleIds = ''
|
i.roleIds = ''
|
||||||
i.roleDtos.map(j => {
|
i.roleDtos.map(j => {
|
||||||
if (j.type !== 1 && j.checked) i.roleIds += j.id + ','
|
if (j.type !== 1 && j.checked) i.roleIds += j.roleId + ','
|
||||||
})
|
})
|
||||||
i.roleIds = i.roleIds.substring(0, i.roleIds.length - 1)
|
i.roleIds = i.roleIds.substring(0, i.roleIds.length - 1)
|
||||||
i.optType = i.isActive === 0 ? 0 : i.optType
|
i.optType = (i.isActive === 0 || i.isActive === -1) ? i.isActive : i.optType
|
||||||
return i
|
return i
|
||||||
})
|
})
|
||||||
console.log('arr: ', arr)
|
console.log('arr: ', arr)
|
||||||
@ -266,15 +269,17 @@ export default {
|
|||||||
handler (n, o) {
|
handler (n, o) {
|
||||||
const arr = n
|
const arr = n
|
||||||
console.log('arr: ', arr)
|
console.log('arr: ', arr)
|
||||||
if (arr.isActive !== 0) {
|
if (arr.isActive !== 0 && arr.isActive !== -1) {
|
||||||
if (arr.optType === 0) arr.optType = 1
|
if (arr.optType < 1) arr.optType = 1
|
||||||
arr.name = this.options.filter(i => i.id === arr.optType)[0].name
|
arr.name = this.options.filter(i => i.id === arr.optType)[0].name
|
||||||
} else {
|
} else if (arr.isActive === 0) {
|
||||||
if (arr.list) {
|
if (arr.list) {
|
||||||
arr.name = this.handleTitle(arr.list)
|
arr.name = this.handleTitle(arr.list)
|
||||||
} else {
|
} else {
|
||||||
arr.name = '未指定成员'
|
arr.name = '未指定成员'
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
arr.name = '被考核人自己'
|
||||||
}
|
}
|
||||||
// this.$emit('update:info', this.list)
|
// this.$emit('update:info', this.list)
|
||||||
// n.roleIds = ''
|
// n.roleIds = ''
|
||||||
|
|||||||
@ -239,7 +239,7 @@ export default {
|
|||||||
n.map(i => {
|
n.map(i => {
|
||||||
i.roleIds = ''
|
i.roleIds = ''
|
||||||
i.roleDtos.map(j => {
|
i.roleDtos.map(j => {
|
||||||
if (j.type !== 1 && j.checked) i.roleIds += j.id + ','
|
if (j.type !== 1 && j.checked) i.roleIds += j.roleId + ','
|
||||||
})
|
})
|
||||||
i.roleIds = i.roleIds.substring(0, i.roleIds.length - 1)
|
i.roleIds = i.roleIds.substring(0, i.roleIds.length - 1)
|
||||||
})
|
})
|
||||||
|
|||||||
@ -36,8 +36,7 @@ import Perform from './Perform'
|
|||||||
import Entry from './Entry'
|
import Entry from './Entry'
|
||||||
import Score from './Score'
|
import Score from './Score'
|
||||||
import Approval from './Approval'
|
import Approval from './Approval'
|
||||||
import {getByFlowManagerId, saveDetailProcs} from '@/api/workbench'
|
import {getByFlowManagerId} from '@/api/workbench'
|
||||||
console.log('saveDetailProcs: ', saveDetailProcs)
|
|
||||||
export default {
|
export default {
|
||||||
props: ['processInfo'],
|
props: ['processInfo'],
|
||||||
data () {
|
data () {
|
||||||
|
|||||||
@ -22,7 +22,6 @@ import basis from './components/basis'
|
|||||||
import process from './components/process'
|
import process from './components/process'
|
||||||
import templateSet from './components/templateSet'
|
import templateSet from './components/templateSet'
|
||||||
import {saveBaseSet, saveTemSet, saveDetailProcs} from '@/api/workbench'
|
import {saveBaseSet, saveTemSet, saveDetailProcs} from '@/api/workbench'
|
||||||
console.log('saveDetailProcs: ', saveDetailProcs)
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
data () {
|
data () {
|
||||||
|
|||||||
@ -149,7 +149,7 @@ export default {
|
|||||||
this.handleGetList()
|
this.handleGetList()
|
||||||
},
|
},
|
||||||
handleRowClick (row) {
|
handleRowClick (row) {
|
||||||
this.$router.push({ name: 'assessment-stepList', query: { id: row.recordId } })
|
this.$router.push({ name: 'assessment-performance', query: { id: row.recordId } })
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch: {}
|
watch: {}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user