From ad61a32ed9c91f3421d1b8f18503ecd2d5d2b8e1 Mon Sep 17 00:00:00 2001 From: "DESKTOP-1R2VSQH\\Lenovo ThinkPad E490" Date: Tue, 16 Jul 2024 10:58:55 +0700 Subject: [PATCH 1/2] =?UTF-8?q?=E0=B8=9B=E0=B8=A3=E0=B8=B0=E0=B8=81?= =?UTF-8?q?=E0=B8=B2=E0=B8=A8=E0=B8=9C=E0=B8=A5=20=3D>=20fix=20bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../14_KPI/components/Tab/01_Assessment.vue | 19 +++++++++------ .../components/results/dialogIndividual.vue | 24 +++++++++++-------- .../components/results/tableIndividual.vue | 1 - src/modules/14_KPI/interface/index/Main.ts | 7 ++++-- src/modules/14_KPI/views/resultsMain.vue | 4 ++-- 5 files changed, 33 insertions(+), 22 deletions(-) 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..bd74d80b6 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", + field: "detail", headerStyle: "font-size: 14px", style: "font-size: 14px; width:80%;", }, @@ -97,7 +97,11 @@ function fetchDetailIndividual() { ]; 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 +204,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/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/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); From 2ebcb1961c05ebc009ef069cc27c53b7bc71f632 Mon Sep 17 00:00:00 2001 From: "DESKTOP-1R2VSQH\\Lenovo ThinkPad E490" Date: Tue, 16 Jul 2024 13:08:40 +0700 Subject: [PATCH 2/2] =?UTF-8?q?=E0=B8=9B=E0=B8=A3=E0=B8=B0=E0=B8=81?= =?UTF-8?q?=E0=B8=B2=E0=B8=A8=E0=B8=9C=E0=B8=A5=20=3D>=20fix=20bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../14_KPI/components/results/dialogIndividual.vue | 11 +++++------ .../14_KPI/components/results/tableResults.vue | 10 ++++------ src/modules/14_KPI/views/report.vue | 4 ++-- 3 files changed, 11 insertions(+), 14 deletions(-) diff --git a/src/modules/14_KPI/components/results/dialogIndividual.vue b/src/modules/14_KPI/components/results/dialogIndividual.vue index bd74d80b6..ba2cf095e 100644 --- a/src/modules/14_KPI/components/results/dialogIndividual.vue +++ b/src/modules/14_KPI/components/results/dialogIndividual.vue @@ -55,7 +55,7 @@ const columns = ref([ name: "detail", align: "left", label: "เกณฑ์การประเมิน", - sortable: true, + sortable: false, field: "detail", headerStyle: "font-size: 14px", style: "font-size: 14px; width:80%;", @@ -90,11 +90,10 @@ 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; const achievements = ["10", "5", "0"]; 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/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 );