Vxe UI vxe-table custom 实现自定义列服务端保存,服务端恢复状态,实现用户个性化列信息保存

news2025/9/17 7:18:43

Vxe UI vue vxe-table custom 实现自定义列服务端保存,服务端恢复状态,实现用户个性化列信息保存

支持将自定义列状态信息,列宽、冻结列、列排序、列显示隐藏 等状态信息保存到本地或服务端

代码

实现自定义列状态保存功能,只需要自定义两个方法即可,支持局部设置,也可以通过 setConfig({}) 全局设置。

custom-config
storage 用于开启状态保存功能,默认是自动保存在 localStorage 本地
restoreStore 用于自定义恢复方法,异步从服务端获取数据,恢复状态
updateStore 用于保存方法,异步将数据保存到服务端

<template>
  <div>
    <vxe-toolbar ref="toolbarRef" custom></vxe-toolbar>
    <vxe-table
      id="myCustomUpdate"
      ref="tableRef"
      :custom-config="customConfig"
      :data="tableData">
      <vxe-column type="seq" width="60"></vxe-column>
      <vxe-column field="name" title="Name"></vxe-column>
      <vxe-column field="sex" title="Sex"></vxe-column>
      <vxe-column field="age" title="Age"></vxe-column>
    </vxe-table>
  </div>
</template>

<script setup>
import { onMounted, ref, reactive } from 'vue'
import { VxeUI } from 'vxe-pc-ui'

const toolbarRef = ref()
const tableRef = ref()

const tableData = ref([
  { id: 10001, name: 'Test1', role: 'Develop', sex: 'Man', age: 28, address: 'test abc' },
  { id: 10002, name: 'Test2', role: 'Test', sex: 'Women', age: 22, address: 'Guangzhou' },
  { id: 10003, name: 'Test3', role: 'PM', sex: 'Man', age: 32, address: 'Shanghai' },
  { id: 10004, name: 'Test4', role: 'Designer', sex: 'Women', age: 24, address: 'Shanghai' }
])

// 模拟查询接口
const findCustomSetting = (id) => {
  return new Promise(resolve => {
    setTimeout(() => {
      try {
        if (sessionStorage.getItem(id)) {
          resolve(JSON.parse(sessionStorage.getItem(id) || ''))
          VxeUI.modal.message({
            status: 'success',
            content: '异步还原用户个性化数据成功'
          })
        } else {
          resolve({})
        }
      } catch (e) {
        resolve({})
      }
    }, 300)
  })
}

// 模拟保存接口
const saveCustomSetting = (id, storeData) => {
  return new Promise(resolve => {
    setTimeout(() => {
      console.log(storeData)
      sessionStorage.setItem(id, JSON.stringify(storeData))
      VxeUI.modal.message({
        status: 'success',
        content: '保存用户个性化数据成功'
      })
      resolve()
    }, 200)
  })
}

const customConfig = reactive({
  storage: true, // 启用自定义列状态保存功能
  restoreStore ({ id }) {
    // 从服务端调用接口获取当前用户表格自定义列数据,支持异步,返回 Promise
    return findCustomSetting(id)
  },
  updateStore ({ id, storeData }) {
  	// 当 storage 启用后,默认会自动保存在浏览器本地 localStorage 里面,可以通过自定义改方法,使用服务端保存
    // 将用户自定义的列数据保存到服务端,支持异步,返回 Promise
    return saveCustomSetting(id, storeData)
  }
})

onMounted(() => {
  const $table = tableRef.value
  const $toolbar = toolbarRef.value
  // 关联工具栏
  if ($table && $toolbar) {
    $table.connect($toolbar)
  }
})
</script>

效果

将自定义列状态信息,列宽、冻结列、列排序、列显示隐藏 等状态信息保存到服务端
请添加图片描述
操作之后,再次进来页面,从服务端恢复列状态

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1822629.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【启明智显分享】Model系列工业级HMI芯片:开源RISC-V+RTOS实时系统,开放!高效!

前言 「Model系列」芯片是启明智显针对工业、行业以及车载产品市场推出的系列HMI芯片&#xff0c;主要应用于工业自动化、智能终端HMI、车载仪表盘、两轮车彩屏仪表、串口屏、智能中控、智能家居、充电桩显示屏、储能显示屏、工业触摸屏等领域。此系列具有高性能、低成本的特点…

