Browse Source

Timeline.vue 添加滚动加载

reghao 2 năm trước cách đây
mục cha
commit
c7b3ce9d61
1 tập tin đã thay đổi với 24 bổ sung7 xóa
  1. 24 7
      src/views/home/Timeline.vue

+ 24 - 7
src/views/home/Timeline.vue

@@ -13,11 +13,18 @@
             <el-tabs v-model="activeName" @tab-click="tabClick">
               <el-tab-pane label="视频" name="video">
                 <div v-if="activeName === 'video'">
-                  <el-col>
-                    <el-row v-for="(video, index) in dataList" :key="index">
-                      <side-video-card :video="video" />
-                    </el-row>
-                  </el-col>
+                  <el-row
+                    v-if="dataList.length !== 0"
+                    v-infinite-scroll="load"
+                    infinite-scroll-disabled="loading"
+                    infinite-scroll-distance="10"
+                  >
+                    <el-col>
+                      <el-row v-for="(video, index) in dataList" :key="index">
+                        <side-video-card :video="video" />
+                      </el-row>
+                    </el-col>
+                  </el-row>
                 </div>
               </el-tab-pane>
               <el-tab-pane label="状态" name="status">
@@ -60,7 +67,8 @@ export default {
       userInfo: null,
       videoInfo: null,
       dataList: [],
-      activeName: 'video'
+      activeName: 'video',
+      loading: false
     }
   },
   created() {
@@ -83,6 +91,12 @@ export default {
     }
   },
   methods: {
+    load() {
+      this.loading = true
+      setTimeout(() => {
+        this.videoTimelineWrapper(this.nextId)
+      }, 1000)
+    },
     tabClick(tab) {
       this.nextId = 0
       const tabName = tab.name
@@ -101,8 +115,11 @@ export default {
     videoTimelineWrapper(nextId) {
       videoTimeline(nextId).then(resp => {
         if (resp.code === 0) {
-          this.dataList = resp.data.list
+          for (const item of resp.data.list) {
+            this.dataList.push(item)
+          }
           this.nextId = resp.data.nextId
+          this.loading = false
         }
       })
     }