Преглед на файлове

🚧 修复分页问题

快乐的梦鱼 преди 2 месеца
родител
ревизия
69f284edc6
променени са 1 файла, в които са добавени 24 реда и са изтрити 10 реда
  1. 24 10
      src/components/content/CommonListBlock.vue

+ 24 - 10
src/components/content/CommonListBlock.vue

@@ -128,8 +128,9 @@
     </div>
     <!-- 分页 -->
     <Pagination
-      v-model:currentPage="newsLoader.page.value"
+      :currentPage="newsLoader.page.value"
       :totalPages="newsLoader.totalPages.value"
+      @update:currentPage="handleChangePage"
     />
   </div>
 </template>
@@ -315,20 +316,31 @@ function handleShowDetail(item: any) {
   });
 }
 
+function handleChangePage(page: number) {
+  router.replace({
+    query: {
+      ...route.query,
+      page,
+    }
+  })
+}
 
 //子分类
 const selectedTag = ref(props.defaultSelectTag);
 const pageSize = ref(props.pageSize);
 const route = useRoute();
 
-
-
-const newsLoader = await useSSrSimplePagerDataLoader(route.fullPath + '/list' + props.subName, Number(route.query.page || 1), pageSize, (page, size) => props.load(
-  page, size, 
-  selectedTag.value, 
-  searchText.value,
-  dropDownValues.value,
-));
+const newsLoader = await useSSrSimplePagerDataLoader(
+  route.fullPath + '/list' + props.subName, 
+  Number(route.query.page || 1), 
+  pageSize, 
+  (page, size) => props.load(
+    page, size, 
+    selectedTag.value, 
+    searchText.value,
+    dropDownValues.value,
+  )
+);
 
 watch(() => props.defaultSelectTag, (v) => {
   selectedTag.value = v;
@@ -355,7 +367,7 @@ function loadDropValues() {
   if (props.dropDownNames)
     for (const element of props.dropDownNames)
       dropDownValues.value.push(element.defaultSelectedValue);
-  newsLoader.loadData(undefined, true);
+  newsLoader.loadData(undefined, false);
 }
 
 onMounted(() => {
@@ -366,6 +378,8 @@ onMounted(() => {
   }, 600);
 })
 watch(route, () => {
+  if (route.query.page)
+    newsLoader.page.value = Number(route.query.page);
   loadDropValues();
 })