Table

Visualiza múltiples datos con un formato similar. Puede ordenar, filtrar y comparar sus datos en la tabla.

Tabla básica

La tabla básica es solo para mostrar datos.

Después de haber establecido el atributo data de el-table con un arreglo de objetos, puede usar la propiedad prop (el correspondiente a la clave de un objeto dentro del array data) en el-table-column para insertar datos a las columnas de la tabla, y establecer el atributo label para definir el nombre de la columna que se va a mostrar. También puede usar el atributo width para establecer el ancho de las columnas.

Tabla con franjas

La tabla con franjas hace más fácil distinguir filas diferentes.

El atributo stripe acepta un Boolean. Si es true, la tabla será con franjas.

Tabla con bordes

Por defecto, la tabla no tiene bordes verticales. Si lo necesita, puede establecer el atributo border a true.

Tabla con estados

Puede destacar el contenido de la tabla para distinguir entre "success, information, warning, danger" y otros estados.

Utilice row-class-name en el-table para agregar clases personalizadas a una fila específica. De esa manera podrá darle diseño con esas clases.

Table with show overflow tooltip

When the content is too long, it will break into multiple lines, you can use show-overflow-tooltip to keep it in one line.

Attribute show-overflow-tooltip, which accepts a Boolean value. Cuando se establece a true, el contenido extra se mostrará en un tooltip cuando se pase el cursor sobre la celda.

Tabla con cabecera fija

Cuando hay demasiadas filas, puede usar una cabecera fija.

Al configurar el atributo height de el-table, puede dejar fija la cabecera de la tabla sin necesidad de agregar otro código.

Tabla con columnas fijas

Cuando se tienen demasiadas columnas, puede fijar algunas de ellas.

El atributo fixed es utilizado en el-table-column, este acepta un Boolean. Si es true, la columna será fijada a la izquierda. También acepta dos tipos: 'left' y 'right', ambos indican donde debe ser fijada la columna.

Tabla con columnas y cabecera fija

Cuando tiene grandes cantidades de datos para colocar en una tabla, puede fijar la cabecera y columnas al mismo tiempo.

Fije las columnas y cabecera al mismo tiempo combinando los dos ejemplos anteriores.

Tabla de altura fluida con cabecera fija (y columnas)

Cuando los datos se cambian dinámicamente, tal vez desee que la tabla tenga una altura máxima en lugar de una altura fija y que muestre la barra de desplazamiento si es necesario.

Al configurar el atributo max-height de el-table, puede fijar la cabecera de la tabla. La barra de desplazamiento únicamente se mostrará si la altura sobrepasa el valor de la altura máxima.

Agrupando cabeceras de la tabla

Cuando la estructura de datos es compleja, puede usar la cabecera de grupo para mostrar la jerarquía de datos.

Solo necesita colocar el-table-column dentro de otro el-table-column, de esta forma logrará agruparles.

Tabla con cabecera de grupo fija

se puede usar la cabecera de grupo fija

El atributo fixed de la cabecera del grupo es determinado por el-table-column

Selección simple

La selección de una sola fila es posible.

La tabla permite la selección de una sola fila. Puede activarlo añadiendo el atributo highlight-current-row. Un evento llamado current-change será disparado cuando la selección de la fila cambie, sus parámetros son la fila antes y después del cambio: currentRow y oldCurrentRow. Si necesita mostrar el índice de la fila, puede agregar un nuevo el-table-column con el atributo type asignado al index y podrá ver el índice iniciando desde 1.

Selección multiple

También puede seleccionar múltiples filas.

After 2.8.3, toggleRowSelection supports the third parameter ignoreSelectable to determine whether to ignore the selectable attribute.

Activar la selección múltiple es sencillo: Solo debe agregar un el-table-column con su type establecido en selection.

Ordenar

Ordenar los datos para encontrar o comparar información rápidamente.

Establezca el atributo sortable para ordenar los datos de una columna. Este acepta un Boolean con un valor por defecto false. Establezca el atributo default-sort para determinar la columna y orden por defecto. Para aplicar sus propias reglas de ordenamiento, utilice sort-method o sort-by. Si lo que necesita es ordenar de forma remota desde backend, establezca sortable a custom, y escuche el evento sort-change de la tabla. Al dispararse el evento, tendrá acceso a la columna ordenada y el tipo de orden para que pueda obtener los datos de la tabla ordenada desde su API. En este ejemplo utilizamos otro atributo llamado formatter para darle un formato al valor de ciertas columnas. Este acepta una función que tiene dos parámetros: row y column. Puede manejarlo de acuerdo a sus propias necesidades.

