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

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