bayi vor 2 Jahren
Ursprung
Commit
0b0c990e67
2 geänderte Dateien mit 53 neuen und 2 gelöschten Zeilen
  1. 51 0
      mixins/reachBottom.js
  2. 2 2
      pages/index/index.js

+ 51 - 0
mixins/reachBottom.js

@@ -7,6 +7,7 @@ module.exports = Behavior({
     pageNo: 1,
     totalSize: 0,
     noMoreData: false, // 无更多数据置为 false
+    mainList: [] //前端分页的大数组
   },
   methods: {
     async getData(fn, args) {
@@ -51,11 +52,61 @@ module.exports = Behavior({
         noMoreData: list.length >= totalSize
       })
     },
+    // 前端分页
+    async localGetData(fn, args) {
+      let mainList = this.data.mainList
+      let list = this.data.list
+      let params = {
+        pageNo: this.data.pageNo,
+        pageSize: 100,
+        ...args
+      }
+      if (mainList.length == 0) {
+        // 加载状态,用于页面中控制加载动画的显示
+        this.setData({
+          loading: true,
+          nullList: false
+        })
+        let res = await fn(params).finally(() => {
+          // 页面渲染完成后关闭加载动画字段
+          wx.nextTick(() => {
+            this.setData({
+              loading: false
+            })
+          });
+        })
+        mainList = res.list
+        list = mainList.slice(0, this.data.pageNo * 6)
+        if (list.length == 0) {
+          this.setData({
+            nullList: true
+          })
+        } else {
+          this.setData({
+            nullList: false
+          })
+        }
+        this.setData({
+          pageNo: ++this.data.pageNo,
+          mainList,
+          list,
+        })
+      } else if (mainList.length != 0 && mainList.length > list.length) {
+        list = this.data.mainList.slice(0, this.data.pageNo * 6)
+        this.setData({
+          pageNo: ++this.data.pageNo,
+          mainList,
+          list,
+        })
+      }
+
+    },
     resetData(data) {
       if (this.data.loading) return; // 如果接口已经在请求中,则不重置数据,防止用户持续下拉刷新
       this.setData({
         loading: false,
         list: [],
+        mainList: [],
         pageNo: 1,
         totalSize: 0,
         noMoreData: false,

+ 2 - 2
pages/index/index.js

@@ -77,11 +77,11 @@ Page({
       return
     }
     if (this.data.currentType == '2') {
-      this.getData(getHotrecommendList, {
+      this.localGetData(getHotrecommendList, {
         grade: this.data.userInfo.grade
       })
     } else if (this.data.currentType == '1') {
-      this.getData(getAuthorityList, {
+      this.localGetData(getAuthorityList, {
         grade: this.data.userInfo.grade
       })
     }