This commit is contained in:
熊成强 2020-10-29 18:18:41 +08:00
parent 54c87a671e
commit 4564d987b5
7 changed files with 247 additions and 80 deletions

View File

@ -62,6 +62,10 @@
import bbb from './a' import bbb from './a'
export default { export default {
props: { props: {
len: {
type: Number,
default: 99999
},
showDataList: { showDataList: {
type: Object, type: Object,
default: () => { default: () => {
@ -163,10 +167,18 @@ export default {
}, },
// //
centerDialogVisible () { centerDialogVisible () {
if (this.len < this.tags.length) {
this.$message.info('最多只能选择' + this.len + '个部门')
return
}
const params = this.$departGetForm(this.tags) const params = this.$departGetForm(this.tags)
if (this.$listeners.cb) {
this.$emit('cb', params)
} else {
this.$emit('update:value', params.value) this.$emit('update:value', params.value)
this.$emit('update:showDataList', params) this.$emit('update:showDataList', params)
this.$emit('update:isShow', false) this.$emit('update:isShow', false)
}
}, },
handleGetNextChildren (list = this.data) { handleGetNextChildren (list = this.data) {
console.log('list: ', list) console.log('list: ', list)

View File

@ -9,8 +9,7 @@
departmentName:obj.departmentName departmentName:obj.departmentName
}"/> }"/>
<div> <div>
<el-button size='small' @click="handleSaveDetail()" plain>暂存</el-button>
<el-button size='small' type="primary" >提交</el-button>
</div> </div>
</div> </div>
<div class="goals-content-tabbar"> <div class="goals-content-tabbar">
@ -98,6 +97,12 @@
</el-form> </el-form>
</div> </div>
</popup-right> </popup-right>
<div class="goals-bottom">
<div class="goals-bottom-content">
<el-button size='small' @click="handleSaveDetail()" plain>暂存</el-button>
<el-button size='small' type="primary" >提交</el-button>
</div>
</div>
</div> </div>
</template> </template>
@ -245,9 +250,29 @@ export default {
<style lang='less' scoped> <style lang='less' scoped>
.goals{ .goals{
margin-bottom: 100px;
position: relative;
.my-handle{ .my-handle{
cursor: move ; cursor: move ;
} }
&-bottom{
position: fixed;
height: 60px;
border-top: 1px solid @borderColor;
padding: 0 80px;
width: 100%;
background: #fff;
bottom: 0;
left: 0;
&-content{
width: 1360px;
margin: 0 auto;
height: 100%;
display: flex;
align-items: center;
justify-content: flex-end;
}
}
&-content{ &-content{
padding: 28px; padding: 28px;
&-name{ &-name{

View File

@ -148,6 +148,11 @@ export default {
}, },
methods: { methods: {
async handleDelete (item) { async handleDelete (item) {
this.$confirm('此操作不可撤回, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(async () => {
try { try {
await apiDeleteAssessList({assessId: item}) await apiDeleteAssessList({assessId: item})
this.handleGetData() this.handleGetData()
@ -158,6 +163,12 @@ export default {
} catch (error) { } catch (error) {
this.$message.error(error.msg) this.$message.error(error.msg)
} }
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
})
})
}, },
handleChange (value) { handleChange (value) {
this.params.currPage = 1 this.params.currPage = 1

View File

@ -1,20 +1,37 @@
<!-- --> <!-- -->
<template> <template>
<div> <div>
<el-button <el-button size="mini" @click="handleJieguo" type="primary">结果值录入</el-button>
size="mini" <el-button size="mini" @click="handlePingfen" type="primary">开始评分</el-button>
@click="handleZhiding" <el-button size="mini" @click="handleZhiding" type="primary">制定目标</el-button>
type="primary" <el-button size="mini" @click="handleTongyi" type="primary"> </el-button>
>制定目标</el-button> <el-button size="mini" @click="handleBohui" type="primary"> </el-button>
<getPersonnel :len='1' @cb='cb' v-if="isShowPersonnel" :value.sync='staffIds' :isShow.sync='isShowPersonnel' :showDataList.sync='personnelList'/> <el-button size="mini" @click="handleZhuanjiao" type="primary"> </el-button>
<getPersonnel @cb='cb' v-if="isShowPersonnel" :value.sync='staffIds' :isShow.sync='isShowPersonnel' :showDataList.sync='personnelList'/>
<popup-right
v-if="bohui"
@cancel='handleCancel'
@submit="handleSubmit"
:footer='true'
title="驳回评分"
>
<div
slot="content"
class="chooseManage"
>
999
</div>
</popup-right>
</div> </div>
</template> </template>
<script> <script>
import getPersonnel from '@/components/getPersonnel' import getPersonnel from '@/components/getPersonnel'
import PopupRight from '@/components/PopupRight'
export default { export default {
data () { data () {
return { return {
bohui: false,
isShowPersonnel: false, isShowPersonnel: false,
staffIds: '', staffIds: '',
personnelList: { personnelList: {
@ -23,19 +40,44 @@ export default {
} }
}, },
components: { components: {
getPersonnel getPersonnel,
PopupRight
}, },
computed: {}, computed: {},
beforeMount () {}, beforeMount () {},
mounted () {}, mounted () {},
methods: { methods: {
//
handleJieguo () {
},
//
handlePingfen () {
},
//
handleTongyi () {
},
//
handleBohui () {
this.bohui = true
},
handleSubmit () {
this.bohui = false
},
handleCancel () {
this.bohui = false
},
cb (info) { cb (info) {
console.log(info) console.log(info)
}, },
//
handleZhuanjiao () {
this.isShowPersonnel = true
},
// //
handleZhiding () { handleZhiding () {
this.isShowPersonnel = true
return
this.$router.push({ this.$router.push({
name: 'assessment-goals', name: 'assessment-goals',
query: { query: {

View File

@ -1,4 +1,5 @@
<template> <template>
<div class='table'>
<table <table
cellspacing="0" cellspacing="0"
border="1"> border="1">
@ -7,7 +8,10 @@
<th>维度</th> <th>维度</th>
<th>名称</th> <th>名称</th>
<th>考核标准</th> <th>考核标准</th>
<th>结果值</th>
<th>权重({{obj.weight*100}}%)</th> <th>权重({{obj.weight*100}}%)</th>
<th>上级评分</th>
<th>评分说明</th>
</tr> </tr>
<!-- 暂无数据时显示 --> <!-- 暂无数据时显示 -->
<tr v-if="obj.recortModelDtos.length === 0"> <tr v-if="obj.recortModelDtos.length === 0">
@ -20,15 +24,12 @@
<!-- 左侧跨行区域 --> <!-- 左侧跨行区域 -->
<tr :key="index+1000"> <tr :key="index+1000">
<td :rowspan="item.detailDtos.length+1">{{item.name}}</td> <td :rowspan="item.detailDtos.length+1">{{item.name}}</td>
<td v-if="item.detailDtos.length===0"> <td v-if="item.detailDtos.length===0"></td>
<td v-if="item.detailDtos.length===0"></td>
</td> <td v-if="item.detailDtos.length===0"></td>
<td v-if="item.detailDtos.length===0"> <td v-if="item.detailDtos.length===0"></td>
<td v-if="item.detailDtos.length===0"></td>
</td> <td v-if="item.detailDtos.length===0"></td>
<td v-if="item.detailDtos.length===0">
</td>
</tr> </tr>
<!-- 右侧数据 --> <!-- 右侧数据 -->
<tr v-for="(child,index1) in item.detailDtos" :key="index1"> <tr v-for="(child,index1) in item.detailDtos" :key="index1">
@ -38,12 +39,31 @@
<td> <td>
{{child.keyResult}} {{child.keyResult}}
</td> </td>
<td>
<span>{{child.checkResult || '--'}}</span>
<el-input type="textarea" placeholder="请输入内容" v-model="child.checkResulted" clearable></el-input>
</td>
<td> <td>
{{child.checkWeight*100}}% {{child.checkWeight*100}}%
</td> </td>
<td>
<span>{{child.superScore || '--'}}</span>
<el-input type="textarea" placeholder="请输入内容" v-model="child.superScoreed" clearable></el-input>
</td>
<td style="padding:10px;">
<span>{{child.scoreComment || '--'}}</span>
<el-input type="textarea" placeholder="请输入内容" v-model="child.scoreCommented" clearable></el-input>
</td>
</tr> </tr>
</template> </template>
</table> </table>
<div class="table-bottom">
<div class="table-bottom-content">
<el-button size='small' @click="handleSaveDetail()" plain>暂存</el-button>
<el-button size='small' type="primary" >提交</el-button>
</div>
</div>
</div>
</template> </template>
<script> <script>
export default { export default {
@ -56,16 +76,54 @@ export default {
recortModelDtos: [] recortModelDtos: []
} }
} }
},
tableInfo: {
type: Object,
default: () => {
return {
result: false,
score: false
}
}
}
},
data () {
return {
input: ''
} }
}, },
mounted () { mounted () {
console.log('list', this.obj) console.log('list', this.obj)
}, },
methods: { methods: {
handleSaveDetail () {
}
} }
} }
</script> </script>
<style scoped> <style lang='less' scoped>
.table{
position: relative;
}
.table-bottom {
position: fixed;
height: 60px;
padding: 0 80px;
width: 100%;
background: #fff;
border-top: 1px solid @borderColor;
bottom: 0;
left: 0;
&-content{
width: 1360px;
margin: 0 auto;
height: 100%;
display: flex;
align-items: center;
justify-content: flex-end;
}
}
table{ table{
margin-top: 15px; margin-top: 15px;
width: 100%; width: 100%;

View File

@ -3,22 +3,6 @@
<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-left">
<el-select size="small" v-model="form.value" placeholder="请选择">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</div>
<div class="performance-content-top-right">
<el-button size="small" @click="handleChangeTtitle" plain>沟通管理</el-button>
<el-button size="small" plain>管理</el-button>
</div>
</div> -->
<div class="performance-content-title"> <div class="performance-content-title">
<InfoHeader :obj="{ <InfoHeader :obj="{
name:obj.currentApprovalStaffName, name:obj.currentApprovalStaffName,
@ -84,7 +68,8 @@
</div> </div>
<div class="performance-content-bottom"> <div class="performance-content-bottom">
<tables <tables
v-if="obj.length !==0" :tableInfo='tableInfo'
v-if="obj.recortModelDtos.length !==0"
:obj='obj' :obj='obj'
/> />
</div> </div>
@ -141,11 +126,14 @@
</div> </div>
<div> <div>
<el-button size="mini" @click="handleJump(i)" type="primary" plain>跳过</el-button> <el-button size="mini" @click="handleJump(i)" type="primary" plain>跳过</el-button>
<el-button size="mini" type="primary" plain>转交</el-button> <el-button size="mini" @click="handleZhuanjiao(i)" type="primary" plain>转交</el-button>
</div> </div>
</div> </div>
</div> </div>
</popup-right> </popup-right>
<getPersonnel title='选择转交给' :len='1' @cb='cb' v-if="choosePerson"
:value.sync='Personnel.value'
:isShow.sync='choosePerson' :showDataList.sync='Personnel'/>
</div> </div>
</template> </template>
@ -154,13 +142,17 @@ 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 UseButton from './components/UseButton'
import getPersonnel from '@/components/getPersonnel'
import { apiResultRecordDetail, apiResultGetDetail } from '@/api/assessment' import { apiResultRecordDetail, apiResultGetDetail } from '@/api/assessment'
import tables from './components/table' import tables from './components/table'
export default { export default {
data () { data () {
return { return {
Personnel: {
list: []
},
choosePerson: false,
right: { right: {
showRight: false showRight: false
}, },
@ -172,22 +164,10 @@ export default {
obj: { obj: {
recortModelDtos: [] recortModelDtos: []
}, },
options: [{ tableInfo: {
value: '选项1', result: false,
label: '黄金糕' score: false
}, { }
value: '选项2',
label: '双皮奶'
}, {
value: '选项3',
label: '蚵仔煎'
}, {
value: '选项4',
label: '龙须面'
}, {
value: '选项5',
label: '北京烤鸭'
}]
} }
}, },
components: { components: {
@ -195,7 +175,8 @@ export default {
InfoHeader, InfoHeader,
PopupRight, PopupRight,
tables, tables,
UseButton UseButton,
getPersonnel
}, },
computed: {}, computed: {},
beforeMount () { }, beforeMount () { },
@ -204,6 +185,13 @@ export default {
this.handleGetTbale() this.handleGetTbale()
}, },
methods: { methods: {
cb (info) {
console.log('info: ', info)
},
//
handleZhuanjiao (item) {
this.choosePerson = true
},
// //
handleJump (item) { handleJump (item) {
console.log('item: ', item) console.log('item: ', item)

View File

@ -13,7 +13,7 @@
</el-button> </el-button>
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
<el-dropdown-item @click.native="handleToEidt" >新增考评组</el-dropdown-item> <el-dropdown-item @click.native="handleToEidt" >新增考评组</el-dropdown-item>
<el-dropdown-item @click.native="handleToEidt" > 复制考评组</el-dropdown-item> <el-dropdown-item @click.native="handleToEidtCopy" > 复制考评组</el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
</el-dropdown> </el-dropdown>
</el-form-item> </el-form-item>
@ -64,14 +64,21 @@
:total="params.totalCount"> :total="params.totalCount">
</el-pagination> </el-pagination>
</div> </div>
<popup-right v-if="showRight" @cancel='handleCancel' @submit="handleSubmit" title="选择复制考评组">
<div slot="content" class="chooseManage">
99
</div>
</popup-right>
</div> </div>
</template> </template>
<script> <script>
import {getWorkList, groundDelete} from '@/api/workbench' import {getWorkList, groundDelete} from '@/api/workbench'
import PopupRight from '@/components/PopupRight'
export default { export default {
data () { data () {
return { return {
showRight: false,
params: { params: {
'currPage': 1, 'currPage': 1,
'pageSize': 10 'pageSize': 10
@ -80,15 +87,28 @@ export default {
tableData: [] tableData: []
} }
}, },
components: {
PopupRight
},
computed: {}, computed: {},
beforeMount () {}, beforeMount () {},
mounted () { mounted () {
this.handleGetData() this.handleGetData()
}, },
methods: { methods: {
handleSubmit () {
this.showRight = false
},
handleCancel () {
this.showRight = false
},
handlePush (id) { handlePush (id) {
this.$router.push({name: 'workbench-edit-group', query: {id}}) this.$router.push({name: 'workbench-edit-group', query: {id}})
}, },
handleToEidtCopy (id) {
this.showRight = true
// this.$router.push({name: 'workbench-edit-group', query: {id: id, copy: 1}})
},
handleChange (value) { handleChange (value) {
this.params = { this.params = {
'currPage': 1, 'currPage': 1,
@ -122,6 +142,11 @@ export default {
console.log('row: ', row) console.log('row: ', row)
}, },
async handleDelete (item) { async handleDelete (item) {
this.$confirm('此操作不可撤回, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(async () => {
try { try {
await groundDelete({id: item}) await groundDelete({id: item})
this.handleGetData() this.handleGetData()
@ -132,6 +157,12 @@ export default {
} catch (error) { } catch (error) {
this.$message.error(error.msg) this.$message.error(error.msg)
} }
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
})
})
} }
}, },
watch: {} watch: {}