生命在于学习——Python人工智能原理(3.4)

三、深度学习 7、过拟合与欠拟合 过拟合和欠拟合是所有机器学习算法都要考虑的问题。 &#xff08;1&#xff09;基本定义 a、欠拟合 欠拟合是指机器学习模型无法完全捕获数据集中的复杂模式&#xff0c;导致模型在新数据上的表现不佳&#xff0c;这通常是由于模型过于简单…

能在电脑桌面记笔记的软件是什么 电脑笔记软件

在这个数字化高速发展的时代&#xff0c;电脑已成为我们日常工作和学习的必备工具。而对我来说&#xff0c;电脑桌面不仅仅是一个简单的工作界面&#xff0c;更是一个思考和创造的平台。我时常需要在工作时快速记录一些重要信息或灵感&#xff0c;这时候&#xff0c;能在电脑桌…

机器学习与数据挖掘知识点总结(二)分类算法

目录 1、什么是数据挖掘 2、为什么要有数据挖掘 3、数据挖掘用在分类任务中的算法 朴素贝叶斯算法 svm支持向量机算法 PCA主成分分析算法 k-means算法 决策树 1、什么是数据挖掘 数据挖掘是从大量数据中发现隐藏在其中的模式、关系和规律的过程。它利用统计学、机器学…

我的考研经历

当我写下这篇文章时&#xff0c;我已经从考研 的失败中走出来了&#xff0c;考研的整个过程都写在博客日志里面了&#xff0c;在整理并阅读考研的日志时&#xff0c;想写下一篇总结&#xff0c;也算是为了更好的吸取教训。 前期日志模板&#xff1a;时间安排的还算紧凑&#x…

视频美颜工具技术探秘:直播美颜SDK的应用与发展

今天&#xff0c;笔者将深入探讨直播美颜SDK的应用场景和发展趋势&#xff0c;揭示其背后的技术奥秘和潜力。 一、直播美颜SDK的基本原理 直播美颜SDK其基本原理包括以下几个方面&#xff1a; 人脸检测与特征定位 肤色分析与调整 瑕疵修复与细节增强 滤镜和特效应用 二、…

在ubuntu中恢复误删除的文件

1、安装 TestDisk 在 Ubuntu 上&#xff0c;可以使用以下命令安装 TestDisk&#xff1a; sudo apt-get install testdisk2、查询你删除的文件所在那个分区 #查询分区 df -h #我这里是/dev/sda2 #也可以使用下面命令查看具体哪个分区 lsblk3、查询该分区是什么系统类型 sudo …

微软bing英文地图公司地址标注

实现效果如下&#xff1a; 通过微软Bing地图嵌入代码&#xff0c;以在网站中展示公司地址&#xff0c;使用鼠标滚动可缩放或点击拖动地图。 直接上代码&#xff0c;根据自己的需求修改相关信息即可。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN…

语法08 C++ 数据类型之间的强制转换

强制类型转换 强制类型转换&#xff0c;就是把一种数据类型转化为另一种指定的数据类型。 它是一种临时的转换。 强制类型转换格式 格式&#xff1a;(数据类型) (表达式) 即&#xff1a;(要被转换成的类型&#xff09;&#xff08;被转换的式子&#xff09;; 注意&#x…

SCT82A32 是一款 100V 电压模式控制同步降压控制器

主要特征 ◦ 5.5V-100V 宽输入范围 ◦ 0.8V-60V 可调输出电压 ◦ 0.8V1% 参考电压 ◦ 最低占空比下的40ns 最小 tON ◦ 最高占空比下的150ns 最小 tOFF • 100 KHz 到 1.2 MHz 开关频率 ◦ 时钟同步输入/输出功能 ◦ 可选择二极管仿真或 FPWM • 7.5V 门极驱动器 ◦ 2.3A …

Kettle作业优化指南:在 TASKCTL 统一任务调度平台的实践技巧

