Compare commits

..

10 Commits

Author SHA1 Message Date
TS-QD1
12bae65db0 修改问题 2025-08-26 14:36:38 +08:00
Renpc-kilig
24823060ce 复杂案件考核 2024-04-28 11:33:44 +08:00
Renpc-kilig
3fbe02a330 复杂案件考核 2024-04-22 15:41:08 +08:00
Renpc-kilig
6eefdc4da3 新增复杂案件考核 2024-04-19 15:30:34 +08:00
Renpc-kilig
ebb778519a 新增复杂案件考核 2024-04-10 10:48:04 +08:00
Renpc-kilig
df8fa9f6fc 去掉“党组织建设考核”和“案件处置时效”,将人口录入率和人口录入质量分值改为15分。 2024-04-01 09:59:48 +08:00
TS-QD1
e43175ef76 修改考核规则 2023-12-11 09:07:11 +08:00
TS-QD1
315812f608 处理问题 2023-10-24 11:02:19 +08:00
TS-QD1
03b3f420b0 处理问题 2023-08-07 16:24:51 +08:00
TS-QD1
5c628f81a9 增加调度员绩效 2023-07-28 15:56:56 +08:00
8 changed files with 241 additions and 1240 deletions

View File

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

1177
package-lock.json generated

File diff suppressed because it is too large Load Diff

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

