在我们在项目开发过程中,有时候会遇到表格排序的问题,而且有多列数据,需要可以根据各列数据进行排序,这个时候应该怎么做呢?如何才能达到类似于Excel中的排序效果呢?
一、当没有分页的情况下对数据进行选择性排序
首先需要在对应的表头标签内添加对应属性
这里以角色名称为例,当设置:sortable=“true”后,即可在页面中看到在对应的标签上多了一些东西,如下图
至于:sort-method=“sortaaa”,是用来定义相对应的方法及数据比较的,该方法定义在methods中,如下图所示
这里在排序时默认按照首字母A-Z进行排序,若为数字则按照小到大,或者大到小。效果请看下图:
若在项目开发中,需要依据时间进行排序,可以直接将row.children.id替换为对应的时间属性。若接受到的时间属性为yyyy-MMMM-dddd hhhh-mmmm-ssss,可以使用formdata进行转换后,再进行处理。
二、有分页的情况下对数组进行排序
在分页的情况下,若后台返回数据没有进行整理,则日期时间不对应,就得不到我们想要的数据。若使用上述的方法,只会对当前页的数据进行排序。
这里需要给表格的el-tabel标签添加@sort-change=“自定义方法名”,并给对应需要排序的列添加 sortable='custom'属性(关于sortab了的属性可自行查阅,这里不做赘述),如图所示::
这里因为没有足够的数据进行分页处理,代码展示请自行体会,if条件下为降序,else if条件下为升序