Merge branch 'dev' into feat/consultation-82

This commit is contained in:
2025-10-15 20:13:47 +07:00
247 changed files with 6490 additions and 3244 deletions

No files matched your search

@@ -4,15 +4,16 @@ import Block from '~/components/pub/my-ui/doc-entry/block.vue'
import Cell from '~/components/pub/my-ui/doc-entry/cell.vue'
import Field from '~/components/pub/my-ui/doc-entry/field.vue'
import Label from '~/components/pub/my-ui/doc-entry/label.vue'
import Combobox from '~/components/pub/my-ui/form/combobox.vue'
import Combobox from '~/components/pub/my-ui/combobox/combobox.vue'
// Types
import type { SubspecialistFormData } from '~/schemas/subspecialist.schema.ts'
import type { SubspecialistFormData } from '~/schemas/subspecialist.schema'
// Helpers
import type z from 'zod'
import { toTypedSchema } from '@vee-validate/zod'
import { useForm } from 'vee-validate'
import { genBase } from '~/models/_base'
interface Props {
schema: z.ZodSchema<any>
@@ -60,6 +61,7 @@ const resetForm = () => {
// Form submission handler
function onSubmitForm(values: any) {
const formData: SubspecialistFormData = {
...genBase(),
name: name.value || '',
code: code.value || '',
specialist_id: specialist.value ? Number(specialist.value) : null,
+36 -35
View File
@@ -1,48 +1,49 @@
import type {
Col,
KeyLabel,
RecComponent,
RecStrFuncComponent,
RecStrFuncUnknown,
Th,
} from '~/components/pub/my-ui/data/types'
import type { Config } from '~/components/pub/my-ui/data-table'
import { defineAsyncComponent } from 'vue'
type SmallDetailDto = any
const action = defineAsyncComponent(() => import('~/components/pub/my-ui/data/dropdown-action-dud.vue'))
export const cols: Col[] = [{}, {}, {}, { width: 50 }]
export const config: Config = {
cols: [{}, {}, {}, { width: 50 }],
export const header: Th[][] = [[{ label: 'Kode' }, { label: 'Nama' }, { label: 'Specialis' }, { label: '' }]]
headers: [
[
{ label: 'Kode' },
{ label: 'Nama' },
{ label: 'Specialis' },
{ label: '' },
],
],
export const keys = ['code', 'name', 'specialist', 'action']
keys: ['code', 'name', 'specialist', 'action'],
export const delKeyNames: KeyLabel[] = [
{ key: 'code', label: 'Kode' },
{ key: 'name', label: 'Nama' },
]
delKeyNames: [
{ key: 'code', label: 'Kode' },
{ key: 'name', label: 'Nama' },
],
export const funcParsed: RecStrFuncUnknown = {
name: (rec: unknown): unknown => {
const recX = rec as SmallDetailDto
return `${recX.name}`.trim()
parses: {
name: (rec: unknown): unknown => {
const recX = rec as SmallDetailDto
return `${recX.name}`.trim()
},
specialist: (rec: unknown): unknown => {
const recX = rec as SmallDetailDto
return recX.specialist_id || '-'
},
},
specialist: (rec: unknown): unknown => {
const recX = rec as SmallDetailDto
return recX.specialist_id || '-'
components: {
action(rec, idx) {
return {
idx,
rec: rec as object,
component: action,
}
},
},
htmls: {},
}
export const funcComponent: RecStrFuncComponent = {
action(rec, idx) {
const res: RecComponent = {
idx,
rec: rec as object,
component: action,
}
return res
},
}
export const funcHtml: RecStrFuncUnknown = {}
+2 -7
View File
@@ -6,7 +6,7 @@ import PaginationView from '~/components/pub/my-ui/pagination/pagination-view.vu
import type { PaginationMeta } from '~/components/pub/my-ui/pagination/pagination.type'
// Configs
import { cols, funcComponent, funcHtml, funcParsed, header, keys } from './list-cfg'
import { config } from './list-cfg'
interface Props {
data: any[]
@@ -27,13 +27,8 @@ function handlePageChange(page: number) {
<template>
<div class="space-y-4">
<PubMyUiDataTable
v-bind="config"
:rows="data"
:cols="cols"
:header="header"
:keys="keys"
:func-parsed="funcParsed"
:func-html="funcHtml"
:func-component="funcComponent"
:skeleton-size="paginationMeta?.pageSize"
/>
<PaginationView :pagination-meta="paginationMeta" @page-change="handlePageChange" />