diff --git a/src/modules/14_KPI/components/Tab/01_Assessment.vue b/src/modules/14_KPI/components/Tab/01_Assessment.vue index cc4aec901..5dadefdf7 100644 --- a/src/modules/14_KPI/components/Tab/01_Assessment.vue +++ b/src/modules/14_KPI/components/Tab/01_Assessment.vue @@ -42,6 +42,7 @@ const weightAssigned = ref(0); const resultPlanned = ref(0); const resultRole = ref(0); const resultAssigned = ref(0); + function fetchListPlanned() { http .get(config.API.kpiAchievement("planned") + `?id=${evaluationId.value}`) @@ -206,13 +207,17 @@ watch( ); onMounted(() => { - getCriteria(); - fetchListPlanned(); - fetchListRole(); - fetchAssigned(); - setTimeout(() => { - hideLoader(); - }, 1000); + showLoader(), + Promise.all([ + getCriteria(), + fetchListPlanned(), + fetchListRole(), + fetchAssigned(), + ]).finally(() => { + setTimeout(() => { + hideLoader(); + }, 2000); + }); }); diff --git a/src/modules/14_KPI/components/results/dialogIndividual.vue b/src/modules/14_KPI/components/results/dialogIndividual.vue index e525a9190..ba2cf095e 100644 --- a/src/modules/14_KPI/components/results/dialogIndividual.vue +++ b/src/modules/14_KPI/components/results/dialogIndividual.vue @@ -9,7 +9,7 @@ import config from "@/app.config"; */ import type { OptionCheckbox, - DataCapacity, + DataAchievement, } from "@/modules/14_KPI/interface/index/Main"; /** @@ -39,24 +39,24 @@ const devId = defineModel("devId", { /** * Table */ -const rows = ref([]); -const visibleColumns = ref(["capacityPoint", "capacityName"]); +const rows = ref([]); +const visibleColumns = ref(["achievement", "detail"]); const columns = ref([ { - name: "capacityPoint", + name: "achievement", align: "center", label: "ระดับคะแนน", sortable: true, - field: "capacityPoint", + field: "achievement", headerStyle: "font-size: 14px", style: "font-size: 14px; width:20%;", }, { - name: "capacityName", + name: "detail", align: "left", label: "เกณฑ์การประเมิน", - sortable: true, - field: "capacityName", + sortable: false, + field: "detail", headerStyle: "font-size: 14px", style: "font-size: 14px; width:80%;", }, @@ -90,14 +90,17 @@ function fetchDetailIndividual() { .then((res) => { const data = res.data.result; title.value = data.name; - develop.value = [ - data.isDevelopment70 ? "isDevelopment70" : "", - data.isDevelopment20 ? "isDevelopment20" : "", - data.isDevelopment10 ? "isDevelopment10" : "", - ]; + const developKeys = [70, 20, 10]; + develop.value = developKeys + .filter((key) => data[`isDevelopment${key}`]) + .map((key) => `isDevelopment${key}`); target.value = data.target; - rows.value = data.capacity; + const achievements = ["10", "5", "0"]; + rows.value = achievements.map((i) => ({ + achievement: i, + detail: data[`achievement${i}`], + })); }) .catch((err) => { messageError($q, err); @@ -200,13 +203,13 @@ watch( :key="col.name" :props="props" > -
+
diff --git a/src/modules/14_KPI/components/results/tableIndividual.vue b/src/modules/14_KPI/components/results/tableIndividual.vue index 451e06070..e045d6e3a 100644 --- a/src/modules/14_KPI/components/results/tableIndividual.vue +++ b/src/modules/14_KPI/components/results/tableIndividual.vue @@ -348,7 +348,6 @@ onMounted(() => { :columns="columns" :rows="rows" row-key="id" - :selection="tab === 'COMPLETE' ? 'multiple' : null" :rows-per-page-options="[10, 25, 50, 100]" v-model:pagination="pagination" :paging="true" diff --git a/src/modules/14_KPI/components/results/tableResults.vue b/src/modules/14_KPI/components/results/tableResults.vue index 330200177..f5485fd16 100644 --- a/src/modules/14_KPI/components/results/tableResults.vue +++ b/src/modules/14_KPI/components/results/tableResults.vue @@ -187,12 +187,10 @@ function onAnnounce() { .post(config.API.evaluationUserDone, { id: ids, }) - .then(() => { - setTimeout(async () => { - await porps.fetchData(); - await success($q, "ประกาศผลสำเร็จ"); - selected.value = []; - }, 1500); + .then(async () => { + await porps.fetchData(); + await success($q, "ประกาศผลสำเร็จ"); + selected.value = []; }) .catch((err) => { messageError($q, err); diff --git a/src/modules/14_KPI/interface/index/Main.ts b/src/modules/14_KPI/interface/index/Main.ts index d321c73b4..aeb361cff 100644 --- a/src/modules/14_KPI/interface/index/Main.ts +++ b/src/modules/14_KPI/interface/index/Main.ts @@ -68,7 +68,10 @@ interface FormData { email: string; qualification: string; } -interface DataCapacity {} +interface DataAchievement { + achievement: string; + detail: string; +} export type { DataOption, @@ -80,5 +83,5 @@ export type { FormData, ItemsTab, OptionCheckbox, - DataCapacity, + DataAchievement, }; diff --git a/src/modules/14_KPI/views/report.vue b/src/modules/14_KPI/views/report.vue index 7974e1e29..d0723ce21 100644 --- a/src/modules/14_KPI/views/report.vue +++ b/src/modules/14_KPI/views/report.vue @@ -259,7 +259,7 @@ function filterSelector(val: string, update: Function, type: string) { switch (type) { case "typereport": update(() => { - typeReport.value = ""; + typeReport.value = val ? "" : typeReport.value; listReport.value = listReportMain.value.filter( (v: DataOption) => v.name.toLowerCase().indexOf(val) > -1 ); @@ -267,7 +267,7 @@ function filterSelector(val: string, update: Function, type: string) { break; case "organization": update(() => { - organization.value = ""; + organization.value = val ? "" : organization.value; organizationOps.value = organizationOpsMain.value.filter( (v: DataOption) => v.name.toLowerCase().indexOf(val) > -1 ); diff --git a/src/modules/14_KPI/views/resultsMain.vue b/src/modules/14_KPI/views/resultsMain.vue index 97b30a3e5..84fef59b4 100644 --- a/src/modules/14_KPI/views/resultsMain.vue +++ b/src/modules/14_KPI/views/resultsMain.vue @@ -58,9 +58,9 @@ function fetcDataList() { kpiPeriodId: store.formQuery.round ? store.formQuery.round : "", }) .then((res) => { - const data = res.data.result.data; + const data = res.data.result; - dataList.value = data; + dataList.value = data.data; total.value = data.total; maxPage.value = Math.ceil(total.value / pageSize.value);