From 6afa968b7bb237e8d39ef703b48156deac3e1293 Mon Sep 17 00:00:00 2001 From: riefive Date: Wed, 3 Sep 2025 12:50:41 +0700 Subject: [PATCH] feat (material): update logic validate --- app/components/app/material/entry-form.vue | 29 ++++++---------- app/components/flow/material/entry.vue | 39 ++++++++++++++++++++-- 2 files changed, 47 insertions(+), 21 deletions(-) diff --git a/app/components/app/material/entry-form.vue b/app/components/app/material/entry-form.vue index 979c6970..52214e3f 100644 --- a/app/components/app/material/entry-form.vue +++ b/app/components/app/material/entry-form.vue @@ -3,28 +3,13 @@ import Block from '~/components/pub/custom-ui/form/block.vue' import FieldGroup from '~/components/pub/custom-ui/form/field-group.vue' import Field from '~/components/pub/custom-ui/form/field.vue' import Label from '~/components/pub/custom-ui/form/label.vue' -import { z } from 'zod' -const props = defineProps<{ modelValue: any }>() +const props = defineProps<{ modelValue: any; errors: any }>() const emit = defineEmits(['update:modelValue', 'event']) -const schema = z.object({ - code: z.string(), - name: z.string(), - type: z.string(), - stock: z.preprocess((val) => Number(val), z.number({ invalid_type_error: "Stok harus berupa angka" })), -}) - const data = computed({ get: () => props.modelValue, set: (val) => { - const result = schema.safeParse(val) - if (!result.success) { - // You can handle the error here, e.g. show a message - const errorMessage = result.error.errors[0]?.message ?? 'Validation error occurred' - alert(errorMessage) - return - } emit('update:modelValue', val) }, }) @@ -46,12 +31,20 @@ const items = [ + + + {{ props.errors.code }} + + + + {{ props.errors.name }} + @@ -61,13 +54,13 @@ const items = [ - - + diff --git a/app/components/flow/material/entry.vue b/app/components/flow/material/entry.vue index 6259785e..b5c8c491 100644 --- a/app/components/flow/material/entry.vue +++ b/app/components/flow/material/entry.vue @@ -1,11 +1,20 @@ @@ -24,7 +57,7 @@ function onClick(type: string) { Tambah BMHP - +