feat(encounter): update ui cancellation + integration

This commit is contained in:
riefive
2025-11-12 09:52:57 +07:00
parent 3b75c06c4b
commit a477829f4a
4 changed files with 31 additions and 4 deletions
@@ -39,6 +39,13 @@ const linkItems: LinkItem[] = [
},
icon: 'i-lucide-circle-x',
},
{
label: 'Hapus',
onClick: () => {
remove()
},
icon: 'i-lucide-trash',
},
]
function detail() {
@@ -64,6 +71,12 @@ function cancel() {
recAction.value = ActionEvents.showCancel
recItem.value = props.rec
}
function remove() {
recId.value = props.rec.id || 0
recAction.value = ActionEvents.showConfirmDelete
recItem.value = props.rec
}
</script>
<template>
+4 -3
View File
@@ -117,7 +117,7 @@ async function getPatientList() {
// Handle confirmation result
async function handleConfirmCancel(record: any, action: string) {
if (action === 'delete' && record?.id) {
if (action === 'deactivate' && record?.id) {
try {
const result = await cancelEncounter(record.id)
if (result.success) {
@@ -287,14 +287,15 @@ onMounted(() => {
<!-- Record Confirmation Modal -->
<RecordConfirmation
v-model:open="isRecordCancelOpen"
action="delete"
custom-title="Batalkan Kunjungan"
custom-message="Apakah anda yakin ingin membatalkan kunjungan pasien berikut?"
action="deactivate"
:record="recItem"
@confirm="handleConfirmCancel"
@cancel="handleCancelConfirmation"
>
<template #default="{ record }">
<div class="text-sm">
<p>Apakah anda yakin ingin membatalkan kunjungan pasien berikut?</p>
<p v-if="record?.patient?.person?.name">
<strong>Nama:</strong>
{{ record.patient.person.name }}
+13
View File
@@ -86,3 +86,16 @@ export async function remove(path: string, id: number | string, name: string = '
throw new Error(`Failed to delete ${name}`)
}
}
export async function custom(path: string, data: any, name: string = 'item') {
try {
const resp = await xfetch(`${path}`, 'PATCH', data)
const result: any = {}
result.success = resp.success
result.body = (resp.body as Record<string, any>) || {}
return result
} catch (error) {
console.error(`Error putting ${name}:`, error)
throw new Error(`Failed to put ${name}`)
}
}
+1 -1
View File
@@ -30,7 +30,7 @@ export function remove(id: number | string) {
export function cancel(id: number | string) {
let url = `${path}/${id}/cancel`
return base.update(url, id, {}, name)
return base.custom(url, null, name)
}
export async function getValueLabelList(params: any = null): Promise<{ value: string; label: string }[]> {