ETL世界里的调度难题&#xff0c;是否让你夜不能寐&#xff1f;Kettle 作为开源ETL工具的佼佼者&#xff0c;虽然功能强大&#xff0c;但其调度监控的短板却让无数从业者头疼不已。今天&#xff0c;我要带你走进一个全新的调度世界——自动化任务编排工具 TASKCTL 它不仅解决了…

如何用Vue3和p5.js打造一个令人惊叹的3D球体在线展示

本文由ScriptEcho平台提供技术支持 项目地址&#xff1a;传送门 使用 p5.js 创建交互式 3D 图形 应用场景介绍 p5.js 是一个用于创建交互式图形和动画的 JavaScript 库。它被广泛用于教育、艺术和设计领域&#xff0c;让开发者可以轻松创建具有吸引力的可视化效果。 代码基…

怎么改变图片分辨率dpi数值?图片改分辨率的在线技巧

在上传图片的时候除了图片大小、尺寸等要求之外&#xff0c;修改图片分辨率也是比较常见的一个问题&#xff0c;需要将图片按照平台的要求修改完成后才可以正常使用。当遇到图片dpi的数值不满足使用需求的时候&#xff0c;有什么方法能够更加快捷的修改图片dpi呢&#xff1f;今…

如何通过SOLIDWORKS教育版提高学生技能培养未来人才?

在当今这个科技日新月异的时代&#xff0c;掌握先进的数字化工具已经成为了一项需备的技能。作为一款功能强大的3D CAD软件&#xff0c;SOLIDWORKS教育版正是一个帮助学生提升技能、培养未来人才的重要工具。那么&#xff0c;如何通过SOLIDWORKS教育版提高学生技能呢&#xff1…

VirtualBox配置双网卡实现宿主机和虚拟机相互访问以及虚拟机外网访问

目录 一&#xff1a;背景 二&#xff1a;实现 三&#xff1a;总结 一&#xff1a;背景 在VirtualBox中配置虚拟机以实现本地主机远程登录、访问外网以及虚拟机之间的相互访问&#xff0c;是一种常见的虚拟化实践&#xff0c;适用于多种场景&#xff0c;如开发、测试和远程工…

鸿蒙 游戏来了 鸿蒙版 五子棋来了 我不允许你不会

团队介绍 作者:徐庆 团队:坚果派 公众号:“大前端之旅” 润开鸿生态技术专家,华为HDE,CSDN博客专家,CSDN超级个体,CSDN特邀嘉宾,InfoQ签约作者,OpenHarmony布道师,电子发烧友专家博客,51CTO博客专家,擅长HarmonyOS/OpenHarmony应用开发、熟悉服务卡片开发。欢迎合…

打造信任和忠诚:增加和改善客户评价的10种方法

客户推荐和产品评价可以成为您最强大的销售工具之一。超过70%的消费者表示他们在购买前会查看产品评价&#xff0c;近63%的消费者表示他们更有可能从有产品评级和评价的网站购买。社会认可可以安抚犹豫的购物者&#xff0c;提供额外的背景信息&#xff0c;并通过确保买家对购买…

【网络编程】基于UDP的服务器端/客户端

UDP可看作是信件邮寄&#xff0c;邮寄过程可能会信件丢失&#xff0c;是一种不可靠的数据传输服务。 但UDP性能更高&#xff0c;实现更加简洁。流控制是区分UDP和TCP的最重要标志。 IP的作用就是让离开主机B的UDP数据包传递给主机B&#xff0c;UDP根据端口号将传到主机的数据包…

6.14工作总结

今天上午&#xff0c;我把之前睿哥吩咐我的任务忙完之后&#xff0c;他就叫我看一下代码。 他跟我说公司的项目用的是微服务的。其实我不懂微服务是个啥&#xff0c;就只知道这个名字。 然后&#xff0c;我把设备管理系统的后端代码展示给他看&#xff0c;他给我指了指&#…

C4D如何预览动画?C4D动画云渲染助力

C4D是一款功能丰富的3D设计软件&#xff0c;以其快速的预览渲染和多样的渲染插件而闻名&#xff0c;其卓越的渲染效果赢得了CG行业专业人士的广泛赞誉。尽管C4D的渲染功能十分强大&#xff0c;但对于初学者而言&#xff0c;其复杂的渲染设置可能会带来一些挑战。本文一起来看看…