Selaa lähdekoodia

💄 修改清单页分页问题,研究图片更换

快乐的梦鱼 3 viikkoa sitten
vanhempi
commit
9226e34e48

BIN
src/assets/images/research/Image5.jpg


+ 7 - 4
src/components/content/CommonListBlock.vue

@@ -68,7 +68,7 @@
           </thead>
           <tbody>
             <tr v-for="(item, k) in newsLoader.list.value" :key="item.id">
-              <td>{{ k + 1 }}</td>
+              <td>{{ (newsLoader.page.value - 1) * 100 + k + 1 }}</td>
               <td>{{ item.title }}</td>
               <td v-for="(t, k) in item.addItems || []" :key="k">{{ t.text }}</td>
             </tr>
@@ -297,8 +297,10 @@ function handleShowDetail(item: any) {
   });
 }
 
-const newsLoader = useSimplePagerDataLoader(props.pageSize, (page, size) => props.load(
-  tableListShow.value ? 1 : page, tableListShow.value ? 100 : size, 
+const pageSize = ref(props.pageSize);
+
+const newsLoader = useSimplePagerDataLoader(pageSize, (page, size) => props.load(
+  page, size, 
   selectedTag.value, 
   searchText.value,
   dropDownValues.value,
@@ -316,7 +318,8 @@ watch(() => props.dropDownNames, () => {
 watch(selectedTag, () => {
   newsLoader.loadData(undefined, true);
 })
-watch(tableListShow, () => {
+watch(tableListShow, (v) => {
+  pageSize.value = v ? 100 : props.pageSize;
   newsLoader.loadData(undefined, true);
 })
 

+ 7 - 3
src/composeable/SimplePagerDataLoader.ts

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