diff --git a/src/components/CardProfile.vue b/src/components/CardProfile.vue index bac6c2325..eabeeb3a0 100644 --- a/src/components/CardProfile.vue +++ b/src/components/CardProfile.vue @@ -40,7 +40,8 @@ function fetchDataProfile(data: DataProfile) { profile.id = data.profileId; profile.fullName = `${data.prefix}${data.firstName} ${data.lastName}`; - profile.position = data.position !== "" ? data.position : "-"; + profile.position = + data.position == "" || data.position === null ? "-" : data.position; if (data.posTypeName && data.posLevelName) { profile.positionLevel = `${data.posTypeName} (${data.posLevelName})`; } else if (data.posTypeName) { diff --git a/src/components/Dialogs/DialogOrgSelect.vue b/src/components/Dialogs/DialogOrgSelect.vue index 49aaaa234..7feca2de9 100644 --- a/src/components/Dialogs/DialogOrgSelect.vue +++ b/src/components/Dialogs/DialogOrgSelect.vue @@ -244,6 +244,7 @@ function close() { async function getDataTable(id: string, level: number = 0) { showLoader(); + const body = { node: level, nodeId: id, @@ -308,10 +309,16 @@ async function getDataTable(id: string, level: number = 0) { * @param data ข่อมูล Tree */ function updateSelected(data: DataTree) { - positionId.value = ""; - seletcId.value = ""; - selectedPos.value = []; - datePos.value = new Date(); + if (props?.dataRows?.nodeId === data.orgTreeId) { + positionId.value = props?.dataRows?.posmasterId; + seletcId.value = props?.dataRows?.positionId; + datePos.value = props?.dataRows?.reportingDateFullDate; + } else { + positionId.value = ""; + seletcId.value = ""; + selectedPos.value = []; + datePos.value = new Date(); + } nodeId.value = data.orgTreeId ? data.orgTreeId : ""; nodeLevel.value = data.orgLevel; @@ -396,11 +403,50 @@ async function onClickSelectPos(id: string) { } } +/** + * function fetch ข้อมูล expanded tree + * @param level levelTree + * @param id treeId + */ +async function fetchPosFind(level: number, id: string) { + showLoader(); + const body = { + node: level, + nodeId: id, + }; + await http + .post(config.API.orgPosFind, body) + .then((res) => { + const data = res.data.result; + expanded.value = data; + nodeId.value = id; + positionId.value = props?.dataRows?.posmasterId; + seletcId.value = props?.dataRows?.positionId; + datePos.value = props?.dataRows?.reportingDateFullDate; + + getDataTable(nodeId.value, level); + }) + .catch((e) => { + messageError($q, e); + hideLoader(); + }); +} + watch( () => modal.value, - (n) => { + async (n) => { if (n == true) { getActive(); + if (props?.dataRows?.node !== null && props?.dataRows?.nodeId !== null) { + await fetchPosFind(props?.dataRows?.node, props?.dataRows?.nodeId); + if (positionId.value) { + setTimeout(async () => { + await onClickSelectPos(positionId.value); + }, 200); + } + } else { + expanded.value = []; + } } } ); @@ -436,7 +482,7 @@ function onSubmit() { (e: any) => e.id === positionId.value ); - console.log(dataPosMaster) + console.log(dataPosMaster); if (selectedPos.value.length === 0) { dialogMessageNotify($q, "กรุณาเลือกตำแหน่ง"); } else { @@ -461,7 +507,6 @@ function onSubmit() { props.onSubmit?.(body); }); } - } diff --git a/src/modules/06_retirement/components/DismissOrder/DismissOrder.vue b/src/modules/06_retirement/components/DismissOrder/DismissOrder.vue index c855856ea..49e0e64a6 100644 --- a/src/modules/06_retirement/components/DismissOrder/DismissOrder.vue +++ b/src/modules/06_retirement/components/DismissOrder/DismissOrder.vue @@ -22,6 +22,7 @@ const { hideLoader, success, dialogMessage, + findOrgName, } = mixin; const { statusText } = transferStore; const modal = ref(false); @@ -32,9 +33,9 @@ const visibleColumns = ref([ "fullname", "position", "positionLevel", - "organizationPositionOld", + "org", "createdAt", - "statustext", + "status", ]); //ค้นหา คอลัมน์ คอลัมน์ที่แสดง @@ -64,6 +65,9 @@ const columns = ref([ field: "fullname", headerStyle: "font-size: 14px", style: "font-size: 14px", + format(val, row) { + return `${row.prefix}${row.firstName} ${row.lastName}`; + }, }, { name: "position", @@ -77,20 +81,34 @@ const columns = ref([ { name: "positionLevel", align: "left", - label: "ระดับ", + label: "ประเภทตำแหน่ง", sortable: true, field: "positionLevel", headerStyle: "font-size: 14px", style: "font-size: 14px", + format(val, row) { + let name = ""; + if (row.posTypeName && row.posLevelName) { + name = `${row.posTypeName} (${row.posLevelName})`; + } else if (row.posTypeName) { + name = `${row.posTypeName}`; + } else if (row.posLevelName) { + name = `(${row.posLevelName})`; + } else name = "-"; + return name; + }, }, { - name: "organizationPositionOld", + name: "org", align: "left", label: "สังกัด", sortable: true, - field: "organizationPositionOld", + field: "org", headerStyle: "font-size: 14px", style: "font-size: 14px", + format(val, row) { + return findOrgName(row); + }, }, { name: "createdAt", @@ -100,15 +118,17 @@ const columns = ref([ field: "createdAt", headerStyle: "font-size: 14px", style: "font-size: 14px", + format: (val) => date2Thai(val), }, { - name: "statustext", + name: "status", align: "left", label: "สถานะ", sortable: true, - field: "statustext", + field: "status", headerStyle: "font-size: 14px", style: "font-size: 14px", + format: (val) => statusText(val), }, ]); onMounted(async () => { @@ -140,33 +160,8 @@ const getData = async () => { .get(config.API.retirementOut) .then((res: any) => { const data = res.data.result; - let list: ResponseData[] = []; - data.map((r: ResponseData) => { - list.push({ - createdAt: date2Thai(r.createdAt), - date: r.date, - firstName: r.firstName ?? "", - id: r.id ?? "", - isActive: r.isActive ? r.isActive : false, - lastName: r.lastName ?? "", - organization: r.organization ?? "", - organizationPositionOld: r.organizationPositionOld ?? "", - posNo: r.posNo ?? "", - position: r.position ?? "", - positionLevel: r.positionLevel ?? "", - positionLevelOld: r.positionLevelOld ?? "", - positionNumberOld: r.positionNumberOld ?? "", - positionTypeOld: r.positionTypeOld ?? "", - prefix: r.prefix ?? "", - reason: r.reason ?? "", - salary: r.salary ? r.salary : 0, - status: r.status ?? "", - statustext: statusText(r.status ?? ""), - fullname: `${r.prefix ?? ""}${r.firstName ?? ""} ${r.lastName ?? ""}`, - }); - }); - rows.value = list; - filters.value = list; + rows.value = data; + filters.value = data; }) .catch((e) => { messageError($q, e); @@ -192,7 +187,7 @@ const clickDelete = async (id: string) => { const deleteData = async (id: string) => { await http .delete(config.API.outByid(id)) - .then((res) => { + .then(() => { success($q, "ลบข้อมูลสำเร็จ"); }) .catch((e) => { @@ -295,70 +290,38 @@ const pagination = ref({