This commit is contained in:
xiongchengqiang 2020-12-02 15:09:05 +08:00
parent ed728518e1
commit bb87ee9ef0
2 changed files with 148 additions and 97 deletions

View File

@ -2,24 +2,34 @@
<template> <template>
<div class="ProcessList"> <div class="ProcessList">
<div class="ProcessList-top"> <div class="ProcessList-top">
<div class="ProcessList-top-item" v-for="(i,index) in handleGetList(list)" :key="i.id"> <div class="ProcessList-top-item"
v-for="(i,index) in handleGetList(list)"
:key="i.id">
<div class="itemH"> <div class="itemH">
<div v-if="i.id !==9999" @click="handleClick(i)" class="ProcessList-top-item-contant commonFont" :class="{active:i.isCick}"> <div v-if="i.id !==9999"
@click="handleClick(i)"
class="ProcessList-top-item-contant commonFont"
:class="{active:i.isCick}">
<span>{{i.name}}</span> <span>{{i.name}}</span>
<span>{{i.label}}</span> <span>{{i.label}}</span>
<i @click.stop="handleDelete(i)" class="el-icon-close close"></i> <i @click.stop="handleDelete(i)"
class="el-icon-close close"></i>
</div> </div>
<div v-if="index+1!==list.length && list.length!==0" class="process-title-item-img"> <div v-if="index+1!==list.length && list.length!==0"
<img src="./imgs/right.png" alt=""> class="process-title-item-img">
<img src="./imgs/right.png"
alt="">
</div> </div>
</div> </div>
</div> </div>
<div class='addP'> <div class='addP'>
<i @click="handleAdd" class="el-icon-circle-plus-outline add"></i> <i @click="handleAdd"
class="el-icon-circle-plus-outline add"></i>
</div> </div>
</div> </div>
<!-- v-if="JSON.stringify(itemInfo) !== '{}'" --> <!-- v-if="JSON.stringify(itemInfo) !== '{}'" -->
<div v-if="JSON.stringify(itemInfo) !== '{}'" class="ProcessList-center"> <div v-if="JSON.stringify(itemInfo) !== '{}'"
class="ProcessList-center">
<div class="ProcessList-center-zhixingren commonFont"> <div class="ProcessList-center-zhixingren commonFont">
<span>执行人</span> <span>执行人</span>
<el-radio-group v-model="itemInfo.isActive"> <el-radio-group v-model="itemInfo.isActive">
@ -27,23 +37,33 @@
<el-radio :label="0">指定成员</el-radio> <el-radio :label="0">指定成员</el-radio>
<el-radio :label="-1">被考核人自己</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>
<el-select size="mini" style="width:100px;" v-model="itemInfo.optType" placeholder="请选择"> <el-select size="mini"
<el-option style="width:100px;"
v-for="item in options" v-model="itemInfo.optType"
placeholder="请选择">
<el-option v-for="item in options"
:key="item.id" :key="item.id"
:label="item.name" :label="item.name"
:value="item.id"> :value="item.id">
</el-option> </el-option>
</el-select> </el-select>
</div> </div>
<div v-if="itemInfo.isActive===0" style="padding:30px 0 0 20px;"> <div v-if="itemInfo.isActive===0"
<el-button size="mini" @click="itemInfo.isShow=true" plain>选择成员</el-button> style="padding:30px 0 0 20px;">
<el-button size="mini"
@click="itemInfo.isShow=true"
plain>选择成员</el-button>
<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"
<div v-if="itemInfo.isActive!==-1" style="padding:20px 0 0 0 "> :value.sync='itemInfo.optIds'
:isShow.sync='itemInfo.isShow'
:showDataList.sync='itemInfo.list' />
<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">
@ -53,8 +73,12 @@
</el-radio-group> </el-radio-group>
</div> </div>
</div> </div>
<div style="padding:20px 0 0 0 " v-for="i in itemInfo.roleDtos" :key="i.id"> <div style="padding:20px 0 0 0 "
<el-checkbox v-if="i.type !== 1" @change="handleChang(i)" v-model="i.checked">{{i.roleName}}</el-checkbox> v-for="i in itemInfo.roleDtos"
:key="i.id">
<el-checkbox v-if="i.type !== 1"
@change="handleChang(i)"
v-model="i.checked">{{i.roleName}}</el-checkbox>
</div> </div>
</div> </div>
</div> </div>
@ -303,7 +327,7 @@ export default {
.ProcessList { .ProcessList {
.addP { .addP {
padding-bottom: 20px; padding-bottom: 20px;
.center() .center();
} }
&-top { &-top {
padding: 20px 0 0 0; padding: 20px 0 0 0;
@ -366,9 +390,7 @@ export default {
height: 100%; height: 100%;
} }
} }
} }
} }
&-center { &-center {
padding: 10px 0; padding: 10px 0;

View File

@ -1,16 +1,32 @@
<!-- 录入 --> <!-- 录入 -->
<template> <template>
<div class="entry"> <div class="entry">
<div class="commonFont" style="padding:20px 0;"> <div class="commonFont"
style="padding:20px 0;">
<span>启用</span> <span>启用</span>
<el-switch <el-switch v-model="form.chartDetails.status"
v-model="form.chartDetails.status" :disabled='info.status===0' active-color="#3ba1ff" :active-value='1' :inactive-value='0' inactive-color="#dcdfe6"> :disabled='info.status===0'
active-color="#3ba1ff"
:active-value='1'
:inactive-value='0'
inactive-color="#dcdfe6">
</el-switch> </el-switch>
</div> </div>
<div v-if="form.chartDetails.status" class="commonFont" style="padding:20px 0;">由谁录入</div> <div v-if="form.chartDetails.status"
<div v-if="form.chartDetails.status" class="commonFont" style="padding:20px 0;"> class="commonFont"
style="padding:20px 0;">由谁录入</div>
<div v-if="form.chartDetails.status"
class="commonFont"
style="padding:20px 0;">
<span>执行人</span> <span>执行人</span>
<el-radio v-model="form.chartDetails.recordSimpleDtos[0].optType" :label="-1">被考核人</el-radio> <el-radio v-model="form.chartDetails.recordSimpleDtos[0].optType"
:label="-1">被考核人</el-radio>
<div style="padding:20px 0 0 0 "
v-for="i in listinfo"
:key="i.id">
<el-checkbox v-if="i.type !== 1"
v-model="i.checked">{{i.roleName}}</el-checkbox>
</div>
</div> </div>
</div> </div>
</template> </template>
@ -20,6 +36,7 @@ export default {
props: ['info'], props: ['info'],
data () { data () {
return { return {
listinfo: [],
form: { form: {
chartDetails: { chartDetails: {
status: '', status: '',
@ -42,13 +59,26 @@ export default {
optType: -1 optType: -1
} }
] ]
this.listinfo = this.form.roleDtos.map(j => {
j.checked = this.form.chartDetails.recordSimpleDtos[0].roleIds ? this.form.chartDetails.recordSimpleDtos[0].roleIds.includes(String(j.roleId)) : false
return j
})
console.log(this.form.roleDtos)
},
methods: {
handleIsEmit (n) {
const roleIds = this._.compact(this.listinfo.map(j => {
if (j.type !== 1 && j.checked) return j.roleId
})).join(',')
n.chartDetails.recordSimpleDtos[0].roleIds = roleIds
this.$emit('update:info', Object.assign({}, n, { label: n.chartDetails.status ? '' : '已禁用' }))
}
}, },
methods: {},
watch: { watch: {
form: { form: {
deep: true, deep: true,
handler (n, o) { handler (n, o) {
this.$emit('update:info', Object.assign({}, this.info, this.form, {label: n.chartDetails.status ? '' : '已禁用'})) this.handleIsEmit(JSON.parse(JSON.stringify(n)))
this.$forceUpdate() this.$forceUpdate()
} }
} }
@ -60,6 +90,5 @@ export default {
<style lang='less' scoped> <style lang='less' scoped>
.entry { .entry {
} }
</style> </style>