Filtros

Filtra la tabla para encontrar la información que necesita.

Establezca el atributo filters y filter-method en el-table-column haciendo esta columna filtrable. filters es un arreglo, y filter-method es una función que decide que filas se muestra. Tiene tres parámetros: value, row y column.

Plantilla de columna personalizada

Personalice la columna de la tabla para que pueda integrarse con otros componentes.

Tiene acceso a la siguiente información: row, column, $index y store (gestor de estados de la tabla) por slots.

Tabla con cabecera personalizada

Se puede personalizar el encabezado de la tabla para que se pueda adaptar aún más.

Puede personalizar el aspecto del encabezado con los slots.de header.

Filas expandibles

Cuando el contenido de la fila es demasiado largo y no quiere mostrar la barra de desplazamiento horizontal, puede usar la función de fila expandible.

Puede activar la fila expandible estableciendo la propiedad type="expand" o con slots. La plantilla para el-table-column se mostrará como el contenido de la fila expandible, y puede acceder a los mismos atributos que cuando está usando slots en plantillas de columnas personalizadas.

switch parent border:
switch child border:

Datos con estructura de árbol y modo perezoso

Puede visualizar datos con una estructura de árbol. Cuando la fila contiene el campo children, se trata como datos anidados. Para renderizar datos anidados, la propiedad row-key es necesaria. Además, los datos de registros secundarios se pueden cargar de forma asíncrona. Establezca la propiedad lazy de la tabla a true y la función que usara a load. Especifique el atributo hasChildren en la fila para determinar qué fila contiene descendencia. Tanto children como hasChildren pueden configurarse a través de tree-props.

Selectable tree 2.8.0

When treeProps.checkStrictly is true, the selection state of parent and child nodes is no longer associated, that is, when the parent node is selected, its child nodes will not be selected; when treeProps.checkStrictly is false, the selection state of parent and child nodes will be associated with the selection state of child nodes, that is, when the parent node is selected, all its child nodes will be selected.

Fila resumen

Para una tabla de números, puede agregar una fila extra en el pie de página de la tabla que muestra la suma de cada columna.

Puede agregar la fila de resumen configurando show-summary a true. Por defecto, para la fila de resumen, la primera columna no resume nada, pero siempre muestra 'Sum' (puede configurar el texto mostrado usando sum-text), las otras columnas suman cada número en esa columna y los muestran. Por supuesto, puede definir un comportamiento propio para suma. To do so, pass a method to summary-method, which returns an array, and each element of the returned array will be displayed in the columns of the summary row, It can be a VNode or string. La segunda tabla de este ejemplo es una demostración detallada.

Rowspan and colspan

Configure rowspan y colspan para combinar las celdas

Utilice el atributo span-method para configurar rowspan y colspan. Este acepta un método, y pasa un objeto a ese método incluyendo la fila actual row, columna actual column, índice de fila actual rowIndex y índice de columna actual columnIndex. El método debe devolver un arreglo de dos números, el primer número siendo rowspan y el segundo colspan. También puede devolver un objeto con las propiedades rowspan y colspan.

Índice personalizado

Puede personalizar el índice de la fila con la propiedad type=index de las columnas.

Para personalizar el índice de la fila, utilice el atributo index en el-table-column con type=index. Si este es asignado a un número, todos los índices tendrán un desplazamiento desde ese número. También acepta un método con cada índice (iniciando desde 0) como un parámetro, y devuelve un valor que puede ser mostrado como índice.

Disposición de la tabla

La propiedad table-layout establece el algoritmo usado para exponer celdas de tablas, filas y columnas.

Table API

Atributos de la tabla

