当前位置: 首页 > news >正文

vxe-table——实现切换页码时排序状态的回显问题(ant-design+elementUi中table排序不同时回显的bug)——js技能提升

之前写的后台管理系统,都是用的antd+elementtable组件中的【排序】问题是有一定的缺陷的。
想要实现的效果:
在这里插入图片描述

antv——table组件一次只支持一个参数的排序

如下图:
在这里插入图片描述
就算是可以自行将排序字段拼接到列表接口的入参中,页面中字段的排序也是只有一个的。不会同时显示排序的状态。比如像下面的
在这里插入图片描述

element——table组件一次只支持一个参数的排序

在这里插入图片描述
就连【default-sort】默认的排序参数,都只是一个对象,而非是一个数组。
在这里插入图片描述
没有办法实现我们想要的多个参数同时排序并且回显的效果。
在这里插入图片描述
前几天写的文章中的vxe-table组件可以实现这样的效果。

vxe-table组件实现多个参数同时排序的效果

感觉官网上有一部分内容还是不太好看的,只有真正用到了,才能明白其中的含义。

 <vxe-tablesize="small"borderresizableref="xTable1"id="toolbar_demo5":custom-config="customConfig"show-overflow="tooltip":sort-config="sortConfig":row-config="rowConfig":checkbox-config="checkboxConfig":data="dataSource":loading="loading"@checkbox-change="wipCheckboxChange"@checkbox-all="wipCheckboxAll"@sort-change="wipSortChange">....</vxe-table>

关于排序,这里面要用到的参数有:sortConfig sort-change

步骤1:sortConfig参数需要一开始mounted函数中就指定要排序的字段及方向

在这里插入图片描述
比如:我这边的要求是:将排序的内容缓存到本地,然后一进到这个页面就要显示上一次排序的效果。本次更改排序后再次缓存,一次循环。

所以在页面一开始mounted时,我就要取缓存的内容,并处理后放置到sortConfig

mounted(){let sort = localStorage.getItem('sort_arr');if (sort != undefined) {this.sort_arr = JSON.parse(sort);this.queryFrom.OrderBy = JSON.parse(sort).toString();}let sort_obj = JSON.parse(localStorage.getItem('sort_arr'));let defaultSort = [];if (sort_obj && sort_obj.length > 0) {sort_obj.forEach((item) => {let arr = item.split(' ');defaultSort.push({ field: arr[0], order: arr[1] });});this.sortConfig.defaultSort = defaultSort;}
}

步骤2:监听排序方法sort-change

 // 排序
wipSortChange({ column, field, order, sortBy, sortList }) {console.log(column, field, order, sortBy, sortList);if (sortList.length != 0) {let arr = sortList.map((v) => {return v.field + ' ' + v.order;});localStorage.setItem('sort_arr', JSON.stringify(arr));}let sort = localStorage.getItem('sort_arr');if (sort != undefined) {this.queryFrom.OrderBy = JSON.parse(sort).toString();}this.card_list_api();//这个是请求列表数据的接口
},

完成!!!

我看之前同事写的的代码:在切换分页的时候用到了this.$refs.xTable1.clearAll(),这个方法直接将排序的结果都清除了。这样是不对的。

页面选中的值,切换页码的时候没有回显的问题

可以在切换页码的时候,通过下面的代码来实现选中的回显:

if (this.selectedRows) {this.selectedRows.forEach((v) => {this.$refs.xTable1.setCheckboxRow(v, true);});
}
http://www.lryc.cn/news/406423.html

相关文章:

  • SQL
  • maven archetype
  • 浏览器打开抽奖系统html
  • 微信小程序-使用Component方法代替Page方法构造页面
  • Spark SQL----DISTRIBUTE BY子句
  • HTML5-canvas1
  • 【NOI-题解】1009 - 数组逆序1162 - 数组元素的删除1211 - 数组元素的插入1161. 元素插入有序数组1159. 数组元素的移动
  • 新电脑如何设置 npm 源及查看源、安装 cnpm、pnpm 和 yarn 的详细教程
  • 完全移动huggingface模型仓库(不是简单mv)
  • 手机空号过滤批量查询的意义及方法
  • Dockerfile制作部署wordpress-6.6
  • 项目的纪要
  • ubuntu 更新源
  • XGBoost、RF随机森林算法MATLAB实现
  • WPF 解决: DataGrid 已定义列,但是还是会显示模型的所有属性的问题
  • 【ai】Easy-RAG : ImportError: cannot import name ‘BaseModel‘ from ‘pydantic‘
  • WebKit简介
  • 笔记 | Python环境下的GUI编程常用包
  • mysql 数据库空间统计sql
  • 【Linux】线程——线程池、线程池的实现、线程安全的线程池、单例模式的概念、饿汉和懒汉模式、互斥锁、条件变量、信号量、自旋锁、读写锁
  • stm32入门-----TIM定时器(PWM输出比较——下)
  • css实现线条中间高亮,左右两边模糊(linear-gradient的运用)
  • 【数据结构】建堆算法复杂度分析及TOP-K问题
  • Thinkphp5实现前后端通过接口通讯基本操作方法
  • Go 语言任务编排 WaitGroup
  • 星环科技推出知识库产品 AI PC时代数据交互方式变革
  • 10道JVM经典面试题
  • Redisson常用的数据结构及应用场景
  • 【实现100个unity特效之8】使用ShaderGraph实现2d贴图中指定部分局部发光效果
  • Ubuntu 24.04 LTS Noble安装Docker Desktop简单教程