From 9f0f6a75c917cc24c0fe88275688ebfb2c5bd292 Mon Sep 17 00:00:00 2001 From: bagus-arie05 Date: Wed, 28 Jan 2026 08:59:27 +0700 Subject: [PATCH] update master dan ruang based on jenis layanan --- pages/AdminKlinikRuang/[kodeKlinik].vue | 28 +++- pages/AdminKlinikRuang/index.vue | 101 +++++++++++- .../AntrianKlinikRuang/[kodeKlinik].vue | 59 +++++-- pages/Anjungan/AntrianKlinikRuang/index.vue | 145 ++++++++++++++++-- pages/Setting/MasterAnjungan.vue | 50 ++++-- pages/Setting/MasterKlinik.vue | 13 +- pages/Setting/MasterKlinikRuang.vue | 65 ++++++-- pages/Setting/MasterLoket.vue | 21 ++- pages/Setting/MasterPenunjang.vue | 9 +- pages/Setting/ScreenAntreanMasuk.vue | 12 +- 10 files changed, 436 insertions(+), 67 deletions(-) diff --git a/pages/AdminKlinikRuang/[kodeKlinik].vue b/pages/AdminKlinikRuang/[kodeKlinik].vue index 98e64f8..a5e7ac8 100644 --- a/pages/AdminKlinikRuang/[kodeKlinik].vue +++ b/pages/AdminKlinikRuang/[kodeKlinik].vue @@ -811,17 +811,31 @@ const kodeKlinik = computed(() => { return Array.isArray(kode) ? kode[0] : kode; }); +// Get jenisLayanan from query parameter to differentiate same clinic code with different service types +const jenisLayanan = computed(() => { + return route.query.jenisLayanan || null; +}); + const klinikData = computed(() => { const kode = kodeKlinik.value; if (!kode) return null; const ruangData = masterStore.ruangData || []; - const klinikRuang = ruangData.find(r => r.kodeKlinik === kode); + + // Filter by kodeKlinik AND jenisLayanan if provided (to differentiate Reguler vs Eksekutif) + let klinikRuang; + if (jenisLayanan.value) { + klinikRuang = ruangData.find(r => r.kodeKlinik === kode && r.jenisLayanan === jenisLayanan.value); + } else { + // Fallback: just use kodeKlinik (for backward compatibility) + klinikRuang = ruangData.find(r => r.kodeKlinik === kode); + } if (klinikRuang) { return { kodeKlinik: klinikRuang.kodeKlinik, - namaKlinik: klinikRuang.namaKlinik + namaKlinik: klinikRuang.namaKlinik, + jenisLayanan: klinikRuang.jenisLayanan }; } return null; @@ -832,7 +846,15 @@ const ruangList = computed(() => { if (!kode) return []; const ruangData = masterStore.ruangData || []; - const klinikRuang = ruangData.find(r => r.kodeKlinik === kode); + + // Filter by kodeKlinik AND jenisLayanan if provided + let klinikRuang; + if (jenisLayanan.value) { + klinikRuang = ruangData.find(r => r.kodeKlinik === kode && r.jenisLayanan === jenisLayanan.value); + } else { + // Fallback: just use kodeKlinik + klinikRuang = ruangData.find(r => r.kodeKlinik === kode); + } return klinikRuang?.ruangList || []; }); diff --git a/pages/AdminKlinikRuang/index.vue b/pages/AdminKlinikRuang/index.vue index 356630b..0e54df5 100644 --- a/pages/AdminKlinikRuang/index.vue +++ b/pages/AdminKlinikRuang/index.vue @@ -12,9 +12,9 @@
@@ -89,25 +89,116 @@