แก้คะแนนรวมระบบ KPI
This commit is contained in:
parent
bebdfbfce5
commit
e98a458edc
3 changed files with 33 additions and 11 deletions
|
|
@ -14,9 +14,9 @@ import Competency from "@/modules/08_KPI/components/Tab/Topic/02_Competency.vue"
|
||||||
import { useCounterMixin } from "@/stores/mixin";
|
import { useCounterMixin } from "@/stores/mixin";
|
||||||
import { useKpiDataStore } from "@/modules/08_KPI/store";
|
import { useKpiDataStore } from "@/modules/08_KPI/store";
|
||||||
|
|
||||||
|
|
||||||
import type { ListCriteria } from "@/modules/08_KPI/interface/request/index";
|
import type { ListCriteria } from "@/modules/08_KPI/interface/request/index";
|
||||||
|
|
||||||
|
const score = defineModel("score", { type: Number, default: 0 });
|
||||||
const dataListCriteria = ref<ListCriteria[]>([]);
|
const dataListCriteria = ref<ListCriteria[]>([]);
|
||||||
|
|
||||||
const modalCriteria = ref<boolean>(false);
|
const modalCriteria = ref<boolean>(false);
|
||||||
|
|
@ -58,7 +58,8 @@ function fetchListPlanned() {
|
||||||
0
|
0
|
||||||
);
|
);
|
||||||
|
|
||||||
totalResults1.value = (result * 60) / weight;
|
totalResults1.value =
|
||||||
|
(result * store.dataEvaluation.plannedPoint) / weight;
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
|
|
@ -91,7 +92,8 @@ function fetchListRole() {
|
||||||
0
|
0
|
||||||
);
|
);
|
||||||
|
|
||||||
totalResults2.value = (result * 60) / weight;
|
totalResults2.value =
|
||||||
|
(result * store.dataEvaluation.rolePoint) / weight;
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
|
|
@ -125,7 +127,8 @@ function fetchAssigned() {
|
||||||
0
|
0
|
||||||
);
|
);
|
||||||
|
|
||||||
totalResults3.value = (result * 20) / weight;
|
totalResults3.value =
|
||||||
|
(result * store.dataEvaluation.specialPoint) / weight;
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
|
|
@ -160,7 +163,7 @@ function getCriteria() {
|
||||||
}
|
}
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
getCriteria()
|
getCriteria();
|
||||||
fetchListPlanned();
|
fetchListPlanned();
|
||||||
fetchListRole();
|
fetchListRole();
|
||||||
fetchAssigned();
|
fetchAssigned();
|
||||||
|
|
@ -207,7 +210,15 @@ onMounted(() => {
|
||||||
</div> -->
|
</div> -->
|
||||||
|
|
||||||
<div class="col-12 text-center row justify-center">
|
<div class="col-12 text-center row justify-center">
|
||||||
<span>สรุปผลการประเมินผลสัมฤทธิ์ของงาน (คะแนนเต็ม 80 คะแนน)</span>
|
<span
|
||||||
|
>สรุปผลการประเมินผลสัมฤทธิ์ของงาน (คะแนนเต็ม
|
||||||
|
{{
|
||||||
|
store.dataEvaluation.plannedPoint +
|
||||||
|
store.dataEvaluation.rolePoint +
|
||||||
|
store.dataEvaluation.specialPoint
|
||||||
|
}}
|
||||||
|
คะแนน)</span
|
||||||
|
>
|
||||||
<div class="text-primary q-pl-md">{{ resultWork }}</div>
|
<div class="text-primary q-pl-md">{{ resultWork }}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -230,11 +241,14 @@ onMounted(() => {
|
||||||
</q-btn>
|
</q-btn>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<Competency v-model:dataListCriteria="dataListCriteria"/>
|
<Competency v-model:dataListCriteria="dataListCriteria" />
|
||||||
</div>
|
</div>
|
||||||
</q-scroll-area>
|
</q-scroll-area>
|
||||||
|
|
||||||
<DialogListCriteria v-model:modal="modalCriteria" v-model:dataListCriteria="dataListCriteria"/>
|
<DialogListCriteria
|
||||||
|
v-model:modal="modalCriteria"
|
||||||
|
v-model:dataListCriteria="dataListCriteria"
|
||||||
|
/>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@ import File from "@/modules/08_KPI/components/Tab/05_File.vue";
|
||||||
const store = useKpiDataStore();
|
const store = useKpiDataStore();
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
const isReadonly = <boolean>(route.name === "KPIEditEvaluator" ? true : false);
|
const isReadonly = <boolean>(route.name === "KPIEditEvaluator" ? true : false);
|
||||||
|
const score = defineModel("score", { type: Number, default: 0 });
|
||||||
|
|
||||||
const itemsTab = ref<any>([
|
const itemsTab = ref<any>([
|
||||||
{
|
{
|
||||||
|
|
@ -38,6 +39,7 @@ const itemsTab = ref<any>([
|
||||||
|
|
||||||
const splitterModel = ref<number>(12);
|
const splitterModel = ref<number>(12);
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<q-splitter v-model="splitterModel" disable>
|
<q-splitter v-model="splitterModel" disable>
|
||||||
<template v-slot:before>
|
<template v-slot:before>
|
||||||
|
|
@ -82,7 +84,7 @@ const splitterModel = ref<number>(12);
|
||||||
:name="tab.name"
|
:name="tab.name"
|
||||||
class="q-pa-none"
|
class="q-pa-none"
|
||||||
>
|
>
|
||||||
<Assessment v-if="store.tabMain === '1'" />
|
<Assessment v-if="store.tabMain === '1'" v-model:score="score" />
|
||||||
<Evaluator v-if="store.tabMain === '2'" :type="'evaluator'" />
|
<Evaluator v-if="store.tabMain === '2'" :type="'evaluator'" />
|
||||||
<Evaluator v-if="store.tabMain === '3'" :type="'commander'" />
|
<Evaluator v-if="store.tabMain === '3'" :type="'commander'" />
|
||||||
<Evaluator v-if="store.tabMain === '4'" :type="'commanderHigh'" />
|
<Evaluator v-if="store.tabMain === '4'" :type="'commanderHigh'" />
|
||||||
|
|
|
||||||
|
|
@ -153,7 +153,10 @@ function getData(type: string) {
|
||||||
if (total > 0) {
|
if (total > 0) {
|
||||||
let weightAvg = weight / total;
|
let weightAvg = weight / total;
|
||||||
let resultAvg = result / total;
|
let resultAvg = result / total;
|
||||||
let sum = weightAvg != 0 ? (resultAvg / weightAvg) * 20 : 0;
|
let sum =
|
||||||
|
weightAvg != 0
|
||||||
|
? (resultAvg / weightAvg) * store.dataEvaluation.capacityPoint
|
||||||
|
: 0;
|
||||||
resultEvaluation.value = sum.toFixed(2);
|
resultEvaluation.value = sum.toFixed(2);
|
||||||
}
|
}
|
||||||
// end cal summary
|
// end cal summary
|
||||||
|
|
@ -344,7 +347,10 @@ onMounted(() => {
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<div class="row text-body2 text-weight-bold justify-center">
|
<div class="row text-body2 text-weight-bold justify-center">
|
||||||
<span>สรุปผลการประเมินสมรรถนะ (คะแนนเต็ม 20 คะแนน)</span>
|
<span
|
||||||
|
>สรุปผลการประเมินสมรรถนะ (คะแนนเต็ม
|
||||||
|
{{ store.dataEvaluation.capacityPoint }} คะแนน)</span
|
||||||
|
>
|
||||||
<div class="text-primary q-pl-md">{{ resultEvaluation }}</div>
|
<div class="text-primary q-pl-md">{{ resultEvaluation }}</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue