From e1c4c585b1ced627898a3ce1bafb8f4a00e5db00 Mon Sep 17 00:00:00 2001 From: riefive Date: Wed, 3 Dec 2025 15:06:58 +0700 Subject: [PATCH] fix: page encounter main --- .../app/encounter/dropdown-action.vue | 11 ++++- app/components/content/encounter/list.vue | 6 +-- .../(features)/ambulatory/encounter/index.vue | 39 ++++++++--------- .../(features)/emergency/encounter/index.vue | 42 +++++++++---------- .../(features)/inpatient/encounter/index.vue | 41 +++++++++--------- 5 files changed, 72 insertions(+), 67 deletions(-) diff --git a/app/components/app/encounter/dropdown-action.vue b/app/components/app/encounter/dropdown-action.vue index a3b43f1c..0815e6a7 100644 --- a/app/components/app/encounter/dropdown-action.vue +++ b/app/components/app/encounter/dropdown-action.vue @@ -24,10 +24,19 @@ const baseLinkItems: LinkItem[] = [ }, icon: 'i-lucide-eye', }, + { + label: 'Edit', + value: 'edit', + groups: ['registration'], + onClick: () => { + proceedItem(ActionEvents.showEdit) + }, + icon: 'i-lucide-pencil', + }, { label: 'Process', value: 'process', - groups: ['registration'], + groups: ['medical'], onClick: () => { proceedItem(ActionEvents.showProcess) }, diff --git a/app/components/content/encounter/list.vue b/app/components/content/encounter/list.vue index 12c8badd..1ea0d6a0 100644 --- a/app/components/content/encounter/list.vue +++ b/app/components/content/encounter/list.vue @@ -51,18 +51,17 @@ const recItem = ref(null) const isFilterFormDialogOpen = ref(false) const isRecordConfirmationOpen = ref(false) const isRecordCancelOpen = ref(false) -const isRoleRegistration = activeServicePosition.value === 'registration' // Headers const hreaderPrep: CH.Config = { title: 'Kunjungan', icon: 'i-lucide-users', - addNav: isRoleRegistration ? { + addNav: { label: 'Tambah', onClick: () => { navigateTo(`/${props.classCode}/encounter/add`) }, - } : {} as any, + }, } if (!props.canCreate) { delete hreaderPrep.addNav @@ -265,6 +264,7 @@ function handleRemoveConfirmation() { -// Pubs -import Error from '~/components/pub/my-ui/error/error.vue' - -// Models & Consts +// Types & Consts import type { Permission } from '~/models/role' import { permissions } from '~/const/page-permission/ambulatory' +// Helpers +import { getRouteTitle, checkPageAccess } from "~/lib/page-checker" + +// Pubs +import Error from '~/components/pub/my-ui/error/error.vue' + // Apps import Content from '~/components/content/encounter/list.vue' // Page meta definePageMeta({ - // middleware: ['rbac'], - // roles: ['emp|reg', 'emp|nur', 'emp|doc', 'emp|miw', 'emp|thr', 'emp|nut', 'emp|pha', 'emp|lab'], + middleware: ['rbac'], + roles: ['emp|reg', 'emp|nur', 'emp|doc', 'emp|miw', 'emp|thr', 'emp|nut', 'emp|pha', 'emp|lab'], title: 'Daftar Kunjungan', contentFrame: 'cf-full-width', }) +useHead({ + title: () => `${getRouteTitle()}`, +}) + // Define common things const route = useRoute() // Preps role checking const roleAccess: Record = permissions[route.path] || {} -const { checkRole, hasCreateAccess, hasReadAccess } = useRBAC() - -// Check if user has access to this page -const hasAccess = checkRole(roleAccess) -const canRead = hasReadAccess(roleAccess) -if (!hasAccess || !canRead) { - navigateTo('/403') -} -const canCreate = hasCreateAccess(roleAccess) - -// Page needs -useHead({ - title: () => route.meta.title as string, -}) +const hasAccess = checkPageAccess(roleAccess, 'read') +const canCreate = checkPageAccess(roleAccess, 'create') +const canRemove = checkPageAccess(roleAccess, 'delete') // User info const { user } = useUserStore() @@ -44,11 +40,12 @@ const subClassCode = user.unit_code == 'rehab' ? 'rehab' : 'reg'