fix(HomeView): fetch Data

This commit is contained in:
DESKTOP-1R2VSQH\Lenovo ThinkPad E490 2026-05-01 14:31:09 +07:00
parent 6c819a6097
commit 7ce5eab6f4

View file

@ -9,6 +9,7 @@ import http from '@/plugins/http'
import { useCounterMixin } from '@/stores/mixin' import { useCounterMixin } from '@/stores/mixin'
import { usePermissions } from '@/composables/usePermissions' import { usePermissions } from '@/composables/usePermissions'
import { usePrivacyStore } from '@/stores/privacy' import { usePrivacyStore } from '@/stores/privacy'
import { usePositionKeycloakStore } from '@/stores/positionKeycloak'
import type { FormRef, OptionReason } from '@/interface/response/checkin' import type { FormRef, OptionReason } from '@/interface/response/checkin'
@ -19,8 +20,28 @@ const { date2Thai, showLoader, hideLoader, messageError, dialogConfirm } = mixin
const $q = useQuasar() const $q = useQuasar()
const { checkPrivacyAccepted } = usePermissions() const { checkPrivacyAccepted } = usePermissions()
const privacyStore = usePrivacyStore() const privacyStore = usePrivacyStore()
const positionKeycloakStore = usePositionKeycloakStore()
const MOCK_CHECK_DELAY_MS = 800 const MOCK_CHECK_DELAY_MS = 800
//
const hasOrganization = computed(() => {
const data = positionKeycloakStore.dataPositionKeycloak
if (!data || !data.organization) return false
const org = data.organization
// null, undefined string
const hasValue = (val: string | null | undefined) =>
val && val.trim() !== ''
return !!(
hasValue(org.root) ||
hasValue(org.child1) ||
hasValue(org.child2) ||
hasValue(org.child3) ||
hasValue(org.child4)
)
})
const modalTime = ref<boolean>(false) // Dailog const modalTime = ref<boolean>(false) // Dailog
const checkStatus = ref<string>('') const checkStatus = ref<string>('')
const statusCheckin = ref<boolean>(true) // , const statusCheckin = ref<boolean>(true) // ,
@ -679,22 +700,40 @@ async function requestCamera() {
/** Hook*/ /** Hook*/
onMounted(async () => { onMounted(async () => {
isLoadingCheckTime.value = true // clock
updateClock() updateClock()
clockInterval.value = setInterval(updateClock, 1000) clockInterval.value = setInterval(updateClock, 1000)
startChecking() // status #1
// event listeners
document.addEventListener('visibilitychange', handleVisibilityChange)
window.addEventListener('pagehide', handleAppClose)
// checking
if (hasOrganization.value) {
isLoadingCheckTime.value = true
startChecking()
}
// privacy // privacy
if (privacyStore.isAccepted) { if (privacyStore.isAccepted) {
mapRef.value?.requestLocationPermission() mapRef.value?.requestLocationPermission()
requestCamera() requestCamera()
} }
// event listeners
document.addEventListener('visibilitychange', handleVisibilityChange)
window.addEventListener('pagehide', handleAppClose)
}) })
// hasOrganization
// startChecking
watch(
hasOrganization,
(newValue) => {
if (newValue && !isLoadingCheckTime.value) {
isLoadingCheckTime.value = true
startChecking()
}
},
{ immediate: false }
)
onBeforeUnmount(() => { onBeforeUnmount(() => {
resetCameraAndImage() resetCameraAndImage()