perbaikan bug tampilan loket

This commit is contained in:
Fanrouver
2026-05-20 13:55:15 +07:00
parent 1446e87bba
commit f622052c67
5 changed files with 67 additions and 64 deletions
+17 -20
View File
@@ -1,22 +1,21 @@
<template>
<v-tooltip
:text="isClickable ? 'Klik untuk proses pasien' : ''"
location="top"
:disabled="!isClickable"
<v-card
class="patient-card"
elevation="2"
:class="{
'clickable-card': isClickable,
'fast-track-card': isFastTrack && !isCurrentlyProcessing,
'processing-card': isCurrentlyProcessing || patient.status === 'diproses'
}"
@click="handleCardClick"
>
<template #activator="{ props: tooltipProps }">
<v-card
class="patient-card"
elevation="2"
:class="{
'clickable-card': isClickable,
'fast-track-card': isFastTrack && !isCurrentlyProcessing,
'processing-card': isCurrentlyProcessing || patient.status === 'diproses'
}"
@click="handleCardClick"
v-bind="isClickable ? tooltipProps : {}"
>
<v-card-text class="pa-4">
<v-tooltip
activator="parent"
:text="isClickable ? 'Klik untuk proses pasien' : ''"
location="top"
:disabled="!isClickable"
/>
<v-card-text class="pa-4">
<!-- Header: Queue Number, Status & Fast Track Badge -->
<div class="card-header">
<div class="header-left">
@@ -86,9 +85,7 @@
</v-btn>
</div>
</v-card-text>
</v-card>
</template>
</v-tooltip>
</v-card>
</template>
<script setup>
+17 -15
View File
@@ -116,25 +116,27 @@
</div>
</div>
<!-- Results Info -->
<div v-if="filteredAndSearchedItems.length > 0" class="results-info mb-3">
<span class="results-text">
Menampilkan {{ paginatedItems.length }} dari {{ filteredAndSearchedItems.length }} pasien
</span>
</div>
<div v-if="filteredAndSearchedItems.length > 0" key="patient-list-wrapper" class="patient-list-wrapper">
<!-- Results Info -->
<div class="results-info mb-3">
<span class="results-text">
Menampilkan {{ paginatedItems.length }} dari {{ filteredAndSearchedItems.length }} pasien
</span>
</div>
<!-- Patient Cards Grid -->
<div v-if="filteredAndSearchedItems.length > 0" class="patient-grid">
<PatientCard
v-for="(patient, index) in paginatedItems"
:key="`${patient.barcode}-${index}`"
:patient="patient"
@action="handleAction"
/>
<!-- Patient Cards Grid -->
<div class="patient-grid">
<PatientCard
v-for="(patient, index) in paginatedItems"
:key="`${patient.barcode}-${index}`"
:patient="patient"
@action="handleAction"
/>
</div>
</div>
<!-- Empty State -->
<div v-else class="empty-state">
<div v-else class="empty-state" key="patient-empty-state">
<v-icon size="64" color="neutral-500">mdi-account-search</v-icon>
<div class="empty-text mt-3">
{{ searchModel || hasActiveFilters ? 'Tidak ada pasien yang sesuai' : 'Tidak ada data pasien' }}
+15 -13
View File
@@ -91,19 +91,21 @@
</div>
</div>
<PatientDataTable
:items="allPatients"
v-model:selected-status="selectedStatus"
v-model:search-query="searchQuery"
v-model:selected-fast-track="selectedFastTrack"
:di-loket-count="(diLoketPatients || []).length"
:terlambat-count="(terlambatPatients || []).length"
:pending-count="(pendingPatients || []).length"
:status-labels="statusLabels"
:show-diproses="false"
:fast-track-options="fastTrackOptions"
@action="handleTableAction"
/>
<ClientOnly>
<PatientDataTable
:items="allPatients"
v-model:selected-status="selectedStatus"
v-model:search-query="searchQuery"
v-model:selected-fast-track="selectedFastTrack"
:di-loket-count="(diLoketPatients || []).length"
:terlambat-count="(terlambatPatients || []).length"
:pending-count="(pendingPatients || []).length"
:status-labels="statusLabels"
:show-diproses="false"
:fast-track-options="fastTrackOptions"
@action="handleTableAction"
/>
</ClientOnly>
</v-card-text>
</v-card>
</v-col>
+16 -14
View File
@@ -77,20 +77,22 @@
</div>
</div>
<PatientDataTable
:items="allPatientsForStage"
v-model:selected-status="selectedStatus"
v-model:search-query="searchQuery"
v-model:selected-fast-track="selectedFastTrack"
:di-loket-count="filteredDiLoketCount"
:diproses-count="currentProcessingPatient ? 1 : 0"
:anjungan-count="filteredAnjunganCount"
:terlambat-count="filteredTerlambatCount"
:pending-count="filteredPendingCount"
:show-diproses="false"
:fast-track-options="fastTrackOptions"
@action="handleTableAction"
/>
<ClientOnly>
<PatientDataTable
:items="allPatientsForStage"
v-model:selected-status="selectedStatus"
v-model:search-query="searchQuery"
v-model:selected-fast-track="selectedFastTrack"
:di-loket-count="filteredDiLoketCount"
:diproses-count="currentProcessingPatient ? 1 : 0"
:anjungan-count="filteredAnjunganCount"
:terlambat-count="filteredTerlambatCount"
:pending-count="filteredPendingCount"
:show-diproses="false"
:fast-track-options="fastTrackOptions"
@action="handleTableAction"
/>
</ClientOnly>
</v-card-text>
</v-card>
</v-col>
+2 -2
View File
@@ -35,8 +35,8 @@ const defaultNavItems: NavItem[] = [
icon: "mdi-monitor-multiple",
path: "",
children: [
{ id: 10, name: "Anjungan", path: "/Anjungan/Anjungan", icon: "mdi-circle-small" },
{ id: 11, name: "Anjungan Eksekutif", path: "/anjungan/anjungancopy", icon: "mdi-circle-small" },
// { id: 10, name: "Anjungan", path: "/Anjungan/Anjungan", icon: "mdi-circle-small" },
{ id: 11, name: "Anjungan", path: "/anjungan/anjungancopy", icon: "mdi-circle-small" },
// { id: 11, name: "Klinik", path: "/Anjungan/AntrianKlinik", icon: "mdi-circle-small" },
{ id: 12, name: "Klinik Ruang", path: "/Anjungan/AntrianKlinikRuang", icon: "mdi-circle-small"},
// { id: 13, name: "Penunjang", path: "/Anjungan/AntrianPenunjang", icon: "mdi-circle-small"},