3.3.6 • Published 1 year ago

bi-vue-datatable v3.3.6

Weekly downloads
-
License
-
Repository
github
Last release
1 year ago

Bi Vue Datatable

A Vue.js datatable component for Laravel.

Requirements

Component Installation

npm install bi-vue-datatable

or

yarn add bi-vue-datatable

Register the Plugin

import BiDataTable from 'bi-vue-datatable';

Vue.use(BiDataTable);

Basic Example

UserDatatable.vue

<bi-data-table
    :columns="columns"
    url="http://example.test/example">
</bi-data-table>
export default {
    data() {
        return {
            columns: [
                {
                    label: 'ID',
                    name: 'id',
                    orderable: true,
                    searchable: true,
                },
                {
                    label: 'Name',
                    name: 'name',
                    orderable: true,
                    searchable: true,
                },
                {
                    label: 'Email',
                    name: 'email',
                    orderable: true,
                    searchable: true,
                },
            ]
        }
    },
}

API

Datatable Props

NameTypeDefaultDescription
urlString"/"The JSON url
columnsArray[]The table columns
order-byString"id"(optional) The default column to order your data by
order-dirString"asc"(optional) The default order by direction
per-pageArray'10','25','50'(optional) Amount to be displayed
themeString"light"(optional) Must be dark or light
debounce-delayNumber0(optional) Adds a debounce delay to the get request when searching
classesObjectSee Below(optional) Table classes
translateObject{ nextButton: 'Next', previousButton: 'Previous', placeholderSearch: 'Search Table'}(optional) used to overwrite the default pagination button text and search input placeholder
paginationObject{}(optional) props for tailable/pagination
add-filters-to-urlBooleanfalse(optional) Will adjust the current url to keep track of used filters and will also store them in local storage.
headersObject{}Additional headers to pass route e.g. bearer token

Default Table Classes

{
    "table-container": {
        "table-responsive": true,
    },
    "table": {
        "table": true,
        "table-striped": true,
        "table-dark": true,
    },
    "t-head": {

    },
    "t-body": {
        
    },
    "t-head-tr": {

    },
    "t-body-tr": {
        
    },
    "td": {

    },
    "th": {
        
    },
}

Column Props

NameTypeDefaultDescription
labelString""The table column label to be displayed as the column heading
nameString""The table column header name. You can also access nested properties e.g. a query using a with relationship using the dot notation.
columnNameString""(optional) The backend column name if the provided data keys do not match with the backend database. It may also be required to prefix the column name with the table name e.g. users.name to avoid issues with Integrity constraint violation when joining tables
widthNumber0(optional) The table column width
orderableBooleanfalse(optional) Is the column orderable in the datatable
componentComponentnull(optional) A dynamic component that can be injected
eventString""(optional) Event type to parse to the component e.g. click, focus etc.
handlerFunction() => {}(optional) Callback function to parse for the event handler
transformFunction() => {}(optional) Callback function to parse to manipulate the result. e.g. add currency symbol
classesObject{}(optional) Component classes to parse
metaObject{}(optional) Additional values that are parsed to component

Reloading the table manually

If updates have been made to your dataset and you need to reload the table, you can attach a ref to the table. Once the Vue.JS reference is attached, you are able to access the underlining methods of the component including the getData method.

Alternatively, if you have custom filters applied and you would prefered they are retained, any adjustment to the url the table uses as a prop will reload the table.

Development

To work on the package locally or to add to the documentation, run the following command:

npm run serve

To deploy documentation to GitHub under a PR. Please run the following after uncommenting the outputDir line in the vue.config.js file:

npm run build-docs

To run the tests:

npm run test
3.3.6

1 year ago

3.3.1

1 year ago

3.2.2

1 year ago

3.3.0

1 year ago

3.2.0

1 year ago

3.3.5

1 year ago

3.3.4

1 year ago

3.3.3

1 year ago

3.3.2

1 year ago

3.2.3

1 year ago

1.1.0

2 years ago

1.0.1

2 years ago

3.1.0

1 year ago

2.1.0

1 year ago

1.0.0

2 years ago

0.0.8

2 years ago

0.0.7

2 years ago

0.0.6

2 years ago

0.0.5

2 years ago

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago