From 7e4c274bc02bde697e8d825140f70cf4517881ff Mon Sep 17 00:00:00 2001 From: "DESKTOP-1R2VSQH\\Lenovo ThinkPad E490" Date: Wed, 1 May 2024 17:44:16 +0700 Subject: [PATCH] =?UTF-8?q?=E0=B8=9A=E0=B8=A3=E0=B8=A3=E0=B8=88=E0=B8=B8?= =?UTF-8?q?=20=3D>=20=E0=B8=9B=E0=B8=A3=E0=B8=B1=E0=B8=9A=20=E0=B8=A3?= =?UTF-8?q?=E0=B8=B2=E0=B8=A2=E0=B8=81=E0=B8=B2=E0=B8=A3=E0=B8=8A=E0=B9=88?= =?UTF-8?q?=E0=B8=A7=E0=B8=A2=E0=B8=A3=E0=B8=B2=E0=B8=8A=E0=B8=81=E0=B8=B2?= =?UTF-8?q?=E0=B8=A3,=E0=B8=A3=E0=B8=B2=E0=B8=A2=E0=B8=81=E0=B8=B2?= =?UTF-8?q?=E0=B8=A3=E0=B8=AA=E0=B9=88=E0=B8=87=E0=B8=95=E0=B8=B1=E0=B8=A7?= =?UTF-8?q?=E0=B8=81=E0=B8=A5=E0=B8=B1=E0=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Dialogs/PopupPersonalNew.vue | 27 ++++++----- .../components/Repatriate/RepatriateMain.vue | 17 +++++-- .../components/Repatriate/RepatriatebyId.vue | 38 +++++++++++---- .../helpgovernment/governmentDetail.vue | 48 ++++++++++++++----- .../components/helpgovernment/mainHelp.vue | 2 +- .../interface/response/officer.ts | 4 ++ 6 files changed, 98 insertions(+), 38 deletions(-) diff --git a/src/components/Dialogs/PopupPersonalNew.vue b/src/components/Dialogs/PopupPersonalNew.vue index 3dedffa82..fd17e96a4 100644 --- a/src/components/Dialogs/PopupPersonalNew.vue +++ b/src/components/Dialogs/PopupPersonalNew.vue @@ -109,9 +109,8 @@ async function fetchInformation(id: string) { imformation.age = data.birthDate ? calculateAge(data.birthDate) : "-"; imformation.gender = data.gender ?? "-"; - avatar.fullname = data.createdFullName - ? `${data.prefix}${data.lastUpdateFullName}` - : "-"; + avatar.fullname = `${data.prefix}${data.firstName} ${data.lastName}`; + avatar.position = data.position ? data.position : "-"; }) .catch((err) => { @@ -133,15 +132,19 @@ async function fetchProfileGov(id: string) { .get(config.API.profileNewGovernmentById(id)) .then((res) => { const data = res.data.result; - goverment.oc = data.org ?? "-"; - goverment.posNo = data.posMasterNo ?? "-"; - goverment.position = data.position ?? "-"; - goverment.positionPathSide = data.positionArea ?? "-"; - goverment.positionLine = data.positionField ?? "-"; - goverment.positionType = data.posType ?? "-"; - goverment.positionLevel = data.posLevel ?? "-"; - goverment.positionExecutive = data.posExecutive ?? "-"; - goverment.positionExecutiveSide = data.positionExecutiveField ?? "-"; + goverment.oc = data.org !== "" ? data.org : "-"; + goverment.posNo = data.posMasterNo !== "" ? data.posMasterNo : "-"; + goverment.position = data.position !== "" ? data.position : "-"; + goverment.positionPathSide = + data.positionArea !== "" ? data.positionArea : "-"; + goverment.positionLine = + data.positionField !== "" ? data.positionField : "-"; + goverment.positionType = data.posType !== "" ? data.posType : "-"; + goverment.positionLevel = data.posLevel !== "" ? data.posLevel : "-"; + goverment.positionExecutive = + data.posExecutive !== "" ? data.posExecutive : "-"; + goverment.positionExecutiveSide = + data.positionExecutiveField !== "" ? data.positionExecutiveField : "-"; }) .catch((err) => { diff --git a/src/modules/05_placement/components/Repatriate/RepatriateMain.vue b/src/modules/05_placement/components/Repatriate/RepatriateMain.vue index 0faa5a41d..b08374d15 100644 --- a/src/modules/05_placement/components/Repatriate/RepatriateMain.vue +++ b/src/modules/05_placement/components/Repatriate/RepatriateMain.vue @@ -30,6 +30,8 @@ const { hideLoader, success, dialogRemove, + findOrgName, + findPosMasterNo, } = mixin; const visibleColumns = ref([ @@ -73,7 +75,7 @@ const columns = ref([ { name: "posNo", align: "left", - label: "ตำแหน่งเลขที่", + label: "เลขที่ตำแหน่ง", sortable: true, field: "posNo", headerStyle: "font-size: 14px", @@ -91,7 +93,7 @@ const columns = ref([ { name: "positionLevel", align: "left", - label: "ระดับ", + label: "ประเภทตำแหน่ง", sortable: true, field: "positionLevel", headerStyle: "font-size: 14px", @@ -181,8 +183,13 @@ const getData = async () => { id: item.id, fullname: `${item.prefix}${item.firstName} ${item.lastName}`, position: item.position, - posNo: item.posNo, - positionLevel: item.positionLevel, + posNo: findPosMasterNo(item), + positionLevel: + item.posTypeName == null && item.posLevelName == null + ? "-" + : (item.posTypeName != null ? item.posTypeName : "") + + " " + + (item.posLevelName != null ? ` (${item.posLevelName})` : ""), createdAt: date2Thai(item.createdAt), organization: item.organization, reason: item.reason, @@ -323,7 +330,7 @@ onMounted(async () => { :props="props" @click="openDetail(props.row.id)" > - {{ props.row.position }} + {{ props.row.position ?? "-" }} (false); const personalId = ref(""); @@ -67,10 +67,10 @@ const getData = async () => { prefix.value = data.prefix; firstName.value = data.firstName; lastName.value = data.lastName; - avatar.value = data.avatar ?? ""; - position.value = data.position; + + position.value = data.position ?? "-"; posNo.value = data.posNo; - positionLevel.value = data.positionLevel; + positionLevel.value = `${data.posTypeName}(${data.posLevelName})`; createdAt.value = data.createdAt; organization.value = data.organization; reason.value = data.reason; @@ -82,6 +82,7 @@ const getData = async () => { positionNumberOld.value = data.positionNumberOld; organizationPositionOld.value = data.organizationPositionOld; dateRepatriation.value = data.dateRepatriation; + fetchProfile(data.profileId); }) .catch((e) => { messageError($q, e); @@ -91,6 +92,27 @@ const getData = async () => { }); }; +function fetchProfile(id: string) { + showLoader(); + http + .get( + config.API.fileByFile("ทะเบียนประวัติ", "โปรไฟล์", id, `profile-${id}`) + ) + .then(async (res) => { + avatar.value = res.data.downloadUrl; + }) + .catch((e) => { + if (e.response.data.message === "ไม่พบไฟล์ในระบบ") { + avatar.value = ""; + } else { + messageError($q, e); + } + }) + .finally(() => { + hideLoader(); + }); +} + const getClass = (val: boolean) => { return { "full-width inputgreen cursor-pointer": val, @@ -200,15 +222,15 @@ onMounted(async () => {
ตำแหน่งในสายงาน
- {{ positionTypeOld }} + {{ position }}
-
ระดับ
+
ประเภทตำแหน่ง
- {{ positionLevelOld }} + {{ positionLevel }}
@@ -216,7 +238,7 @@ onMounted(async () => {
สังกัด
- {{ organizationPositionOld }} + {{ organization }}
diff --git a/src/modules/05_placement/components/helpgovernment/governmentDetail.vue b/src/modules/05_placement/components/helpgovernment/governmentDetail.vue index f22988124..aa3e2b197 100644 --- a/src/modules/05_placement/components/helpgovernment/governmentDetail.vue +++ b/src/modules/05_placement/components/helpgovernment/governmentDetail.vue @@ -7,7 +7,7 @@ import http from "@/plugins/http"; import config from "@/app.config"; import type { QForm } from "quasar"; import type { resHelpDetail } from "@/modules/05_placement/interface/response/officer"; -import PopupPersonal from "@/components/Dialogs/PopupPersonal.vue"; +import PopupPersonal from "@/components/Dialogs/PopupPersonalNew.vue"; const modalPersonal = ref(false); const personId = ref(""); @@ -60,28 +60,52 @@ const getData = async () => { (id.value = data.id); profileId.value = data.profileId; prefix.value = data.prefix; - avatar.value = data.avatar ?? ""; firstName.value = data.firstName; lastName.value = data.lastName; - position.value = data.position; + position.value = data.position ?? "-"; posNo.value = data.posNo; - positionLevel.value = data.positionLevel; + positionLevel.value = `${data.posTypeName}(${data.posLevelName})`; createdAt.value = data.createdAt; organization.value = data.organization; reason.value = data.reason; status.value = data.status; dateStart.value = data.dateStart; dateEnd.value = data.dateEnd; - positionTypeOld.value = data.positionTypeOld; - positionLevelOld.value = data.positionLevelOld; + positionTypeOld.value = data.position; + positionLevelOld.value = `${data.posTypeName}(${data.posLevelName})`; positionNumberOld.value = data.positionNumberOld; organizationPositionOld.value = data.organizationPositionOld; + fetchProfile(data.profileId); + }) + .catch((e) => { + messageError($q, e); }) - .catch((e) => {}) .finally(() => { hideLoader(); }); }; + +function fetchProfile(id: string) { + showLoader(); + http + .get( + config.API.fileByFile("ทะเบียนประวัติ", "โปรไฟล์", id, `profile-${id}`) + ) + .then(async (res) => { + avatar.value = res.data.downloadUrl; + }) + .catch((e) => { + if (e.response.data.message === "ไม่พบไฟล์ในระบบ") { + avatar.value = ""; + } else { + messageError($q, e); + } + }) + .finally(() => { + hideLoader(); + }); +} + const getClass = (val: boolean) => { return { "full-width inputgreen cursor-pointer": val, @@ -124,7 +148,7 @@ const saveData = async () => { showLoader(); await http .put(config.API.officerMainEdit(dataId), body) - .then((res: any) => { + .then(() => { success($q, "แก้ไขข้อมูลเพื่อลงบัญชีแนบท้ายสำเร็จ"); edit.value = false; }) @@ -190,15 +214,15 @@ onMounted(async () => {
ตำแหน่งในสายงาน
- {{ positionTypeOld }} + {{ position }}
-
ระดับ
+
ประเภทตำแหน่ง
- {{ positionLevelOld }} + {{ positionLevel }}
@@ -206,7 +230,7 @@ onMounted(async () => {
สังกัด
- {{ organizationPositionOld }} + {{ organization }}
diff --git a/src/modules/05_placement/components/helpgovernment/mainHelp.vue b/src/modules/05_placement/components/helpgovernment/mainHelp.vue index e60409a2f..b5a6c995d 100644 --- a/src/modules/05_placement/components/helpgovernment/mainHelp.vue +++ b/src/modules/05_placement/components/helpgovernment/mainHelp.vue @@ -73,7 +73,7 @@ const columns = ref([ { name: "posNo", align: "left", - label: "ตำแหน่งเลขที่", + label: "เลขที่ตำแหน่ง", sortable: true, field: "posNo", headerStyle: "font-size: 14px", diff --git a/src/modules/05_placement/interface/response/officer.ts b/src/modules/05_placement/interface/response/officer.ts index 51edda87a..ee18c7ac1 100644 --- a/src/modules/05_placement/interface/response/officer.ts +++ b/src/modules/05_placement/interface/response/officer.ts @@ -47,6 +47,8 @@ interface ResponseData { organizationPositionOld: string; isActive: boolean; dateRepatriation: Date; + posTypeName: string; + posLevelName: string; }; }; } @@ -73,6 +75,8 @@ interface resHelpDetail { positionNumberOld: string; organizationPositionOld: string; isActive: boolean; + posTypeName: string; + posLevelName: string; }; }; }