* 'v_1.0.0' of http://gitlab.ldxinyong.com/enterpriseManagement/digitization-ui:
  优化
  优化
  有哈
  优化
This commit is contained in:
leave 2020-10-29 16:35:23 +08:00
commit 09a7b4d08f
15 changed files with 243 additions and 112 deletions

View File

@ -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
})
}

View File

@ -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%;

View File

@ -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 => {

View File

@ -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;

View File

@ -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

View File

@ -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)"

View File

@ -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>

View File

@ -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;

View File

@ -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()

View File

@ -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 => {

View File

@ -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 = ''

View File

@ -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)
}) })

View File

@ -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 () {

View File

@ -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 () {

View File

@ -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: {}