|
|
|
@ -61,12 +61,14 @@
|
|
|
|
<th>二级指标</th>
|
|
|
|
<th>二级指标</th>
|
|
|
|
<th>三级指标</th>
|
|
|
|
<th>三级指标</th>
|
|
|
|
<th style="min-width: 100px;">{{ type === 1 ? '半年' : '全年' }}(程)指标值</th>
|
|
|
|
<th style="min-width: 100px;">{{ type === 1 ? '半年' : '全年' }}(程)指标值</th>
|
|
|
|
<th>实际完成值</th>
|
|
|
|
<th>{{ type === 1 ? '半年实际执行值' : '实际完成值' }}</th>
|
|
|
|
<th>分值</th>
|
|
|
|
<th v-if="type === 1">是否偏差(是/否)</th>
|
|
|
|
<th>得分</th>
|
|
|
|
<th v-if="type === 1">完成可能性(确定能/有可能/完全不可能)</th>
|
|
|
|
<th style="max-width: 30%;">评价要点及评分规则</th>
|
|
|
|
<th v-if="type !== 1">分值</th>
|
|
|
|
<th style="max-width: 24%;">未完成指标原因分析</th>
|
|
|
|
<th v-if="type !== 1">得分</th>
|
|
|
|
<th style="width: 46px;" class="no-export-xlsx">附件</th>
|
|
|
|
<th v-if="type !== 1" style="max-width: 30%;">评价要点及评分规则</th>
|
|
|
|
|
|
|
|
<th v-if="type !== 1" style="max-width: 24%;">未完成指标原因分析</th>
|
|
|
|
|
|
|
|
<th v-if="type !== 1" style="width: 46px;" class="no-export-xlsx">附件</th>
|
|
|
|
</tr>
|
|
|
|
</tr>
|
|
|
|
<tr v-for="(item, index) in planTargetList" :key="item.id">
|
|
|
|
<tr v-for="(item, index) in planTargetList" :key="item.id">
|
|
|
|
<td :rowspan="spanArr[index]" v-if="spanArr[index]" :style="{ 'display': spanArr[index] ? '' : 'none' }">{{ (item.target && item.target.target_type_detail) ? item.target.target_type_detail.name : '' }}</td>
|
|
|
|
<td :rowspan="spanArr[index]" v-if="spanArr[index]" :style="{ 'display': spanArr[index] ? '' : 'none' }">{{ (item.target && item.target.target_type_detail) ? item.target.target_type_detail.name : '' }}</td>
|
|
|
|
@ -74,11 +76,13 @@
|
|
|
|
<td>{{ item.target ? item.target.name : '' }}</td>
|
|
|
|
<td>{{ item.target ? item.target.name : '' }}</td>
|
|
|
|
<td>{{ targetValue(item) }}</td>
|
|
|
|
<td>{{ targetValue(item) }}</td>
|
|
|
|
<td>{{ actResultFormat(item) }}</td>
|
|
|
|
<td>{{ actResultFormat(item) }}</td>
|
|
|
|
<td>{{ item.score }}</td>
|
|
|
|
<td v-if="type === 1">{{ isDeviation(item) }}</td>
|
|
|
|
<td>{{ socre(item) }}</td>
|
|
|
|
<td v-if="type === 1">{{ endPossibility(item) }}</td>
|
|
|
|
<td style="max-width: 300px;">{{ evaluationMain(item) }}</td>
|
|
|
|
<td v-if="type !== 1">{{ item.score }}</td>
|
|
|
|
<td></td>
|
|
|
|
<td v-if="type !== 1">{{ socre(item) }}</td>
|
|
|
|
<td class="no-export-xlsx">
|
|
|
|
<td v-if="type !== 1" style="max-width: 300px;">{{ evaluationMain(item) }}</td>
|
|
|
|
|
|
|
|
<td v-if="type !== 1">{{ remark(item) }}</td>
|
|
|
|
|
|
|
|
<td class="no-export-xlsx" v-if="type !== 1">
|
|
|
|
<el-popover
|
|
|
|
<el-popover
|
|
|
|
placement="bottom-start"
|
|
|
|
placement="bottom-start"
|
|
|
|
title="附件"
|
|
|
|
title="附件"
|
|
|
|
@ -99,22 +103,22 @@
|
|
|
|
</el-popover>
|
|
|
|
</el-popover>
|
|
|
|
</td>
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<tr v-if="type !== 1">
|
|
|
|
<th colspan="5">合计</th>
|
|
|
|
<th colspan="5">合计</th>
|
|
|
|
<td>{{ targetTotal }}</td>
|
|
|
|
<td>{{ targetTotal }}</td>
|
|
|
|
<td>{{ scoreTotal }}</td>
|
|
|
|
<td>{{ scoreTotal }}</td>
|
|
|
|
<th colspan="2"></th>
|
|
|
|
<th colspan="2"></th>
|
|
|
|
</tr>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<tr v-if="type !== 1">
|
|
|
|
<th>绩效等级</th>
|
|
|
|
<th>绩效等级</th>
|
|
|
|
<td colspan="8">{{ type === 1 ? detail.middle_achievement : detail.end_achievement }}</td>
|
|
|
|
<td colspan="8">{{ type === 1 ? detail.middle_achievement : detail.end_achievement }}</td>
|
|
|
|
</tr>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<tr v-if="type !== 1">
|
|
|
|
<th>主要成效(通过绩效评价总结的成效)</th>
|
|
|
|
<th>主要成效(通过绩效评价总结的成效)</th>
|
|
|
|
<td colspan="8">{{ type === 1 ? detail.middle_effect : detail.end_effect }}</td>
|
|
|
|
<td colspan="8">{{ type === 1 ? detail.middle_effect : detail.end_effect }}</td>
|
|
|
|
</tr>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<tr>
|
|
|
|
<th>存在问题(按照决策、过程、履职、效益分别归类撰写)</th>
|
|
|
|
<th>{{ type === 1 ? '偏差问题及原因(主要针对偏差指标)' : '存在问题(按照决策、过程、履职、效益分别归类撰写)' }}</th>
|
|
|
|
<td colspan="8">{{ type === 1 ? detail.middle_question : detail.end_question }}</td>
|
|
|
|
<td colspan="8">{{ type === 1 ? detail.middle_question : detail.end_question }}</td>
|
|
|
|
</tr>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<tr>
|
|
|
|
@ -272,6 +276,21 @@ export default {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
},
|
|
|
|
|
|
|
|
isDeviation () {
|
|
|
|
|
|
|
|
return function(item) {
|
|
|
|
|
|
|
|
return item.plan_evaluates?.find(j => (j.plan_target_id === item.id && j.type === this.type))?.is_deviation ? '是' : '否'
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
endPossibility () {
|
|
|
|
|
|
|
|
const type = new Map([
|
|
|
|
|
|
|
|
[0, '确定能'],
|
|
|
|
|
|
|
|
[1, '有可能'],
|
|
|
|
|
|
|
|
[2, '完全不可能']
|
|
|
|
|
|
|
|
])
|
|
|
|
|
|
|
|
return function(item) {
|
|
|
|
|
|
|
|
return type.get(item.plan_evaluates?.find(j => (j.plan_target_id === item.id && j.type === this.type))?.end_possibility)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
},
|
|
|
|
actResultFormat () {
|
|
|
|
actResultFormat () {
|
|
|
|
return function(item) {
|
|
|
|
return function(item) {
|
|
|
|
return item.plan_evaluates?.find(j => (j.plan_target_id === item.id && j.type === this.type))?.result
|
|
|
|
return item.plan_evaluates?.find(j => (j.plan_target_id === item.id && j.type === this.type))?.result
|
|
|
|
@ -302,6 +321,12 @@ export default {
|
|
|
|
return this.planTargetList.reduce((pre, cur) => {
|
|
|
|
return this.planTargetList.reduce((pre, cur) => {
|
|
|
|
return pre + (parseFloat(cur?.plan_evaluates?.find(j => (j.plan_target_id === cur.id && j.type === this.type))?.socre) || 0)
|
|
|
|
return pre + (parseFloat(cur?.plan_evaluates?.find(j => (j.plan_target_id === cur.id && j.type === this.type))?.socre) || 0)
|
|
|
|
}, 0).toFixed(2)
|
|
|
|
}, 0).toFixed(2)
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
remark () {
|
|
|
|
|
|
|
|
return function(item) {
|
|
|
|
|
|
|
|
return item.plan_evaluates?.find(j => (j.plan_target_id === item.id && j.type === this.type))?.remark
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
},
|
|
|
|
watch: {
|
|
|
|
watch: {
|
|
|
|
|