Commit 877311f9df70b7d76f8a0f8b5082f061de439ec8

Authored by Pom
Committed by GitHub
1 parent de25557f

fix(table): Update useDataSource.ts (#131)

假如数据变少,导致总页数变少并小于当前选中页码,通过getPaginationRef获取到的页码是不正确的,需获取正确的页码再次执行
src/components/Table/src/hooks/useDataSource.ts
... ... @@ -89,10 +89,12 @@ export function useDataSource(
89 89 loadingRef.value = true;
90 90 const { pageField, sizeField, listField, totalField } = fetchSetting || FETCH_SETTING;
91 91 let pageParams: any = {};
  92 +
  93 + const { current, pageSize } = unref(getPaginationRef) as PaginationProps;
  94 +
92 95 if (isBoolean(getPaginationRef)) {
93 96 pageParams = {};
94 97 } else {
95   - const { current, pageSize } = unref(getPaginationRef) as PaginationProps;
96 98 pageParams[pageField] = (opt && opt.page) || current;
97 99 pageParams[sizeField] = pageSize;
98 100 }
... ... @@ -112,6 +114,16 @@ export function useDataSource(
112 114 const res = await api(params);
113 115 let resultItems: any[] = get(res, listField);
114 116 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 +
115 127 if (afterFetch && isFunction(afterFetch)) {
116 128 resultItems = afterFetch(resultItems) || resultItems;
117 129 }
... ...