@ -130,6 +130,7 @@ export default {
fixed: 'left', fixed: 'left',
width: 60 width: 60
}, },
/*
{ {
align: 'center', align: 'center',
title: '签到情况30分', title: '签到情况30分',
@ -145,6 +146,7 @@ export default {
}, row.C); }, row.C);
} }
}, },
*/
{ {
align: 'center', align: 'center',
title: '网格案件调度情况', title: '网格案件调度情况',
@ -156,19 +158,19 @@ export default {
keyName: 'baseScore', keyName: 'baseScore',
width: 60 width: 60
}, },
{
align: 'center',
title: '处理量',
key: 'N',
keyName: 'baseScore',
width: 60
},
{ {
align: 'center', align: 'center',
title: '案件调度', title: '案件调度',
key: 'dispatchCase', key: 'dispatchCase',
width: 60, width: 60,
children: [ children: [
{
align: 'center',
title: '数量未超过24小时',
key: 'timelyCount',
keyName: 'dispatchCaseCount',
width: 60
},
{ {
align: 'center', align: 'center',
title: '数量超过24小时', title: '数量超过24小时',
@ -287,7 +289,7 @@ export default {
fixed: 'right', fixed: 'right',
width: 60, width: 60,
render(row, index) { render(row, index) {
return vueSelf.computeK(row) * row.L / 100; return (vueSelf.computeK(row) * row.L / 100 + row.timelyCount * 200).toFixed(2);
} }
} }
], ],
@ -380,13 +382,13 @@ export default {
this.modal.scoring.rowIndex = index; this.modal.scoring.rowIndex = index;
this.modal.scoring.score = others; this.modal.scoring.score = others;
this.modal.scoring.reason = row.reasonJ; this.modal.scoring.reason = row.reasonJ;
this.modal.scoring.maxScore = 20; this.modal.scoring.maxScore = 50;
this.modal.scoring.minScore = 0; this.modal.scoring.minScore = 0;
this.modal.scoring.userName = row.B; this.modal.scoring.userName = row.B;
this.modal.scoring.title = '组织评价'; this.modal.scoring.title = '组织评价';
}, },
computeK(row) { computeK(row) {
return Math.max(row.C + row.D - row.F - row.G - row.H - row.I + row.J, 0); return Math.max(row.C + row.D - row.F - row.G - row.H - row.I + row.J, 0).toFixed(2);
}, },
onSearchClick() { onSearchClick() {
this.listData(); this.listData();
@ -396,7 +398,7 @@ export default {
let tableDatas = []; let tableDatas = [];
vueSelf.table.data.forEach(item => { vueSelf.table.data.forEach(item => {
item.K = vueSelf.computeK(item); item.K = vueSelf.computeK(item);
item.M = (item.K * item.L / 100).toFixed(2); item.M = (item.K * item.L / 100 + item.timelyCount * 200).toFixed(2);
tableDatas.push({...item}); tableDatas.push({...item});
}) })
vueSelf.dialog.warning({ vueSelf.dialog.warning({

View File

@ -173,6 +173,7 @@ export default {
return `${row.B}(${row.gridCount})` return `${row.B}(${row.gridCount})`
} }
}, },
/*
{ {
align: 'center', align: 'center',
title: '片区巡查40分', title: '片区巡查40分',
@ -190,6 +191,7 @@ export default {
}, row.C); }, row.C);
} }
}, },
*/
{ {
align: 'center', align: 'center',
title: '巡查上报、案件受理过程质量', title: '巡查上报、案件受理过程质量',
@ -216,6 +218,13 @@ export default {
keyName: 'caseSingleScore', keyName: 'caseSingleScore',
width: 60 width: 60
}, },
{
align: 'center',
title: '复杂案件数量',
key: 'complex',
keyName: 'complexScore',
width: 60
},
{ {
align: 'center', align: 'center',
title: '本月实报案件', title: '本月实报案件',
@ -355,7 +364,7 @@ export default {
}, },
] ]
}, },
{ /*{
align: 'center', align: 'center',
title: '案件处置实效(指挥协调实效)', title: '案件处置实效(指挥协调实效)',
key: 'dispatch', key: 'dispatch',
@ -373,7 +382,7 @@ export default {
onClick() { onClick() {
vueSelf.onOverScoreClick(row, index); vueSelf.onOverScoreClick(row, index);
} }
}, row.U); }, row.Q);
} }
}, },
{ {
@ -403,6 +412,9 @@ export default {
keyName: 'superviseDeductScore', keyName: 'superviseDeductScore',
width: 60, width: 60,
className: 'score-minus', className: 'score-minus',
render(row, index) {
vueSelf.computeS(row);
}
} }
] ]
}, },
@ -454,7 +466,7 @@ export default {
] ]
}, },
] ]
}, },*/
{ {
align: 'center', align: 'center',
title: '人口信息管理', title: '人口信息管理',
@ -462,7 +474,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: '人口信息录入(15)',
key: 'W', key: 'W',
keyName: 'populationSave', keyName: 'populationSave',
width: 80, width: 80,
@ -478,7 +511,7 @@ export default {
}, },
{ {
align: 'center', align: 'center',
title: '人口信息质量管理', title: '人口信息质量管理(35)', // 15 -> 35
key: 'X', key: 'X',
keyName: 'populationQuality', keyName: 'populationQuality',
width: 80, width: 80,
@ -492,9 +525,9 @@ export default {
}, row.X); }, row.X);
} }
}, },
{ /*{
align: 'center', align: 'center',
title: '人口信息维护', title: '人口信息维护(4)',
key: 'Y', key: 'Y',
keyName: 'populationEdit', keyName: 'populationEdit',
width: 80, width: 80,
@ -524,16 +557,17 @@ export default {
}, row.Z); }, row.Z);
} }
}, },
*/
] ]
}, },
{ /*{
align: 'center', align: 'center',
title: '党组织建设', title: '党组织建设',
key: 'party', key: 'party',
children: [ children: [
{ {
align: 'center', align: 'center',
title: '党建信息上报', title: '党建信息上报(3)',
key: 'AA', key: 'AA',
keyName: 'partySave', keyName: 'partySave',
width: 80, width: 80,
@ -549,7 +583,7 @@ export default {
}, },
{ {
align: 'center', align: 'center',
title: '党建信息质量管理', title: '党建信息质量管理(3)',
key: 'AB', key: 'AB',
keyName: 'partyQuality', keyName: 'partyQuality',
width: 80, width: 80,
@ -565,7 +599,7 @@ export default {
}, },
{ {
align: 'center', align: 'center',
title: '党建信息维护', title: '党建信息维护(4)',
key: 'AC', key: 'AC',
keyName: 'partyEdit', keyName: 'partyEdit',
width: 80, width: 80,
@ -596,7 +630,7 @@ export default {
} }
}, },
] ]
}, },*/
{ {
align: 'center', align: 'center',
title: '总得分', title: '总得分',
@ -631,9 +665,9 @@ export default {
if(score <= 100 && score >= 85) { if(score <= 100 && score >= 85) {
return `${333 * row.gridCount}(${500 * row.gridCount})`; return `${333 * row.gridCount}(${500 * row.gridCount})`;
} else if(score >= 75) { } else if(score >= 75) {
return `${333 * row.gridCount}(0)`; return `${333 * row.gridCount}(${333 * row.gridCount})`;
} else if(score >= 60) { } else if(score >= 60) {
return `${333 * row.gridCount}(0)`; return `${333 * row.gridCount}(${233 * row.gridCount})`;
} }
return `${333 * row.gridCount}(0)`; return `${333 * row.gridCount}(0)`;
} }
@ -646,7 +680,7 @@ export default {
fixed: 'right', fixed: 'right',
width: 100, width: 100,
render(row, index) { render(row, index) {
return (vueSelf.computeAE(row) * vueSelf.computeAF(row) / 100).toFixed(2); return ((vueSelf.computeAE(row) * vueSelf.computeAF(row) / 100) + vueSelf.computeComplex(row)).toFixed(2);
} }
} }
], ],
@ -711,7 +745,7 @@ export default {
onSearchRadioLevelValueChange(e) { onSearchRadioLevelValueChange(e) {
this.search.radio.level.value = parseInt(e.target.value); this.search.radio.level.value = parseInt(e.target.value);
}, },
// - // -
onShouldButNoClick(row, index) { onShouldButNoClick(row, index) {
let shouldButNo = row.M; let shouldButNo = row.M;
this.modal.scoring.show = true; this.modal.scoring.show = true;
@ -724,7 +758,7 @@ export default {
this.modal.scoring.userName = row.B; this.modal.scoring.userName = row.B;
this.modal.scoring.title = '应上报却未上报案件'; this.modal.scoring.title = '应上报却未上报案件';
}, },
// - // -
onTimeoutClick(row, index) { onTimeoutClick(row, index) {
let timeout = row.N; let timeout = row.N;
this.modal.scoring.show = true; this.modal.scoring.show = true;
@ -737,7 +771,7 @@ export default {
this.modal.scoring.userName = row.B; this.modal.scoring.userName = row.B;
this.modal.scoring.title = '平台立案上报不标准不及时的'; this.modal.scoring.title = '平台立案上报不标准不及时的';
}, },
// 退 - // 退 -
onMaliciousChargebackClick(row, index) { onMaliciousChargebackClick(row, index) {
let maliciousChargeback = row.O; let maliciousChargeback = row.O;
this.modal.scoring.show = true; this.modal.scoring.show = true;
@ -750,7 +784,7 @@ export default {
this.modal.scoring.userName = row.B; this.modal.scoring.userName = row.B;
this.modal.scoring.title = '恶意退单'; this.modal.scoring.title = '恶意退单';
}, },
// - // -
onNoDeductOthersClick(row, index) { onNoDeductOthersClick(row, index) {
let noDeductOthers = row.P; let noDeductOthers = row.P;
this.modal.scoring.show = true; this.modal.scoring.show = true;
@ -763,7 +797,7 @@ export default {
this.modal.scoring.userName = row.B; this.modal.scoring.userName = row.B;
this.modal.scoring.title = '扣分其它情况'; this.modal.scoring.title = '扣分其它情况';
}, },
// - // -
onOverScoreClick(row, index) { onOverScoreClick(row, index) {
let overScore = row.Q; let overScore = row.Q;
this.modal.scoring.show = true; this.modal.scoring.show = true;
@ -776,7 +810,7 @@ export default {
this.modal.scoring.minScore = 0; this.modal.scoring.minScore = 0;
this.modal.scoring.title = '结案情况得分'; this.modal.scoring.title = '结案情况得分';
}, },
// - // -
onSuperviseCountClick(row, index) { onSuperviseCountClick(row, index) {
let superviseCount = row.R; let superviseCount = row.R;
this.modal.scoring.show = true; this.modal.scoring.show = true;
@ -787,7 +821,7 @@ export default {
this.modal.scoring.userName = row.B; this.modal.scoring.userName = row.B;
this.modal.scoring.title = '督察扣分'; this.modal.scoring.title = '督察扣分';
}, },
// - // -
onFakeInfoClick(row, index) { onFakeInfoClick(row, index) {
let fakeInfo = row.U; let fakeInfo = row.U;
this.modal.scoring.show = true; this.modal.scoring.show = true;
@ -800,7 +834,7 @@ export default {
this.modal.scoring.userName = row.B; this.modal.scoring.userName = row.B;
this.modal.scoring.title = '反馈虚假信息'; this.modal.scoring.title = '反馈虚假信息';
}, },
// - // -
onHandleOthersClick(row, index) { onHandleOthersClick(row, index) {
let handleOthers = row.V; let handleOthers = row.V;
this.modal.scoring.show = true; this.modal.scoring.show = true;
@ -813,7 +847,7 @@ export default {
this.modal.scoring.userName = row.B; this.modal.scoring.userName = row.B;
this.modal.scoring.title = '处置其他情况'; this.modal.scoring.title = '处置其他情况';
}, },
// + // +
onPopulationSaveClick(row, index) { onPopulationSaveClick(row, index) {
let populationSave = row.W; let populationSave = row.W;
this.modal.scoring.show = true; this.modal.scoring.show = true;
@ -821,12 +855,12 @@ export default {
this.modal.scoring.rowIndex = index; this.modal.scoring.rowIndex = index;
this.modal.scoring.score = populationSave; this.modal.scoring.score = populationSave;
this.modal.scoring.reason = row.reasonW; this.modal.scoring.reason = row.reasonW;
this.modal.scoring.maxScore = null; this.modal.scoring.maxScore = 15;
this.modal.scoring.minScore = null; this.modal.scoring.minScore = 0;
this.modal.scoring.userName = row.B; this.modal.scoring.userName = row.B;
this.modal.scoring.title = '人口信息录入'; this.modal.scoring.title = '人口信息录入';
}, },
// + // +
onPopulationQualityClick(row, index) { onPopulationQualityClick(row, index) {
let populationQuality = row.X; let populationQuality = row.X;
this.modal.scoring.show = true; this.modal.scoring.show = true;
@ -834,12 +868,12 @@ export default {
this.modal.scoring.rowIndex = index; this.modal.scoring.rowIndex = index;
this.modal.scoring.score = populationQuality; this.modal.scoring.score = populationQuality;
this.modal.scoring.reason = row.reasonX; this.modal.scoring.reason = row.reasonX;
this.modal.scoring.maxScore = 3; this.modal.scoring.maxScore = 35; // 15 -> 35
this.modal.scoring.minScore = 0; this.modal.scoring.minScore = 0;
this.modal.scoring.userName = row.B; this.modal.scoring.userName = row.B;
this.modal.scoring.title = '人口信息质量'; this.modal.scoring.title = '人口信息质量';
}, },
// + // +
onPopulationEditClick(row, index) { onPopulationEditClick(row, index) {
let populationEdit = row.Y; let populationEdit = row.Y;
this.modal.scoring.show = true; this.modal.scoring.show = true;
@ -852,7 +886,7 @@ export default {
this.modal.scoring.userName = row.B; this.modal.scoring.userName = row.B;
this.modal.scoring.title = '人口信息维护' this.modal.scoring.title = '人口信息维护'
}, },
// - // -
onPopulationSpotCheckClick(row, index) { onPopulationSpotCheckClick(row, index) {
let populationSpotCheck = row.Z; let populationSpotCheck = row.Z;
this.modal.scoring.show = true; this.modal.scoring.show = true;
@ -865,7 +899,7 @@ export default {
this.modal.scoring.userName = row.B; this.modal.scoring.userName = row.B;
this.modal.scoring.title = '人口信息抽查'; this.modal.scoring.title = '人口信息抽查';
}, },
// + // +
onPartySaveClick(row, index) { onPartySaveClick(row, index) {
let partySave = row.AA; let partySave = row.AA;
this.modal.scoring.show = true; this.modal.scoring.show = true;
@ -878,7 +912,7 @@ export default {
this.modal.scoring.userName = row.B; this.modal.scoring.userName = row.B;
this.modal.scoring.title = '党建信息录入'; this.modal.scoring.title = '党建信息录入';
}, },
// + // +
onPartyQualityClick(row, index) { onPartyQualityClick(row, index) {
let partyQuality = row.AB; let partyQuality = row.AB;
this.modal.scoring.show = true; this.modal.scoring.show = true;
@ -891,7 +925,7 @@ export default {
this.modal.scoring.userName = row.B; this.modal.scoring.userName = row.B;
this.modal.scoring.title = '党建信息质量'; this.modal.scoring.title = '党建信息质量';
}, },
// + // +
onPartyEditClick(row, index) { onPartyEditClick(row, index) {
let partyEdit = row.AC; let partyEdit = row.AC;
this.modal.scoring.show = true; this.modal.scoring.show = true;
@ -904,7 +938,7 @@ export default {
this.modal.scoring.userName = row.B; this.modal.scoring.userName = row.B;
this.modal.scoring.title = '党建信息维护'; this.modal.scoring.title = '党建信息维护';
}, },
// - // -
onPartySpotCheckClick(row, index) { onPartySpotCheckClick(row, index) {
let partySpotCheck = row.AD; let partySpotCheck = row.AD;
this.modal.scoring.show = true; this.modal.scoring.show = true;
@ -917,11 +951,32 @@ export default {
this.modal.scoring.userName = row.B; this.modal.scoring.userName = row.B;
this.modal.scoring.title = '党建信息抽查'; this.modal.scoring.title = '党建信息抽查';
}, },
computeS(row) {
return (row.R * 0.2).toFixed(2);
},
computeAE(row) { computeAE(row) {
let result = row.C + row.H - row.J + row.L - row.M - row.N - row.O - row.P + row.Q - row.S - row.T - row.U - row.V + row.W + row.X + row.Y - row.Z + row.AA + row.AB + row.AC - row.AD; let s = this.computeS(row);
// let result = row.C + row.H + row.L - row.M - row.N - row.O - row.P + row.Q - s - row.T - row.U - row.V + row.W + row.X + row.Y - row.Z + row.AA + row.AB + row.AC - row.AD;
let C = Number(row.C);
let H = Number(row.H);
let L = Number(row.L);
let M = Number(row.M);
let N = Number(row.N);
let O = Number(row.O);
let P = Number(row.P);
let W = Number(row.W);
let X = Number(row.X);
let Z = Number(row.Z);
let result = C + H + L - M - N - O - P + W + X - Z;
console.log(row.C + "--" + row.H + "--"+ row.L + "--"+ row.M + "--"+ row.N + "--"+ row.O + "--"+ row.P + "--"+ row.W + "--"+ row.X + "--"+ row.Z)
console.log(result)
result = Math.min(result, 100); result = Math.min(result, 100);
return result < 0 ? 0 : result.toFixed(2); return result < 0 ? 0 : result.toFixed(2);
}, },
computeComplex(row) {
let complex = row.complex;
return complex * 200;
},
computeAF(row) { computeAF(row) {
let score = this.computeAE(row); let score = this.computeAE(row);
if(score <= 100 && score >= 85) { if(score <= 100 && score >= 85) {
@ -929,7 +984,7 @@ export default {
} else if(score >= 75) { } else if(score >= 75) {
return 333 * row.gridCount; return 333 * row.gridCount;
} else if(score >= 60) { } else if(score >= 60) {
return 333 * row.gridCount; return 233 * row.gridCount;
} }
return 0 return 0
}, },
@ -1048,15 +1103,40 @@ export default {
vueSelf.$axios.get(`api/kpi/khxz/list-wgy`, { vueSelf.$axios.get(`api/kpi/khxz/list-wgy`, {
params: vueSelf.getQuery() params: vueSelf.getQuery()
}).then(({ data }) => { }).then(({ data }) => {
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)).toFixed(2);
item.J = Math.min(item.F * item.I, item.D); item.J = (Math.min(item.F * item.I, item.D)).toFixed(2);
item.L = (item.K > 10 ? 10 : item.K) * 0.5; item.L = (item.K > 10 ? 10 : item.K) * 0.5;
item.S = item.R * 0.2; /*item.Q = item.communityPopulationRate >= 0.75 ? 10 : (item.communityPopulationRate >= 0.6 ? 5 : 0);*/
//
// = -
/*var differenceValue = item.communityBasePopulationCount - item.communityPopulationCount;
var no100Score;
if(differenceValue > 0 && differenceValue <= 15) {
no100Score = differenceValue;
}else {
no100Score = 0;
}
item.W = item.communityPopulationRate === 1 ? 15 : no100Score;*/
item.W = (item.communityPopulationRate * 15).toFixed(2);
item.X = 35; // 15 -> 35
// 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;*/
totalGridCount += item.gridCount;
if(null == item.complex || '' == item.complex || typeof(item.complex) == 'undefined') {
item.complex = 0;
}
}) })
console.log(data)
this.table.data = data; this.table.data = data;
console.log(`totalGridCount: ${totalGridCount}`)
}).catch(({ data }) => { }).catch(({ data }) => {
vueSelf.message.error(data.msg); vueSelf.message.error(data.msg);
}).finally(() => { }).finally(() => {

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>
@ -148,6 +148,7 @@ export default {
fixed: 'left', fixed: 'left',
width: 60 width: 60
}, },
/*
{ {
align: 'center', align: 'center',
title: '巡片签到100分', title: '巡片签到100分',
@ -163,6 +164,14 @@ export default {
}, row.C); }, row.C);
} }
}, },
*/
{
align: 'center',
title: '复杂案件数量',
key: 'complex',
keyName: 'complexScore',
width: 60
},
{ {
align: 'center', align: 'center',
title: '网格案件调度情况', title: '网格案件调度情况',
@ -191,6 +200,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);
}
} }
] ]
}, },
@ -325,7 +342,7 @@ export default {
fixed: 'right', fixed: 'right',
width: 60, width: 60,
render(row, index) { render(row, index) {
return (vueSelf.computeM(row) * row.N / 100 + row.F).toFixed(2); return ((vueSelf.computeM(row) * row.N / 100 + row.F) + vueSelf.computeComplex(row)).toFixed(2);
} }
} }
], ],
@ -344,7 +361,7 @@ export default {
score: 0, score: 0,
reason: '', reason: '',
minScore: null, minScore: null,
maxScore: null maxScore: null,
} }
} }
} }
@ -371,6 +388,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 +414,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 +427,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 +442,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 +458,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 +472,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,9 +486,14 @@ 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(100 - row.G - row.H - row.I - row.J - row.K - row.L, 0);
},
computeComplex(row) {
let complex = row.complex;
return complex * 200;
}, },
resize() { resize() {
let body = document.body; let body = document.body;

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>
@ -155,6 +155,13 @@ export default {
keyName: 'caseCount', keyName: 'caseCount',
width: 60, width: 60,
}, },
{
align: 'center',
title: '复杂案件数量',
key: 'complex',
keyName: 'complexScore',
width: 60,
},
{ {
align: 'center', align: 'center',
title: '办结并验收', title: '办结并验收',
@ -175,6 +182,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',
@ -300,7 +315,8 @@ export default {
fixed: 'right', fixed: 'right',
width: 60, width: 60,
render(row, index) { render(row, index) {
return vueSelf.computeN(row) * row.O / 100 + row.F; return vueSelf.computeN(row) * row.O / 100 + row.F + vueSelf.computeComplex(row);
// return vueSelf.computeN(row) * row.O / 100 + row.F;
} }
} }
], ],
@ -332,6 +348,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 +374,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 +388,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 +402,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 +416,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);
@ -393,6 +427,10 @@ export default {
computeN(row) { computeN(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);
}, },
computeComplex(row) {
let complex = row.complex;
return complex * 200;
},
resize() { resize() {
let body = document.body; let body = document.body;
this.table.minHeight = body.clientHeight - 378; this.table.minHeight = body.clientHeight - 378;

View File

@ -12,8 +12,8 @@ import Znbm from './components/table/Znbm.vue';
// 路由 // 路由
const router = createRouter({ const router = createRouter({
// history: createWebHashHistory(), history: createWebHashHistory(),
history: createWebHistory(), // history: createWebHistory(),
routes: [ routes: [
{ name: 'wgy', path: '/', component: Wgy }, { name: 'wgy', path: '/', component: Wgy },
{ name: 'ddy', path: '/ddy', component: Ddy }, { name: 'ddy', path: '/ddy', component: Ddy },
@ -26,6 +26,7 @@ const router = createRouter({
// axios // axios
const createAxios = { const createAxios = {
install(app, options) { install(app, options) {
// axios.defaults.baseURL = 'http://61.138.88.81:8081/bigdata';
axios.defaults.baseURL = 'http://127.0.0.1:8087/bigdata'; axios.defaults.baseURL = 'http://127.0.0.1:8087/bigdata';
// axios.defaults.baseURL = '/bigdata'; // axios.defaults.baseURL = '/bigdata';
axios.defaults.timeout = 20000; axios.defaults.timeout = 20000;