|
@@ -16,10 +16,24 @@ export default function useTable<T extends Record<string, any>>(
|
|
|
layout: ` prev, pager, next, jumper,sizes, ->, total`,
|
|
|
});
|
|
|
|
|
|
+ interface SortConfig {
|
|
|
+ sortProp?: string;
|
|
|
+ sortOrder?: 'asc' | 'desc';
|
|
|
+ }
|
|
|
+ const sortConfig = reactive<SortConfig>({
|
|
|
+ sortProp: undefined,
|
|
|
+ sortOrder: undefined,
|
|
|
+ });
|
|
|
+ const orderMap = {
|
|
|
+ ascending: 'asc',
|
|
|
+ descending: 'desc',
|
|
|
+ };
|
|
|
+
|
|
|
async function getList() {
|
|
|
loading.value = true;
|
|
|
const datas = {
|
|
|
...(isRef(searchModel || {}) ? searchModel.value : searchModel),
|
|
|
+ ...sortConfig,
|
|
|
pageNumber: pagination.pageNumber,
|
|
|
pageSize: pagination.pageSize,
|
|
|
};
|
|
@@ -53,10 +67,20 @@ export default function useTable<T extends Record<string, any>>(
|
|
|
}
|
|
|
toPage(page);
|
|
|
}
|
|
|
-
|
|
|
+ // 选择
|
|
|
const handleSelectionChange = (selection: T[]) => {
|
|
|
selectedRows.value = selection;
|
|
|
};
|
|
|
+ // 排序
|
|
|
+ const handleSortChange = (data: {
|
|
|
+ column: any;
|
|
|
+ prop: string;
|
|
|
+ order: SortConfig['sortOrder'];
|
|
|
+ }) => {
|
|
|
+ sortConfig.sortProp = data.prop || undefined;
|
|
|
+ sortConfig.sortOrder = orderMap[data.order] || undefined;
|
|
|
+ getList();
|
|
|
+ };
|
|
|
|
|
|
return {
|
|
|
loading,
|
|
@@ -69,5 +93,6 @@ export default function useTable<T extends Record<string, any>>(
|
|
|
pageSizeChange,
|
|
|
deletePageLastItem,
|
|
|
handleSelectionChange,
|
|
|
+ handleSortChange,
|
|
|
};
|
|
|
}
|