From 3354bd3583601e6bab7da60fbc46f73315f38e2e Mon Sep 17 00:00:00 2001 From: "STW_TTTY\\stwtt" Date: Wed, 28 Aug 2024 15:32:10 +0700 Subject: [PATCH] =?UTF-8?q?=E0=B8=81=E0=B8=B2=E0=B8=A3=E0=B8=9E=E0=B8=B1?= =?UTF-8?q?=E0=B8=92=E0=B8=99=E0=B8=B2=E0=B8=A3=E0=B8=B2=E0=B8=A2=E0=B8=9A?= =?UTF-8?q?=E0=B8=B8=E0=B8=84=E0=B8=84=E0=B8=A5=20(Individual=20Developmen?= =?UTF-8?q?t=20Plan)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/registry/api.registry.ts | 2 + .../components/DialogDevelopmant.vue | 624 +++++++++++++ .../Achievement/05_ResultsPerformance.vue | 873 ++++++++++-------- src/modules/14_KPI/interface/request/index.ts | 8 +- 4 files changed, 1126 insertions(+), 381 deletions(-) create mode 100644 src/modules/04_registryPerson/components/DialogDevelopmant.vue diff --git a/src/api/registry/api.registry.ts b/src/api/registry/api.registry.ts index 982cc48e9..93ce13e62 100644 --- a/src/api/registry/api.registry.ts +++ b/src/api/registry/api.registry.ts @@ -190,4 +190,6 @@ export default { `${registryNew}-employee/employment/id/${id}`, employmentHistoryEmployee: (id: string) => `${registryNew}-employee/employment/history/${id}`, + + developMentPlan: `${registryNew}/development`, }; diff --git a/src/modules/04_registryPerson/components/DialogDevelopmant.vue b/src/modules/04_registryPerson/components/DialogDevelopmant.vue new file mode 100644 index 000000000..079373e6c --- /dev/null +++ b/src/modules/04_registryPerson/components/DialogDevelopmant.vue @@ -0,0 +1,624 @@ + + + diff --git a/src/modules/04_registryPerson/components/detail/Achievement/05_ResultsPerformance.vue b/src/modules/04_registryPerson/components/detail/Achievement/05_ResultsPerformance.vue index 5fe2fb02f..4c640af07 100644 --- a/src/modules/04_registryPerson/components/detail/Achievement/05_ResultsPerformance.vue +++ b/src/modules/04_registryPerson/components/detail/Achievement/05_ResultsPerformance.vue @@ -10,6 +10,7 @@ import type { QTableProps, QForm } from "quasar"; import { useCounterMixin } from "@/stores/mixin"; import { useResultsPerformDataStore } from "@/modules/04_registryPerson/stores/ResultsPerformance"; import DialogHeader from "@/components/DialogHeader.vue"; +import DialogDevelop from "@/modules/04_registryPerson/components/DialogDevelopmant.vue"; import type { RequestItemsObject } from "@/modules/04_registryPerson/interface/request/ResultsPerformance"; import type { ResponseObject } from "@/modules/04_registryPerson/interface/response/ResultsPerformance"; @@ -46,9 +47,11 @@ const resPerformForm = reactive({ }); const isEdit = ref(false); const modal = ref(false); +const modalDevelop = ref(false); const modeView = ref("table"); const modeViewPlan = ref("table"); const filterSearch = ref(""); +const kpiDevelopmentId = ref(""); const filterHistory = ref(""); const modalHistory = ref(false); @@ -283,11 +286,11 @@ const visibleColumns = ref([ const visibleColumnsPlan = ref([ "no", - "Knowledge", - "develop", + "name", + "developmentProjects", "target", "developmentResults", - "developmentReport", + "point", ]); const columnsPlan = ref([ { @@ -301,22 +304,22 @@ const columnsPlan = ref([ format: (v) => date2Thai(v), }, { - name: "Knowledge", + name: "name", align: "left", label: "ความรู้ / ทักษะ / สมรรถนะที่ต้องได้รับการพัฒนา", sortable: true, - field: "Knowledge", + field: "name", headerStyle: "font-size: 14px", style: "font-size: 14px", sort: (a: string, b: string) => a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }), }, { - name: "develop", + name: "developmentProjects", align: "left", label: "วิธีการพัฒนา", sortable: true, - field: "develop", + field: "developmentProjects", headerStyle: "font-size: 14px", style: "font-size: 14px", sort: (a: string, b: string) => @@ -345,11 +348,11 @@ const columnsPlan = ref([ a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }), }, { - name: "developmentReport", + name: "point", align: "left", label: "รายงานผลการพัฒนา", sortable: true, - field: "developmentReport", + field: "point", headerStyle: "font-size: 14px", style: "font-size: 14px", sort: (a: string, b: string) => @@ -388,11 +391,27 @@ async function fetchData() { rows.value = res.data.result; } catch (error) { messageError($q, error); - } finally { hideLoader(); + } finally { } } +async function getDevelop() { + if (!profileId.value) return; + await http + .get(config.API.developMentPlan + `/${profileId.value}`) + .then((res) => { + console.log(res.data.result); + const data = res.data.result; + rowsPlan.value = data; + }) + .catch((e) => { + messageError($q, e); + hideLoader(); + }) + .finally(() => {}); +} + /** * บันทึกข้อมูลผลการประเมินการปฏิบัติราชการ * @param editStatus แก่ไข,เพิ่ม @@ -505,403 +524,495 @@ function clearData() { (resPerformForm.date = null); } -onMounted(() => { - fetchData(); +/** + * เปิด Dialog การพัฒนารายบุคคล + * @param data ข้อมูลตาม row + */ +function openDialogDevelop(data: any) { + modalDevelop.value = true; + kpiDevelopmentId.value = data.kpiDevelopmentId; +} + +onMounted(async () => { + await fetchData(); + await getDevelop(); + hideLoader(); }); diff --git a/src/modules/14_KPI/interface/request/index.ts b/src/modules/14_KPI/interface/request/index.ts index c3f33d408..1ac613fe1 100644 --- a/src/modules/14_KPI/interface/request/index.ts +++ b/src/modules/14_KPI/interface/request/index.ts @@ -76,6 +76,11 @@ interface FormQuery { keyword: string; } +interface DataOptionTechnique { + label: string; + value: string; +} + export type { FormProfile, FormDataAssigned, @@ -85,5 +90,6 @@ export type { FormComment, FormCommentByRole, FormQuery, - DataOptions + DataOptions, + DataOptionTechnique };