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