1.0.0 • Published 5 years ago

@pbartkowicz/vuetable v1.0.0

Weekly downloads
3
License
ISC
Repository
github
Last release
5 years ago

Table of contents

General

Vue table component

component is created with:

  • Vue 2.6.10

Setup

install module locally with npm or yarn

npm i @pbartkowicz/vuetable

or

yarn add @pbartkowicz/vuetable

Usage

Import

import vuetable from '@pbartkowicz/vuetable'

Register in components section

components:{
    vuetable,
},

Define array with columns and array with items objects

data(){

    return{

        headers:[
            {
            label: 'Name',
            for: 'name'
            },
            {
            label: 'Surname',
            for: 'surname'
            },
            {
            label: 'Gender',
            for: 'gender'
            }
        ],

        people:[
            {
            name: 'John',
            surname: 'Doe',
            gender: 'male'
            },
            {
            name: 'Joanna',
            surname: 'Doe',
            gender: 'female'
            }
        ],

    }

}

In object in headers you have to define two keys:

  • label - this is property to name column
  • for - For what key in people array is this column
<vuetable :headers="headers" :items="people" />

You can always use rowTemplate prop to set width foreach column.

<vuetable :headers="headers" :items="people" rowTemplate="33.3% 33.3% 33.3%"/>

Props

PropTypeDefaultRequiredDescription
headersArrayYesArray with columns.
itemsArrayYesArray with items.
loadingBooleanfalseNoSet loading statement.
rowTemplateStringNoSet column width. Use % or px and spaces between values
rowClassStringNoSet row class.
headerClassStringNoSet header class.
rowIdsBooleanfalseNoAnable dynamic id's foreach row.
sortableBooleanfalseNoAnable column sort ASC/DESC. Always will emmit @sort.
paginationBooleanfalseNoAnable component build-in pagination.
perPageNumber10NoSet number of items to display.
paginationClassStringNoSet pagination class.

Slots

You can access to slot foreach column

<template v-slot:[forKeyFromHeaders]="{item}">

Example:

<vuetable :headers="headers" :items="people" rowTemplate="33.3% 33.3% 33.3%">
    <template v-slot:name="{item}">
        {{item.name}}
    </template>
</vuetable>

And foreach header

<template v-slot:HEADER_[forKeyFromHeaders]="{item}">

Example:

<vuetable :headers="headers" :items="people" rowTemplate="33.3% 33.3% 33.3%">
    <template v-slot:HEADER_name="{item}">
        {{item.name}}
    </template>
</vuetable>

Static slots

SlotDescription
no-recordsSlot if items array is empty.
back-to-firstSlot for back to first page button in build-in pagination.
prevSlot for previous page button in build-in pagination.
nextSlot for next page button in build-in pagination.
go-to-lastSlot for go to last page button in build-in pagination.