diff --git a/src/modules/02_organization/components/DialogFormPosition.vue b/src/modules/02_organization/components/DialogFormPosition.vue index bb82d762d..594b1d881 100644 --- a/src/modules/02_organization/components/DialogFormPosition.vue +++ b/src/modules/02_organization/components/DialogFormPosition.vue @@ -282,7 +282,7 @@ function onSubmit() { dialogConfirm($q, async () => { const positionsData = rows.value.map( (e: RowDetailPositions, index: number) => ({ - id: e.id, //id รายการตำแหน่ง + id: !e.isNew ? e.id : null, //id รายการตำแหน่ง posDictName: e.positionName, //ชื่อตำแหน่งในสายงาน (ชื่อตำแหน่ง) posDictField: e.positionField, //สายงาน posTypeId: e.posTypeId, //*ตำแหน่งประเภท @@ -426,7 +426,8 @@ async function addPosition(data: RowDetailPositions) { item.positionName == data.positionName && item.isSpecial == data.isSpecial ); - data.id = null; // Reset id to ensure a new entry + // data.id = null; // Reset id to ensure a new entry + data.isNew = true; // Mark as new entry if (!isIdExist) { rows.value = [...rows.value, data]; } @@ -441,6 +442,12 @@ function deleteData(id: string) { const updatedRows = dataRow.filter( (item: RowDetailPositions) => item.id !== id ); + + //เช็คว่าตำแหน่งที่ถูกลบมีการเลือกอยู่หรือไม่ถ้ามีให้ลบออกจาก selectedPos + if (dataRow.find((item) => item.id === id)?.positionIsSelected) { + selectedPos.value = []; + } + rows.value = updatedRows; } diff --git a/src/modules/02_organization/interface/index/Main.ts b/src/modules/02_organization/interface/index/Main.ts index f8c37bdf2..8550b47e9 100644 --- a/src/modules/02_organization/interface/index/Main.ts +++ b/src/modules/02_organization/interface/index/Main.ts @@ -145,6 +145,7 @@ interface RowDetailPositions { posExecutiveId: string; isSpecial: boolean; positionIsSelected: string; + isNew?: boolean; } interface DataOption2 {