- Add new handler, service, and schema files for unit-position - Update list configuration and entry form components - Modify page title and integrate employee relation - Implement CRUD operations with proper validation
62 lines
1.4 KiB
TypeScript
62 lines
1.4 KiB
TypeScript
import type { Config, RecComponent } from '~/components/pub/my-ui/data-table'
|
|
import { defineAsyncComponent } from 'vue'
|
|
import type { UnitPosition } from '~/models/unit-position'
|
|
|
|
type SmallDetailDto = any
|
|
|
|
const action = defineAsyncComponent(() => import('~/components/pub/my-ui/data/dropdown-action-ud.vue'))
|
|
|
|
export const config: Config = {
|
|
cols: [{}, {}, {}, {}, {}, { width: 50 }],
|
|
|
|
headers: [
|
|
[
|
|
{ label: 'Kode Posisi' },
|
|
{ label: 'Nama Posisi' },
|
|
{ label: 'Nama Unit ' },
|
|
{ label: 'Karyawan' },
|
|
{ label: 'Status Kepala' },
|
|
{ label: '' },
|
|
],
|
|
],
|
|
|
|
keys: ['code', 'name', 'unit.name', 'employee', 'head', 'action'],
|
|
|
|
delKeyNames: [
|
|
{ key: 'code', label: 'Kode' },
|
|
{ key: 'name', label: 'Nama' },
|
|
],
|
|
|
|
parses: {
|
|
employee: (rec: unknown): unknown => {
|
|
const recX = rec as UnitPosition
|
|
const fullName = [recX.employee?.person.frontTitle, recX.employee?.person.name, recX.employee?.person.endTitle]
|
|
.filter(Boolean)
|
|
.join(' ')
|
|
.trim()
|
|
|
|
return fullName || '-'
|
|
},
|
|
head: (rec: unknown): unknown => {
|
|
const recX = rec as SmallDetailDto
|
|
return recX.headStatus ? 'Ya' : 'Tidak'
|
|
},
|
|
},
|
|
|
|
components: {
|
|
action(rec, idx) {
|
|
const res: RecComponent = {
|
|
idx,
|
|
rec: rec as object,
|
|
component: action,
|
|
props: {
|
|
size: 'sm',
|
|
},
|
|
}
|
|
return res
|
|
},
|
|
},
|
|
|
|
htmls: {},
|
|
}
|