Table

# Table

# Default

Documentation Vuesax 4.0+

These documents refer to the latest version of vuesax (4.0+), to see the documents of the previous versions you can do it here 👉 Vuesax 3.x

Crea una tabla simplemente con el componente vs-table y sus sub componentes vs-tr, vs-td, vs-th

Este componente tiene una lógica distinta para mejor manejo de los datos y personalización mas libre y acorde a las necesidades

Name
Email
Id
Leanne Graham Sincere@april.biz 1
Ervin Howell Shanna@melissa.tv 2
Clementine Bauch Nathan@yesenia.net 3
Patricia Lebsack Julianne.OConner@kory.org 4
Chelsey Dietrich Lucio_Hettinger@annie.ca 5
Mrs. Dennis Schulist Karley_Dach@jasper.info 6
Kurtis Weissnat Telly.Hoeger@billy.biz 7
Nicholas Runolfsdottir V Sherwood@rosamond.me 8
Glenna Reichert Chaim_McDermott@dana.io 9
Clementina DuBuque Rey.Padberg@karina.biz 10
No matching records found
Code copied

# Striped

Puede hacer franjas fácilmente en la tabla con la propiedad striped

Name
Email
Id
Leanne Graham Sincere@april.biz 1
Ervin Howell Shanna@melissa.tv 2
Clementine Bauch Nathan@yesenia.net 3
Patricia Lebsack Julianne.OConner@kory.org 4
Chelsey Dietrich Lucio_Hettinger@annie.ca 5
Mrs. Dennis Schulist Karley_Dach@jasper.info 6
Kurtis Weissnat Telly.Hoeger@billy.biz 7
Nicholas Runolfsdottir V Sherwood@rosamond.me 8
Glenna Reichert Chaim_McDermott@dana.io 9
Clementina DuBuque Rey.Padberg@karina.biz 10
No matching records found
Code copied

# State

Cambia el estado de un tr agregando la propiedad color al componente vs-tr

Name
Email
Id
Leanne Graham Sincere@april.biz 1
Ervin Howell Shanna@melissa.tv 2
Clementine Bauch Nathan@yesenia.net 3
Patricia Lebsack Julianne.OConner@kory.org 4
Chelsey Dietrich Lucio_Hettinger@annie.ca 5
Mrs. Dennis Schulist Karley_Dach@jasper.info 6
Kurtis Weissnat Telly.Hoeger@billy.biz 7
Nicholas Runolfsdottir V Sherwood@rosamond.me 8
Glenna Reichert Chaim_McDermott@dana.io 9
Clementina DuBuque Rey.Padberg@karina.biz 10
No matching records found
Code copied

# Pagination

Puedes agregar la funcionalidad de paginacion para la tabla usando el slot #footer y el componente de vs-pagination

Para hacer el desarrollo mas simple puedes usar la función de vuesax que genera los items ($vs.getPage) en base a la pagina y también la que genera el total de paginas en el componente pagination ($vs.getLength)

Esta forma de manejar los datos es para mejorar la libertad de personalización sin perder la facilidad de implementación

Name
Email
Id
Leanne Graham Sincere@april.biz 1
Ervin Howell Shanna@melissa.tv 2
Clementine Bauch Nathan@yesenia.net 3
No matching records found
1
Code copied

# Single Selected

Puedes agregar la funcionalidad de seleccionar con un v-model en la tabla y la propiedad is-selected

TIP

Es importante el uso de la propiedad data en el tr ya que esos son los datos que se van a agregar al v-model

Name
Email
Id
Leanne Graham Sincere@april.biz 1
Ervin Howell Shanna@melissa.tv 2
Clementine Bauch Nathan@yesenia.net 3
Patricia Lebsack Julianne.OConner@kory.org 4
Chelsey Dietrich Lucio_Hettinger@annie.ca 5
Mrs. Dennis Schulist Karley_Dach@jasper.info 6
Kurtis Weissnat Telly.Hoeger@billy.biz 7
Nicholas Runolfsdottir V Sherwood@rosamond.me 8
Glenna Reichert Chaim_McDermott@dana.io 9
Clementina DuBuque Rey.Padberg@karina.biz 10
No matching records found
Select an item in the table
      
Code copied

# Multiple Selected

Puedes hacer la funcionalidad de multiple selección en la tabla con la propiedad v-model siendo su valor un array

