|
@@ -4,6 +4,7 @@ import type { ILoaderCommon, LoaderLoadType } from "./LoaderCommon";
|
|
|
export interface ISimplePageListLoader<T, P> extends ILoaderCommon<P> {
|
|
|
list: Ref<T[]>;
|
|
|
page: Ref<number>;
|
|
|
+ pageSize: Ref<number>;
|
|
|
next: () => Promise<void>;
|
|
|
prev: () => Promise<void>;
|
|
|
total: Ref<number>;
|
|
@@ -34,22 +35,22 @@ export interface ISimplePageListLoader<T, P> extends ILoaderCommon<P> {
|
|
|
* @returns
|
|
|
*/
|
|
|
export function useSimplePagerDataLoader<T, P = any>(
|
|
|
- pageSize: number|Ref<number>,
|
|
|
+ _pageSize: number|Ref<number>,
|
|
|
loader: (page: number, pageSize: number, params?: P) => Promise<{
|
|
|
list: T[],
|
|
|
total: number,
|
|
|
}>) : ISimplePageListLoader<T, P>
|
|
|
{
|
|
|
const page = ref(0);
|
|
|
+ const pageSize = computed(() => {
|
|
|
+ return typeof _pageSize == 'object'? _pageSize.value : _pageSize;
|
|
|
+ });
|
|
|
const list = ref<T[]>([]) as Ref<T[]>;
|
|
|
const total = ref(0);
|
|
|
- const totalPages = computed(() => Math.ceil(total.value / getPageSize()));
|
|
|
+ const totalPages = computed(() => Math.ceil(total.value / pageSize.value));
|
|
|
const loadStatus = ref<LoaderLoadType>('loading');
|
|
|
const loadError = ref('');
|
|
|
|
|
|
- function getPageSize() {
|
|
|
- return typeof pageSize == 'object'? pageSize.value : pageSize;
|
|
|
- }
|
|
|
|
|
|
watch(page, async () => {
|
|
|
await loadData(lastParams, false);
|
|
@@ -71,7 +72,7 @@ export function useSimplePagerDataLoader<T, P = any>(
|
|
|
loading = true;
|
|
|
|
|
|
try {
|
|
|
- const res = (await loader(page.value, getPageSize(), lastParams));
|
|
|
+ const res = (await loader(page.value, pageSize.value, lastParams));
|
|
|
list.value = list.value.concat(res.list);
|
|
|
total.value = res.total;
|
|
|
loadStatus.value = res.list.length > 0 ? 'finished' : 'nomore';
|
|
@@ -114,6 +115,7 @@ export function useSimplePagerDataLoader<T, P = any>(
|
|
|
* 当前页码
|
|
|
*/
|
|
|
page,
|
|
|
+ pageSize,
|
|
|
/**
|
|
|
* 总数据条数
|
|
|
*/
|