refactor code & fixed location

This commit is contained in:
Warunee Tamkoo 2026-04-27 19:21:23 +07:00
parent 41c1aa8e45
commit 487a6b520e
23 changed files with 566 additions and 145 deletions

View file

@ -10,6 +10,7 @@ import { logout, tokenParsed, getCookie, gotoLeavePage } from '@/plugins/auth'
import { useCounterMixin } from '@/stores/mixin'
import { usePrivacyStore } from '@/stores/privacy'
import { usePositionKeycloakStore } from '@/stores/positionKeycloak'
import type { KeycloakPosition } from '@/interface/keycloak-position'
// import type { notiType } from '@/interface/index/Main'
// import type { Noti } from '@/interface/response/Main'
@ -144,6 +145,8 @@ function onClickLogout() {
ok: 'ยืนยัน',
persistent: true,
}).onOk(async () => {
// positionKeycloak logout
positionKeycloakStore.clearPositionKeycloak()
await http.post(config.API.keycloakLogSSO, { text: 'ออกจากระบบ' })
await logout()
})
@ -174,16 +177,50 @@ const landingPageUrl = ref<string>(configParam.landingPageUrl)
/** ฟังก์ชันเรียกข้อมูลผู้ใช่งาน*/
async function fetchKeycloakPosition() {
// store ( localStorage)
const existingData = positionKeycloakStore.dataPositionKeycloak
if (existingData) {
//
privacyStore.modalPrivacy = !existingData.privacyCheckin
privacyStore.setAccepted(existingData.privacyCheckin)
//
if (existingData.avatarName) {
getImg(existingData.profileId, existingData.avatarName)
} else {
profileImg.value = avatar
}
return
}
// fetch API
await http
.get(config.API.keycloakPosition())
.then(async (res) => {
const data = await res.data.result
positionKeycloakStore.setPositionKeycloak(data)
privacyStore.modalPrivacy = !data.privacyCheckin ? true : false
privacyStore.setAccepted(data.privacyCheckin)
const apiData = await res.data.result
// Map API response to KeycloakPosition interface
const keycloakData: KeycloakPosition = {
privacyCheckin: apiData.privacyCheckin ?? false,
avatarName: apiData.avatarName,
profileId: apiData.profileId,
organization: {
root: apiData.root,
child1: apiData.child1,
child2: apiData.child2,
child3: apiData.child3,
child4: apiData.child4,
},
}
positionKeycloakStore.setPositionKeycloak(keycloakData)
privacyStore.modalPrivacy = !keycloakData.privacyCheckin
privacyStore.setAccepted(keycloakData.privacyCheckin)
//
if (data.avatarName) {
getImg(data.profileId, data.avatarName)
if (keycloakData.avatarName) {
getImg(keycloakData.profileId, keycloakData.avatarName)
} else {
profileImg.value = avatar
}
@ -297,6 +334,7 @@ onMounted(async () => {
const checkTokenParsed = await tokenParsed()
const SSO_TOKEN = await getCookie('SSO')
isSsoToken.value = SSO_TOKEN === 'y' ? true : false
if (checkTokenParsed != null) {
fullName.value = checkTokenParsed.name
}