para esta funcionalidad puedes usar por ejemplo los checkbox de vuesax y la funcion global $vs.checkAll en el checkbox de el th

Name
Email
Id
Leanne Graham Sincere@april.biz 1
Ervin Howell Shanna@melissa.tv 2
Clementine Bauch Nathan@yesenia.net 3
Patricia Lebsack Julianne.OConner@kory.org 4
Chelsey Dietrich Lucio_Hettinger@annie.ca 5
Mrs. Dennis Schulist Karley_Dach@jasper.info 6
Kurtis Weissnat Telly.Hoeger@billy.biz 7
Nicholas Runolfsdottir V Sherwood@rosamond.me 8
Glenna Reichert Chaim_McDermott@dana.io 9
Clementina DuBuque Rey.Padberg@karina.biz 10
No matching records found
Select an item in the table
      
Code copied

# Expandable data

Para agregar un tr que pueda mostrar datos expandidos usa el slot #expand dentro de el componente vs-tr

Name
Email
Id
Leanne Graham Sincere@april.biz 1
Ervin Howell Shanna@melissa.tv 2
Clementine Bauch Nathan@yesenia.net 3
Patricia Lebsack Julianne.OConner@kory.org 4
Chelsey Dietrich Lucio_Hettinger@annie.ca 5
Mrs. Dennis Schulist Karley_Dach@jasper.info 6
Kurtis Weissnat Telly.Hoeger@billy.biz 7
Nicholas Runolfsdottir V Sherwood@rosamond.me 8
Glenna Reichert Chaim_McDermott@dana.io 9
Clementina DuBuque Rey.Padberg@karina.biz 10
No matching records found
Code copied

# Edit data

Puedes editar los datos dentro de la tabla fácilmente usando el componente vs-dialog y la magia de vuejs

Name
Email
Id
Leanne Graham Sincere@april.biz 1
Ervin Howell Shanna@melissa.tv 2
Clementine Bauch Nathan@yesenia.net 3
Patricia Lebsack Julianne.OConner@kory.org 4
Chelsey Dietrich Lucio_Hettinger@annie.ca 5
Mrs. Dennis Schulist Karley_Dach@jasper.info 6
Kurtis Weissnat Telly.Hoeger@billy.biz 7
Nicholas Runolfsdottir V Sherwood@rosamond.me 8
Glenna Reichert Chaim_McDermott@dana.io 9
Clementina DuBuque Rey.Padberg@karina.biz 10
No matching records found
Code copied

# Search and sort

La funcionalidad de buscar ahora es independiente y se puede usar la función global $vs.getSearch

TIP

La función $vs.getSearch necesita dos parámetros los datos de la tabla que va a filtrar y el texto a buscar

# sort

la funcionalidad sort es independiente y puedes usar la función global $vs.sortData

TIP

La función $vs.sortData necesita 3 parámetros el evento la data de la tabla y el item que se va a ordenar

Name
Email
Id
Leanne Graham Sincere@april.biz 1
Ervin Howell Shanna@melissa.tv 2
Clementine Bauch Nathan@yesenia.net 3
Patricia Lebsack Julianne.OConner@kory.org 4
Chelsey Dietrich Lucio_Hettinger@annie.ca 5
Mrs. Dennis Schulist Karley_Dach@jasper.info 6
Kurtis Weissnat Telly.Hoeger@billy.biz 7
Nicholas Runolfsdottir V Sherwood@rosamond.me 8
Glenna Reichert Chaim_McDermott@dana.io 9
Clementina DuBuque Rey.Padberg@karina.biz 10
No matching records found
Code copied

# Miscellaneous

Esta es una muestra de todo unido y de su funcionalidad en conjunto

Este componente esta creado para una personalización mucho mas libre respecto a el manejo de los datos como por ejemplo si necesitas una pagination de el lado de el servidor simplemente no usas la función global $vs.getSearch

Name
Email
Id
Leanne Graham Sincere@april.biz 1
Ervin Howell Shanna@melissa.tv 2
Clementine Bauch Nathan@yesenia.net 3
Patricia Lebsack Julianne.OConner@kory.org 4
Chelsey Dietrich Lucio_Hettinger@annie.ca 5
No matching records found
1
Code copied

# Functions

