From f3d275df0abcbbdc47138b789dd3fc8d9f795abf Mon Sep 17 00:00:00 2001 From: "DESKTOP-1R2VSQH\\Lenovo ThinkPad E490" Date: Tue, 19 Nov 2024 11:53:07 +0700 Subject: [PATCH] =?UTF-8?q?=E0=B9=81=E0=B8=AA=E0=B8=94=E0=B8=87=E0=B8=A3?= =?UTF-8?q?=E0=B8=B9=E0=B8=9B=20Profile?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/api.checkin.ts | 4 +++ src/assets/avatar_user.jpg | Bin 0 -> 13730 bytes src/views/MainView.vue | 51 ++++++++++++++++++++++++++++--------- 3 files changed, 43 insertions(+), 12 deletions(-) create mode 100644 src/assets/avatar_user.jpg diff --git a/src/api/api.checkin.ts b/src/api/api.checkin.ts index 15ab966..49143ca 100644 --- a/src/api/api.checkin.ts +++ b/src/api/api.checkin.ts @@ -1,9 +1,13 @@ import env from './index' const leave = `${env.API_URI}/leave` +const urlFile = `${env.API_URI}/salary` export default { checkin: () => `${leave}/check-in`, checkTime: () => `${leave}/check-time`, keycloakLogSSO: `${env.API_URI}/org/keycloak/log/sso`, + keycloakPosition: () => `${env.API_URI}/org/profile/keycloak/position`, + fileByFile: (name: string, group: string, id: string, fileName: string) => + `${urlFile}/file/${name}/${group}/${id}/${fileName}`, } diff --git a/src/assets/avatar_user.jpg b/src/assets/avatar_user.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bcf5bdb6dac42b33e72fea69adc8fe3b3eb71aa6 GIT binary patch literal 13730 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 literal 0 HcmV?d00001 diff --git a/src/views/MainView.vue b/src/views/MainView.vue index 8f12d7e..b897a8e 100644 --- a/src/views/MainView.vue +++ b/src/views/MainView.vue @@ -5,6 +5,7 @@ import { useRouter } from 'vue-router' import http from '@/plugins/http' import config from '@/app.config' +import avatar from '@/assets/avatar_user.jpg' import { logout, tokenParsed } from '@/plugins/auth' import { useCounterMixin } from '@/stores/mixin' @@ -153,6 +154,33 @@ function getLandingUrl() { } } +/** ฟังก์ชันเรียกข้อมูลผู้ใช่งาน*/ +async function fetchKeycloakPosition() { + await http + .get(config.API.keycloakPosition()) + .then(async (res) => { + const data = await res.data.result + //เช็คว่ามีรูปไหม ถ้ามีรูปเรียกข้อมูลรูป + if (data.avatarName) { + await getImg(data.profileId, data.avatarName) + } else { + profileImg.value = avatar + } + }) + .catch((err) => { + messageError($q, err) + }) +} + +const profileImg = ref('') +async function getImg(id: string, pathName: string) { + await http + .get(config.API.fileByFile('ทะเบียนประวัติ', 'โปรไฟล์', id, pathName)) + .then((res) => { + profileImg.value = res.data.downloadUrl + }) +} + watch( () => notiTrigger.value, () => { @@ -169,6 +197,7 @@ watch( onMounted(async () => { fetchTotolNotificate() + fetchKeycloakPosition() const checkTokenParsed = await tokenParsed() if (checkTokenParsed != null) { fullName.value = checkTokenParsed.name @@ -318,20 +347,18 @@ onMounted(async () => { - + + + + +
- - - - + + + + +
{{ fullName }}