feat: Implement comprehensive patient queue management system with Pinia store, API integration, and dedicated admin counter page.

This commit is contained in:
Fanrouver
2026-02-13 15:09:01 +07:00
parent 95ff83027c
commit dbc90548e2
3 changed files with 79 additions and 16 deletions
+7 -4
View File
@@ -135,7 +135,7 @@ export const useQueue = (adminType = "loket", specificId = null) => {
// Filtered lists
const filteredKliniks = computed(() => {
let result = queueStore.kliniks;
let result = (queueStore.kliniks.value || queueStore.kliniks || []).filter(k => k.jenisLayanan === 'Reguler');
if (klinikSearch.value) {
result = result.filter((k) =>
k.name.toLowerCase().includes(klinikSearch.value.toLowerCase())
@@ -157,7 +157,7 @@ export const useQueue = (adminType = "loket", specificId = null) => {
});
const filteredChangeKliniks = computed(() => {
let result = queueStore.kliniks;
let result = (queueStore.kliniks.value || queueStore.kliniks || []).filter(k => k.jenisLayanan === 'Reguler');
if (changeKlinikSearch.value) {
result = result.filter((k) =>
k.name.toLowerCase().includes(changeKlinikSearch.value.toLowerCase())
@@ -278,18 +278,21 @@ export const useQueue = (adminType = "loket", specificId = null) => {
if (!patient) {
showSnackbar("Tidak ada pasien yang sedang diproses", "error");
showChangeKlinikDialog.value = false;
return;
return { success: false };
}
const result = queueStore.changeKlinik(
patient,
klinik,
adminType
adminType,
idValue.value
);
showSnackbar(result.message, result.success ? "success" : "error");
showChangeKlinikDialog.value = false;
return result;
};
const processNextQueue = () => {
const result = queueStore.processNextQueue(adminType, idValue.value);
showSnackbar(result.message, result.success ? "success" : "warning");