0.2.9 • Published 2 years ago

paginate-table-vueg v0.2.9

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

paginate-table-vueg

Requisitos

  • Vue 2

Instalación

En su terminal de preferencia ubique la raiz del proyecto y ejecute el siguiente comando.

npm install paginate-table-vueg --save

Luego en su archivo main.js o archivo raiz de su proyecto de vue, importe la libreria:

import TablePagination from 'paginate-table-vueg'
Vue.use(TablePagination)

Luego para hacer uso del componente, debe invocarlo de la siguiente manera:

<paginate-table-vueg></paginate-table-vueg>

Propiedades (props)

La libreria soporta las siguientes propiedades:

PropsDescripción
:columns(array) matriz de datos que contiene los nombres de las columnas de la tabla
:rows(array) matriz de datos que contiene los valores de la tabla
:is-loading(boolean) agrega un loader mientras carga la información en la tabla
:paginate(object) objeto de datos que contiene la información del paginado
:next-page(function) Método que escucha los clic que se hacen en los botónes del páginado
:classes(object) permite aplicar cierta lógica para dar estilos a las filas de la tabla

Uso de :columns

PropsEjemplo
:columns[{label: "Nombres completos", "name": "fullnames"}]
Claves de columnsDescripción
labelEs la descripción de la columna
nameEs el nombre de la clave que devuelve el back

Uso de :rows

PropsEjemplo
:rows[{fullnames: "Levi Ackerman"}]

En el ejemplo anterior se muestra como el back deberia de retornar la información.

Uso de :is-loading

PropsEjemplo
:is-loadingtrue or false

Muestra un pequeño loader mientras se completa el cargado de información en la tabla.

Uso de :paginate

Claves de paginateDescripción
totalCantidad de datos que retorna el backend
per_pageCantidad de rango de datos de paginación
current_pageNúmero de página actual
last_pageNúmero de última página
first_page_urlurl que carga la primera página
last_page_urlurl que carga la última página
next_page_urlurl que carga la siguiente página
prev_page_urlurl que carga la anterior página
pathurl del endpoint que carga los datos de la tabla
fromfrom
toto
max_visible_buttonsCantidad de datos que se muestran por paginación
dataLos datos que se van a mostrar en la tabla

Uso de :next-page

PropsEjemplo
:next-page:next-page="tuMetodo"

La propiedad :next-page esta escuchando cada clic que se realiza sobre un botón de paginación. Esto permite que podamos manipular la siguiente consulta que se va a realizar al backend y mostrar los datos del número de paginación correspondiente. Ejemplo: tuMetodo(page){ //el valor page es el número de la página a la que se hizo clic }

Uso de :classes

{
	classes: {
		row: {
			"alert alert-warning text-dark":  function(row){
				return (row.age >= 18);
			}
		}
	}
}

En el ejemplo anterior se indica que las filas que contengan los registros con la edad mayor a 18, las pinte de color amarillo (alert-warning es la clase de bootstrap).

Manejo de slots

slot empty-data

Si queremos mostrar un mensaje personalizado en la tabla cuando hayan registros, podemos utilizar el siguiente slot:

<paginate-table-vueg>
    <template v-slot:empty-data>
		<div class="alert alert-info">
			<p class="text-center font-weight-bold">No se encontraron registros.</p>
		</div>
	</template>
</paginate-table-vueg>

slot columnas

Si en alguna columna no se quiere mostrar el texto descriptivo, si no mas bien personalizarlo con estilos o agregar un botón, se puede especificar la columna que se quiere personalizar por medio de un slot dinámico. Por ejemplo:

<paginate-table-vueg>
    <template v-slot:id="props">
        <button type="button" class="btn btn-info btn-sm" title="Ver detalle">
            Ver detalle
        </button>
    </template>
</paginate-table-vueg>

Aqui se puede observar que la columna que se esta afectando por medio del slot, es la columna "id" (v-slot:id).

License

MIT

*Gustavo A Brand

0.2.9

2 years ago

0.2.8

2 years ago

0.2.7

2 years ago

0.2.6

2 years ago

0.2.5

2 years ago

0.2.4

2 years ago

0.2.3

2 years ago

0.2.2

2 years ago

0.2.1

2 years ago

0.2.0

2 years ago

0.1.9

2 years ago

0.1.8

2 years ago

0.1.7

2 years ago

0.1.6

2 years ago

0.1.5

2 years ago

0.1.4

2 years ago

0.1.3

2 years ago

0.1.2

2 years ago

0.1.1

2 years ago

0.1.0

2 years ago