diff --git a/src/views/HomeView.vue b/src/views/HomeView.vue index 1ca70de..894d30c 100644 --- a/src/views/HomeView.vue +++ b/src/views/HomeView.vue @@ -25,6 +25,7 @@ const msgCheckTime = ref('') // ข้อความแจ้งเต const isDisabledCheckTime = ref(false) // ข้อความแจ้งเตือน const isErr = ref(null) // ข้อความแจ้งเตือน const endTimeAfternoon = ref('12:00:00') //เวลาเช็คเอาท์ตามรอบ + /** * fetch เช็คเวลาต้องลงเวลาเข้าหรือออกงาน */ @@ -138,13 +139,13 @@ const intervalId = ref(undefined) // ต้องใช้ * */ async function startChecking() { - showLoader() - fetchCheckStatus() - if (intervalId.value === undefined) { - // เรียกใช้ซ้ำ ถ้า intervalId == undefined - intervalId.value = setInterval(async () => { - await fetchCheckStatus() // รอให้ fetchCheckStatus ทำงานเสร็จก่อน - }, 3000) + try { + showLoader() + await fetchCheckStatus() + await fetchCheckTime() + } catch (error) { + console.error('Error in startChecking:', error) + hideLoader() } } @@ -161,16 +162,28 @@ async function fetchCheckStatus() { /** inQueue เป็น true */ isDisabledCheckTime.value = true msgCheckTime.value = 'ระบบกำลังประมวลผล' - hideLoader() + if (intervalId.value === undefined) { + intervalId.value = setInterval(async () => { + try { + await fetchCheckStatus() + } catch (error) { + console.error('Error in interval fetchCheckStatus:', error) + // หยุด interval ถ้าเกิด error + stopChecking() + } + }, 3000) + console.log('startChecking called, intervalId:', intervalId.value) + } + // hideLoader() } else { /** inQueue เป็น false */ isDisabledCheckTime.value = false msgCheckTime.value = '' - stopChecking() // หยุดการทำงาน - console.log('Response เป็น false, หยุด interval') + await stopChecking() // หยุดการทำงาน } } catch (error) { console.log('เกิดข้อผิดพลาด', error) + messageError($q, error) stopChecking() // หยุดการทำงาน } } @@ -193,7 +206,7 @@ async function fetchCheckStatus() { */ async function stopChecking() { if (intervalId.value !== undefined) { - await fetchCheckTime() + await fetchCheckTime(false) // เรียก fetchCheckTime ก่อนหยุด interval clearInterval(intervalId.value) intervalId.value = undefined // รีเซ็ตค่า interval