赞
踩
使用el-table排序,需要先在el-table中添加
@sort-change="handleSort"
然后在需要排序的字段上添加属性,为了方便使用属性名直接为后端数据库字段
sortable="memberCount"
排序回调函数中会获取列的属性,以及排序方式,代码如下,我这里直接拼接成需要的对象格式:
{
"排序字段1": "排序方式1",
"排序字段2": "排序方式2"
}
这里的排序字段也可以用"表名.属性名"的格式,具体看需求
- handleSort({column, prop, order}) {
- let sortType = ""
- if (order === "ascending") {
- sortType = "asc"
- } else if (order == "descending") {
- sortType = "desc"
- } else {
- sortType = ""
- }
- this.queryParams.orderBy[column.sortable] = sortType
- this.getList()
- }
后端使用实体类接收,添加一个Map属性
- @ApiModelProperty("排序方式")
- private Map<String, String> orderBy;
然后直接在mybatis中
- ORDER BY
- <if test="orderBy != null">
- <foreach collection="orderBy" index="key" item="value" open="" close="" separator=",">
- ${key} ${value}
- </foreach>
- ,
- </if>
- # 其他排序属性
因为el-table中只支持单列排序,所以如果要求多列排序时需要自定义排序icon,方法调用没有区别
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。