NombreDescripciónTipoDefault
datatable dataobject[]
heighttable's height. Por defecto tiene una altura auto. Si este valor es un número, la altura es medido en pixeles; si este valor es una cadena, se asigna ese valor al style.height de la tabla, la altura es afectada por estilos externosstring / number
max-heighttable's max-height. The legal value is a number or the height in pxstring / number
stripeespecifica si la tabla se mostrara con franjasbooleanfalse
borderespecifica si la tabla tiene bordes verticalesbooleanfalse
sizetamaño de la tablaenum
fitespecifica si el ancho de la columna se adapta automáticamente a su contenedorbooleantrue
show-headerespecifica si la cabecera de la tabla es visiblebooleantrue
highlight-current-rowespecifica si la fila actual estara resaltadabooleanfalse
current-row-keyclave de la fila actual, un ajuste unicamente de propstring / number
row-class-namefunción que devuelve nombres de clases personalizadas para las filas, o una cadena asignando el nombre de clase para cada filaFunction / string
row-stylefunción que devuelve el estilo personalizado para cada fila, o un objeto asignando el estilo personalizado para todas las filasFunction / object
cell-class-namefunción que devuelve nombres de clases personalizadas para las celdas, o una cadena asignando el nombre de clase para cada celdaFunction / string
cell-stylefunción que devuelve estilos personalizados para cada celda, o un objeto asignado el estilo personalizado para todas las celdasFunction / object
header-row-class-namefunción que devuelve nombre de clases personalizadas para cada fila en la cabecera de la tabla, o una cadena asignando nombre de clase para todas las filas en la cabecera de la tablaFunction / string
header-row-stylefunción que devuelve estilos personalizados para cada una de las filas en la cabecera de la tabla, o un objeto asignando el estilo personalizado para todas las filas en la cabecera de la tablaFunction / object
header-cell-class-namefunción que devuelve nombres de clases personalizada para cada celda en la cabecera de la tabla, o una cadena asignando el nombre de clase para todas las celda en la cabecera de la tablaFunction / string
header-cell-stylefunción que devuelve estilos personalizados para cada celda en la cabecera de la tabla, o un objeto asignando el estilo personalizado para todas las celdas en la cabecera de la tablaFunction / object
row-keykey de los datos de las filas, utilizada para optimizar el renderizado. Requerido si reserve-selection está activada o muestra los datos con formato de árbol. When its type is String, multi-level access is supported, e.g. user.info.id, but user.info[0].id is not supported, in which case Function should be usedfunction / string
empty-textdisplayed text when data is empty. Puede personalizar esta área con #emptystringSin Datos
default-expand-allespecifica si todas las filas se expanden por defecto, solo funciona cuando la tabla tiene una columna type="expand" o contiene datos de estructura de árbolbooleanfalse
expand-row-keysestablece las filas expandidas a través de esta propiedad, este valor es la clave de filas expandidas, debería establecer row-key antes de usar esta propiedadArray
default-sortestablece la columna y orden por defecto. la propiedad prop es utilizada para establecer la columna de ordenamiento por defecto, la propiedad order es utilizada para definir el tipo de orden por defectoobjectif prop is set, and order is not set, then order is default to ascending
tooltip-effectel effect del tooltip por desbordamientoenumdark
tooltip-options 2.2.28las opciones para el tooltip de desbordamiento, vea el componente de tooltipobjectobject
append-filter-panel-to 2.8.4which element the filter panels appends tostring
show-summaryespecífica si debe mostrar la fila de resumenbooleanfalse
sum-texttexto a mostrar para la primer columna de la fila de resumenstringSum
summary-methodmétodo personalizado para resumenFunction
span-methodmétodo que devuelve rowspan y colspanFunction
select-on-indeterminatecontrola el comportamiento del checkbox maestro en tablas de selección múltiple cuando solo se seleccionan algunas filas (pero no todas). If true, all rows will be selected, else deselectedbooleantrue
indentindentación horizontal de los datos en el formato de estructura de árbolnumber16
lazysi se realiza una carga perezosa de los datosbooleanfalse
loadmétodo para cargar datos de filas hijas, solo funciona cuando lazy es trueFunction
tree-propsconfiguración para renderizar datos anidadosobjectobject
table-layoutsets the algorithm used to lay out table cells, rows, and columnsenumfixed
scrollbar-always-onsi mostrar siempre la barra de desplazamientobooleanfalse
show-overflow-tooltipwhether to hide extra content and show them in a tooltip when hovering on the cell.It will affect all the table columns, refer to table tooltip-optionsboolean / object 2.3.7
flexible 2.2.1ensure main axis minimum-size doesn't follow the contentbooleanfalse
scrollbar-tabindex 2.8.3body scrollbar's wrap container tabindexstring / number

