test: call division position
This commit is contained in:
No files matched your search
@@ -35,7 +35,7 @@ const { defineField, errors, meta } = useForm({
|
|||||||
initialValues: {
|
initialValues: {
|
||||||
code: '',
|
code: '',
|
||||||
name: '',
|
name: '',
|
||||||
division_id: '',
|
division_id: 0,
|
||||||
} as Partial<DivisionFormData>,
|
} as Partial<DivisionFormData>,
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -57,7 +57,7 @@ const resetForm = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Form submission handler
|
// Form submission handler
|
||||||
function onSubmitForm(values: any) {
|
function onSubmitForm() {
|
||||||
const formData: DivisionFormData = {
|
const formData: DivisionFormData = {
|
||||||
name: name.value || '',
|
name: name.value || '',
|
||||||
code: code.value || '',
|
code: code.value || '',
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ import { divisions, getDivisionParentList } from '~/handlers/_shared.handler'
|
|||||||
|
|
||||||
// Services
|
// Services
|
||||||
import { getDivisions, getDivisionDetail } from '~/services/division.service'
|
import { getDivisions, getDivisionDetail } from '~/services/division.service'
|
||||||
|
import { getDivisionPositions } from '~/services/division-position.service'
|
||||||
|
|
||||||
const title = ref('')
|
const title = ref('')
|
||||||
|
|
||||||
@@ -114,10 +115,15 @@ watch([recId, recAction], () => {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
onMounted(async () => {
|
watch(() => data.value, async () => {
|
||||||
await getDivisionList()
|
if (!data.value) return
|
||||||
await getDivisionParentList(false, data.value || [])
|
await getDivisionParentList(false, data.value || [])
|
||||||
})
|
})
|
||||||
|
|
||||||
|
onMounted(async () => {
|
||||||
|
await getDivisionPositions()
|
||||||
|
await getDivisionList()
|
||||||
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
@@ -129,7 +135,7 @@ onMounted(async () => {
|
|||||||
class="mb-4 xl:mb-5"
|
class="mb-4 xl:mb-5"
|
||||||
/>
|
/>
|
||||||
<AppDivisionList :data="data" :pagination-meta="paginationMeta" @page-change="handlePageChange" />
|
<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>
|
<Dialog v-model:open="isFormEntryDialogOpen" :title="!!recItem ? title : 'Tambah Divisi'" size="lg" prevent-outside>
|
||||||
<AppDivisionEntryForm
|
<AppDivisionEntryForm
|
||||||
:schema="DivisionSchema"
|
:schema="DivisionSchema"
|
||||||
@@ -139,6 +145,7 @@ onMounted(async () => {
|
|||||||
:is-readonly="isReadonly"
|
:is-readonly="isReadonly"
|
||||||
@submit="
|
@submit="
|
||||||
(values: DivisionFormData | Record<string, any>, resetForm: () => void) => {
|
(values: DivisionFormData | Record<string, any>, resetForm: () => void) => {
|
||||||
|
console.log(values)
|
||||||
if (recId > 0) {
|
if (recId > 0) {
|
||||||
handleActionEdit(recId, values, getDivisionList, resetForm, toast)
|
handleActionEdit(recId, values, getDivisionList, resetForm, toast)
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -24,11 +24,11 @@ import { getUnits } from '~/services/unit.service'
|
|||||||
export const medicineGroups = ref<{ value: string; label: string }[]>([])
|
export const medicineGroups = ref<{ value: string; label: string }[]>([])
|
||||||
export const medicineMethods = ref<{ value: string; label: string }[]>([])
|
export const medicineMethods = ref<{ value: string; label: string }[]>([])
|
||||||
export const encounterClasses = 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 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 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 () => {
|
export const getMedicineGroupList = async () => {
|
||||||
const result = await getMedicineGroups()
|
const result = await getMedicineGroups()
|
||||||
@@ -58,13 +58,13 @@ export const getDivisionParentList = async (isFetch = true, externalDivisions: a
|
|||||||
if (result.success) {
|
if (result.success) {
|
||||||
const currentDivisions = result.body?.data || []
|
const currentDivisions = result.body?.data || []
|
||||||
divisions.value = currentDivisions.map((division: Division) => ({
|
divisions.value = currentDivisions.map((division: Division) => ({
|
||||||
value: division.code,
|
value: division.id ? Number(division.id) : String(division.code),
|
||||||
label: division.name,
|
label: division.name,
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
divisions.value = externalDivisions.map((division: Division) => ({
|
divisions.value = externalDivisions.map((division: Division) => ({
|
||||||
value: division.code,
|
value: division.id ? Number(division.id) : String(division.code),
|
||||||
label: division.name,
|
label: division.name,
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
export interface Division {
|
export interface Division {
|
||||||
|
id?: number
|
||||||
code: string
|
code: string
|
||||||
name: string
|
name: string
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import type { Division, DivisionPosition } from '~/models/division'
|
|||||||
const DivisionSchema = z.object({
|
const DivisionSchema = z.object({
|
||||||
code: z.string({ required_error: 'Kode harus diisi' }).min(1, 'Kode minimum 1 karakter'),
|
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'),
|
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)
|
type DivisionFormData = z.infer<typeof DivisionSchema> & (Division | DivisionPosition)
|
||||||
|
|||||||
Reference in New Issue
Block a user