- Implement list view with pagination and search functionality - Create form for adding subspecialist entries - Add configuration for subspecialist data validation and dropdown options
57 lines
1.4 KiB
TypeScript
57 lines
1.4 KiB
TypeScript
import type {
|
|
Col,
|
|
KeyLabel,
|
|
RecComponent,
|
|
RecStrFuncComponent,
|
|
RecStrFuncUnknown,
|
|
Th,
|
|
} from '~/components/pub/custom-ui/data/types'
|
|
import { defineAsyncComponent } from 'vue'
|
|
|
|
type SmallDetailDto = any
|
|
|
|
const action = defineAsyncComponent(() => import('~/components/pub/custom-ui/data/dropdown-action-ud.vue'))
|
|
|
|
export const cols: Col[] = [{ width: 100 }, {}, {}, {}, { width: 50 }]
|
|
|
|
export const header: Th[][] = [
|
|
[{ label: 'Id' }, { label: 'Nama' }, { label: 'Kode' }, { label: 'Specialist' }, { label: '' }],
|
|
]
|
|
export const keys = ['id', 'name', 'cellphone', 'religion_code', 'action']
|
|
|
|
export const delKeyNames: KeyLabel[] = [
|
|
{ key: 'code', label: 'Kode' },
|
|
{ key: 'name', label: 'Nama' },
|
|
]
|
|
|
|
export const funcParsed: RecStrFuncUnknown = {
|
|
name: (rec: unknown): unknown => {
|
|
const recX = rec as SmallDetailDto
|
|
return `${recX.firstName} ${recX.lastName || ''}`.trim()
|
|
},
|
|
unit: (rec: unknown): unknown => {
|
|
const recX = rec as SmallDetailDto
|
|
return recX.unit?.name || '-'
|
|
},
|
|
specialist: (rec: unknown): unknown => {
|
|
const recX = rec as SmallDetailDto
|
|
return recX.specialist?.name || '-'
|
|
},
|
|
}
|
|
|
|
export const funcComponent: RecStrFuncComponent = {
|
|
action(rec, idx) {
|
|
const res: RecComponent = {
|
|
idx,
|
|
rec: rec as object,
|
|
component: action,
|
|
props: {
|
|
size: 'sm',
|
|
},
|
|
}
|
|
return res
|
|
},
|
|
}
|
|
|
|
export const funcHtml: RecStrFuncUnknown = {}
|