Eventos de la tabla

NombreDescripciónTipo
selectse dispara cuando el usuario hace clic al checkbox (caja de selección) en una filaFunction
select-allse dispara cando el usuario hace clic al checkbox (caja de selección) en la cabecera de la tablaFunction
selection-changese dispara cuando la selección cambiaFunction
cell-mouse-enterse dispara cuando el ratón se desplaza dentro de una celdaFunction
cell-mouse-leavese dispara cuando el ratón se desplaza fuera de una celdaFunction
cell-clickse dispara cuando se hace clic en una celdaFunction
cell-dblclickse dispara cuando se hace doble clic en una celdaFunction
cell-contextmenuse dispara cuando el usuario hace clic derecho en una celdaFunction
row-clickse dispara cuando se hace clic en una filaFunction
row-contextmenuse dispara cuando el usuario hace clic derecho en una filaFunction
row-dblclickse dispara cuando se hace doble clic en una filaFunction
header-clickse dispara cuando se hace clic en una cabecera de columnaFunction
header-contextmenuse dispara cuando el usuario hace clic derecho en una cabecera de columnaFunction
sort-changese dispara cuando el orden de la tabla cambiaFunction
filter-changecolumn's key. Si necesitas utilizar el evento filter-change, este atributo es obligatorio para identificar cuál columna está siendo filtradaFunction
current-changese dispara cuando la fila actual cambiaFunction
header-dragendse dispara después de modificar el ancho de una columna arrastrando el borde de la cabeceraFunction
expand-changese activa cuando el usuario expande o colapsa una fila (para la tabla expansible, el segundo parámetro es expandedRows; para la tabla de árbol, el segundo parámetro es expanded)Function

Slots de la tabla

NombreDescripciónSubetiquetas
defaultpersonalizar contenido por defectoTable-column
appendContenidos a insertarse después de la última fila. Es posible que necesite este espacio si desea implementar scroll infinito para la tabla. Este slot se mostrará por encima de la fila de resumen si la hay.
emptypuedes personalizar el contenido cuando los datos están vacíos.

Table Exposes

MétodoDescripciónType
clearSelectionutilizado en selección múltiple de la tabla, limpia lo seleccionadoFunction
getSelectionRowsdevuelve las filas seleccionadasFunction
toggleRowSelectionusado en la tabla de selección múltiple, conmuta si se selecciona una fila determinada. Con el segundo parámetro, puede establecer directamente si esta fila está seleccionadaFunction
toggleAllSelectionusado en la tabla de selección múltiple, alterna seleccionar todas o anular todasFunction
toggleRowExpansionutilizado en la tabla expandible o en la tabla de árbol, conmuta si se expande una determinada fila. Con el segundo parámetro, puede establecer directamente si este registro se expande o colapsaFunction
setCurrentRowutilizado en tabla con selección sencilla, establece una cierta fila como seleccionada. If called without any parameter, it will clear selectionFunction
clearSortborra el orden, restaurando los datos al orden originalFunction
clearFilterlimpia los filtros de las columnas cuyas columnKey han sido pasadas. Si no hay parámetros, borrar todos los filtrosFunction
doLayoutactualizar el diseño de la tabla. Cuando la visibilidad de la tabla cambia, puede necesitar llamar a este método para obtener un diseño correctoFunction
sortordena la tabla manualmente. La propiedad prop se utiliza para establecer la columna de ordenación, la propiedad order se utiliza para establecer el ordenFunction
scrollTodesplaza a un conjunto particular de coordenadasFunction
setScrollTopfija posición de desplazamiento verticalFunction
setScrollLeftfija posición de desplazamiento horizontalFunction
columns 2.7.6Get table columns context.array
updateKeyChildren 2.8.4used in lazy Table, must set rowKey, update key childrenFunction

Table-column API

Atributos del Table-column

