test: call division position

This commit is contained in:
riefive
2025-10-02 15:31:27 +07:00
parent 378e6773b8
commit 757b8c0444
5 changed files with 19 additions and 10 deletions
+2 -2
View File
@@ -35,7 +35,7 @@ const { defineField, errors, meta } = useForm({
initialValues: {
code: '',
name: '',
division_id: '',
division_id: 0,
} as Partial<DivisionFormData>,
})
@@ -57,7 +57,7 @@ const resetForm = () => {
}
// Form submission handler
function onSubmitForm(values: any) {
function onSubmitForm() {
const formData: DivisionFormData = {
name: name.value || '',
code: code.value || '',
+10 -3
View File
@@ -32,6 +32,7 @@ import { divisions, getDivisionParentList } from '~/handlers/_shared.handler'
// Services
import { getDivisions, getDivisionDetail } from '~/services/division.service'
import { getDivisionPositions } from '~/services/division-position.service'
const title = ref('')
@@ -114,10 +115,15 @@ watch([recId, recAction], () => {
}
})
onMounted(async () => {
await getDivisionList()
watch(() => data.value, async () => {
if (!data.value) return
await getDivisionParentList(false, data.value || [])
})
onMounted(async () => {
await getDivisionPositions()
await getDivisionList()
})
</script>
<template>
@@ -129,7 +135,7 @@ onMounted(async () => {
class="mb-4 xl:mb-5"
/>
<AppDivisionList :data="data" :pagination-meta="paginationMeta" @page-change="handlePageChange" />
{{ recId }} - {{ recAction }}
<Dialog v-model:open="isFormEntryDialogOpen" :title="!!recItem ? title : 'Tambah Divisi'" size="lg" prevent-outside>
<AppDivisionEntryForm
:schema="DivisionSchema"
@@ -139,6 +145,7 @@ onMounted(async () => {
:is-readonly="isReadonly"
@submit="
(values: DivisionFormData | Record<string, any>, resetForm: () => void) => {
console.log(values)
if (recId > 0) {
handleActionEdit(recId, values, getDivisionList, resetForm, toast)
return
+5 -5
View File
@@ -24,11 +24,11 @@ import { getUnits } from '~/services/unit.service'
export const medicineGroups = ref<{ value: string; label: string }[]>([])
export const medicineMethods = ref<{ value: string; label: string }[]>([])
export const encounterClasses = ref<{ value: string; label: string }[]>([])
export const divisions = ref<{ value: string; label: string }[]>([])
export const divisions = ref<{ value: string | number; label: string }[]>([])
export const installations = ref<{ value: string; label: string }[]>([])
export const specialists = ref<{ value: string; label: string }[]>([])
export const specialists = ref<{ value: string | number; label: string }[]>([])
export const uoms = ref<{ value: string; label: string }[]>([])
export const units = ref<{ value: string; label: string }[]>([])
export const units = ref<{ value: string | number; label: string }[]>([])
export const getMedicineGroupList = async () => {
const result = await getMedicineGroups()
@@ -58,13 +58,13 @@ export const getDivisionParentList = async (isFetch = true, externalDivisions: a
if (result.success) {
const currentDivisions = result.body?.data || []
divisions.value = currentDivisions.map((division: Division) => ({
value: division.code,
value: division.id ? Number(division.id) : String(division.code),
label: division.name,
}))
}
}
divisions.value = externalDivisions.map((division: Division) => ({
value: division.code,
value: division.id ? Number(division.id) : String(division.code),
label: division.name,
}))
}
+1
View File
@@ -1,4 +1,5 @@
export interface Division {
id?: number
code: string
name: string
}
+1
View File
@@ -4,6 +4,7 @@ import type { Division, DivisionPosition } from '~/models/division'
const DivisionSchema = z.object({
code: z.string({ required_error: 'Kode harus diisi' }).min(1, 'Kode minimum 1 karakter'),
name: z.string({ required_error: 'Nama harus diisi' }).min(1, 'Nama minimum 1 karakter'),
division_id: z.number().positive('Divisi Induk harus diisi').optional().nullable(),
})
type DivisionFormData = z.infer<typeof DivisionSchema> & (Division | DivisionPosition)