diff --git a/src/api/api.checkin.ts b/src/api/api.checkin.ts index 8172c07..28caa30 100644 --- a/src/api/api.checkin.ts +++ b/src/api/api.checkin.ts @@ -18,4 +18,7 @@ export default { checkoutCheck: `${leave}/user/checkout-check`, privacy: `${env.API_URI}/org/profile/privacy`, + orgIssues: `${env.API_URI}/org/issues`, + fileUpload: (name: string, group: string, id: string) => + `${env.API_URI}/salary/file/${name}/${group}/${id}`, } diff --git a/src/components/DialogDebug.vue b/src/components/DialogDebug.vue new file mode 100644 index 0000000..5fa1f3f --- /dev/null +++ b/src/components/DialogDebug.vue @@ -0,0 +1,362 @@ + + + + + diff --git a/src/stores/positionKeycloak.ts b/src/stores/positionKeycloak.ts new file mode 100644 index 0000000..c3a1ec0 --- /dev/null +++ b/src/stores/positionKeycloak.ts @@ -0,0 +1,65 @@ +import { ref } from 'vue' +import { defineStore } from 'pinia' + +export const usePositionKeycloakStore = defineStore('positionKeycloak', () => { + const menuData = ref([ + 'ลงเวลาปฏิบัติงาน', + 'ประวัติการลงเวลา', + 'รายการลงเวลากรณีพิเศษ', + ]) + const dataPositionKeycloak = ref(null) + + function setPositionKeycloak(data: any) { + dataPositionKeycloak.value = data + } + + function findOrgName(obj: any) { + if (obj) { + let name = + obj.child4 != null && + obj.child4 !== '' && + obj.child3 != null && + obj.child3 !== '' + ? obj.child4 + (obj.child3 ? '/' : '') + : obj.child4 != null && obj.child4 !== '' + ? obj.child4 + : '' + + name += + obj.child3 != null && + obj.child3 !== '' && + obj.child2 != null && + obj.child2 !== '' + ? obj.child3 + (obj.child2 ? '/' : '') + : obj.child3 != null && obj.child3 !== '' + ? obj.child3 + : '' + + name += + obj.child2 != null && + obj.child2 !== '' && + obj.child1 != null && + obj.child1 !== '' + ? obj.child2 + (obj.child1 ? '/' : '') + : obj.child2 != null && obj.child2 !== '' + ? obj.child2 + : '' + + name += + obj.child1 != null && + obj.child1 !== '' && + obj.root != null && + obj.root !== '' + ? obj.child1 + (obj.root ? '/' : '') + : obj.child1 != null && obj.child1 !== '' + ? obj.child1 + : '' + name += obj.root != null && obj.root !== '' ? obj.root : '' + return name == '' ? '-' : name + } else { + return '' + } + } + + return { setPositionKeycloak, dataPositionKeycloak, findOrgName, menuData } +}) diff --git a/src/views/MainView.vue b/src/views/MainView.vue index bc4b488..9cd25d9 100644 --- a/src/views/MainView.vue +++ b/src/views/MainView.vue @@ -9,15 +9,18 @@ import avatar from '@/assets/avatar_user.jpg' 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 { notiType } from '@/interface/index/Main' import type { Noti } from '@/interface/response/Main' import DialogHeader from '@/components/DialogHeader.vue' import PopupPrivacy from '@/components/PopupPrivacy.vue' +import DialogDebug from '@/components/DialogDebug.vue' const mixin = useCounterMixin() const privacyStore = usePrivacyStore() +const positionKeycloakStore = usePositionKeycloakStore() const { date2Thai, hideLoader, @@ -42,6 +45,7 @@ const notiList = ref([]) // รายการแจ้งเตื const totalNotiList = ref(0) //จำนวนการรายการแจ้งเตือน const totalNoti = ref(0) //จำนวนการแจ้งเตือน const statusLoad = ref(false) // สถานะการโหลด +const modalDebug = ref(false) // ตัวแปร popup debug //รูปแบบการแสดงผลของวันที่และเวลา const thaiOptions: Intl.DateTimeFormatOptions = { hour: '2-digit', @@ -173,6 +177,7 @@ async function fetchKeycloakPosition() { .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) //เช็คว่ามีรูปไหม ถ้ามีรูปเรียกข้อมูลรูป @@ -493,6 +498,20 @@ onMounted(async () => { Landing Page + + + + + + แจ้งปัญหาการใช้งานระบบ + + { +