diff --git a/src/modules/02_organization/components/DialogFormPosition.vue b/src/modules/02_organization/components/DialogFormPosition.vue index 594b1d881..f556432b9 100644 --- a/src/modules/02_organization/components/DialogFormPosition.vue +++ b/src/modules/02_organization/components/DialogFormPosition.vue @@ -280,6 +280,8 @@ function onSubmit() { } else { //ถ้ามีแสดง dialog ยืนยัน dialogConfirm($q, async () => { + const isAddOrCopy = + props.actionType === "ADD" || props.actionType === "COPY"; const positionsData = rows.value.map( (e: RowDetailPositions, index: number) => ({ id: !e.isNew ? e.id : null, //id รายการตำแหน่ง @@ -299,6 +301,11 @@ function onSubmit() { }) ); + // สร้างข้อมูลตำแหน่งใหม่ ถ้าเป็นการเพิ่มหรือคัดลอกไม่เอา ID + const positionNew = isAddOrCopy + ? positionsData.map(({ id, ...rest }) => rest) + : positionsData; + const body = { posMasterNoPrefix: formData.prefixNo, //*Prefix นำหน้าเลขที่ตำแหน่ง เป็น Optional (ไม่ใช่อักษรย่อของหน่วยงาน/ส่วนราชการ) posMasterNo: Number(formData.positionNo), //*เลขที่ตำแหน่ง เป็นตัวเลข @@ -313,16 +320,14 @@ function onSubmit() { orgChild2Id: getOrgIdByLevel(2), orgChild3Id: getOrgIdByLevel(3), orgChild4Id: getOrgIdByLevel(4), - positions: positionsData, + positions: positionNew, }; showLoader(); try { - const isAddOrCopy = - props.actionType === "ADD" || props.actionType === "COPY"; - if (isAddOrCopy) { await http.post(config.API.orgPosMaster, body); + await Promise.all([ props.fetchDataTable?.( reqMaster.value.id,