diff --git a/src/modules/09_leave/components/2_Leave/Calendar.vue b/src/modules/09_leave/components/2_Leave/Calendar.vue index 38348ddc7..da2a12f81 100644 --- a/src/modules/09_leave/components/2_Leave/Calendar.vue +++ b/src/modules/09_leave/components/2_Leave/Calendar.vue @@ -77,7 +77,7 @@ const dateMonth = ref({ const mainData = ref([]); /** function เรียกข้อมูล Calendar*/ -async function fetchDataCalendar() { +async function fetchDataCalendar(type: string) { showLoader(); await http .post(config.API.leaveCalendar(), { @@ -85,10 +85,10 @@ async function fetchDataCalendar() { }) .then((res) => { mainData.value = res.data.result; - const double_name = [ ...new Set(mainData.value.map((item: ResCalendar) => item.keycloakId)), ]; + filterLists.value = []; for (let i = 1; i <= double_name.length; i++) { const name = double_name[i - 1]; @@ -99,23 +99,23 @@ async function fetchDataCalendar() { }; filterLists.value.push(filterName); - filterVal.value.push(name); + type === "onMounted" && filterVal.value.push(name); } - - const data = mainData.value.filter( - (e: any) => e.keycloakId === keycloakId.value - ); - const event = data.map((e: any) => ({ - id: e.id, - title: `${e.fullName} (${e.leaveTypeName}) `, - start: e.leaveStartDate, - end: moment(e.leaveEndDate).format("YYYY-MM-DD") + " 23:59:59", - allDay: false, - color: leaveStore.colorType(e.leaveTypeId), - textColor: "black", - })); - - calendarOptions.value.events = event; + const eventData = filterVal.value.map((item: any) => { + return mainData.value + .filter((e: ResCalendar) => e.keycloakId === item) + .map((e: ResCalendar) => ({ + id: e.id, + title: `${e.fullName} (${e.leaveTypeName}) `, + start: e.leaveStartDate, + end: moment(e.leaveEndDate).format("YYYY-MM-DD") + " 23:59:59", + color: leaveStore.colorType(e.leaveTypeId), + textColor: "black", + allDay: false, + })); + }); + const allEventData = [].concat(...eventData); + calendarOptions.value.events = allEventData; }) .catch((err) => { @@ -173,12 +173,12 @@ function redirectToDetail(id: string) { * เรียกฟังก์ชันทั้งหมดตอนเรียกใช้ไฟล์นี้ */ onMounted(async () => { - await fetchDataCalendar(); + await fetchDataCalendar("onMounted"); }); /** function เปลี่ยน calendar*/ async function changCalendar() { - await fetchDataCalendar(); + await fetchDataCalendar("chang"); } const monthYearThai = (val: DataDateMonthObject) => {