修改考核规则

This commit is contained in:
TS-QD1 2023-12-11 09:07:11 +08:00
parent 315812f608
commit e43175ef76
5 changed files with 108 additions and 19 deletions

View File

@ -1,3 +1,3 @@
# 包头高新去考核 # 20231205调整
1. 4、5级网格员考核 **kpi_khxz_wgy_3**、**kpi_khxz_wgy_4** 中的 **X** 字段,默认值原来的 **3** 改为 **0**

View File

@ -1,11 +1,11 @@
<template> <template>
<n-form label-placement="left" label-width="auto" :model="form"> <n-form label-placement="left" label-width="auto" :model="form">
<n-form-item label="分值*" path="scroe.value"> <n-form-item :label="`${type}*`" path="scroe.value">
<n-input-number v-model:value="form.score.value" placeholder="输入分值" :max="form.score.maxValue" <n-input-number v-model:value="form.score.value" :placeholder="`输入${type}`" :max="form.score.maxValue"
:min="form.score.minValue" :precision="2"/> :min="form.score.minValue" :precision="2"/>
</n-form-item> </n-form-item>
<n-form-item label="分值原因*" path="score.reason"> <n-form-item :label="`${type}原因*`" path="score.reason">
<n-input type="textarea" v-model:value="form.score.reason" placeholder="输入分值原因" @keydown.enter.prevent /> <n-input type="textarea" v-model:value="form.score.reason" :placeholder="`输入${type}原因`" @keydown.enter.prevent />
</n-form-item> </n-form-item>
<!-- <!--
<n-space> <n-space>
@ -66,6 +66,10 @@ export default {
maxScore: { maxScore: {
required: false, required: false,
default: 100 default: 100
},
type: {
required: false,
default: '分数'
} }
}, },
data() { data() {
@ -88,7 +92,7 @@ export default {
value: [ value: [
{ {
required: true, required: true,
message: '请输入分值' message: `请输入${this.type}`
} }
], ],
}, },
@ -98,11 +102,11 @@ export default {
methods: { methods: {
onConfirmClick() { onConfirmClick() {
if(this.form.score.value === null) { if(this.form.score.value === null) {
this.message.error('请输入分值') this.message.error(`请输入${this.type}`)
return; return;
} }
if(!this.form.score.reason) { if(!this.form.score.reason) {
this.message.error('请输入分值原因') this.message.error(`请输入${this.type}原因`)
return; return;
} }
this.$emit('confirm', this.rowKey, this.rowIndex, { this.$emit('confirm', this.rowKey, this.rowIndex, {

View File

@ -465,7 +465,28 @@ export default {
children: [ children: [
{ {
align: 'center', align: 'center',
title: '人口信息录入', title: '社区基数人口数',
key: 'communityBasePopulationCount',
keyName: 'communityBasePopulationCount',
width: 80,
},
{
align: 'center',
title: '社区人口数',
key: 'communityPopulationCount',
keyName: 'communityPopulationCount',
width: 80,
},
{
align: 'center',
title: '社区人口录入比例',
key: 'communityPopulationRate',
keyName: 'communityPopulationRate',
width: 80,
},
{
align: 'center',
title: '人口信息录入(3)',
key: 'W', key: 'W',
keyName: 'populationSave', keyName: 'populationSave',
width: 80, width: 80,
@ -481,7 +502,7 @@ export default {
}, },
{ {
align: 'center', align: 'center',
title: '人口信息质量管理', title: '人口信息质量管理(3)',
key: 'X', key: 'X',
keyName: 'populationQuality', keyName: 'populationQuality',
width: 80, width: 80,
@ -497,7 +518,7 @@ export default {
}, },
{ {
align: 'center', align: 'center',
title: '人口信息维护', title: '人口信息维护(4)',
key: 'Y', key: 'Y',
keyName: 'populationEdit', keyName: 'populationEdit',
width: 80, width: 80,
@ -536,7 +557,7 @@ export default {
children: [ children: [
{ {
align: 'center', align: 'center',
title: '党建信息上报', title: '党建信息上报(3)',
key: 'AA', key: 'AA',
keyName: 'partySave', keyName: 'partySave',
width: 80, width: 80,
@ -552,7 +573,7 @@ export default {
}, },
{ {
align: 'center', align: 'center',
title: '党建信息质量管理', title: '党建信息质量管理(3)',
key: 'AB', key: 'AB',
keyName: 'partyQuality', keyName: 'partyQuality',
width: 80, width: 80,
@ -568,7 +589,7 @@ export default {
}, },
{ {
align: 'center', align: 'center',
title: '党建信息维护', title: '党建信息维护(4)',
key: 'AC', key: 'AC',
keyName: 'partyEdit', keyName: 'partyEdit',
width: 80, width: 80,
@ -1058,10 +1079,18 @@ export default {
let totalGridCount = 0; let totalGridCount = 0;
data.forEach((item, index) => { data.forEach((item, index) => {
item.A = index + 1; item.A = index + 1;
item.F = item.E === 0 ? 0 : (item.D / item.E).toFixed(2); item.F = item.E === 0 ? 0 : parseFloat((item.D / item.E).toFixed(2));
item.H = Math.min(item.F * item.G, item.D); item.H = Math.min(item.F * item.G, item.D);
item.J = Math.min(item.F * item.I, item.D); item.J = Math.min(item.F * item.I, item.D);
item.L = (item.K > 10 ? 10 : item.K) * 0.5; item.L = (item.K > 10 ? 10 : item.K) * 0.5;
item.Q = item.communityPopulationRate >= 0.75 ? 10 : (item.communityPopulationRate >= 0.6 ? 5 : 0);
//
item.W = parseFloat((3 * item.communityPopulationRate).toFixed(2));
item.Y = parseFloat((4 * item.communityPopulationRate).toFixed(2));
//
item.AA = item.communityPopulationRate >= 0.75 ? 3 : (item.communityPopulationRate >= 0.6 ? 1.5 : 0);
item.AB = item.communityPopulationRate >= 0.75 ? 3 : (item.communityPopulationRate >= 0.6 ? 1.5 : 0);
item.AC = item.communityPopulationRate >= 0.75 ? 4 : (item.communityPopulationRate >= 0.6 ? 2 : 0);
item.S = item.R * 0.2; item.S = item.R * 0.2;
totalGridCount += item.gridCount; totalGridCount += item.gridCount;
}) })

View File

@ -45,7 +45,7 @@
:show="modal.scoring.show" :show-icon="false" :mask-closable="true" :closable="false" :show="modal.scoring.show" :show-icon="false" :mask-closable="true" :closable="false"
:on-update-show="onScroingCloseClick"> :on-update-show="onScroingCloseClick">
<scoring :row-key="modal.scoring.rowKey" :row-index="modal.scoring.rowIndex" :score="modal.scoring.score" <scoring :row-key="modal.scoring.rowKey" :row-index="modal.scoring.rowIndex" :score="modal.scoring.score"
:reason="modal.scoring.reason" :min-score="modal.scoring.minScore" :max-score="modal.scoring.maxScore" :reason="modal.scoring.reason" :min-score="modal.scoring.minScore" :max-score="modal.scoring.maxScore" :type="modal.scoring.type"
@confirm="onScroingConfimClick" /> @confirm="onScroingConfimClick" />
</n-modal> </n-modal>
</template> </template>
@ -191,6 +191,14 @@ export default {
key: 'F', key: 'F',
keyName: 'reward', keyName: 'reward',
width: 60, width: 60,
render(row, index) {
return h('a', {
href: 'javascript:void(0)',
onClick() {
vueSelf.onRewardClick(row, index);
}
}, row.F);
}
} }
] ]
}, },
@ -344,7 +352,7 @@ export default {
score: 0, score: 0,
reason: '', reason: '',
minScore: null, minScore: null,
maxScore: null maxScore: null,
} }
} }
} }
@ -371,6 +379,20 @@ export default {
onScroingCloseClick() { onScroingCloseClick() {
this.modal.scoring.show = false; this.modal.scoring.show = false;
}, },
//
onRewardClick(row, index) {
let backTimeout = row.F;
this.modal.scoring.show = true;
this.modal.scoring.rowKey = 'F';
this.modal.scoring.rowIndex = index;
this.modal.scoring.score = backTimeout;
this.modal.scoring.reason = row.reasonF;
this.modal.scoring.maxScore = null;
this.modal.scoring.minScore = null;
this.modal.scoring.userName = row.B;
this.modal.scoring.title = '案件奖励金额设置';
this.modal.scoring.type = '金额';
},
// 退 - // 退 -
onBackTimeoutClick(row, index) { onBackTimeoutClick(row, index) {
let backTimeout = row.G; let backTimeout = row.G;
@ -383,6 +405,7 @@ export default {
this.modal.scoring.minScore = null; this.modal.scoring.minScore = null;
this.modal.scoring.userName = row.B; this.modal.scoring.userName = row.B;
this.modal.scoring.title = '未在规定的时限内退单,影响处置时效'; this.modal.scoring.title = '未在规定的时限内退单,影响处置时效';
delete this.modal.scoring.type;
}, },
// - // -
onSelfUnHandleClick(row, index) { onSelfUnHandleClick(row, index) {
@ -395,7 +418,9 @@ export default {
this.modal.scoring.maxScore = null; this.modal.scoring.maxScore = null;
this.modal.scoring.minScore = null; this.modal.scoring.minScore = null;
this.modal.scoring.userName = row.B; this.modal.scoring.userName = row.B;
this.modal.scoring.type = null;
this.modal.scoring.title = '自行上报案件未完成办理'; this.modal.scoring.title = '自行上报案件未完成办理';
delete this.modal.scoring.type;
}, },
// - // -
onUnHandleErrorClick(row, index) { onUnHandleErrorClick(row, index) {
@ -408,7 +433,9 @@ export default {
this.modal.scoring.maxScore = null; this.modal.scoring.maxScore = null;
this.modal.scoring.minScore = null; this.modal.scoring.minScore = null;
this.modal.scoring.userName = row.B; this.modal.scoring.userName = row.B;
this.modal.scoring.type = null;
this.modal.scoring.title = '未办理案件造成严重影响'; this.modal.scoring.title = '未办理案件造成严重影响';
delete this.modal.scoring.type;
}, },
// - // -
onOthersClick(row, index) { onOthersClick(row, index) {
@ -422,6 +449,7 @@ export default {
this.modal.scoring.minScore = null; this.modal.scoring.minScore = null;
this.modal.scoring.userName = row.B; this.modal.scoring.userName = row.B;
this.modal.scoring.title = '其它情况'; this.modal.scoring.title = '其它情况';
delete this.modal.scoring.type;
}, },
// - // -
onHandleResultClick(row, index) { onHandleResultClick(row, index) {
@ -435,6 +463,7 @@ export default {
this.modal.scoring.minScore = null; this.modal.scoring.minScore = null;
this.modal.scoring.userName = row.B; this.modal.scoring.userName = row.B;
this.modal.scoring.title = '处理情况'; this.modal.scoring.title = '处理情况';
delete this.modal.scoring.type;
}, },
// - // -
onSuperviseResultClick(row, index) { onSuperviseResultClick(row, index) {
@ -448,6 +477,7 @@ export default {
this.modal.scoring.minScore = null; this.modal.scoring.minScore = null;
this.modal.scoring.userName = row.B; this.modal.scoring.userName = row.B;
this.modal.scoring.title = '督察案件结案情况'; this.modal.scoring.title = '督察案件结案情况';
delete this.modal.scoring.type;
}, },
computeM(row) { computeM(row) {
return Math.max(row.C - row.G - row.H - row.I - row.J - row.K - row.L, 0); return Math.max(row.C - row.G - row.H - row.I - row.J - row.K - row.L, 0);

View File

@ -40,7 +40,7 @@
:show="modal.scoring.show" :show-icon="false" :mask-closable="true" :closable="false" :show="modal.scoring.show" :show-icon="false" :mask-closable="true" :closable="false"
:on-update-show="onScroingCloseClick"> :on-update-show="onScroingCloseClick">
<scoring :row-key="modal.scoring.rowKey" :row-index="modal.scoring.rowIndex" :score="modal.scoring.score" <scoring :row-key="modal.scoring.rowKey" :row-index="modal.scoring.rowIndex" :score="modal.scoring.score"
:reason="modal.scoring.reason" :min-score="modal.scoring.minScore" :max-score="modal.scoring.maxScore" :reason="modal.scoring.reason" :min-score="modal.scoring.minScore" :max-score="modal.scoring.maxScore" :type="modal.scoring.type"
@confirm="onScroingConfimClick" /> @confirm="onScroingConfimClick" />
</n-modal> </n-modal>
</template> </template>
@ -175,6 +175,14 @@ export default {
key: 'F', key: 'F',
keyName: 'reward', keyName: 'reward',
width: 60, width: 60,
render(row, index) {
return h('a', {
href: 'javascript:void(0)',
onClick() {
vueSelf.onRewardClick(row, index);
}
}, row.F);
}
}, },
{ {
align: 'center', align: 'center',
@ -332,6 +340,20 @@ export default {
onScroingCloseClick() { onScroingCloseClick() {
this.modal.scoring.show = false; this.modal.scoring.show = false;
}, },
//
onRewardClick(row, index) {
let backTimeout = row.F;
this.modal.scoring.show = true;
this.modal.scoring.rowKey = 'F';
this.modal.scoring.rowIndex = index;
this.modal.scoring.score = backTimeout;
this.modal.scoring.reason = row.reasonF;
this.modal.scoring.maxScore = null;
this.modal.scoring.minScore = null;
this.modal.scoring.userName = row.B;
this.modal.scoring.title = '案件奖励金额设置';
this.modal.scoring.type = '金额';
},
// 退 - // 退 -
onUnBackErrorClick(row, index) { onUnBackErrorClick(row, index) {
let unBackError = row.H; let unBackError = row.H;
@ -344,6 +366,7 @@ export default {
this.modal.scoring.minScore = null; this.modal.scoring.minScore = null;
this.modal.scoring.userName = row.B; this.modal.scoring.userName = row.B;
this.modal.scoring.title = '未在规定的时限内退单,影响处置时效'; this.modal.scoring.title = '未在规定的时限内退单,影响处置时效';
delete this.modal.scoring.type;
}, },
// - // -
onOthersClick(row, index) { onOthersClick(row, index) {
@ -357,6 +380,7 @@ export default {
this.modal.scoring.minScore = null; this.modal.scoring.minScore = null;
this.modal.scoring.userName = row.B; this.modal.scoring.userName = row.B;
this.modal.scoring.title = '自行上报案件没完成扣分'; this.modal.scoring.title = '自行上报案件没完成扣分';
delete this.modal.scoring.type;
}, },
// - // -
onHandleResultClick(row, index) { onHandleResultClick(row, index) {
@ -370,6 +394,7 @@ export default {
this.modal.scoring.minScore = null; this.modal.scoring.minScore = null;
this.modal.scoring.userName = row.B; this.modal.scoring.userName = row.B;
this.modal.scoring.title = '处理情况'; this.modal.scoring.title = '处理情况';
delete this.modal.scoring.type;
}, },
// - // -
onSuperviseResultClick(row, index) { onSuperviseResultClick(row, index) {
@ -383,6 +408,7 @@ export default {
this.modal.scoring.minScore = null; this.modal.scoring.minScore = null;
this.modal.scoring.userName = row.B; this.modal.scoring.userName = row.B;
this.modal.scoring.title = '督察案件'; this.modal.scoring.title = '督察案件';
delete this.modal.scoring.type;
}, },
computeL(row) { computeL(row) {
return Math.max(row.G - row.H - row.J - row.K + row.L + row.M, 0); return Math.max(row.G - row.H - row.J - row.K + row.L + row.M, 0);