feat/page-cleaning: adjust role var naming

This commit is contained in:
2025-11-27 14:42:32 +07:00
parent 9755686e14
commit 851f71ae66
5 changed files with 64 additions and 23 deletions
+36
View File
@@ -0,0 +1,36 @@
export const systemCode = 'system'
export const rehabInstCode = 'rehab'
export const rehabUnitCode = 'rehab'
export const headPosCode = 'head' // head position
export const respPosCode = 'resp' // responsible position, verificator
export type UnitLevel =
'inst' | // installation
'unit' | // unit / poly
'spec' | // specialist
'subspec' // subspecialist
export const medicalRoles = [
'emp|doc', // doctor
'emp|nur', // nurse
'emp|miw', // midwife
'emp|thr', // therapist
'emp|nut', // nutritionist
'emp|pha', // pharmacy
'emp|lab' // laborant
]
export const serviceRoles = [
'emp|reg',
...medicalRoles,
]
export function genSpecHeadCode(unit_level: UnitLevel, unit_code: string): string {
return `${unit_level}|${unit_code}|${headPosCode}`
}
export function genUnitRespCode(unit_level: UnitLevel, unit_code: string): string {
return `${unit_level}|${unit_code}|${respPosCode}`
}
+3 -3
View File
@@ -1,5 +1,5 @@
import { isValidDate } from '~/lib/date'
import { medicalPositions } from '~/lib/roles'
import { medicalRoles } from '~/const/common/role'
export interface EncounterItem {
id: string
@@ -459,11 +459,11 @@ export function getMenuItems(
'installation|outpatient': {
'unit|rehab': {
items: listItemsForOutpatientRehab,
roles: medicalPositions,
roles: medicalRoles,
},
'unit|chemo': {
items: listItemsForOutpatientChemo,
roles: medicalPositions,
roles: medicalRoles,
},
all: getItemsAll('ambulatory', 'all', defaultItems),
},
+13 -11
View File
@@ -1,14 +1,16 @@
export const medicalPositions = ['emp|doc', 'emp|lab', 'emp|mid', 'emp|nur', 'emp|nut', 'emp|pha', 'emp|reg']
const verificatorRole = 'verificator'
import { medicalRoles, respPosCode } from '~/const/common/role'
export function getPositionAs(roleAccess: string): string {
if (roleAccess.includes('|')) {
if (medicalPositions.includes(roleAccess)) {
return 'medical'
}
if (roleAccess.includes(verificatorRole)) {
return 'verificator'
}
export function getServicePosition(role?: string): string {
if(!role) {
return 'none'
}
if (medicalRoles.includes(role)) {
return 'medical'
} else if (role === 'emp|reg') {
return 'registration'
} else if (role.includes('|resp')) {
return 'verificator'
} else {
return 'none'
}
return 'none'
}
+1 -1
View File
@@ -20,7 +20,7 @@ export default defineNuxtRouteMiddleware((to) => {
const requiredRoles = to.meta.roles as string[]
if (requiredRoles && requiredRoles.length > 0) {
// FIXME: change this dummy roles, when api is ready
const userRoles = authStore.userRole
const userRoles = authStore.userRoles
// const userRoles = ['admisi']
const hasRequiredRole = requiredRoles.some((role) => userRoles.includes(role))
+11 -8
View File
@@ -7,14 +7,15 @@ export const useUserStore = defineStore(
const isAuthenticated = computed(() => !!user.value)
const userRole = computed(() => {
const userRoles = computed(() => {
return user.value?.roles || []
// return roles.map((input: string) => {
// const parts = input.split('|')
// return parts.length > 1 ? parts[1]: parts[0]
// })
})
const userActiveRole = ref('') // watched user failed, so create a ref here
// computed(() => {
// // return user.value?.activeRole || ''
// })
const login = async (userData: any) => {
user.value = userData
}
@@ -26,10 +27,11 @@ export const useUserStore = defineStore(
const setActiveRole = (role: string) => {
if (user.value && user.value.roles.includes(role)) {
user.value.activeRole = role
userActiveRole.value = role
}
}
const getActiveRole = (): string | null => {
const getActiveRole = (): string | undefined => {
if (user.value?.activeRole) {
return user.value.activeRole
}
@@ -37,13 +39,14 @@ export const useUserStore = defineStore(
user.value.activeRole = user.value.roles[0]
return user.value.activeRole
}
return null
return undefined
}
return {
user,
isAuthenticated,
userRole,
userRoles,
userActiveRole,
login,
logout,
setActiveRole,