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 | 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 | } | ... | ... |