Skip to content

MordiSacks/vueified-datatables

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Vueified DataTables

Installation

Run
yarn add vueified-datatables or npm install vueified-datatables
In your code

import VueifiedDataTables from 'vueifiedDataTables';

Vue.use(VueifiedDataTables);

Then in your template

<vueified-datatable :url="URL_TO_JSON_DATA" :columns="YOUR_COLUMNS_ARRAY" :options="YOUR_OPTIONS_OBJECT(Optional)"></vueified-datatable>

Example of a columns object

let columns = [
    {
        // the key to read from json
        key: 'id',
         
        // the table header (optional, will use key by default)
        title: 'User ID',
        
        // is column sortable {true|false} (optional, true by default)
        sortable: true,
        
        // is column searchable {true|false} (optional, true by default)
        searchable: true,
        
        // Callback, receives cell value and row, should return a vue component, if is set, cell will render the component
        component: function(value, row){
            return {
                template: `<i @click="delete" class="fa fa-trash">`,
            };
        },
    },
    {
        key: 'f_name',
        title: 'First Name',
    },
    {
        key: 'l_name',
        title: 'Last Name',
    },
    {
        key: 'id',
        title: 'Full Name',
        
        // Callback, receives cell value and row, should return string or int
        render: function(value, row){
            return `${row.f_name} ${row.l_name}`;
        },
    },
];

Table will try first to run the component function,
then the render function, then wil default to the value.

options

let options = {
    // Current values are the defaults.
    
    // Language, currently supports `en` (English) and `he` (Hebrew)
    // Or you can pass an object with your own language, 
    // look in a language file (ins translations folder) for more details
    language: 'en',
    
    // Number of rows to display by default
    rowsPerPage: 10,
    
    // Optional number of rows (for select by user)
    configRowsPerPage: [
      10,
      25,
      50,
      100,
   ],
   
   // Classes to use in the table element
   tableClasses: '',
   
   // Display first and lat buttons 
   firstLast: false,
   
   // Display the search box
   search: true,
   
   // Display table header
   header: true,
   
   // Display table footer
   footer: false,
};

Change log

1.1.1

  1. Renamed column parameter template to component.
  2. Add render column parameter.

1.0.1

  1. Refactored pagination
  2. Added basic stylesheet
  3. Updated readme

About

dataTables drop in replacement in vue

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •