From 83ef71e5b9f92698770a89991d4ba80aedb0318f Mon Sep 17 00:00:00 2001 From: "DESKTOP-1R2VSQH\\Lenovo ThinkPad E490" Date: Wed, 8 May 2024 18:09:59 +0700 Subject: [PATCH] =?UTF-8?q?=E0=B9=81=E0=B8=9A=E0=B8=9A=E0=B8=9B=E0=B8=A3?= =?UTF-8?q?=E0=B8=B0=E0=B9=80=E0=B8=A1=E0=B8=B4=E0=B8=99=20KPI=20=3D>=20?= =?UTF-8?q?=E0=B8=9B=E0=B8=A3=E0=B8=B1=E0=B8=9A=20=E0=B9=80=E0=B8=9E?= =?UTF-8?q?=E0=B8=B4=E0=B9=88=E0=B8=A1=E0=B8=95=E0=B8=B1=E0=B8=A7=E0=B8=8A?= =?UTF-8?q?=E0=B8=B5=E0=B9=89=E0=B8=A7=E0=B8=B1=E0=B8=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Tab/Dialog/01_FormIndicator.vue | 352 ++++++++++++++++-- 1 file changed, 316 insertions(+), 36 deletions(-) diff --git a/src/modules/08_KPI/components/Tab/Dialog/01_FormIndicator.vue b/src/modules/08_KPI/components/Tab/Dialog/01_FormIndicator.vue index 553bd8f..ccd6127 100644 --- a/src/modules/08_KPI/components/Tab/Dialog/01_FormIndicator.vue +++ b/src/modules/08_KPI/components/Tab/Dialog/01_FormIndicator.vue @@ -5,6 +5,8 @@ import { useRoute } from "vue-router"; import config from "@/app.config"; import http from "@/plugins/http"; +import type { DataOptions } from "@/modules/08_KPI/interface/index/Main"; + import DialogHeader from "@/components/DialogHeader.vue"; import { useCounterMixin } from "@/stores/mixin"; @@ -22,6 +24,7 @@ const { dialogConfirm, dialogMessageNotify, success, + date2Thai, } = mixin; const modal = defineModel("modal", { required: true }); @@ -35,6 +38,20 @@ const search = ref(""); const listCheckID = ref(null); const listTarget = ref([]); +const formFilter = reactive({ + isAll: false, + keyword: "", + node: 0, + nodeId: "", + period: "", + year: null, + page: 1, + pageSize: 20, +}); + +const totalList = ref(0); //จำนวนข้อมูลรายการ +const maxPage = ref(1); + const formDetail = reactive({ orgRevisionId: "", id: "", @@ -60,20 +77,28 @@ const formDetail = reactive({ strategyId: "", strategyName: "", documentInfoEvidence: "", + date: null, }); +/** Option รอบการประเมิน*/ +const roundOp = ref([ + { id: "APR", name: "รอบเมษายน" }, + { id: "OCT", name: "รอบตุลาคม" }, +]); + function fetchIndicators() { - const nodeId = store.dataProfile.nodeId; - const node = store.dataProfile.node; - const kpiPeriodId = store.dataEvaluation.kpiPeriodId; + formFilter.nodeId = store.dataProfile.nodeId; + formFilter.node = store.dataProfile.node; + formFilter.year = formFilter?.year ? formFilter.year.toString() : ""; + // const kpiPeriodId = store.dataEvaluation.kpiPeriodId; + showLoader(); http - .get( - config.API.kpiPlan + - `?page=${1}&pageSize=${50}&kpiPeriodId=${kpiPeriodId}&nodeId=${nodeId}&node=${node}&keyword=${""}` - ) + .post(config.API.kpiPlan + `/search`, formFilter) .then((res) => { listTarget.value = res.data.result.data; + maxPage.value = Math.ceil(res.data.result.total / formFilter.pageSize); + totalList.value = res.data.result.total; }) .catch((err) => { messageError($q, err); @@ -94,6 +119,17 @@ function fetchIndicatorsByid(id: string) { formDetail.weight = data.weight; formDetail.meaning = data.meaning; formDetail.formula = data.formula; + formDetail.achievement1 = data.achievement1; + formDetail.achievement2 = data.achievement2; + formDetail.achievement3 = data.achievement3; + formDetail.achievement4 = data.achievement4; + formDetail.achievement5 = data.achievement5; + formDetail.documentInfoEvidence = data.documentInfoEvidence; + if (data.startDate && data.endDate) { + formDetail.date = []; + formDetail.date[0] = data.startDate; + formDetail.date[1] = data.endDate; + } clickList(data.kpiPlanId, true); }) .catch((err) => { @@ -107,13 +143,19 @@ function fetchIndicatorsByid(id: string) { function fetchListRole() { const kpiPeriodId = store.dataEvaluation.kpiPeriodId; const position = store.dataProfile.position; + formFilter.nodeId = store.dataProfile.nodeId; + formFilter.node = store.dataProfile.node; + formFilter.year = formFilter?.year ? formFilter.year.toString() : ""; + formFilter.position = store.dataProfile.position; + + console.log(formFilter); + http - .get( - config.API.kpiRole + - `?page=${1}&pageSize=${50}&kpiPeriodId=${kpiPeriodId}&position=${position}` - ) + .post(config.API.kpiRole + `/search`, formFilter) .then((res) => { listTarget.value = res.data.result.data; + maxPage.value = Math.ceil(res.data.result.total / formFilter.pageSize); + totalList.value = res.data.result.total; }) .finally(() => { hideLoader(); @@ -131,6 +173,17 @@ function fetchRoleByid(id: string) { formDetail.weight = data.weight; formDetail.meaning = data.meaning; formDetail.formula = data.formula; + formDetail.achievement1 = data.achievement1; + formDetail.achievement2 = data.achievement2; + formDetail.achievement3 = data.achievement3; + formDetail.achievement4 = data.achievement4; + formDetail.achievement5 = data.achievement5; + formDetail.documentInfoEvidence = data.documentInfoEvidence; + if (data.startDate && data.endDate) { + formDetail.date = []; + formDetail.date[0] = data.startDate; + formDetail.date[1] = data.endDate; + } clickList(data.kpiRoleId, true); }) .catch((err) => { @@ -155,6 +208,11 @@ function clickList(id: string, isData: boolean = false) { formDetail.weight = data.weight; formDetail.meaning = data.meaning; formDetail.formula = data.formula; + formDetail.achievement1 = data.achievement1; + formDetail.achievement2 = data.achievement2; + formDetail.achievement3 = data.achievement3; + formDetail.achievement4 = data.achievement4; + formDetail.achievement5 = data.achievement5; } formDetail.orgRevisionId = data.corgRevisionId; formDetail.id = data.id; @@ -163,11 +221,6 @@ function clickList(id: string, isData: boolean = false) { formDetail.kpiPeriodId = data.kpiPeriodId; formDetail.includingName = data.includingName; formDetail.including = data.including; - formDetail.achievement1 = data.achievement1; - formDetail.achievement2 = data.achievement2; - formDetail.achievement3 = data.achievement3; - formDetail.achievement4 = data.achievement4; - formDetail.achievement5 = data.achievement5; formDetail.node = data.node; formDetail.nodeId = data.nodeId; formDetail.nodeName = data.nodeName; @@ -209,6 +262,17 @@ function closeDialog() { formDetail.nodeId = ""; formDetail.strategy = ""; formDetail.strategyId = ""; + formDetail.documentInfoEvidence = ""; + formDetail.date = null; + + formFilter.isAll = false; + formFilter.keyword = ""; + formFilter.node = 0; + formFilter.nodeId = ""; + formFilter.period = ""; + formFilter.year = null; + formFilter.page = 1; + formFilter.pageSize = 20; } function onSubmit() { @@ -216,7 +280,7 @@ function onSubmit() { dialogMessageNotify($q, "กรุณาเลือกตัวชี้วัด"); } else { dialogConfirm($q, async () => { - // showLoader(); + showLoader(); const formBody = { target: formDetail.target, @@ -227,6 +291,14 @@ function onSubmit() { kpiUserEvaluationId: store.dataEvaluation.id, kpiPlanId: numpage.value === 1 ? listCheckID.value : undefined, kpiRoleId: numpage.value === 2 ? listCheckID.value : undefined, + achievement1: formDetail.achievement1, + achievement2: formDetail.achievement2, + achievement3: formDetail.achievement3, + achievement4: formDetail.achievement4, + achievement5: formDetail.achievement5, + documentInfoEvidence: formDetail.documentInfoEvidence, + startDate: formDetail.date ? formDetail.date[0] : undefined, + endDate: formDetail.date ? formDetail.date[1] : undefined, }; try { const urlPlanned = isStatusEdit.value @@ -240,17 +312,21 @@ function onSubmit() { const url = numpage.value === 1 ? urlPlanned : urlRole; const method = isStatusEdit.value ? "put" : "post"; await http[method](url, formBody); + closeDialog(); success($q, "บันทึกข้อมูลสำเร็จ"); } catch (err) { messageError($q, err); } finally { hideLoader(); - closeDialog(); } }); } } +function fetchNewListIndicators() { + formFilter.page = 1; + numpage.value === 1 ? fetchIndicators() : fetchListRole(); +} watch( () => modal.value, () => { @@ -273,7 +349,11 @@ watch(
-
+
+ +
+
+
+ + + + + +
+
+ +
+
+ +
@@ -335,6 +491,26 @@ watch( + +
+ ทั้งหมด {{ totalList }} รายการ + +
@@ -380,6 +556,7 @@ watch( (val) => !!val || `${'กรุณากรอกค่าเป้าหมาย'}`, ]" hide-bottom-space + lazy-rules />
@@ -395,6 +572,7 @@ watch( :rules="[ (val) => !!val || `${'กรุณากรอกหน่วยนับ'}`, ]" + lazy-rules hide-bottom-space reverse-fill-mask /> @@ -414,6 +592,7 @@ watch( !!val || `${'กรุณากรอกน้ำหนัก (ร้อยละ)'}`, ]" hide-bottom-space + lazy-rules mask="###" />
@@ -429,34 +608,84 @@ watch(
ระดับคะแนน
ผลสำเร็จของงาน
-
+
5
-
- {{ formDetail.achievement5 }} +
+
-
+
4
- {{ formDetail.achievement4 }} +
-
+
3
- {{ formDetail.achievement3 }} +
-
+
2
- {{ formDetail.achievement2 }} +
-
+
1
- {{ formDetail.achievement1 }} +
@@ -471,6 +700,7 @@ watch( :rules="[(val:string) => !!val || `${'กรุณากรอกตัวชี้วัด'}`,]" hide-bottom-space class="inputgreen" + lazy-rules />
@@ -484,6 +714,7 @@ watch( :rules="[(val:string) => !!val || `${'กรุณากรอกตัวชี้วัด'}`,]" hide-bottom-space class="inputgreen" + lazy-rules />
@@ -497,8 +728,57 @@ watch( :rules="[(val:string) => !!val || `${'กรุณากรอกข้อมูลเอกสารหลักฐาน'}`,]" hide-bottom-space class="inputgreen" + lazy-rules />
+
+ + + + + +