Importar de excel
/components/dna/excel-import/Index.vue
Con este componente es posible generar la página completa para importar datos desde un archivo xlsx. A partir de un scheme maneja toda la lógica internamente, generando plantilla, validando y formateando la data. Luego devuelve la data obtenida para ser manejada.
Forma de uso
<template>
<div>
<excel-import
:scheme="scheme"
template-doc-text="Descargar plantilla"
template-doc-filename="Plantilla"
finished-button-text="Ejecutar importación"
@finished="handleData"
/>
</div>
</template>
<script>
import ExcelImport from '~/components/dna/excel-import/Index'
import { Utils } from '~/mixins/utils'
export default {
mixins: [Utils()],
components: {
ExcelImport,
},
data() {
return {
scheme: [
{ key: 'id', label: 'ID', id: true },
{ key: 'name', label: 'Nombre' },
{
key: 'rut',
label: 'RUT',
rules: 'required|run|unique_in_doc',
format: (rut) => (rut ? this.runFormatting(`${rut}`) : rut),
},
{ key: 'position', label: 'Cargo' },
{ key: 'status', label: 'Estado' },
],
}
},
methods: {
handleData(data) {
console.log(data)
},
},
}
</script>
Scheme
El esquema define la estructura de la tabla que el componente va a renderizar. El atributo scheme recibe un Array de objetos, cada objeto define una columna de la tabla, la estructura de cada objeto de este Array tiene los siguientes atributos:
Nombre
Tipo
Requerido
Descripción
id
boolean
no
Identifica la columna principal donde se mostraran errores de validación
key
string
si
Nombre de variable de la data retornada por el servidor
label
string
si
Texto que se muestra al usuario en el encabezado de la tabla
format
function
no
Permite modificar la data obtenida antes de ser entregada por el componente
rules
string
no (ver reglas)
Corresponde a las reglas de validación, la validación está gestionada por vee validate
filtrable
boolean
no
permite (o no) filtrar la tabla por esa columna
Última actualización