NombreDescripciónTypePor defecto
typetipo de columna. Si se establece a selection, la columna puede mostrar un checkbox. Si se establece a index, la columna puede mostrar el índice de la fila (iniciando desde 1). If set to expand, the column will display expand iconenumdefault
indexpersonaliza los índices para cada fila, funciona en columnas con type=indexnumber / Function
labeletiqueta de la columnastring
column-keyclave de la columna. Si necesita utilizar el evento filter-change, se usara este atributo para identificar que columna está siendo filtradastring
propnombre del campo. También puede usar su alias: propertystring
widthancho de la columnastring / number''
min-widthancho mínimo de la columna. Columnas con width tienen un ancho fijo, mientras que las columnas con min-width tienen un ancho que se distribuye en proporciónstring / number''
fixedespecífica si la columna se fija a la izquierda o a la derecha. Se fijará a la izquierda si es trueenum / booleanfalse
render-headerfunción de renderizado para la cabecera de la tabla de esta columnaFunction
sortablesi la columna puede ser ordenada. La ordenación remota se puede hacer estableciendo este atributo a 'custom' y escuchando el evento sort-change de la tablaboolean / stringfalse
sort-methodmétodo para ordenar, funciona cuando sortable está en true. Debería devolver un número, al igual que Array.sortFunction
sort-byespecifica cuál es la propiedad por la cual se va a ordenar, funciona cuando sortable es true y sort-method es undefined. Si se establece a un arreglo, la columna ordenara secuencialmente por la siguiente propiedad si la anterior es igualFunction / string / object
sort-ordersla estrategia para ordenar los datos, funciona cuando sortable es true. Acepta un arreglo, a medida que el usuario hace clic en el encabezado, la columna se ordena siguiendo la secuencia de los elementos del arregloobject['ascending', 'descending', null]
resizablesi el ancho de la columna puede ser redimensionado, funciona cuando border de el-table está en truebooleantrue
formatterfunción que da formato al contenido de la celdafunction
show-overflow-tooltipsi oculta contenido extra y lo muestra en un tooltip al pasar el cursor sobre la celdaboolean / object 2.2.28undefined
alignalineaciónenumleft
header-alignalineación de la cabecera de la tabla. Si se omite, se aplicará el valor del atributo anterior: alignenumleft
class-namenombre de la clase Css de la celda en la columnastring
label-class-namenombre de la clase Css de la etiqueta de esta columnastring
selectablefunción que determina si una cierta fila puede ser seleccionada, funciona cuando type está en selectionFunction
reserve-selectionespecífica si se reserva la selección después de actualizar los datos, funciona cuando type está en selection. Note que row-key es requerido para que esto funcionebooleanfalse
filtersun arreglo de opciones para filtrado de datos. Para cada elemento en este arreglo, text y value son obligatoriosobject
filter-placementubicación del menú desplegable de filtrosenum
filter-class-name 2.5.0className for the filter dropdownstring
filter-multiplesi el filtrado de datos soporta múltiples opcionesbooleantrue
filter-methodmétodo para filtrado de datos. Si filter-multiple está activado, este método será llamado varias veces por cada fila, y se mostrará la fila si la llamada devuelve truefunction
filtered-valueel valor del filtro para los datos seleccionados, puede ser útil cuando el encabezado de la tabla es renderizado con render-headerobject

Slots de Table-column

NombreDescripciónType
defaultCustom content for table columnsobject
headerCustom content for table headerobject
filter-icon 2.7.8Custom content for filter iconobject

Type Declarations

Show declarations
ts
interface Sort {
  prop: string
  order: 'ascending' | 'descending'
  init?: any
  silent?: any
}

interface TreeNode {
  expanded?: boolean
  loading?: boolean
  noLazyChildren?: boolean
  indent?: number
  level?: number
  display?: boolean
}

FAQ

¿Cómo usar la vista previa de la imagen en la tabla?

vue
<template>
  <el-table-column width="180">
    <template #default="scope">
      <el-image preview-teleported :preview-src-list="srcList" />
    </template>
  </el-table-column>
</template>

¿Por qué la columna no se procesa cuando se usan plantillas DOM?

Typical issue: #5046 #5862 #6919

Esto se debe a que la especificación HTML solo permite que algunos elementos específicos omitan las etiquetas de cierre, los más comunes son <input> y <img>. Para todos los demás elementos, si omite la etiqueta de cierre, el analizador nativo HTML pensará que nunca terminó la etiqueta de apertura

For more details please refer to vue docs

Fuente

ComponentesStyleDocumentación

Contribuidores