From fb6dd750b9196ade1ca22c91685aa7c8db1e4727 Mon Sep 17 00:00:00 2001 From: riefive Date: Tue, 14 Oct 2025 09:56:28 +0700 Subject: [PATCH] fix(sep): adjustment schema + style --- app/components/app/sep/entry-form.vue | 35 ++++++-------------------- app/components/content/sep/list.vue | 2 +- app/schemas/integration-bpjs.schema.ts | 25 ++++++++++++++++++ 3 files changed, 34 insertions(+), 28 deletions(-) create mode 100644 app/schemas/integration-bpjs.schema.ts diff --git a/app/components/app/sep/entry-form.vue b/app/components/app/sep/entry-form.vue index e48d23ec..c7b7c778 100644 --- a/app/components/app/sep/entry-form.vue +++ b/app/components/app/sep/entry-form.vue @@ -2,7 +2,7 @@ // helpers import { toTypedSchema } from '@vee-validate/zod' import { useForm } from 'vee-validate' -import * as z from 'zod' +import { IntegrationBpjsSchema, type IntegrationBpjsFormData } from '~/schemas/integration-bpjs.schema' // components import { Button } from '~/components/pub/ui/button' import { Input } from '~/components/pub/ui/input' @@ -22,28 +22,9 @@ const items = [ { value: 'item-3', label: 'Item 3' }, ] -// Validation schema -const schema = z.object({ - tanggalSep: z.string().min(1, 'Tanggal SEP wajib diisi'), - jalur: z.string().min(1, 'Pilih jalur'), - noBpjs: z.string().min(1, 'No. Kartu BPJS wajib diisi'), - noKtp: z.string().min(1, 'No. KTP wajib diisi'), - noRm: z.string().min(1, 'No. RM wajib diisi'), - namaPasien: z.string().min(1, 'Nama pasien wajib diisi'), - noTelp: z.string().min(1, 'Nomor telepon wajib diisi'), - noSuratKontrol: z.string().min(1, 'No. Surat Kontrol wajib diisi'), - tglSuratKontrol: z.string().min(1, 'Tanggal Surat Kontrol wajib diisi'), - klinikTujuan: z.string().min(1, 'Klinik tujuan wajib diisi'), - dpjp: z.string().min(1, 'DPJP wajib diisi'), - diagnosaAwal: z.string().min(1, 'Diagnosa awal wajib diisi'), - cob: z.string().min(1, 'COB wajib diisi'), - katarak: z.string().min(1, 'Katarak wajib diisi'), - jenisProsedur: z.string().min(1, 'Jenis prosedur wajib diisi'), - kodePenunjang: z.string().min(1, 'Kode penunjang wajib diisi'), -}) - -const { handleSubmit, errors, defineField } = useForm({ - validationSchema: toTypedSchema(schema), +// Validation schema (moved to shared file) +const { handleSubmit, errors, defineField } = useForm({ + validationSchema: toTypedSchema(IntegrationBpjsSchema), }) // Bind fields @@ -94,7 +75,7 @@ const onSubmit = handleSubmit((values) => {

Data Pasien

diff --git a/app/components/content/sep/list.vue b/app/components/content/sep/list.vue index 9a6cd8db..bb4165a0 100644 --- a/app/components/content/sep/list.vue +++ b/app/components/content/sep/list.vue @@ -123,7 +123,7 @@ const headerPrep: HeaderPrep = { addNav: { label: 'Tambah', onClick: () => { - navigateTo('/bpjs/sep/add') + navigateTo('/integration/bpjs/sep/add') }, }, } diff --git a/app/schemas/integration-bpjs.schema.ts b/app/schemas/integration-bpjs.schema.ts new file mode 100644 index 00000000..e469221f --- /dev/null +++ b/app/schemas/integration-bpjs.schema.ts @@ -0,0 +1,25 @@ +import { z } from 'zod' + +const IntegrationBpjsSchema = z.object({ + tanggalSep: z.string().min(1, 'Tanggal SEP wajib diisi'), + jalur: z.string().min(1, 'Pilih jalur'), + noBpjs: z.string().min(1, 'No. Kartu BPJS wajib diisi'), + noKtp: z.string().min(1, 'No. KTP wajib diisi'), + noRm: z.string().min(1, 'No. RM wajib diisi'), + namaPasien: z.string().min(1, 'Nama pasien wajib diisi'), + noTelp: z.string().min(1, 'Nomor telepon wajib diisi'), + noSuratKontrol: z.string().min(1, 'No. Surat Kontrol wajib diisi'), + tglSuratKontrol: z.string().min(1, 'Tanggal Surat Kontrol wajib diisi'), + klinikTujuan: z.string().min(1, 'Klinik tujuan wajib diisi'), + dpjp: z.string().min(1, 'DPJP wajib diisi'), + diagnosaAwal: z.string().min(1, 'Diagnosa awal wajib diisi'), + cob: z.string().min(1, 'COB wajib diisi'), + katarak: z.string().min(1, 'Katarak wajib diisi'), + jenisProsedur: z.string().min(1, 'Jenis prosedur wajib diisi'), + kodePenunjang: z.string().min(1, 'Kode penunjang wajib diisi'), +}) + +type IntegrationBpjsFormData = z.infer + +export { IntegrationBpjsSchema } +export type { IntegrationBpjsFormData }