Merge branch 'dev' into feat/consultation-82

This commit is contained in:
2025-10-08 07:55:22 +07:00
287 changed files with 11633 additions and 2327 deletions

No files matched your search

+52 -9
View File
@@ -13,6 +13,7 @@ import { toast } from '~/components/pub/ui/toast'
// Types
import { ActionEvents, type HeaderPrep } from '~/components/pub/my-ui/data/types'
import { DivisionSchema, type DivisionFormData } from '~/schemas/division.schema'
import type { TreeItem } from '~/models/_base'
// Handlers
import {
@@ -30,8 +31,9 @@ import {
} from '~/handlers/division.handler'
// Services
import { getDivisions, getDivisionDetail } from '~/services/division.service'
import { getList, getDetail, getValueTreeItems } from '~/services/division.service'
const divisionsTrees = ref<TreeItem[]>([])
const title = ref('')
const {
@@ -43,8 +45,13 @@ const {
handleSearch,
fetchData: getDivisionList,
} = usePaginatedList({
fetchFn: async ({ page, search }) => {
const result = await getDivisions({ search, page })
fetchFn: async (params: any) => {
const result = await getList({
search: params.search,
'page-number': params['page-number'] || 0,
'page-size': params['page-size'] || 10,
includes: 'parent,childrens',
})
return { success: result.success || false, body: result.body || {} }
},
entityName: 'division',
@@ -82,7 +89,7 @@ provide('rec_item', recItem)
provide('table_data_loader', isLoading)
const getCurrentDivisionDetail = async (id: number | string) => {
const result = await getDivisionDetail(id)
const result = await getDetail(id)
if (result.success) {
const currentValue = result.body?.data || {}
recItem.value = currentValue
@@ -109,6 +116,22 @@ watch([recId, recAction], () => {
}
})
watch(
() => data.value,
async () => {
if (!data.value) return
const result = await getList({
'page-size': 100,
'only-have-children': false,
includes: 'parent,childrens',
})
if (result.success) {
const currentData = result.body.data || []
divisionsTrees.value = getValueTreeItems(currentData || [])
}
},
)
onMounted(async () => {
await getDivisionList()
})
@@ -122,16 +145,27 @@ onMounted(async () => {
@search="handleSearch"
class="mb-4 xl:mb-5"
/>
<AppDivisionList :data="data" :pagination-meta="paginationMeta" @page-change="handlePageChange" />
<AppDivisionList
:data="data"
:pagination-meta="paginationMeta"
@page-change="handlePageChange"
/>
<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
:schema="DivisionSchema"
:divisions="divisionsTrees"
:values="recItem"
:is-loading="isProcessing"
:is-readonly="isReadonly"
@submit="
(values: DivisionFormData | Record<string, any>, resetForm: () => void) => {
console.log(values)
if (recId > 0) {
handleActionEdit(recId, values, getDivisionList, resetForm, toast)
return
@@ -153,9 +187,18 @@ onMounted(async () => {
>
<template #default="{ record }">
<div class="text-sm">
<p><strong>ID:</strong> {{ record?.id }}</p>
<p v-if="record?.name"><strong>Nama:</strong> {{ record.name }}</p>
<p v-if="record?.code"><strong>Kode:</strong> {{ record.code }}</p>
<p>
<strong>ID:</strong>
{{ record?.id }}
</p>
<p v-if="record?.name">
<strong>Nama:</strong>
{{ record.name }}
</p>
<p v-if="record?.code">
<strong>Kode:</strong>
{{ record.code }}
</p>
</div>
</template>
</RecordConfirmation>