Browse Source

修改细节

快乐的梦鱼 1 day ago
parent
commit
6e9a0e8c58
1 changed files with 8 additions and 6 deletions
  1. 8 6
      src/composeable/SimplePagerDataLoader.ts

+ 8 - 6
src/composeable/SimplePagerDataLoader.ts

@@ -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,
     /**
      * 总数据条数
      */