Files
simrsx-fe/app/components/app/action-report/fields/fill-notes.vue
T
Khafid Prayoga 52a6935d07 mbois gak rek?
2025-12-08 12:19:14 +07:00

66 lines
1.7 KiB
Vue

<script setup lang="ts">
// components
import { FieldArray } from 'vee-validate'
import * as DE from '~/components/pub/my-ui/doc-entry'
// form field components
import { ButtonAction, InputBase } from '~/components/pub/my-ui/form'
interface Props {
isDisabled: boolean
limit: number
title: string
}
const props = defineProps<Props>()
const isReadonly = computed(() => props.isDisabled)
</script>
<template>
<FieldArray
v-slot="{ fields, push, remove }"
name="tissueNotes"
>
<template v-if="fields.length === 0">
{{ push({ note: '' }) }}
</template>
<div class="space-y-4">
<DE.Block
v-for="(field, idx) in fields"
:key="field.key"
:col-count="3"
:cell-flex="false"
>
<InputBase
:label="idx === 0 ? 'Keterangan Jaringan' : undefined"
:field-name="`tissueNotes[${idx}].note`"
placeholder="Masukkan catatan"
:is-disabled="isReadonly"
/>
<DE.Cell class="flex items-start justify-start">
<DE.Field :class="idx === 0 ? 'mt-[30px]' : 'mt-0'">
<ButtonAction
v-if="idx !== 0"
:disabled="isReadonly"
preset="delete"
:title="`Hapus Kontak ${idx + 1}`"
icon-only
@click="remove(idx)"
/>
</DE.Field>
</DE.Cell>
</DE.Block>
</div>
<ButtonAction
preset="add"
label="Tambah Catatan"
title="Tambah Catatan Keterangan Jaringan"
:disabled="fields.length >= limit || isReadonly"
:full-width-mobile="true"
class="mt-4"
@click="push({ name: '', dose: '', unit: '' })"
/>
</FieldArray>
</template>