|
@@ -34,7 +34,7 @@ export interface ISimplePageListLoader<T, P> extends ILoaderCommon<P> {
|
|
* @returns
|
|
* @returns
|
|
*/
|
|
*/
|
|
export function useSimplePagerDataLoader<T, P = any>(
|
|
export function useSimplePagerDataLoader<T, P = any>(
|
|
- pageSize: number,
|
|
|
|
|
|
+ pageSize: number|Ref<number>,
|
|
loader: (page: number, pageSize: number, params?: P) => Promise<{
|
|
loader: (page: number, pageSize: number, params?: P) => Promise<{
|
|
data: T[],
|
|
data: T[],
|
|
total: number,
|
|
total: number,
|
|
@@ -43,9 +43,13 @@ export function useSimplePagerDataLoader<T, P = any>(
|
|
const page = ref(0);
|
|
const page = ref(0);
|
|
const list = ref<T[]>([]) as Ref<T[]>;
|
|
const list = ref<T[]>([]) as Ref<T[]>;
|
|
const total = ref(0);
|
|
const total = ref(0);
|
|
- const totalPages = computed(() => Math.ceil(total.value / pageSize));
|
|
|
|
|
|
+ const totalPages = computed(() => Math.ceil(total.value / getPageSize()));
|
|
const loadStatus = ref<LoaderLoadType>('loading');
|
|
const loadStatus = ref<LoaderLoadType>('loading');
|
|
const loadError = ref('');
|
|
const loadError = ref('');
|
|
|
|
+
|
|
|
|
+ function getPageSize() {
|
|
|
|
+ return typeof pageSize == 'object'? pageSize.value : pageSize;
|
|
|
|
+ }
|
|
|
|
|
|
watch(page, async () => {
|
|
watch(page, async () => {
|
|
await loadData(lastParams, false);
|
|
await loadData(lastParams, false);
|
|
@@ -67,7 +71,7 @@ export function useSimplePagerDataLoader<T, P = any>(
|
|
loading = true;
|
|
loading = true;
|
|
|
|
|
|
try {
|
|
try {
|
|
- const res = (await loader(page.value, pageSize, lastParams));
|
|
|
|
|
|
+ const res = (await loader(page.value, getPageSize(), lastParams));
|
|
list.value = list.value.concat(res.data);
|
|
list.value = list.value.concat(res.data);
|
|
total.value = res.total;
|
|
total.value = res.total;
|
|
loadStatus.value = res.data.length > 0 ? 'finished' : 'nomore';
|
|
loadStatus.value = res.data.length > 0 ? 'finished' : 'nomore';
|