A simple table component based Vue 2.x

v2-table

A simple table component based Vue 2.x.

Installation

Install the pkg with npm:

npm i --save v2-table beautify-scrollbar

or yarn

yarn add  v2-table beautify-scrollbar

Get Started

import Vue from 'vue';

import 'beautify-scrollbar/dist/index.css';
import 'v2-table/dist/index.css'; 
import V2Table from 'v2-table';

Vue.use(V2Table)
<template>
  <v2-table :data="list">
    <v2-table-column label="Name" prop="name"></v2-table-column>
    <v2-table-column label="Date" prop="date"></v2-table-column>
    <v2-table-column label="Address" prop="address"></v2-table-column>  
  </v2-table>  
</template>

<script>
  export default {
    data () {
      return {
        list: [{
          date: '2017-12-02',
          name: 'test1',
          address: 'Shenzhen,China'
        }, {
          date: '2017-11-02',
          name: 'test2',
          address: 'Guangzhou,China'
        }, {
          date: '2018-01-02',
          name: 'test3',
          address: 'Shaoyang,Hunan'
        }, {
          date: '2017-10-02',
          name: 'test4',
          address: 'Changsha,Hunan'
        }]
      }
    }
  }
</script>

Available Props

The v2-table component

Attribute Type Accepted Values Default Description
data Array - [] table data
border Boolean - false whether show table border
stripe Boolean - false whether table is striped
loading Boolean - false show loading component
empty-text String - No Data Displayed text when data is empty. You can customize this area with slot="empty"
default-sort Object order: ascending/descending if prop is set, and order is not set, then order is default to ascending set the default sort column and order. property prop is used to set default sort column, property order is used to set default sort order
row-class-name String/Function({row, rowIndex}) - - function that returns custom class names for a row, or a string assigning class names for every row
pagination-info Object - { text: '', pageSize: 10, nextPageText: 'Next', prevPageText: 'Prev' } pagination info for table data
shown-pagination Boolean - false whether showing pagination of table data
total Number - 0 all data of table, it's needed when shown-pagination is true
height Number/String - auto table's height
row-height Number/String - 40 row's height
show-summary Boolean - false whether to display a summary row
sum-text String - Sum displayed text for the first column of summary row
summary-method Function({ columns, data }) - - custom summary method
lazy-load Boolean - false whether enable lazy-load

Table Events

Event Name Description Parameters
sort-change triggers when table's sorting changes { prop, order }
page-change triggers when table's page changes currentPage
select-change triggers when selection changes rows

Table Slot

Name Description
empty custom empty component, it's will show when data is empty
loading custom loading component, it's will show when loading property of table is true

The v2-table-column component

Attribute Type Accepted Values Default Description
label String - - column label
prop String - - field name
width String/Number - - column width
sortable Boolean true/false false whether column can be sorted.
align String left/center/right center alignment
fixed String left/right - fixed column to left or right
type String - - type of the column

Development

git clone git@github.com:dwqs/v2-table.git

cd v2-table

npm i 

npm run dev

GitHub