แก้คะแนนเต็มระบบ kpi

This commit is contained in:
Warunee Tamkoo 2024-05-02 15:59:56 +07:00
parent bb549016fe
commit 4e1f895de2
5 changed files with 53 additions and 49 deletions

View file

@ -1,5 +1,5 @@
<script setup lang="ts">
import { ref, onMounted, computed } from "vue";
import { ref, onMounted, computed, watch } from "vue";
import { useQuasar } from "quasar";
import { useRoute } from "vue-router";
@ -16,6 +16,8 @@ import { useKPIDataStore } from "@/modules/14_KPI/store/KPIStore";
// import type { ListCriteria } from "@/modules/08_KPI/interface/request/index";
const dataListCriteria = ref<any[]>([]);
const indicatorScore = defineModel("indicatorScore", { default: 0 });
const competencyScore = defineModel("competencyScore", { default: 0 });
const modalCriteria = ref<boolean>(false);
const $q = useQuasar();
@ -35,7 +37,6 @@ const totalResults3 = ref<number>(0);
// const resultWork = ref<number>(0);
function fetchListPlanned() {
showLoader();
http
.get(config.API.kpiAchievement("planned") + `?id=${evaluationId.value}`)
.then((res) => {
@ -60,14 +61,10 @@ function fetchListPlanned() {
})
.catch((err) => {
messageError($q, err);
})
.finally(() => {
hideLoader();
});
}
function fetchListRole() {
showLoader();
http
.get(config.API.kpiAchievement("role") + `?id=${evaluationId.value}`)
.then((res) => {
@ -92,14 +89,10 @@ function fetchListRole() {
})
.catch((err) => {
messageError($q, err);
})
.finally(() => {
hideLoader();
});
}
function fetchAssigned() {
showLoader();
http
.get(config.API.kpiAchievement("special") + `?id=${evaluationId.value}`)
.then((res) => {
@ -124,17 +117,16 @@ function fetchAssigned() {
})
.catch((err) => {
messageError($q, err);
})
.finally(() => {
hideLoader();
});
}
function onInfo() {
modalCriteria.value = true;
}
const resultWork = computed(() => {
const total = totalResults1.value + totalResults2.value + totalResults3.value;
indicatorScore.value = total;
return total.toFixed(2);
});
@ -147,17 +139,17 @@ function getCriteria() {
})
.catch((e) => {
messageError($q, e);
})
.finally(() => {
hideLoader();
});
}
onMounted(() => {
getCriteria();
fetchListPlanned();
fetchListRole();
fetchAssigned();
setTimeout(() => {
getCriteria();
fetchListPlanned();
fetchListRole();
fetchAssigned();
hideLoader();
}, 1000);
});
</script>
@ -232,7 +224,10 @@ onMounted(() => {
</q-btn>
</div>
<Competency v-model:dataListCriteria="dataListCriteria" />
<Competency
v-model:dataListCriteria="dataListCriteria"
v-model:competency-score="competencyScore"
/>
</div>
</q-scroll-area>

View file

@ -14,7 +14,8 @@ const store = useKPIDataStore();
const route = useRoute();
const isReadonly = <boolean>(route.name === "KPIDetail" ? true : false);
const indicatorScore = defineModel("indicatorScore", { default: 0 });
const competencyScore = defineModel("competencyScore", { default: 0 });
const itemsTab = ref<any>([
{
name: "1",
@ -40,6 +41,7 @@ const itemsTab = ref<any>([
const splitterModel = ref<number>(12);
</script>
<template>
<q-splitter v-model="splitterModel" disable>
<template v-slot:before>
@ -76,7 +78,11 @@ const splitterModel = ref<number>(12);
:name="tab.name"
class="q-pa-none"
>
<Assessment v-if="store.tabMain === '1'" />
<Assessment
v-if="store.tabMain === '1'"
v-model:indicatorScore="indicatorScore"
v-model:competencyScore="competencyScore"
/>
<Evaluator v-if="store.tabMain === '2'" :type="'evaluator'" />
<Evaluator v-if="store.tabMain === '3'" :type="'commander'" />
<Evaluator v-if="store.tabMain === '4'" :type="'commanderHigh'" />

View file

@ -20,6 +20,9 @@ import { useRoute } from "vue-router";
const dataListCriteria = defineModel<any[]>("dataListCriteria", {
required: true,
});
const competencyScore = defineModel<number>("competencyScore", {
default: 0,
});
const sortedDataListCriteria = computed(() => {
return dataListCriteria.value.sort((a, b) => a.level - b.level);
@ -115,7 +118,6 @@ const rows = ref<any>([]);
const lists = ref<any>([]);
const resultEvaluation = ref<string | 0>(0);
function getData(type: string) {
showLoader();
http
.get(config.API.kpiUserCapacity + `?id=${id.value}&type=${type}`)
.then(async (res) => {
@ -157,9 +159,8 @@ function getData(type: string) {
? (resultAvg / weightAvg) * store.dataEvaluation.capacityPoint
: 0;
resultEvaluation.value = sum.toFixed(2);
competencyScore.value = sum;
}
// end cal summary
hideLoader();
});
}
@ -193,10 +194,12 @@ function onEvaluate(type: string) {
}
onMounted(() => {
for (let index = 0; index < store.competencyType.length; index++) {
const element = store.competencyType[index];
getData(element.id);
}
setTimeout(() => {
for (let index = 0; index < store.competencyType.length; index++) {
const element = store.competencyType[index];
getData(element.id);
}
}, 1000);
});
</script>