From dc1ea116c85d8be639ae986ea94faf49d7256d71 Mon Sep 17 00:00:00 2001 From: setthawutttty Date: Fri, 2 Feb 2024 12:48:19 +0700 Subject: [PATCH] =?UTF-8?q?=E0=B9=80=E0=B8=9E=E0=B8=B4=E0=B9=88=E0=B8=A1?= =?UTF-8?q?=E0=B8=82=E0=B9=89=E0=B8=AD=E0=B8=A1=E0=B8=B9=E0=B8=A5=E0=B8=95?= =?UTF-8?q?=E0=B8=B3=E0=B9=81=E0=B8=AB=E0=B8=99=E0=B9=88=E0=B8=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/position/01ListPosition.vue | 36 +++---- .../components/position/DialogAddPosition.vue | 96 ++++++++++++------- src/modules/01_metadataNew/views/position.vue | 4 +- 3 files changed, 83 insertions(+), 53 deletions(-) diff --git a/src/modules/01_metadataNew/components/position/01ListPosition.vue b/src/modules/01_metadataNew/components/position/01ListPosition.vue index 308903835..bab365a26 100644 --- a/src/modules/01_metadataNew/components/position/01ListPosition.vue +++ b/src/modules/01_metadataNew/components/position/01ListPosition.vue @@ -10,6 +10,7 @@ import DialogAddPosition from "@/modules/01_metadataNew/components/position/Dial interface FormPositionSelect { positionId: string; + posTypeId: string; positionName: string; positionField: string; positionType: string; @@ -50,6 +51,7 @@ const levelOps = ref([]); const formPositionSelect = reactive({ positionId: "", + posTypeId: "", positionName: "", positionField: "", positionType: "", @@ -191,8 +193,8 @@ const optionFilter = ref([ * @param data ข้อมูลตำแหน่ง */ function copyDetiail(data: RowDetailPositions) { - updateSelectType(data.posTypeId); - formPositionSelect.positionId = data.positionId; + formPositionSelect.positionId = data.id; + formPositionSelect.posTypeId = data.posTypeId; formPositionSelect.positionName = data.positionName; formPositionSelect.positionField = data.positionField; formPositionSelect.positionType = data.posTypeId; @@ -200,17 +202,10 @@ function copyDetiail(data: RowDetailPositions) { formPositionSelect.positionExecutive = data.posExecutiveId; formPositionSelect.positionExecutiveField = data.positionExecutiveField; formPositionSelect.positionArea = data.positionArea; + modalAddPosition.value = true + } -function updateSelectType(val: string) { - const listLevel = dataLevel.value.find((e: any) => e.id === val); - levelOpsMain.value = listLevel.posLevels.map((e: OptionLevel) => ({ - id: e.id, - name: e.posLevelName, - })); - levelOps.value = levelOpsMain.value; - formPositionSelect.positionLevel = ""; -} /** * ส่งค่า css ออกไปตามเงื่อนไข @@ -276,7 +271,7 @@ function popupAdd() { diff --git a/src/modules/01_metadataNew/components/position/DialogAddPosition.vue b/src/modules/01_metadataNew/components/position/DialogAddPosition.vue index e6b6fffeb..5c8203153 100644 --- a/src/modules/01_metadataNew/components/position/DialogAddPosition.vue +++ b/src/modules/01_metadataNew/components/position/DialogAddPosition.vue @@ -38,6 +38,7 @@ const { dialogConfirm, showLoader, success, hideLoader, messageError } = const isReadonly = ref(false); // อ่านได้อย่างเดียว const modal = defineModel("addPosition", { required: true }); +const formData = defineModel("formData", { required: true }); const positionNameRef = ref(null); const positionFieldRef = ref(null); @@ -79,34 +80,46 @@ function onSubmitSelectEdit() { dialogConfirm( $q, async () => { - // showLoader(); - // const body = { - // posDictName: formPositionSelect.positionName, - // posDictField: formPositionSelect.positionField, //สายงาน - // posTypeId: formPositionSelect.positionType, //*ประเภทตำแหน่ง - // posLevelId: formPositionSelect.positionLevel, //*ระดับตำแหน่ง - // posExecutiveId: formPositionSelect.positionExecutive, //ตำแหน่งทางการบริหาร - // posDictExecutiveField: formPositionSelect.positionExecutiveField, //ด้านทางการบริหาร - // posDictArea: formPositionSelect.positionArea, //ด้าน/สาขา - // }; - // await http - // .post(config.API.orgPosPosition, body) - // .then(() => { - // success($q, "เพิ่มข้อมูลสำเร็จ"); - // clearFormPositionSelect(); - // }) - // .catch((err) => { - // messageError($q, err); - // }) - // .finally(() => { - // hideLoader(); - // }); + showLoader(); + const body = { + posDictName: formPositionSelect.positionName, + posDictField: formPositionSelect.positionField, //สายงาน + posTypeId: formPositionSelect.positionType, //*ประเภทตำแหน่ง + posLevelId: formPositionSelect.positionLevel, //*ระดับตำแหน่ง + posExecutiveId: formPositionSelect.positionExecutive, //ตำแหน่งทางการบริหาร + posDictExecutiveField: formPositionSelect.positionExecutiveField, //ด้านทางการบริหาร + posDictArea: formPositionSelect.positionArea, //ด้าน/สาขา + }; + await http + .post(config.API.orgPosPosition, body) + .then(() => { + success($q, "เพิ่มข้อมูลสำเร็จ"); + clearFormPositionSelect(); + modal.value = false; + }) + .catch((err) => { + messageError($q, err); + }) + .finally(() => { + hideLoader(); + }); }, "ยืนยันการเพิ่มตำแหน่ง", "ต้องการยืนยันการเพิ่มตำแหน่งนี้ใช่หรือไม่?" ); } +async function clearFormPositionSelect() { + formPositionSelect.positionId = ""; + formPositionSelect.positionName = ""; + formPositionSelect.positionField = ""; + formPositionSelect.positionType = ""; + formPositionSelect.positionLevel = ""; + formPositionSelect.positionExecutive = ""; + formPositionSelect.positionExecutiveField = ""; + formPositionSelect.positionArea = ""; +} + /** * ส่งค่า css ออกไปตามเงื่อนไข * @param val true/false @@ -124,8 +137,9 @@ async function fetchType() { await http .get(config.API.orgPosType) .then((res) => { - dataLevel.value = res.data.result; - typeOpsMain.value = res.data.result.map((e: OptionType) => ({ + const data = res.data.result; + dataLevel.value = data; + typeOpsMain.value = data.map((e: OptionType) => ({ id: e.id, name: e.posTypeName, })); @@ -139,16 +153,6 @@ async function fetchType() { }); } -function updateSelectType(val: string) { - const listLevel = dataLevel.value.find((e: any) => e.id === val); - levelOpsMain.value = listLevel.posLevels.map((e: OptionLevel) => ({ - id: e.id, - name: e.posLevelName, - })); - levelOps.value = levelOpsMain.value; - formPositionSelect.positionLevel = ""; -} - /** function เรียกรายการตำแหน่งทางการบริหาร */ async function fetchExecutive() { showLoader(); @@ -175,9 +179,33 @@ watch( if (modal.value == true) { fetchType(); fetchExecutive(); + if (formData.value) { + const dataList = formData.value; + setTimeout(() => { + updateSelectType(dataList.posTypeId); + }, 1000); + formPositionSelect.positionId = dataList.positionId; + formPositionSelect.positionName = dataList.positionName; + formPositionSelect.positionField = dataList.positionField; + formPositionSelect.positionType = dataList.positionType; + formPositionSelect.positionLevel = dataList.positionLevel; + formPositionSelect.positionExecutive = dataList.positionExecutive; + formPositionSelect.positionExecutiveField = + dataList.positionExecutiveField; + formPositionSelect.positionArea = dataList.positionArea; + } } } ); + +function updateSelectType(val: string) { + const listLevel = dataLevel.value.find((e: any) => e.id === val); + levelOpsMain.value = listLevel.posLevels.map((e: OptionLevel) => ({ + id: e.id, + name: e.posLevelName, + })); + levelOps.value = levelOpsMain.value; +}