fix: 表格排序翻页会丢失排序参数

This commit is contained in:
dap
2024-12-20 13:58:01 +08:00
parent 5e82866370
commit aa95783fc9
5 changed files with 41 additions and 7 deletions

View File

@@ -4,6 +4,7 @@ import {
setupVbenVxeTable,
useVbenVxeGrid,
type VxeGridDefines,
type VxeGridPropTypes,
} from '@vben/plugins/vxe-table';
import { Button, Image } from 'ant-design-vue';
@@ -133,6 +134,7 @@ export function vxeCheckboxChecked(
/**
* 通用的vxe-table排序事件 支持单/多字段排序
* @deprecated 翻页后排序会丢失使用addSortParams代替
* @param tableApi api
* @param sortParams 排序参数
*/
@@ -151,3 +153,23 @@ export function vxeSortEvent(
const isAsc = sortList.map((item) => item.order).join(',');
tableApi.query({ orderByColumn, isAsc });
}
/**
* 通用的 排序参数添加到请求参数中
* @param params 请求参数
* @param sortList vxe-table的排序参数
*/
export function addSortParams(
params: Record<string, any>,
sortList: VxeGridPropTypes.ProxyAjaxQuerySortCheckedParams[],
) {
// 这里是排序取消 length为0 就不添加参数了
if (sortList.length === 0) {
return;
}
// 支持单/多字段排序
const orderByColumn = sortList.map((item) => item.field).join(',');
const isAsc = sortList.map((item) => item.order).join(',');
params.orderByColumn = orderByColumn;
params.isAsc = isAsc;
}