chore: restucture list and entry form

This commit is contained in:
riefive
2025-09-26 12:37:47 +07:00
parent e78521793b
commit 457b927c4f
12 changed files with 61 additions and 28 deletions
+9 -7
View File
@@ -1,16 +1,18 @@
<script setup lang="ts">
// types
import type z from 'zod'
import type { MaterialFormData } from '~/schemas/material'
// helpers
import { useForm } from 'vee-validate'
import { toTypedSchema } from '@vee-validate/zod'
// components
// Components
import Block from '~/components/pub/custom-ui/doc-entry/block.vue'
import Cell from '~/components/pub/custom-ui/doc-entry/cell.vue'
import Field from '~/components/pub/custom-ui/doc-entry/field.vue'
import Label from '~/components/pub/custom-ui/doc-entry/label.vue'
// Types
import type z from 'zod'
import type { MaterialFormData } from '~/schemas/material.schema'
// Helpers
import { useForm } from 'vee-validate'
import { toTypedSchema } from '@vee-validate/zod'
interface Props {
schema: z.ZodSchema<any>
uoms: any[]
+9 -7
View File
@@ -1,16 +1,18 @@
<script setup lang="ts">
// helpers
import { toTypedSchema } from '@vee-validate/zod'
import { useForm } from 'vee-validate'
// types
import type z from 'zod'
import type { DeviceFormData } from '~/schemas/device'
// components
// Components
import Block from '~/components/pub/custom-ui/doc-entry/block.vue'
import Cell from '~/components/pub/custom-ui/doc-entry/cell.vue'
import Field from '~/components/pub/custom-ui/doc-entry/field.vue'
import Label from '~/components/pub/custom-ui/doc-entry/label.vue'
// Helpers
import { toTypedSchema } from '@vee-validate/zod'
import { useForm } from 'vee-validate'
// Types
import type z from 'zod'
import type { DeviceFormData } from '~/schemas/device.schema'
interface Props {
schema: z.ZodSchema<any>
uoms: any[]
+1 -1
View File
@@ -1,6 +1,6 @@
<script setup lang="ts">
import Action from '~/components/pub/custom-ui/nav-footer/ba-dr-su.vue'
import { MaterialSchema, type MaterialFormData } from '~/schemas/material'
import { MaterialSchema, type MaterialFormData } from '~/schemas/material.schema'
const data = ref({
name: '',
+5 -4
View File
@@ -1,16 +1,17 @@
<script setup lang="ts">
import { MaterialSchema, type MaterialFormData } from '~/schemas/material'
import { usePaginatedList } from '~/composables/usePaginatedList'
import { ActionEvents, type HeaderPrep } from '~/components/pub/custom-ui/data/types'
// Components
import Dialog from '~/components/pub/base/modal/dialog.vue'
import Header from '~/components/pub/custom-ui/nav-header/prep.vue'
import AppEquipmentEntryForm from '~/components/app/equipment/entry-form.vue'
import RecordConfirmation from '~/components/pub/custom-ui/confirmation/record-confirmation.vue'
// helpers
// Helpers
import { usePaginatedList } from '~/composables/usePaginatedList'
import { toast } from '~/components/pub/ui/toast'
// Types
import { ActionEvents, type HeaderPrep } from '~/components/pub/custom-ui/data/types'
import { MaterialSchema, type MaterialFormData } from '~/schemas/material.schema'
import type { Uom } from '~/models/uom'
// Handlers
+2 -2
View File
@@ -1,7 +1,7 @@
<script setup lang="ts">
// types
import type { MaterialFormData } from '~/schemas/material'
import { MaterialSchema } from '~/schemas/material'
import type { MaterialFormData } from '~/schemas/material.schema'
import { MaterialSchema } from '~/schemas/material.schema'
const isLoading = ref(false)
const uoms = [
@@ -1,13 +1,21 @@
<script setup lang="ts">
import { usePaginatedList } from '~/composables/usePaginatedList'
import { ActionEvents, type HeaderPrep } from '~/components/pub/custom-ui/data/types'
// Components
import Dialog from '~/components/pub/base/modal/dialog.vue'
import Header from '~/components/pub/custom-ui/nav-header/prep.vue'
import AppMedicineMethodEntryForm from '~/components/app/medicine-method/entry-form.vue'
import AppMedicineMethodList from '~/components/app/medicine-method/list.vue'
import RecordConfirmation from '~/components/pub/custom-ui/confirmation/record-confirmation.vue'
// Helpers
import { usePaginatedList } from '~/composables/usePaginatedList'
import { toast } from '~/components/pub/ui/toast'
// Types
import { ActionEvents, type HeaderPrep } from '~/components/pub/custom-ui/data/types'
import { MedicineBaseSchema, type MedicineBaseFormData } from '~/schemas/medicine.schema'
// Handlers
import {
recId,
recAction,
@@ -21,6 +29,8 @@ import {
handleActionRemove,
handleCancelForm,
} from '~/handlers/medicine-method.handler'
// Services
import { getMedicineMethods, getMedicineMethodDetail } from '~/services/medicine-method.service'
const title = ref('')
@@ -1,6 +1,6 @@
<script setup lang="ts">
import Action from '~/components/pub/custom-ui/nav-footer/ba-dr-su.vue'
import { MaterialSchema, type MaterialFormData } from '~/schemas/material'
import { MaterialSchema, type MaterialFormData } from '~/schemas/material.schema'
const data = ref({
name: '',
+5 -4
View File
@@ -1,16 +1,17 @@
<script setup lang="ts">
import { DeviceSchema, type DeviceFormData } from '~/schemas/device'
import { usePaginatedList } from '~/composables/usePaginatedList'
import { ActionEvents, type HeaderPrep } from '~/components/pub/custom-ui/data/types'
// Components
import Dialog from '~/components/pub/base/modal/dialog.vue'
import Header from '~/components/pub/custom-ui/nav-header/prep.vue'
import AppToolsEntryForm from '~/components/app/tools/entry-form.vue'
import RecordConfirmation from '~/components/pub/custom-ui/confirmation/record-confirmation.vue'
// helpers
// Helpers
import { usePaginatedList } from '~/composables/usePaginatedList'
import { toast } from '~/components/pub/ui/toast'
// Types
import { ActionEvents, type HeaderPrep } from '~/components/pub/custom-ui/data/types'
import { DeviceSchema, type DeviceFormData } from '~/schemas/device.schema'
import type { Uom } from '~/models/uom'
// Handlers
+5
View File
@@ -1,3 +1,8 @@
export interface MedicineBase {
name: string
code: string
}
export interface Medicine {
id: string
name: string
+12
View File
@@ -0,0 +1,12 @@
import { z } from 'zod'
import type { MedicineBase } from '~/models/medicine'
const MedicineBaseSchema = z.object({
code: z.string({ required_error: 'Kode harus diisi' }).min(1, 'Kode minimum 1 karakter'),
name: z.string({ required_error: 'Nama harus diisi' }).min(1, 'Nama minimum 1 karakter')
})
type MedicineBaseFormData = z.infer<typeof MedicineBaseSchema> & MedicineBase
export { MedicineBaseSchema }
export type { MedicineBaseFormData }