6ad99d45f2
* fix(style): formatting inconsistencies across codebase - Remove trailing semicolons from TypeScript imports - Fix Vue template indentation and line breaks - Standardize component attribute formatting - Remove unnecessary empty lines - Reorder import statements for consistency * chore: update import path and add editorconfig Update SidebarNavLink import path to match new component structure and add standard editorconfig for consistent code formatting
66 lines
1.5 KiB
Vue
66 lines
1.5 KiB
Vue
<script setup lang="ts">
|
|
import type { DataTableLoader } from '~/components/pub/base/data-table/type'
|
|
import type { HeaderPrep, RefSearchNav } from '~/components/pub/custom-ui/data/types'
|
|
import Header from '~/components/pub/custom-ui/nav-header/prep.vue'
|
|
|
|
const data = ref([])
|
|
|
|
const refSearchNav: RefSearchNav = {
|
|
onClick: () => {
|
|
// open filter modal
|
|
},
|
|
onInput: (_val: string) => {
|
|
// filter patient list
|
|
},
|
|
onClear: () => {
|
|
// clear url param
|
|
},
|
|
}
|
|
|
|
const isLoading = reactive<DataTableLoader>({
|
|
isTableLoading: false,
|
|
})
|
|
|
|
const recId = ref<number>(0)
|
|
const recAction = ref<string>('')
|
|
const recItem = ref<any>(null)
|
|
|
|
const headerPrep: HeaderPrep = {
|
|
title: 'Dokter',
|
|
icon: 'i-lucide-network',
|
|
addNav: {
|
|
label: 'Tambah',
|
|
onClick: () => navigateTo('/doctor/add'),
|
|
},
|
|
}
|
|
|
|
async function getDoctorList() {
|
|
isLoading.dataListLoading = true
|
|
|
|
const resp = await xfetch('/api/v1/doctor')
|
|
if (resp.success) {
|
|
data.value = (resp.body as Record<string, any>).data
|
|
}
|
|
|
|
isLoading.dataListLoading = false
|
|
}
|
|
|
|
onMounted(() => {
|
|
getDoctorList()
|
|
})
|
|
|
|
provide('rec_id', recId)
|
|
provide('rec_action', recAction)
|
|
provide('rec_item', recItem)
|
|
provide('table_data_loader', isLoading)
|
|
</script>
|
|
|
|
<template>
|
|
<div class="rounded-md border p-4">
|
|
<Header :prep="{ ...headerPrep }" :ref-search-nav="refSearchNav" />
|
|
<div class="rounded-md border p-4">
|
|
<AppDoctorList v-if="!isLoading.dataListLoading" :data="data" />
|
|
</div>
|
|
</div>
|
|
</template>
|