From e6442a0d31912f3fdb862576fdb04f2a5bf99db1 Mon Sep 17 00:00:00 2001 From: riefive Date: Tue, 9 Sep 2025 13:30:51 +0700 Subject: [PATCH 01/16] feat(sep): add list component --- app/components/app/sep/list-cfg.ts | 78 +++++++++++++++ app/components/app/sep/list.vue | 34 +++++++ app/components/content/sep/list.vue | 121 ++++++++++++++++++++++++ app/pages/(features)/bpjs/sep/index.vue | 40 ++++++++ 4 files changed, 273 insertions(+) create mode 100644 app/components/app/sep/list-cfg.ts create mode 100644 app/components/app/sep/list.vue create mode 100644 app/components/content/sep/list.vue create mode 100644 app/pages/(features)/bpjs/sep/index.vue diff --git a/app/components/app/sep/list-cfg.ts b/app/components/app/sep/list-cfg.ts new file mode 100644 index 00000000..013c7d6b --- /dev/null +++ b/app/components/app/sep/list-cfg.ts @@ -0,0 +1,78 @@ +import type { Col, KeyLabel, RecComponent, RecStrFuncComponent, Th } from '~/components/pub/custom-ui/data/types' +import { defineAsyncComponent } from 'vue' + +type SepDto = any + +const action = defineAsyncComponent(() => import('~/components/pub/custom-ui/data/dropdown-action-dud.vue')) + +export const cols: Col[] = [ + { width: 120 }, // TGL. SEP + { width: 150 }, // NO. SEP + { width: 120 }, // PELAYANAN + { width: 100 }, // JALUR + { width: 150 }, // NO. RM + { width: 200 }, // NAMA PASIEN + { width: 150 }, // NO. KARTU BPJS + { width: 150 }, // NO. SURAT KONTROL + { width: 150 }, // TGL SURAT KONTROL + { width: 150 }, // KLINIK TUJUAN + { width: 200 }, // DPJP + { width: 200 }, // DIAGNOSIS AWAL + { width: 100 }, // AKSI +] + +export const header: Th[][] = [ + [ + { label: 'TGL. SEP' }, + { label: 'NO. SEP' }, + { label: 'PELAYANAN' }, + { label: 'JALUR' }, + { label: 'NO. RM' }, + { label: 'NAMA PASIEN' }, + { label: 'NO. KARTU BPJS' }, + { label: 'NO. SURAT KONTROL' }, + { label: 'TGL SURAT KONTROL' }, + { label: 'KLINIK TUJUAN' }, + { label: 'DPJP' }, + { label: 'DIAGNOSIS AWAL' }, + { label: 'AKSI' }, + ], +] + +export const keys = [ + 'tgl_sep', + 'no_sep', + 'pelayanan', + 'jalur', + 'no_rm', + 'nama_pasien', + 'no_kartu_bpjs', + 'no_surat_kontrol', + 'tgl_surat_kontrol', + 'klinik_tujuan', + 'dpjp', + 'diagnosis_awal', + 'action', +] + +export const delKeyNames: KeyLabel[] = [ + { key: 'no_sep', label: 'NO. SEP' }, + { key: 'nama_pasien', label: 'Nama Pasien' }, +] + +export const funcParsed: Record any> = { + +} + +export const funcComponent: RecStrFuncComponent = { + action(rec, idx) { + const res: RecComponent = { + idx, + rec: rec as object, + component: action, + } + return res + }, +} + +export const funcHtml: Record any> = {} diff --git a/app/components/app/sep/list.vue b/app/components/app/sep/list.vue new file mode 100644 index 00000000..25707062 --- /dev/null +++ b/app/components/app/sep/list.vue @@ -0,0 +1,34 @@ + + + diff --git a/app/components/content/sep/list.vue b/app/components/content/sep/list.vue new file mode 100644 index 00000000..d8bf09aa --- /dev/null +++ b/app/components/content/sep/list.vue @@ -0,0 +1,121 @@ + + + diff --git a/app/pages/(features)/bpjs/sep/index.vue b/app/pages/(features)/bpjs/sep/index.vue new file mode 100644 index 00000000..7c527526 --- /dev/null +++ b/app/pages/(features)/bpjs/sep/index.vue @@ -0,0 +1,40 @@ + + + From 93f5ba009297d243605e35386860e0cd4e1fa9f5 Mon Sep 17 00:00:00 2001 From: riefive Date: Wed, 10 Sep 2025 12:56:34 +0700 Subject: [PATCH 02/16] feat(sep): add form entry --- app/components/app/equipment/entry-form.vue | 5 - app/components/app/sep/entry-form.vue | 123 ++++++++++++++++++++ app/components/content/sep/entry.vue | 20 ++++ app/components/content/sep/list.vue | 6 +- app/pages/(features)/bpjs/sep/add.vue | 41 +++++++ 5 files changed, 188 insertions(+), 7 deletions(-) create mode 100644 app/components/app/sep/entry-form.vue create mode 100644 app/components/content/sep/entry.vue create mode 100644 app/pages/(features)/bpjs/sep/add.vue diff --git a/app/components/app/equipment/entry-form.vue b/app/components/app/equipment/entry-form.vue index f54a8389..1fbaeba8 100644 --- a/app/components/app/equipment/entry-form.vue +++ b/app/components/app/equipment/entry-form.vue @@ -2,14 +2,9 @@ // types import type z from 'zod' import type { MaterialFormData } from '~/schemas/material' -<<<<<<< HEAD:app/components/app/equipment/entry-form.vue -======= // helpers import { toTypedSchema } from '@vee-validate/zod' import { useForm } from 'vee-validate' -// components -import Label from '~/components/pub/custom-ui/form/label.vue' ->>>>>>> 266d5f740b15942ca7b8845c00573640fdc9a3b2:app/components/app/material/entry-form.vue interface Props { schema: z.ZodSchema diff --git a/app/components/app/sep/entry-form.vue b/app/components/app/sep/entry-form.vue new file mode 100644 index 00000000..73ca08a5 --- /dev/null +++ b/app/components/app/sep/entry-form.vue @@ -0,0 +1,123 @@ + + +