From 56e71ea69318aa32b6be29ac92168dff949ba955 Mon Sep 17 00:00:00 2001 From: Munawwirul Jamal Date: Wed, 10 Dec 2025 04:53:27 +0700 Subject: [PATCH] feat/role-check: wip --- .../app/encounter/dropdown-action.vue | 4 +- app/components/content/device-order/list.vue | 3 +- app/components/content/encounter/status.vue | 21 +- app/components/content/soapi/entry.vue | 13 +- app/components/content/soapi/list.vue | 9 +- app/components/pub/my-ui/combobox/index.ts | 2 +- .../content-switcher/content-switcher.vue | 82 +++----- app/components/pub/my-ui/menus/submenu.vue | 9 +- app/const/page-permission/ambulatory.ts | 193 +++++++++++++++++- app/handlers/encounter-init.handler.ts | 71 ++----- app/models/encounter.ts | 2 +- app/models/nurse.ts | 2 + .../ambulatory/encounter/[id]/process.vue | 12 +- 13 files changed, 299 insertions(+), 124 deletions(-) diff --git a/app/components/app/encounter/dropdown-action.vue b/app/components/app/encounter/dropdown-action.vue index 0815e6a7..8cd656a7 100644 --- a/app/components/app/encounter/dropdown-action.vue +++ b/app/components/app/encounter/dropdown-action.vue @@ -89,10 +89,10 @@ function proceedItem(action: string) { function getLinks() { switch (activeServicePosition.value) { - case 'medical': + case 'med': linkItemsFiltered.value = baseLinkItems.filter((item) => item.groups?.includes('medical')) break - case 'registration': + case 'reg': linkItemsFiltered.value = baseLinkItems.filter((item) => item.groups?.includes('registration')) break default: diff --git a/app/components/content/device-order/list.vue b/app/components/content/device-order/list.vue index 1ffa324d..e5cc455b 100644 --- a/app/components/content/device-order/list.vue +++ b/app/components/content/device-order/list.vue @@ -28,6 +28,7 @@ import ConfirmationInfo from '~/components/app/device-order/confirmation-info.vu // Props const props = defineProps<{ encounter_id: number + canUpdate?: boolean }>() const encounter_id = props.encounter_id @@ -153,7 +154,7 @@ function pickItem(): DeviceOrder | null { :pagination-meta="paginationMeta" @page-change="handlePageChange" /> -
- + () const emits = defineEmits(['add', 'edit']) @@ -58,10 +59,12 @@ const typeCode = ref('') const hreaderPrep: HeaderPrep = { title: props.label, icon: 'i-lucide-users', - addNav: { +} +if(props.canUpdate) { + hreaderPrep['addNav'] = { label: 'Tambah', onClick: () => goToEntry(), - }, + } } const type = computed(() => (route.query.tab as string) || 'early-medical-assessment') @@ -169,6 +172,8 @@ provide('table_data_loader', isLoading)