Skip to main content

Componente de Carga de Archivos en Formulario (FormFile)

El componente FormFile te permite crear un grupo de campos de carga de archivos personalizados dentro de un formulario. Puedes usarlo para permitir que los usuarios adjunten archivos a un formulario y asociar información adicional a cada archivo.

Utilizando en un Componente

Ejemplo de File

Ejemplo de Uso

<template>
<div class="my-4">
<FormFile
:label="'Carta de Parte/Remito'"
:inputs="archivoForm"
:cols="6"
:defaultValues="defaultFiles"
@getValues="getValues"
@remove="remove"
/>
</div>
</template>

<script lang="ts" setup>

const archivoForm = ref<any>([
{
key: "descripcion",
title: "Descripción",
placeholder: "Resolución",
type : "textarea",
value : null,
state : null,
cols: 12,
listenForm: true
},
])

const archivos = ref<any[]>([])

const getValues = (data: any) => {
archivos.value[data.index] = data
}

const remove = (index: number) => {
archivos.value.splice(index, 1)
}

const defaultFiles = ref<any[]>([])

</script>

Para autocomplentar el formFile

Ideal para cuando quieras actualizar entidades

const completeArchivos = (data: Siniestro) => {
archivos.forEach((archivo) => {
let cleanForm = JSON.parse(JSON.stringify(archivoForm.value))
cleanForm[0].value = archivo.descripcion
defaultFiles.value.push({
avatar: {
image: {
url: 'https://picsum.photos/200/300'
}
},
id: 'AK459sdfk2380SM7sj',
form : cleanForm
})
})
}

Propiedades

PropiedadTipoValor por DefectoDescripción
labelString'Carta de Parte/Remito'Define la etiqueta para el grupo de campos de carga de archivos.
inputsArray de InputsDefine los campos de formulario asociados a cada archivo.
colsNumber6Define el número de columnas para el diseño del componente.
defaultValuesArray de FileType[]Define los valores iniciales para los archivos cargados.

Eventos

EventoParámetrosDescripción
getValuesdata: objectSe emite cuando se obtienen los valores de los archivos cargados y los campos asociados.
removeindex: numberSe emite cuando se elimina un archivo cargado y sus campos asociados.