Skip to content

Commit 877311f

Browse files
authored
fix(table): Update useDataSource.ts (#131)
假如数据变少,导致总页数变少并小于当前选中页码,通过getPaginationRef获取到的页码是不正确的,需获取正确的页码再次执行
1 parent de25557 commit 877311f

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

src/components/Table/src/hooks/useDataSource.ts

+13-1
Original file line numberDiff line numberDiff line change
@@ -89,10 +89,12 @@ export function useDataSource(
8989
loadingRef.value = true;
9090
const { pageField, sizeField, listField, totalField } = fetchSetting || FETCH_SETTING;
9191
let pageParams: any = {};
92+
93+
const { current, pageSize } = unref(getPaginationRef) as PaginationProps;
94+
9295
if (isBoolean(getPaginationRef)) {
9396
pageParams = {};
9497
} else {
95-
const { current, pageSize } = unref(getPaginationRef) as PaginationProps;
9698
pageParams[pageField] = (opt && opt.page) || current;
9799
pageParams[sizeField] = pageSize;
98100
}
@@ -112,6 +114,16 @@ export function useDataSource(
112114
const res = await api(params);
113115
let resultItems: any[] = get(res, listField);
114116
const resultTotal: number = get(res, totalField);
117+
118+
// 假如数据变少,导致总页数变少并小于当前选中页码,通过getPaginationRef获取到的页码是不正确的,需获取正确的页码再次执行
119+
var currentTotalPage = Math.ceil(resultTotal / pageSize);
120+
if (current > currentTotalPage) {
121+
setPagination({
122+
current: currentTotalPage,
123+
});
124+
fetch(opt);
125+
}
126+
115127
if (afterFetch && isFunction(afterFetch)) {
116128
resultItems = afterFetch(resultItems) || resultItems;
117129
}

0 commit comments

Comments
 (0)