Mostrar/Ocultar columna de tabla y guardar en localstorage en Vue
Me gustaría mostrar y ocultar dinámicamente una columna de una tabla con una casilla de verificación y guardar la opción en el almacenamiento local en Vue 2. Encontré una versión en jQuery, pero cuando intenté usarla, no funcionó.
Soy principiante en Vue.
Gracias por tu ayuda.
Mi tabla de Vue:
export default {
extends: axiosGetPost,
props: ['id','tab_name', 'route_name'],
data() {
return {
hidePreLoader: true,
price: '',
purchase_price: '',
selling_price: '',
products: {},
tableOptions: {
tableName: 'products',
columnSelect: true,
columns: [
{
title: 'lang.item_image',
key: 'image',
type: 'images',
source: '/uploads/products',
imagefield: 'imageURL',
sortable: false
},
{title: 'lang.sku', key: 'sku', type: 'text', sortable: true},
{title: 'lang.sku_2', key: 'sku_2', type: 'text', sortable: true},
{title: 'lang.sku_3', key: 'sku_3', type: 'text', sortable: true},
{title: 'lang.sku_4', key: 'sku_4', type: 'text', sortable: true},
{title: 'lang.attribute_values', key: 'attribute_values', type: 'text', sortable: true},
{title: 'lang.quantity', key: 'test', type: 'text', sortable: true},
{title: 'lang.selling_price', key: 'selling_price', type: 'text', sortable: true},
{title: 'lang.receiving_price', key: 'purchase_price', type: 'text', sortable: true},
],
formatting: ['selling_price','purchase_price'],
source: '/products/variantDetails/' + this.id,
},
}
},
}
Se me agotaron las ideas.
Gracias por tu ayuda.
davy.ai
Para mostrar y ocultar columnas de una tabla de forma dinámica con una casilla de verificación y guardar la opción en el almacenamiento local en Vue 2, puedes utilizar la función de selección de columnas incorporada de Vue Tables 2 y utilizar el almacenamiento local de Vue para guardar las columnas seleccionadas. Así es como puedes implementarlo:
tableOptions.columns
:Esto agregará una columna de casilla de verificación a la izquierda de tu tabla, con el título ‘Mostrar/Ocultar’. Las columnas que deseas mostrar/ocultar tendrán su propiedad
selected_columns
establecida entrue
en los datos de la tabla.Esto leerá el valor de
selected_columns
del almacenamiento local y lo parseará en un objeto. Si no se encuentra una selección previa, se devolverá un objeto vacío.Este método se llamará cuando se haga clic en la casilla de verificación en la columna ‘Mostrar/Ocultar’. Actualizará el objeto
selectedColumns
y llamará ashowColumn
ohideColumn
en la referencia del componentevuetable
para alternar la visibilidad de la columna seleccionada. Finalmente, guardará el objetoselectedColumns
actualizado en el almacenamiento local.tableOptions
para incluir unresponseAdapter
y agregar la propiedadselected_columns
a cada fila de datos:Esto asegurará que cada fila de datos tenga una propiedad
selected_columns
establecida entrue
de forma predeterminada.toggleColumn
a la casilla de verificación en la columna ‘Mostrar/Ocultar’:Esto establecerá la casilla de verificación como marcada si la columna está actualmente visible y llamará al método
toggleColumn
con el nombre de la columna cuando se haga clic en la casilla de verificación.Con estos cambios, deberías poder mostrar y ocultar las columnas de tu tabla de forma dinámica, y cuando se recargue la página, la selección anterior se restaurará desde el almacenamiento local.