Este componente lo creamos con una lógica distinta y puede que algo no muy común como primer punto queremos que el desarrollo sea mas libre y que el programador tenga muchas opciones y personalizacion en base a lo que necesita y quiere crear, por ejemplo un tema muy importante es las consultas de los datos en el servidor y que ahora no se manipulan por el componente hasta que usted mismo usando una funcion de vuesax se lo impone

Por eso ahora usamos funciones globales que puede usar si las necesita como pueden ser

  • $vs.checkAll: hace las funcionalidad de check a todos los items y si ya están todos en check los remueve
  • $vs.sortData: hace las funcionalidad de mover todos los elementos de abajo hacia arriba o de arriba hacia abajo y a su posición inicial (para poder guardar esta posición se le agrega una propiedad al objeto iterado)
  • $vs.getSearch: retorna los items que coinciden con la búsqueda en todo el array
  • $vs.getPage: retorna los elementos de la pagina en base a los items y el máximo a mostrar
  • $vs.getLength: retorna el length para la pagination en base a los items y el máximo

# API

props

Property Type Values Description default Example More
v-model object, array object array determina los valores de la tabla que están seleccionados. Usage Open Close
<vs-table v-model="selected">
striped Boolean truefalse Agrega franjas a los tr de color gris. Usage Open Close
<vs-table striped>
vs-tr:data object object cuando se necesita la funcionalidad de selected se necesita esta propiedad ya que es el objeto que se pasa al v-model. Usage Open Close
<vs-tr
  :key="i"
  v-for="(tr, i) in users"
  :data="tr"
  :is-selected="selected == tr"
>
  ...
</vs-tr>
vs-tr:is-selected Boolean truefalse Determina si el componente esta en el estado de selected. false Usage Open Close
<vs-tr
  :key="i"
  v-for="(tr, i) in users"
  :data="tr"
  :is-selected="selected == tr"
>
  ...
</vs-tr>
vs-td:edit Boolean truefalse Determina si el elemento es editable agregando underline y el cursor pointer. false Usage Open Close
<vs-td edit @click="edit = tr, editProp = 'name', editActive = true">
  {{ tr.name }}
</vs-td>
vs-th:sort Boolean truefalse Agrega las flechas de sort al th correspondiente. false Usage Open Close
<vs-th sort @click="users = $vs.sortData($event ,users, 'name')">
  Name
</vs-th>
vs-tr:color String, vuesax colors color vuesax colors Cambia el color de el tr. Usage Open Close
<vs-tr
  :key="i"
  v-for="(tr, i) in users"
  :data="tr"
  :danger="tr.id == 3"
  :success="tr.id == 5"
  :primary="tr.id == 8"
  :warn="tr.id == 9"
>

slots

Property Type Values Description default Example More
header slot espacio para poner algún elemento en la parte superior de la tabla como por ejemplo el input search. Usage Open Close
<template #header>
  ...
</template>
thead slot espacio que representa el elemento thead de la tabla donde se pondrán los componentes `vs-th`. Usage Open Close
<template #thead>
  <vs-tr>
    <vs-th>
      Name
    </vs-th>
    <vs-th>
      Email
    </vs-th>
    <vs-th>
      Id
    </vs-th>
  </vs-tr>
</template>
tbody slot Representa el elemento tbody en la tabla y aquí se pondrán los componentes `vs-tr`. Usage Open Close
<template #tbody>
  <vs-tr
    :key="i"
    v-for="(tr, i) in users"
    :data="tr"
  >
    <vs-td>
      {{ tr.name }}
    </vs-td>
    <vs-td>
    {{ tr.email }}
    </vs-td>
    <vs-td>
    {{ tr.id }}
    </vs-td>
  </vs-tr>
</template>
vs-tr:#expand slot Representa el interior de el tr cuando esta expandido. Usage Open Close
<template #expand>
  <div class="con-content">
    <div>
      <vs-avatar>
        <img :src="`/avatars/avatar-${i + 1}.png`" alt="">
      </vs-avatar>
      <p>
        {{ tr.name }}
      </p>
    </div>
    <div>
      <vs-button flat icon>
        <i class='bx bx-lock-open-alt' ></i>
      </vs-button>
      <vs-button flat icon>
        Send Email
      </vs-button>
      <vs-button border danger>
        Remove User
      </vs-button>
    </div>
  </div>
</template>
notFound slot Cambia el elemento a mostrar cuando no hay elementos en la tabla. Usage Open Close
<template #notFound>
  Not Found
</template>
Last Updated: 18/6/2020 12:56:36